* Support '-x xsrcdir' to tar up xsrcdir as xsrc.tgz, with the
contents of the tarfile being relative to xsrcdir and
prefixed with 'usr/xsrc'
* Convert to getopts a la the other scripts in this directory
Makefile
* if ${MKX11} != no, call makesrctars with '-x ${X11SRCDIR}'
* Some MAKEVERBOSE support.
* Add some variables to simplify various rules.
* Simply script startup by replacing ${SETSENV} with ${SETSCMD}, which
cd's to ${.CURDIR} before doing the work.
* Add an optional third field to the sets file which is a list of
comma separated keywords that control if the line is printed.
Currently supported keywords
kerberos4 ${MKKERBEROS4} != no
kerberos ${MKKERBEROS} != no
lint ${MKLINT} != no
obsolete ${obsolete} != 0.
In this case, non obsolete files are not printed.
(This will allow future support for builds with variables such as
MKHESIOD and MKYP set to "no".)
* Use sh(1)'s getopts where appropriate, and otherwise cleanup the
various scripts.
* Move defaults for sets.subr from sets.defaults into sets.subr.
Move replicated code for determining stuff such as shlibs type
from various scripts into sets.subr.
* Merge the obsolete.*, krb.*, krb4.* and lint.* into the appropriate
main lists with the relevant third field keyword(s).
can set CHECKFLIST_FLAGS="-e" in mk.conf so that extra files in
$DESTDIR are `non fatal'.
Remove unused '${CHECKFLISTFLAGS}' (which allowed selection of
different checkflist target in maketars target)
Replace defined(UNPRIVED) tests with ${MKUNPRIVED} != "no"
Add MKUPDATE; if not no has the same semantics as if UPDATE was defined.
Replace defined(UPDATE) tests with ${MKUPDATE} != "no"
Improve documentation for these and other make flags.
program/tool from "FOO" to "TOOL_FOO". The new variables are:
TOOL_ASN1_COMPILE TOOL_CAP_MKDB TOOL_CAT TOOL_CKSUM TOOL_COMPILE_ET
TOOL_CONFIG TOOL_CRUNCHGEN TOOL_CTAGS TOOL_DB TOOL_EQN TOOL_FGEN
TOOL_GENCAT TOOL_GROFF TOOL_HEXDUMP TOOL_INDXBIB TOOL_INSTALLBOOT
TOOL_INSTALL_INFO TOOL_M4 TOOL_MAKEFS TOOL_MAKEINFO TOOL_MAKEWHATIS
TOOL_MDSETIMAGE TOOL_MENUC TOOL_MKCSMAPPER TOOL_MKESDB
TOOL_MKLOCALE TOOL_MKMAGIC TOOL_MKTEMP TOOL_MSGC TOOL_MTREE
TOOL_PAX TOOL_PIC TOOL_PREPMKBOOTIMAGE TOOL_PWD_MKDB TOOL_REFER
TOOL_ROFF_ASCII TOOL_ROFF_DVI TOOL_ROFF_HTML TOOL_ROFF_PS
TOOL_ROFF_RAW TOOL_RPCGEN TOOL_SOELIM TOOL_SUNLABEL TOOL_TBL
TOOL_UUDECODE TOOL_VGRIND TOOL_ZIC
For each, provide default in <bsd.sys.mk> of the form:
TOOL_FOO?= foo
and for the ${USETOOLS}=="yes" case in <bsd.own.mk>, provide override:
TOOL_FOO= ${TOOLDIR}/bin/${_TOOL_PREFIX}foo
Document all of these in bsd.README.
This cleans up a chunk of potential (and actual) namespace collision
within our build infrastructure, as well as improves consistency in
the share/mk documentation and provision of appropriate defaults for
each of these variables.
- add "-N etcdir", to be used for pax & mtree -N. defaults to ${DESTDIR}/etc
Makefile:
- if UNPRIVED, call maketars with "-N ${NETBSDSRCDIR}/etc", so that
"make UNPRIVED= DESTDIR=/foo installsets" can work with an empty
${DESTDIR}/etc. (i.e, after a make build without install-etc-files)
${DESTDIR} into ${INSTALLDIR}.
INSTALLDIR is mandatory.
INSTALLSETS is optional, and if its not given, the following sets are used:
base comp games man misc text
- add "-M metalog". if metalog starts with "${DESTDIR}/", it
will be skipped in the flist check, to prevent unnecessary
warnings about extraneous ./METALOG
- if the diff returned a non-zero exit code, print a warning message,
and for the default diff output, print a blurb describing the
meaning of the output.
Makefile:
- call checkflist with "-M ${METALOG}" if UNPRIVED
- run "${MAKE} checkflist" if ${DESTDIR} != ""
NOTE: this change will prevent maketars from running if the
sets lists are out of date. This is intentional.
Better to fail than to build tar files with missing files.
- move guts of distrib/Makefile.inc to distrib/common/Makefile.distrib
(fixes problem caused by implicit include of ../Makefile.inc in certain
submake conditions triggered by makefiles not yet in tree)
- removed mkdir of ${RELEASEDIR}/*; rely upon "snap_pre" target of
etc/Makefile to create all the release directories
- renamed RELINSTALL to RELEASE_INSTALL
- renamed FLOPPYINSTDIR to FLOPPY_RELEASEDIR
- renamed MDSETDIR to MDSET_RELEASEDIR
- removed ITARGET
- move release target from top level to appropriate subdirectory
- ensure release target has correct depends
- replace miniroot's IMAGE_MD_POST with common/Makefile.image IMAGEPOSTBUILD
- Makefile.image: add realall: ${IMAGE}
An explicit makesums: maketars dependancy was not used because a
release engineer might want to regenerate the sums only and not the
tarballs; there's no explicit dependancy tracking here or elsewhere
between the input files and the output tarballs so everything gets
rebuild always.
XXX The existing "maketars" script is also not friendly to parallel
builds -- all of the sets files should be visible to the makefile so
they can be built in parallel.
contain the correct permissions.
Makefile:
- set SETSENV to the list of variables we wish to pass to each shell
script and use that, rather than duplicating the effort below
- call maketars with "-M ${METALOG}" if UNPRIVED is set.
getdirs.awk:
- takes a list of filenames and outputs the list along with all the
directories used by those filenames
maketars:
- support "-M metalog"
- merge etc/mtree/NetBSD.dist with the "-M metalog" for use in the tgz build
- for a given set, find the union between the set list and the metalog
generated above and use that as the list of files to ${PAX} up as the
tgz file.
and to convert MACHINE_ARCH to a CPU. Make this cross-build
friendly by specifying MACHINE, MACHINE_ARCH, and MAKE in the
makeflist/checkflist environment.
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.
determines which crypto set to build based on <bsd.crypto.mk> and invokes
the programs with the various correct options.
Not complete yet, but a good starting point for a few things, and a little
more flexible than the method used in the release: target in etc/Makefile.