Change name of target build from xxx.mk from 'all' to xxx.crunched to avoid
picking up baggage from bsd.own.mk and bsd.prog.mk.
Fixes toolchain/21563 (with new crunchgen binary)
Explicitly check times on built targets so to stop make rebuilding
the later targets.
nbmake in src/distrib/i386/floppies/ramdisk-big (etc) will now
pick up changes to source files that make the crunched binary.
64 bit block pointers, extended attribute storage, and a few
other things.
This commit does not yet include the code to manipulate the extended
storage (for e.g. ACLs), this will be done later.
Originally written by Kirk McKusick and Network Associates Laboratories for
FreeBSD.
to set MAKE for the subshell that's used to populate the work tree.
It needs to be the the correct make (in the cross build case: nbmake +
args) so that when makeobsolete is run it can pickup this value.
Otherwise makeobsolete defaults to the host's make is used which might
not understand some of NetBSD make's constructs.
This fixes, mostly, the build of NetBSD/hpcmips on a FreeBSD-current
system.
character, use that as the path to the kernel to use, rather than
using the default of "${KERNOBJDIR}/${KERNEL}/netbsd".
(Using this feature means that FILENAME == "-" isn't useful. such is life...)
computers, by appending appropriate boot file systems to the image and
then creating a disklabel using sunlabel(8).
Inspired by distrib/utils/mksunbootcd, except that this is a shell script
instead of being a C program that would have needed to become a host tool.
Use /var/db/obsolete instead of /etc/obsolete
etc/Makefile:
Create separate target "install-obsolete-files" to populate
/var/db/obsolete, instead of using "install-etc-files".
Makefile:
Add do-obsolete target, to run "cd etc && make install-obsolete-files",
and add this to BUILDTARGETS.
This moves the "obsolete files" creation from "distribution" to "build".
Per discussion with Andrew Brown.
or the command with an interactive question. (This also prevents
weird problems if a directory element of '-f path' is missing and
'make -j N' is being used).
There's two variables added to Makefile.crunch:
SMALLPROG If 1, add SMALLPROG=1 to CRUNCHENV. [default: 1]
This can be used by various Makefiles to
determine if a `small' version of the program
is required.
SMALLPROG_INET6 If 1 and SMALLPROG == 1, add SMALLPROG_INET6=1
to CRUNCHENV. [default: 0]
This can be used by various Makefiles to
determine if the `small' version has INET6
support enabled.
Only enable SMALLPROG_INET6 for programs on the ramdisks that have INET6 in
the appropriate kernel, and cleanup INET6 setting.
(Note: this means that sysinst won't get INET6 support if the kernel
it's running on doesn't have it).
This change saves a fair bit of space on various install images
(including i386 ramdisk-{ps2,small,tiny}) that didn't have INET6 in
the kernel but were unconditionally getting INET6 support in their tools.
- for COPYDIR, use perms of 0444 for files
- set perm to crunchgen program to 0555
- for mode=populate, add `` || exit 1'' after `` ( ... ) '' to
ensure that sh -e correctly exits upon failure...
- build (mdset/nm/strip) into ${filename} as one rule, and move ${filename}.gz
into separate rule
- rename MDSET.${filename}.nosymbols -> MDSET_NOSYMBOLS.${filename}
- rename MDSET.${filename}.post -> MDSET_POST.${filename}, and don't do
suffix handling here
- rework suffix handling:
- rename MDSET.${filename}.suffixes -> MDSET_SUFFIXES.${filename},
and change from list of suffixes to list of "suffix cmdtobuildsuffix",
where cmdtobuildsuffix is the name of the variable containing the
command to build ${filename}.${suffix} (available as "${.TARGET}").
- for each ${filename}.${suffix}, depend upon ${filename} and use
${cmdtobuildsuffix} to create the former.
- add separate ${filename}.${suffix}.gz rule
- mipsco & pmax: rename "install.gz" to "netbsd-INSTALL.gz", for
consistency and so the target to build the mdset kernel doesn't get
confused with general "install" target
rather than the previous ".fs").
- add support for (optional) FLOPPYSUFFIX in Makefile.tarfloppy, and
use appropriately
- remove (now unnecessary) custom release targets in alpha/instkernel/*
- 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}