With the addition of dtappbuilder to autotools, every make run
(including make install) causes src/ab to regenerate files that cause
the whole directory to be recompiled, even on a 'make install'.
This seems to be primarily caused by dtbuilder.msg (and possibly
dtbuilder.c) being modified after it is generated, which is apparently
normal behavior for dtcodegen.
This fix sets both dtbuilder.msg and dtbuilder.c as "order-dependant
prequisites" so that they are always generated first (there are
already rules to do generate them) and then subsequently the only
thing required is that they exist since we don't care if they are
modified after that point. If you need to make changes to them, edit
their respective .src files instead.
This seems to resolve the issue, but perhaps at the expense of adding
another requirement to use gmake.
We also need to disable parallel building in this module :(
Liang Chang added utempter support to the dtterm widget in
pre-autoconf CDE. While the code itself was merged, it was still not
"turned on" for autoconf builds.
This commit completes the implementation allowing dtterm on Linux and
the BSDs to be installed without having to be setuid root -- as long
as the libutempter headers and libraries are installed.
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.
Summary:
cde/config/cf/DtInfo.tmpl - add RISCVArchitecture as little endian
cde/config/cf/Imake.cf - add AArch64Architecture for NetBSD
cde/config/cf/Imake.cf - add RISCVArchitecture for Linux
cde/config/cf/linux.cf - add RISCVArchitecture bit order
cde/lib/DtHelp/Imakefile - add -ljpeg for OpenBSD
These system can support PAM, but it requires a port of the NetBSD
module to do so. As a result, this support is disabled by default.
See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253073 for a
patch to add this support to the OS. Then you can set HasPamLibrary
to YES in the respective .cf files, rebuild CDE, and try it out.
Marco Ivaldi pointed me to some unsafe code in ParseJob.c. I do not
have a sun machine (well, not currently operational anyway), so the
code is not tested. But seriously, this is some horrible code. This
local parser for sun needs to be rewritten!
Summary:
cde/config/cf/DtInfo.tmpl - add RISCVArchitecture as little endian
cde/config/cf/Imake.cf - add AArch64Architecture for NetBSD
cde/config/cf/Imake.cf - add RISCVArchitecture for Linux
cde/config/cf/linux.cf - add RISCVArchitecture bit order
cde/lib/DtHelp/Imakefile - add -ljpeg for OpenBSD
These system can support PAM, but it requires a port of the NetBSD
module to do so. As a result, this support is disabled by default.
See https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=253073 for a
patch to add this support to the OS. Then you can set HasPamLibrary
to YES in the respective .cf files, rebuild CDE, and try it out.
Marco Ivaldi pointed me to some unsafe code in ParseJob.c. I do not
have a sun machine (well, not currently operational anyway), so the
code is not tested. But seriously, this is some horrible code. This
local parser for sun needs to be rewritten!
make distclean ignores the language definitions, as it should.
However, we had options that suggested that the Japanese locale was
supported. Distclean would decend into that locale directory and
fail, since of course we do not actually support that locale and it is
not currently buildable.
Remove a pile of old SGML stuff we no longer need in dtdocbook since
we use NSGMLS.
Use some TCL macros from m4/tcl.m4 to loacate and use information in
the tclConfig.sh script installed with TCL. I had to modify it to
export TCL_INCLUDE_SPEC, which was present but not imported.
So this is going to be tricky/painful getting this parser fully
operational. It's pretty hairy with various interdependencies and
generated code.
It's rather complicated how each sub dir depends on the previous one.
Also, the parser subdir has dependencies on the helptag subdir, and
vice-versa, so some hackery was needed to get that to work.
Due to the wierd interdepencencies between helptag and parser,
we disable parallel builds there.
This is some really horrible code and design - not surprising since it
dates to 1989.
I think it should just be removed -- who can maintain or refactor this
code?
Also, dthelp_htag1 is now built in pass1/parser/, not in
pass1/helptag/ as it used to be.
The localized/utils/merge utility used hardcoded temporary filenames
to do its thing. This prevented any Makefiles that called merge from
enabling parallel builds in order avoid the file collisions that would
result.
Now we:
- use filenames that embed the PID in them, making them unique
per-process
- place them in /tmp, rather than the current directory
As a result, we can now re-enable parallel builds for localized
app-defaults, config, and types.
The appmanager action files (/usr/dt/appconfig/appmanager/*) are now
created properly for the main 4 languages supported. As usual, the
en_US.UTF-8 locale is a symlink to C.
These files were previously created via the UDB database files via
imake. Obviously we aren't going to be using those in autotools.
So, each language now has an appmanager/ dir in
programs/localized/$LANG/ that will create them properly on a make and
make install. It uses a new appmgr.am template in localized/templates
to do this.
This also means all of these languages now can use the new actions
added by Antonis, even though they are not translated, they are at
least usable in those languages now.
Patch from Peter G.
Note, this is temporary - eventually we will want to use the system
nsgmls/onsgmls to handle this and remove our ancient copy of nsgmls.