6.29.1. Environment Settings
This package requires compiler variables to be set for the target in the environment.
export CC="${CLFS_TARGET}-gcc"
export CXX="${CLFS_TARGET}-g++"
export AR="${CLFS_TARGET}-ar"
export AS="${CLFS_TARGET}-as"
export RANLIB="${CLFS_TARGET}-ranlib"
export LD="${CLFS_TARGET}-ld"
export STRIP="${CLFS_TARGET}-strip"6.29.2. Installation of Bzip2
Bzip2's default Makefile target
automatically runs the testsuite as well. Disable the tests since they
won't work on a multi-architecture build:
cp Makefile{,.orig}
sed -e "/^all:/s/ test//" Makefile.orig > MakefileBy default Bzip2 creates some symlinks that use absolute
pathnames. The following sed will cause them to be created with relative
paths instead:
sed -i -e 's:ln -s -f $(PREFIX)/bin/:ln -s :' Makefile
The Bzip2 package does not contain a configure
script. Compile it with:
make -f Makefile-libbz2_so CC="${CC}" AR="${AR}" RANLIB="${RANLIB}"
make cleanThe -f flag will cause Bzip2 to be built
using a different Makefile file, in this case the
Makefile-libbz2_so file, which creates a dynamic
libbz2.so library and links the
Bzip2 utilities against it.
Recompile the package using a non-shared library.
make CC="${CC}" AR="${AR}" RANLIB="${RANLIB}"Install the programs:
make PREFIX=${CLFS}/usr installInstall the shared bzip2 binary into the
${CLFS}/bin directory, make
some necessary symbolic links, and clean up:
cp -v bzip2-shared ${CLFS}/bin/bzip2
cp -av libbz2.so* ${CLFS}/lib
ln -sfv ../../lib/libbz2.so.1.0 ${CLFS}/usr/lib/libbz2.so
rm -v ${CLFS}/usr/bin/{bunzip2,bzcat,bzip2}
ln -sfv bzip2 ${CLFS}/bin/bunzip2
ln -sfv bzip2 ${CLFS}/bin/bzcat