STATIC (<- LFS <- LINUX <- HOME)

Install statically linked software

bash

$ cd $LFS/var/src/bash
$ tar xzvf bash-2.05.tar.gz
$ cd bash-2.05
$ ./configure --enable-static-link --prefix=$LFS/usr \
    --bindir=$LFS/bin --enable-usg-echo-default --with-curses
$ make
$ su -
# cd $LFS/var/src/bash/bash-2.05
# make install
# cd $LFS/bin
# ln -s bash sh
# exit

binutils

$ cd $LFS/var/src/binutils
$ tar xzvf binutils-2.11.tar.gz
$ cd binutils-2.11
$ ./configure --prefix=$LFS/usr --disable-nls
$ make -e LDFLAGS=-all-static tooldir=$LFS/usr
$ su -
# cd $LFS/var/src/binutils/binutils-2.11
# make -e tooldir=$LFS/usr install
# exit

bzip2

$ cd $LFS/var/src/bzip2
$ tar xzvf bzip2-1.0.1.tar.gz
$ cd bzip2-1.0.1
$ sed \
   s/"\$(CC) \$(CFLAGS) -o"/"\$(CC) \$(CFLAGS) \$(LDFLAGS) -o"/ \
   Makefile | make -f - LDFLAGS=-static
$ su -
# cd $LFS/var/src/bzip2/bzip2-1.0.1
# make PREFIX=$LFS/usr install
# cd $LFS/usr/bin
# mv -i bzcat bunzip2 bzip2 bzip2recover $LFS/bin
# exit

Diffutils

$ cd $LFS/var/src/diffutils
$ tar xzvf diffutils-2.7.tar.gz
$ cd diffutils-2.7
$ CPPFLAGS=-Dre_max_failures=re_max_failures2 \
        ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/diffutils/diffutils-2.7
# make install
# exit

Fileutils

It seems fileutils-4.1 is out. Verify the build instructions.

$ cd $LFS/var/src/fileutils
$ tar xzvf fileutils-4.0.tar.gz
$ cd fileutils-4.0
$ bzcat ../fileutils-4.0.patch.bz2 | patch -Np1
$ ./configure --disable-nls --prefix=$LFS/usr --libexecdir=$LFS/bin --bindir=$LFS/bin
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/fileutils/fileutils-4.0
# make install
# cd $LFS/usr/bin
# ln -s ../../bin/install install
# exit

gcc

$ cd $LFS/var/src/gcc
$ tar xzvf gcc-2.95.3.tar.gz
$ mkdir gcc-build
$ cd gcc-build
$ ../gcc-2.95.3/configure --prefix=/usr \
   --with-gxx-include-dir=/usr/include/g++ \
   --enable-languages=c,c++ --disable-nls
$ make -e LDFLAGS=-static bootstrap
$ su -
# cd $LFS/var/src/gcc/gcc-build
# make prefix=$LFS/usr local_prefix=$LFS/usr/local \
   gxx_include_dir=$LFS/usr/include/g++ install
# cd $LFS/lib
# ln -s ../usr/bin/cpp
# cd $LFS/usr/lib
# ln -s ../bin/cpp
# cd $LFS/usr/bin
# ln -s gcc cc
# exit

grep

$ cd $LFS/var/src/grep
$ tar xzvf grep-2.4.2.tar.gz
$ cd grep-2.4.2
$ CPPFLAGS=-Dre_max_failures=re_max_failures2 \
 ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/grep/grep-2.4.2
# make install
# exit

gzip

$ cd $LFS/var/src/gzip
$ tar xzvf gzip-1.2.4a.tar.gz
$ cd gzip-1.2.4a
$ bzcat ../gzip-1.2.4a.patch.bz2 | patch -Np1
$ ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/gzip/gzip-1.2.4a
# make install
# cp -i $LFS/usr/bin/gunzip $LFS/usr/bin/gzip $LFS/bin
# rm $LFS/usr/bin/gunzip $LFS/usr/bin/gzip
# exit

linux kernel

$ cd $LFS/var/src/linux
$ bzcat linux-2.4.4.tar.bz2 | tar xvf -
$ mv -i linux linux-2.4.4
$ cd linux-2.4.4
$ make mrproper
$ yes "" | make config
$ make dep
$ su -
# cd $LFS/var/src/linux/linux-2.4.4
# mkdir -p $LFS/usr/src/linux/
# cp -ai include $LFS/usr/src/linux/
# cp -i .config $LFS/usr/src/linux/config-2.4.4
# cd $LFS/usr/include
# ln -s ../src/linux/include/linux linux
# ln -s ../src/linux/include/asm asm
# exit

make

$ cd $LFS/var/src/make
$ tar xzvf make-3.79.1.tar.gz
$ cd make-3.79.1
$ ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/make/make-3.79.1
# make install
# exit

mawk

$ cd $LFS/var/src/mawk
$ tar xzvf mawk1.3.3.tar.gz
$ cd mawk-1.3.3
$ ./configure
$ make CFLAGS=-static
$ su -
# cd $LFS/var/src/mawk/mawk-1.3.3
# make BINDIR=$LFS/usr/bin MANDIR=$LFS/usr/share/man/man1 install
# exit

sed

$ cd $LFS/var/src/sed
$ tar xzvf sed-3.02.tar.gz
$ cd sed-3.02
$ CPPFLAGS=-Dre_max_failures=re_max_failures2 \
 ./configure --prefix=$LFS/usr --disable-nls --bindir=$LFS/bin
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/sed/sed-3.02
# make install
# exit

sh-utils

Note: newer LFS book patches sh-utils

$ cd $LFS/var/src/sh-utils
$ tar xzvf sh-utils-2.0.tar.gz
$ cd sh-utils-2.0
$ ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/sh-utils/sh-utils-2.0
# make install
# cd $LFS/usr/bin
# mv -i date echo false pwd stty $LFS/bin
# mv -i su true uname hostname $LFS/bin
# exit

tar

Note: newer LFS version add --bindir=$LFS/bin to configure and tar is NOT moved from $LFS/usr/bin to $LFS/bin.

$ cd $LFS/var/src/tar
$ tar xzvf tar-1.13.tar.gz
$ cd tar-1.13/src
$ bzcat ../../gnutarpatch.txt.bz2 | patch
$ cd ..
$ ./configure --prefix=$LFS/usr --disable-nls --libexecdir=$LFS/usr/bin
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/tar/tar-1.13
# make prefix=$LFS/usr install
# mv -i $LFS/usr/bin/tar $LFS/bin
# exit

texinfo

$ cd $LFS/var/src/texinfo
$ tar xzvf texinfo-4.0.tar.gz
$ cd texinfo-4.0
$ ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/texinfo/texinfo-4.0
# make install
# exit

textutils

$ cd $LFS/var/src/textutils
$ tar xzvf textutils-2.0.tar.gz
$ cd textutils-2.0
$ ./configure --prefix=$LFS/usr --disable-nls
$ make LDFLAGS=-static
$ su -
# cd $LFS/var/src/textutils/textutils-2.0
# make install
# mv -i $LFS/usr/bin/cat $LFS/bin
# exit