Command explanations mkdir ../binutils-build: The installation instructions for Binutils recommend creating a seperate build directory instead of compiling the package inside the source tree. So, we create a binutils-build directory and work from there. --disable-nls: This option disabled internationalization (also known as i18n). We don't need this for our static programs and nls often causes problems when you're linking 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. That setup would be used if the system was used to cross-compile (for example compiling a package on the Intel machine that generates code that can be executed on Apple PowerPC machines).