====== Rebuilding the System ======
$ su
# cd /usr/src
# make build
will create the necessary directories, proceed to install the new includes, create the necessary //.depend// files then build and install the new libraries; and then, create the necessary //.depend// files then build and install the commands and the system (servers, drivers, and kernel), and finally install it as a new image ready for reboot.
''make build'' does nothing with configuration (///etc//) files. Sometimes, it might be necessary to get new or updated ///etc// files. There is no automated procedure for that, though. Compare files in //src/etc// and ///etc//, and see if any updates have happened. Especially, an outdated ///etc/system.conf// (or ///etc/drivers.conf//) file can cause all sorts of problems.
In some instances, some necessary commands will have to be updated before, in order to make the new compiling work. Therefore, if ''make build'' fails unexpectedly, revise the ''docs/UPDATING'' document for instructions along the lines of running ''make -C usr.bin/foobar && make -C usr.bin/foobar install''. Then, ''make build'' again.
===== Rebuilding the Kernel Only =====
In general, you should follow the process in "Rebuilding World".
$ su
# cd /usr/src/releasetools # this directory contains tools that make creating and installing the kernel easier
# make hdboot # this installs the kernel to your hard disk
==== Other Build Targets ====
Type
$ cd /usr/src/releasetools
$ make
to see the various options available.
===== BSD Make Documentation =====
* http://netbsd.gw.com/cgi-bin/man-cgi?make++NetBSD-current
* http://www.opengroup.org/onlinepubs/009695399/utilities/make.html
Useful switches:
* **bmake -d m** (Debug Output: The making of each target: what target is being examined; when it was last modified; whether it is out-of-date; etc)
* **bmake -d s** (Debug Output: The application of suffix-transformation rules.)
* **bmake -n** (Display commands that would be executed, but don't actually run them.)