Remember, as I stated earlier, we want to build everything as static binaries. This usually requires that we make some changes to the build process or invoke special switches for the config process.

(Note : Due to compilation errors, you must download “dhcp-4.1.1b1.tar.gz” or above. As you will see, I started experiencing problems that are beyond my abilities. Switching to “dhcp-4.1.1b1” seems to have solved those problems for now.)

Extract your dhcp source archive in your /scratch directory. From /scratch execute “tar xvzf /scratch/dhcp-xxxxx.tar.gz” This assumes you have placed the archive in /scratch. If not, simply point to the correct location and extract the archive while in /scratch.

In the case of DHCP, we have to execute the following switches during the configure process.

Change to your DHCP src directory. In my case. “cd /scratch/dhcp-4.1.0/“

Then execute the following command..
CFLAGS=”-static” ./configure

Once the configure process is complete, and provided there were no errors.
Execute the following commands.

make clean

Then

make

I experienced errors during the build process. Click the word errors to learn what my work around(s) was/were.
( As stated above, in the end, the work around was to advance to a higher version of dhcp )

Again, provided there were no errors during the build process you should be left with a file in /scratch/dhcp-4.1.1b1/client named “dhclient”.

Verify that it was built statically by executing the following command.
file /scratch/dhcp-4.1.1b1/bash ( Fully path it to make sure it doesn't pick up on anything else. )

Your output should look like this.
[root@demo dhcp-4.1.1b1]# file /scratch/dhcp-4.1.1b1/client/dhclient
/scratch/dhcp-4.1.1b1/client/dhclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, statically linked, not stripped

If it looks like the example below, you must figure out what has gone wrong. It is more trouble than it's worth. ( IMH0 ) To build a bunch of dynamically linked packages that you have to find all the libs for.

/scratch/dhcp-4.1.1b1/client/dhclient: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped ←- THIS IS BAD!