Commit Graph

192 Commits

Author SHA1 Message Date
Peter Howkins
5a763ae48b libtt: Resolve format-overflow issues 2021-12-24 10:50:28 -07:00
Peter Howkins
35e94e3878 libtt: Resolve uninitialized warningss 2021-12-24 10:50:27 -07:00
Jon Trulson
31774af2f2 library versioning: try to keep the versions at 2.1.0 for all platforms 2021-12-23 13:06:44 -07:00
Jon Trulson
3a0e92adb6 Rename autotools_config.h to cde_config.h to better reflect it's ownership. 2021-12-22 13:21:43 -07:00
Jon Trulson
1b67815df2 configure, libtt: add check for rpc_inline_t and define if not supported 2021-12-22 13:14:55 -07:00
Jon Trulson
e10d06f210 configure/Makefiles: add checks for Xmu, Xext, and Xdmcp
We also remove sun pro specific options, and do some general cleanup
as well as remove hardcoded library refs like -lXm, -lXext, etc...
2021-12-21 16:42:22 -07:00
Jon Trulson
17602b4d21 Library (.so) versioning: preserve previous library version
Ticket #120

Change libtool's shared library version info to 3:0:1 to preserve the
previous library version of 2.1.0.

See https://autotools.io/libtool/version.html for the details on how
libtool handles this versioning info.

See https://verbump.de/ for a handy 'version calculator' using
libtools rules.
2021-12-16 12:40:15 -07:00
Jon Trulson
e7d657c376 libtt: remove hardcoded -lstdc++ used to build TT library
Hardcoding a -lstdc++ is wrong, since not all OSs are likely to handle
C++ in the same way.

The issue is that libtt needs to be built as a C++ library, so we use
a fake dummy.cxx file to convince libtool to do so instead, rather
than trying to force the issue by linking a (possibly missing)
libstdc++.
2021-12-13 16:44:01 -07:00
Jon Trulson
a5a2d937cb Automate versioning for CDE, set current version to 2.4.0b
Previously in the imake world, changing the CDE version required hand
editing a handful of files.

This commit makes these files into ".in" files.  configure.ac now
holds CDE version information -- both in the AC_INIT() call and in the
CDE_VERSION_* variables a few lines down.

Changing the CDE version now involves editing those two locations in
configure.ac only.

Thereafter, a configure run will replace version information in the
following files with the current CDE version:

copyright
doc/common/help/HELPEnt.sgm
include/Dt/Dt.h
lib/tt/bin/ttauth/ttauth.man

This also causes a catch-22 problem with ToolTalk.  So the
tooltalk.inc file is gone and the relevant TT Makefiles have been
modified to set and define the TT version in those Makefiles that
actually use it.
2021-12-13 16:43:42 -07:00
Jon Trulson
c479fe7b9e Fix some logical-not-parentheses warnings 2021-12-11 17:39:35 -07:00
Jon Trulson
f61316c4f4 tt_ldpath: fix broken logic in find_lib 2021-10-23 14:50:40 -06:00
Jon Trulson
be6bc0aa54 Remove some unused imake *.tmpl files
We still keep some of them for doc/ and dtinfo until those are
building properly.
2021-09-19 14:42:11 -06:00
b'Jon Trulson
d43e6bd6c2 Merge /u/obache/cdesktopenv/ branch fix/missing-version-bump into master
https://sourceforge.net/p/cdesktopenv/code/merge-requests/31/
2021-09-19 18:57:22 +00:00
OBATA Akio
692771fb07 Get rid of support of ancient signal handler return type int
Such environments are missing void type, older K&R C, and
such supports already had been removed in various places.
Furthermore, current hardcoded 'SIGNALRETURNSINT' is wrong.
2021-09-19 18:08:41 +09:00
OBATA Akio
483a4c314f lib/tt: fix missing version bump 2021-09-14 18:40:29 +09:00
Jon Trulson
369b3e89d9 Begin removal of some Imakefiles, and other no longer useful cruft
This commit will not completely remove all Imake files, specifically
those for sections that have not been completed yet.

Also, the databases dir has been moved to databases-delete-later until
we have everything building and installed properly.
2021-07-03 18:23:40 -06:00
Jon Trulson
727baab329 Bump version to 2.4.0a for upcoming merge 2021-07-03 17:24:22 -06:00
Jon Trulson
5a03b6a5e8 Merge branch 'master' into autotools-conversion 2021-07-03 16:56:54 -06:00
Jon Trulson
8e4de15495 Bump version to 2.4.0 for release 2021-07-03 13:35:15 -06:00
Jon Trulson
49adbfb25d Bump devel version to 2.3.2c 2021-06-02 19:56:30 -06:00
Lev Kujawski
a6ea2a2d52 Centralize catgets() calls through MsgCat
CDE has relied upon catgets() implementations following a relaxed
interpretation of the XPG internationalization standard that ignored
-1, the standard error value returned by catopen, as the catalog
argument. However, this same behavior causes segmentation faults with
the musl C library.

This patch:

- Centralizes (with the exception of ToolTalk) all calls to catopen(),
  catgets(), and catclose() through MsgCat within the DtSvc library.
- Prevents calls to catgets() and catclose() that rely upon
  undefined behavior.
- Eliminates a number of bespoke catgets() wrappers, including multiple
  redundant caching implementations designed to work around a design
  peculiarity in HP/UX.
- Eases building CDE without XPG internationalization support by providing
  the appropriate macros.
2021-06-02 19:55:15 -06:00
Jon Trulson
e8345c9241 autotools: specify tirpc lib to link the tooltalk binaries
Newer ubuntu's do not seem to honor the implied library dependency of
libtt->libtirpc, so we must explicitly specify libtirpc when linking
them.
2021-06-01 18:23:46 -06:00
Jon Trulson
616dd16c70 Bump devel version to 2.3.2c 2021-05-30 14:54:23 -06:00
Lev Kujawski
7010b2c11b Centralize catgets() calls through MsgCat
CDE has relied upon catgets() implementations following a relaxed
interpretation of the XPG internationalization standard that ignored
-1, the standard error value returned by catopen, as the catalog
argument. However, this same behavior causes segmentation faults with
the musl C library.

This patch:

- Centralizes (with the exception of ToolTalk) all calls to catopen(),
  catgets(), and catclose() through MsgCat within the DtSvc library.
- Prevents calls to catgets() and catclose() that rely upon
  undefined behavior.
- Eliminates a number of bespoke catgets() wrappers, including multiple
  redundant caching implementations designed to work around a design
  peculiarity in HP/UX.
- Eases building CDE without XPG internationalization support by providing
  the appropriate macros.
2021-01-31 16:17:13 -07:00
Jon Trulson
ece5c0ea14 Merge branch 'master' into autotools-conversion
Lost the ksh93 submodule so will re-add in a later commit.
2021-01-30 19:04:10 -07:00
Jon Trulson
eb381022a5 Change version to 2.3.2b for the new ksh93 submodule merge 2021-01-30 16:32:41 -07:00
Lev Kujawski
d14d956c00 Rename functions within ToolTalk that conflict with the musl C library headers. 2021-01-10 18:08:00 -07:00
Jon Trulson
90e61dda5f Merge branch 'master' into autotools-conversion 2020-11-24 16:53:24 -07:00
Jon Trulson
b21968f26a fix broken dev version number: 2.3.1a -> 2.3.2a 2020-11-23 17:01:37 -07:00
Peter Howkins
67f62e5a8a all: remove deprecated sys_errlist[] and replace with ANSI C strerror() 2020-11-02 05:30:08 +00:00
Jon Trulson
316ab9c9db tt: fix link order for tt_type_comp and dbck
These caused link errors on Gentoo, maybe other systems.

Patch by Peter G.
2020-03-24 11:34:51 -06:00
Jon Trulson
00dcd9c63d FreeBSD 12: get CDE to build and run
With this patch, CDE (autotools) builds and runs on fbsd 12 now.
fbsd11 should work too, but not yet tested.

You must use gmake - ie:

./configure MAKE=gmake
gmake

Seems all of the BSD's will need to use gmake for now.
2020-01-04 16:26:46 -07:00
Jon Trulson
25035724af cpp revisited: look for a cpp binary in various locations for use at runtime
Certain programs like dtlogin and tt_type_comp need access to the
system's cpp command to process certain files at runtime.  tradcpp is
not installed on most systems, and is intended for use as a imake-cpp
replacement which is all we are using it for.  We still need an
honest cpp for the CDE components to use.

Now, we look in various places for a 'cpp' command and set CPP_COMMAND
to it's value.  This way tt_type_comp and other CDE programs can do
required processing at runtime.
2019-12-04 14:28:44 -07:00
Jon Trulson
cdc9eae583 Get tttypes installed correctly.
There is a problem with CPP_PROGRAM - using $CPP or $GENCPP (tradcpp)
always fails in tt_type_comp with the error:

"nclude ", line 8: syntax error

If I define it to /lib/cpp (previous hardcoded value) then it seems to
work fine.  Only the dtinfo and dtinfo_start ptypes use #include, and
therefore show this error.  Needs investigation.
2019-12-02 19:59:44 -07:00
Jon Trulson
e577e8102c tt_type_comp: incorporate master CPP_PROGRAM fix into Makefile.am 2019-12-01 13:44:02 -07:00
Jon Trulson
e481f4cb93 Merge branch 'master' into autotools-conversion 2019-12-01 13:31:21 -07:00
Nina Didenko
9221c55a5f tt_type_comp: use CppCmd definition
Hi.

This patch makes tt_type_comp respect CppCmd

Thanks!
2019-11-29 18:12:20 -07:00
Jon Trulson
c329d5cfd7 Remove $(TIRPCINC) from all Makefile.am files - it no longer exists
Also, restructure some of the dependencies in the lib/tt binaries.  We
will link with libtt (which will include libtirpc as a dependency),
and XTOOLLIB - all the right X11 stuff without needing to add it to
every OS.  Removed several uneeded OS specializations ("if LINUX",
etc) as a result.
2019-11-20 18:52:29 -07:00
Jon Trulson
af20bc2b57 changing_version_number.txt: change tooltalk.tmpl to tooltalk.inc 2019-11-19 18:15:26 -07:00
Jon Trulson
31e69340ce libtt: add -ltirpc as a dependency if we are using it
This means that when linking against libtt, libtirpc should also
automatically be linked in if we determined that we are using tirpc.

This avoids having to link every program that uses libtt (almost all
of them) from having to have a $(TIRPCLIB) added to their link
commands.
2019-11-19 18:09:21 -07:00
Jon Trulson
152f5c9a88 Merge branch 'master' into autotools-conversion after utf8-conversion 2019-11-19 11:44:33 -07:00
Jon Trulson
0d70d8b120 Set version to 2.3.1a (devel) for current master 2019-11-18 13:03:52 -07:00
Jon Trulson
82059bf240 Merge branch 'master' into autotools-conversion after 2.3.1 release 2019-11-16 16:35:56 -07:00
Jon Trulson
5fe7ee5b67 Change CDE version info for 2.3.1 release 2019-11-15 18:04:01 -07:00
Jon Trulson
1fc3284829 libtt, DtWidget: use new GENCPP 2019-10-30 19:48:04 -06:00
Jon Trulson
61ab4a5b95 DtWidget: make it build, change include/cppfile.inc a bit
cppfile.inc - don't set BUIT_SOURCES or CLEANFILES here as they
overwrite (or in case of the CLEANFILES +=...) ignore the settings.
Do those in the Makefile.am always.

We still need a better way to preprocess generic files.  cppfile.inc
will only work for one file per Makefile...
2019-10-26 15:05:52 -06:00
Jon Trulson
31fec7edb5 tt: Fixup tt build for new includes locations
Some files were trying to access the global includes directy in the
build area with things like #include <api/c/tt_c.h>, which is now
wrong.  Se we fix all of those up.  tt_c.h and tttk.h are now global,
so we no longer need to root around various build dirs to find them.

TT builds again.
2019-10-25 17:37:58 -06:00
Jon Trulson
369308b737 The great includes migration of 2019 (autotools)
Ok - so one of the steps in building CDE is an early phase called the
includes phase (make includes).  At this point, all of the public
header files are exported to exports/include/Dt, DtI, ...

Then, the software is built using that include dir.

This of course does not work in autotools.  Much of the software does
things like #include <Dt/something.h>, so in order for the build to
succeed, this behavior must be represented/replicated in some way.

It seems the usual way of dealing with this is to place all public
headers (and in some projects, ALL headers) into a toplevel include
directory.

We now do this for all public headers - they have been moved from
wherever they were and placed in the appropriate spot in includes/

This will break the Imake 'make includes' phase unless the Imakefiles
are fixed (remove the HEADERS = stuff, and the incdir defines).  This
has not been done at this point since in reality, once autotools works
properly, there will be no need for the Imake stuff anymore, and I
intend to get rid of it.

This is just a warning for now - Imake builds in this tree will now
fail at the 'includes' stage.

This commit is only the migration.  In upcoming commits, libtt will be
fixed so that the hack being used before to get around this problem is
removed as there will no longer be any need.

And then the autotools work continues...
2019-10-25 17:01:34 -06:00
Jon Trulson
7c2983185d Re-fix tt_type_comp -- it doesn't actually need yacc/lex 2019-10-25 10:43:05 -06:00
Jon Trulson
9182ddfcc3 tt: fixup remaining build issues 2019-10-24 21:29:03 -06:00