Command explanations make -e: The -e paramater tells make that environment variables take precedence over variables defined in the Makefile file(s). This is needed in order to successfully link binutils statically. LDFLAGS=-all-static: Setting the variable LDFLAGS to the value -all-static causes binutils to be linked statically. tooldir=$LFS/usr: Normally the tooldir (the directory where the executables from binutils end up in) is set to $(exec_prefix)/$(target_alias) which expands into, for example, /usr/i686-pc-linux-gnu. Since we only build for our own system we don't need this target specific directory in $LFS/usr. You would use that setup if you use your system to cross-compile (for example you would compile a package on your Intel machine that generates code that can be executed on Apple PowerPC machines).