User Tools

Site Tools


developersguide:rebuildingsystem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
developersguide:rebuildingsystem [2015/08/08 22:13]
jeanbaptisteboric add note to point to cross-compiling if necessary
developersguide:rebuildingsystem [2017/05/19 15:20] (current)
jeanbaptisteboric smp is broken, removing instructions
Line 1: Line 1:
 +====== Rebuilding the System ======
 +
 +<div round info>
 +**Note:**
 +
 +This is for building MINIX from within MINIX. To cross-compile MINIX from another Unix-like system, [[.:​crosscompiling|check this page]] instead.
 +</​div>​
 +
 +===== Rebuilding World =====
 +The easiest way is to execute ''​make build''​. It will rebuild and install the operating system, as well as all the utilities.
 +
 +Supposing you [[.:​trackingcurrent|have the MINIX source code]] under the ''/​usr/​src''​ directory, these commands
 +
 +<​code>​
 +$ su
 +# cd /usr/src
 +# make build
 +</​code>​
 +
 +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"​.
 +
 +<​code>​
 +$ 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
 +</​code>​
 +
 +==== Other Build Targets ====
 +Type
 +
 +<​code>​
 +$ cd /​usr/​src/​releasetools
 +$ make
 +</​code>​
 +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.)