I use the ISC DHCP server to manage IP allocations at home, and to provide the pxegrub handoff location to new systems I’m building. Since my DHCP server has become rather important, I wanted to install it to a file system that was mirrored. To figure out how to do this, I read through the ISC DHCP Makefiles (BIND 4.X uses autoconf, which allows you to set the installation destination with the –prefix option). This led me to the Makefile.conf file, which contains settings that override the global defaults. These overrides include the bin, man and lib directories, and the directory to look for the configuration file. After a minute or two with vi, I added the desired installation destination and proceeded to compile the server. This worked like a charm, and the settings I used are listed below for reference:
$ more Makefile.conf
## Defaults... SCRIPT = none USERBINDIR = /bits/software/apps/dhcp-3.1.2/bin BINDIR = /bits/software/apps/dhcp-3.1.2/sbin CLIENTBINDIR=/bits/software/apps/dhcp-3.1.2/sbin ADMMANDIR = /bits/software/apps/dhcp-3.1.2/man/cat8 ADMMANEXT = .0 FFMANDIR = /bits/software/apps/dhcp-3.1.0/man/cat5 FFMANEXT = .0 LIBMANDIR = /bits/software/apps/dhcp-3.1.0/man/cat3 LIBMANEXT = .0 USRMANDIR = /bits/software/apps/dhcp-3.1.0/man/cat1
Now you may be asking me why /bits/software/dhcp-3.1.0? Well, bits is a mirrored ZFS pool, and the software in /bits/software/apps is linked into [bin|man|sbin|lib] directories with the incredibly awesome stow package.