Now that the latest FreeBSD patches have been installed, it's time to recompile the entire operating system. Note that this would be necessary even if there weren't any patches: by default, FreeBSD has all the essential system binaries (mostly those in /bin and /sbin) linked statically so that the system can boot even if /usr (which holds important libraries like libc) is not available (which is often the case when it's on a separate file system). This takes up huge amounts of space though, so we obviously want all the binaries to be linked dynamically for our m0n0wall image.
Create /etc/make.conf
and put the following
lines in it:
NOSHARED=no
IPFW2=TRUE
The last line ensures that IPFW2 is built (instead of the older IPFW1 version, which is the default) when we compile the kernel/modules/ipfw executable later.