for all platforms.
- remove now unnecessary replicated code in the various snap_md_post targets
- remove snap_md_pre; nothing uses it any more
- use ${NETBSDSRCDIR} and ${KERNSRCDIR} as appropriate
which bits to build, and to allow "make -j N" actually do something in
parallel:
- build_kernels: for each of ${ALL_KERNELS}, create kern-${NAME} target
which configures & builds the kernel ${NAME}.
- build_kernsets: for each of ${KERNEL_SETS}, create kernset-${NAME} target
to create ${RELEASEDIR}/binary/sets/kern-${NAME}.tgz
- build_releasekernels: for each of ${KERNEL_SETS} ${EXTRA_KERNELS}, create
${RELEASEDIR}/binary/kernel/netbsd-${NAME}.gz (et al)
(The latter two .WAIT until build_kernels has completed)
ALL_KERNELS ?= ${KERNEL_SETS} ${EXTRA_KERNELS} ${BUILD_KERNELS}
and use ALL_KERNELS instead of the latter three in the loop to configure
& build kernels. This allows ALL_KERNELS to be overridden in make(1)'s
environment or on make(1)'s command line... (I got sick of waiting for
all eleven i386 kernels to rebuild when I was only testing one)
Obsolete NBUILDJOBS; build.sh just passes -jN through to make(1),
which inherits it cooperatively through the build tree. Fix
documentation so that it's shown to be deprecated.
If you use build -jN, please save full build logs so that errors due
to missing dependancies can be analyzed and corrected.
(${KERNEL_SUFFIXES}), put the list in a shell variable and use that.
Both bash (before 2.05a) and Solaris /usr/xpg4/bin/sh report a syntax
error otherwise.
(easier to read that large nested .if's
- use INSTALL_FILE, INSTALL_LINK and INSTALL_SYMLINK instead of INSTALL
- when creating release directories, don't bother setting owner and group
install-etc-files iso_image_mi iso-image_md_pre iso-image_md_post snap_kern
- add the following targets to the RELEASEDIR=="" check:
iso_image_mi iso-image_md_pre iso-image_md_post snap_kern
- improve comments around make .flow control statements (including adding
some helper # { ... # } comments around large .if statements for (ab)use
with vi showmatch mode)
- clean up whitespace
when building the kernel sets and placing gzip'd kernels in binary/kernels.
For example, if KERNEL_SUFFIXES were set to "ecoff srec", then the kernel
set would include:
netbsd
netbsd.ecoff (only if it exists in the kernel compile directory)
netbsd.srec (only if it exists in the kernel compile directory)
This is useful for packaging kernel sets for platforms which have
extra special requirements for loading the kernel.
more consistent. To quote the comment in etc/Makefile
that describes how it's done:
# This target builds the kernels specified by each port. A port may
# specify the following kernels:
#
# KERNEL_SETS The list of kernels that will be
# packaged into sets, named
# kern-${kernel}.tgz. These kernels
# are also placed in the binary/kernels
# area of the release package as
# netbsd-${kernel}.gz.
#
# EXTRA_KERNELS Additional kernels to place in the
# binary/kernels area of the release
# package as netbsd-${kernel}.gz, but
# which are not placed into sets. This
# allows a port to provide e.g. a netbootable
# installation kernel containing a ramdisk.
#
# BUILD_KERNELS Additional kernels to build which are
# not placed into sets nor into the
# binary/kernels area of the release
# package. These are typically kernels
# that are built for inclusion only in
# installation disk/CD-ROM/tape images.
#
the latter being called by the "distribution" target. This allows the
various /etc/... files to be installed manually in a convenient way, if
desired.
NOTE: It is INTENTIONAL that this target is not named "install".
or distribution.
Also, clean up the check and include <sys/endian.h> instead -- some platforms'
<machine/endian_machdep.h> pull in the definitions of _BIG_ENDIAN and
_LITTLE_ENDIAN, invalidating the test; this makes the check values uniformly
"4321" and "1234" respectively.
Shouldn't be needed, but install has no other good way to deal with
this.
Pointed out by Rob Windsor in PR 14394 -- I committed his patch plus
one for something he didn't hit yet.
the etc Makefile override that by putting USETOOLS into $.MAKEOVERRIDES
This way the default for kernel compiles is still to use the installed
toolchain instead of depending on $TOOLDIR. $TOOLDIR can be used by
simply adding USETOOLS=yes to the command line as usual.
Adjust each ports template to set the default no setting and also pull in
bsd.own.mk if they weren't already to ensure they'll build correctly
with the new toolchain setup.
- Resurrect /etc/changelist, even if it's an "empty" file by default,
because it's easier to use than /etc/mtree/special.local for adding
a couple of simple files. Back by popular demand (hi @@@! :-)
- Add /etc/rc.d/* to the list of "dynamic" files; this notices changes
in user-added scripts
- Only calculate the mtree -I nomail list once, and re-use
- Use "cat foo | while read file" instead of "for file in `cat foo`" ;
handles whitespace better...