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.
These use the 'merge' utility which hardcodes temp files and the like
- it cannot be run with other instances without generating bogus
errors and occasionally coredumping. :(
There are still some issues here - specifically with the C
dtbuilder/dtcodegen catalogs. They may be broken due to dtbuilder not
being built yet.
Also, once dtinfo can be built, the msgs and app-defaults for it
should be re-enabled.
I also see gencat coredumping in localization/ while doing a multicore
(-jX) make. Regular single core builds seem to work fine.
Make -lXinerama a dep on libDtXinerama so it doen't need to be
specified in Makefile.am files or in LIBS as it was being done
previously.
This still needs a little work, ideally Xinerama should be completely
optional and only enabled if present. But we can save that for
later.
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.
Previously we would detect whether TIRPC is installed or not, and set
TIRPCINC to the include directory with the -DOPT_TIRPC macro defined.
Then, pretty much every Makefile.am needs to be sure that $(TIRPCINC) is
specified in the cpp/c/cxx flags.
Since we can never be sure that an RPC header file might be indirectly
included, a better approach is to simply add TIRPCINC to the global
list of CXXFLAGS and CFLAGS in configure.ac for everybody. This way,
it is always specified properly on tirpc systems, and we don't need to
always add it to every individual Makefile.am since everyone will get
it by default.
TIRPCLIB is still marked as a dep in libtt, so as long as libtt is
linked, you should automatically get the tirpc library too. This is
still unchanged.
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.
That was not fun. There were a variety of issues. It's needs
testing.
We use the new GENCPP for preprocessing the various scripts and config
files in config/
For ksh, we need a full pathname. AC_CHECK_PROGS only sets the name,
so we can't use that (think of a "#!" in a shell script.
We use some shell scripting to locate the ksh pathname.
While on that subject, the current use of CPP (gcc -E) as a general
preprocessor does not work very well. I messes up whitespace,
adds/translates random whitespace, and complains bitterly about single
quotes (') in various places like comments. It's not usable for what
CDE needs.
So, now we use GENCPP. Using shell scripting like that used for ksh,
we locate the cpp program, and set GENCPP to "/full/path/to/cpp
-traditional -nostdinc". This is what Linux uses now in an Imake
build, and it works fine. We'll have to see what the BSD/Solari do.
We might need to just include BSD's "tradcpp" into the build and use
that. It too works well in limited testing, but eats blank lines. We
can live with that if we have to.