Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/BUILDING,v rcsdiff: /ftp/cvs/cvsroot/src/BUILDING,v: warning: Unknown phrases like `commitid ...;' are present. retrieving revision 1.107 retrieving revision 1.114 diff -u -p -r1.107 -r1.114 --- src/BUILDING 2014/06/14 12:21:41 1.107 +++ src/BUILDING 2014/11/08 04:23:00 1.114 @@ -162,6 +162,17 @@ CONFIGURATION Default: Unset. + BUILDINFO This may be a multi-line string containing information about + the build. This will appear in DESTDIR/etc/release, and it + will be stored in the buildinfo variable in any kernels that + are built. When such kernels are booted, the sysctl(7) + kern.buildinfo variable will report this value. The string + may contain backslash escape sequences, such as ``\\'' + (representing a backslash character) and ``\n'' (representing + a newline). + + Default: Unset. + BUILDSEED GCC uses random numbers when compiling C++ code. This variable seeds the gcc random number generator using the -frandom-seed flag with this value. By default, it is set to @@ -621,8 +632,8 @@ BUILDING set (see above). iso-image Create a NetBSD installation CD-ROM image in the - RELEASEDIR/iso directory. The CD-ROM file system will have - a layout as described in release(7). + RELEASEDIR/images directory. The CD-ROM file system will + have a layout as described in release(7). For most machine types, the CD-ROM will be bootable, and will automatically run the sysinst(8) menu-based @@ -638,8 +649,8 @@ BUILDING the RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom directory by ``make release''. These smaller images usually contain the same tools as the larger images in - RELEASEDIR/iso, but do not contain additional content such - as the distribution sets. + RELEASEDIR/images, but do not contain additional content + such as the distribution sets. Note that the mac68k port still uses an older method of creating CD-ROM images. This requires the mkisofs(1) @@ -648,8 +659,8 @@ BUILDING iso-image-source Create a NetBSD installation CD-ROM image in the - RELEASEDIR/iso directory. The CD-ROM file system will have - a layout as described in release(7). It will have top + RELEASEDIR/images directory. The CD-ROM file system will + have a layout as described in release(7). It will have top level directories for the machine type and source. For most machine types, the CD-ROM will be bootable, and @@ -667,8 +678,8 @@ BUILDING the RELEASEDIR/RELEASEMACHINEDIR/installation/cdrom directory by ``make release''. These smaller images usually contain the same tools as the larger images in - RELEASEDIR/iso, but do not contain additional content such - as the distribution sets. + RELEASEDIR/images, but do not contain additional content + such as the distribution sets. Note that the mac68k port still uses an older method of creating CD-ROM images. This requires the mkisofs(1) @@ -809,6 +820,12 @@ BUILDING symbol table and can be used for debugging (for example with a cross-gdb built by MKCROSSGDB). + kernels This command will build all kernels defined in port + specific release build procedure. + + This command internally calls the kernel=kconf operation + for each found kernel configuration file. + modules This command will build kernel modules and install them into DESTDIR. @@ -835,10 +852,21 @@ BUILDING live-image Perform ``make live-image''. + list-arch Prints a list of valid MACHINE and MACHINE_ARCH settings, + the default MACHINE_ARCH for each MACHINE, and aliases for + MACHINE/MACHINE_ARCH pairs, and then exits. The -m or -a + options (or both) may be used to specify glob patterns that + will be used to narrow the list of results; for example, + ``build.sh -m 'evm*' -a '*arm*' list-arch'' will list all + known MACHINE/MACHINE_ARCH values in which either MACHINE + or ALIAS matches the pattern `evb*', and MACHINE_ARCH + matches the pattern `*arm*'. + The following command line options alter the behaviour of the build.sh operations described above: - -a arch Set the value of MACHINE_ARCH to arch. + -a arch Set the value of MACHINE_ARCH to arch. See the -m option for + more information. -B buildid Set the value of BUILDID to buildid. This will also append the @@ -897,30 +925,19 @@ BUILDING relative path. If the directory does not already exist, build.sh will create it. - -m mach Set the value of MACHINE to mach, except in some special cases - listed below. This will also override any value of - MACHINE_ARCH in the process environment with a value deduced - from mach, unless -a is specified. All cross builds require - -m, but if unset on a NetBSD host, the host's value of MACHINE - will be detected and used automatically. - - Some machines support multiple values for MACHINE_ARCH. The - following special cases for the mach argument are defined to - set the listed values of MACHINE and MACHINE_ARCH: - - mach MACHINE MACHINE_ARCH - evbarm evbarm (not set) - evbarm-eb evbarm armeb - evbarm-el evbarm arm - evbmips evbmips (not set) - evbmips-eb evbmips mipseb - evbmips-el evbmips mipsel - evbsh3 evbsh3 (not set) - evbsh3-eb evbsh3 sh3eb - evbsh3-el evbsh3 sh3el - sbmips sbmips (not set) - sbmips-eb sbmips mipseb - sbmips-el sbmips mipsel + -m mach Set the value of MACHINE to mach, unless the mach argument is + an alias that refers to a MACHINE/MACHINE_ARCH pair, in which + case both MACHINE and MACHINE_ARCH are set from the alias. + Such aliases are interpreted entirely by build.sh; they are not + used by any other part of the build system. The MACHINE_ARCH + setting implied by mach will override any value of MACHINE_ARCH + in the process environment, but will not override a value set + by the -a option. All cross builds require -m, but if unset on + a NetBSD host, the host's value of MACHINE will be detected and + used automatically. + + See the list-arch operation for a way to get a list of valid + MACHINE and MACHINE_ARCH settings. -N noiselevel Set the ``noisyness'' level of the build, by setting @@ -952,6 +969,16 @@ BUILDING by the values of several variables and by the location of the source directory. + Note that placing the obj directory location outside of the + default source tree hierarchy makes it easier to manually clear + out old files in the event the ``make cleandir'' operation is + unable to do so. (See CAVEATS below.) + + Note also that use of one of -M or -O is the only means of + building multiple machine architecture userlands from the same + source tree without cleaning between builds (in which case, one + would specify distinct obj locations for each). + -o Set the value of MKOBJDIRS to ``no''. Otherwise, it will be automatically set to ``yes''. This default is opposite to the behaviour when not using build.sh. @@ -1053,4 +1080,10 @@ HISTORY The build.sh based build scheme was introduced for NetBSD 1.6 as USE_NEW_TOOLCHAIN, and re-worked to TOOLCHAIN_MISSING after that. -NetBSD June 14, 2014 NetBSD +CAVEATS + After significant updates to third-party components in the source tree, + the ``make cleandir'' operation may be insufficient to clean out old + files in object directories. Instead, one may have to manually remove + the files. Consult the UPDATING file for notices concerning this. + +NetBSD August 7, 2014 NetBSD