In the new build world order, DESTDIR is set to "" (in Makefile.tools)
if not already set, to ensure correct include/library handling. This
caused the top-level to not set DESTDIR=/, which confused distrib-dirs,
since it doesn't include Makefile.tools, and thus didn't see the same
DESTDIR that the top-level did.
set, will descend into "tools" to build a toolchain, and use that toolchain
explicitly for the build (via tools/Makefile.tools).
While here, GC all the "egcs-detection" logic; it's not needed anymore, since
nothing is on gcc 2.7 any longer.
comments in src/Makefile):
# Sub targets of `make build,' in order:
# buildstartmsg: displays the start time of the build.
# beforeinstall: creates the distribution directories.
# do-force-domestic: check's that FORCE_DOMESTIC isn't set (deprecated.)
# do-share-mk: installs /usr/share/mk files.
# do-cleandir: clean's the tree.
# do-make-obj: create's object directories if required.
# do-check-egcs: check's that we have a modern enough compiler (deprecated.)
# do-make-includes: install include files.
# do-lib-csu: build & install startup object files.
# do-lib: build & install system libraries.
# do-gnu-lib: build & install gnu system libraries.
# do-dependall: builds & install the entire system.
# do-domestic: build & install the domestic tree (deprecated.)
# do-whatisdb: build & install the `whatis.db' man database.
# buildendmsg: displays the end time of the build.
this is something i've wanted to do for years....
adding support for Heimdal/KTH Kerberos where easy to do so. Eliminate
bsd.crypto.mk.
There is still a bunch more work to do, but crypto is now more-or-less
fully merged into the base NetBSD distribution.
overrideable in mk.conf
Document in bsd.README; this is distinct from "MKOBJ", which controls
whether "make obj" does anything.
In the top-level makefile, if MKOBJDIRS != "no", do a "make obj" at an
appropriate point during a "make build".
and 'install' targets to descend into the domestic subtree. This is
generally a bad idea unless one knows precisely what they're doing,
but we'll provide the rope anyway (with the appropriate warnings).
Document both EXPORTABLE_SYSTEM and FORCE_DOMESTIC at the top of the file.
announced in a reasonable forum. Further, it adds significant overhead to
the build process, and doesn't work correctly when a non-root DESTDIR
build is attempted (unless texinfo is already available, which of course
makes this change unnecessary).
some programs like /usr/libexec/ftpd, need the kerberos etc libraries.
XXX: In reality programs like these should be moved to the domestic tree!
I would have assumed that if I make install in the exportable tree, I will
not install any domestic binaries!!!
the domestic tree if we are building an EXPORTABLE_SYSTEM.
Translate the conditional to English so as to avoid future problems
when people are tempted to modify it.
which has side effects, use _BUILD to determine whether we ought to
install things in the domestic subtree. Otherwise, the core idea from
the last revision is unchanged.
failed to account for how a 'make distribution' would get the proper bits
into the distribution tree. To correct this, we set EXPORTABLE_SYSTEM
while doing a 'make build' in order to avoid trying to install not-yet-
generated headers and binaries. I've also made the required adjustment
to the condition that adds "domestic" to SUBDIR.
This is too hairy and needs to die, but I don't see how it can until
we integrate the crypto bits into the main body of the tree.
obj, clean, cleandir and distclean. This reduces the chance of problems
(and the need to re-run make obj) if one is switching back and forth
between EXPORTABLE_SYSTEM and not, as US/Canadian developers tend to do.
parallel for a 'make build' (using make's -j flag). Only CPU-intensive jobs
are started in parallel.
Document the variables useable at the begining of the makefile
(NBUILDJOBS NOMAN NOSHARE UPDATE DESTDIR). Feel free to add documentation
for the ones I forgot !
Instead:
* If upgrading the compiler, build it *first*, before anything else.
* If upgrading the compiler and DESTDIR is set, barf.
This guarantees that libgcc is built during the library stage.
- If USE_EGCS is set, rebuild egcs's libgcc and install it
(unless DESTDIR is set and system compiler is not gcc 2.8,
in which case print a warning message and do nothing).
- Do not rebuild gcc 2.7's libgcc. egcs can build this fine.
includes, which is the case if you are building to an empty $DESTDIR.
Fixes PR 5497.
NOTE: This reverts us to the 1.3 behavior of requiring the secr
set to be installed for non-exportable builds. While unfortunate,
this allows a user to start with existing binary sets, rather than
requiring special knowledge of how to build a domestic tree to
$DESTDIR.
and libs in the object tree, if you use a separate object tree,
while maintaining backward compatability with other build methods.
See the notes in src/share/mk/bsd.README for full details. Note
that the `make includes' target now only installs the include files
in the build directory (if you use one--otherwise they go in DESTDIR
just like before); `make install' will install include files in
DESTDIR.
lib itself. On the Alpha (and other ELF systems), shared library builds
require files built/installed by the csu build, so if lib/csu isn't
built/installed before lib is, DESTDIR builds won't work and normal builds
can mistakenly use old versions of some csu files.
if people define EXPORTABLE_SYSTEM, they REALLY don't want to do stuff
in 'domestic'. Pay attention to it when doing 'make build'.
in 'make build', install share/mk _first_, because include dirs may
require new make templates.
in 'make build', install domestic includes after normal includes, so
they can previously-installed includes if necessary.
Note that all of domestic/lib should be built in 'make build' during the
library build stage.