[CLUE-Cert] LFS build program

Dennis J Perkins djperkins at americanisp.net
Sat Apr 19 14:00:43 MDT 2003

I've done some more thinking about how to do this.  The idea of using 
keyword/parameter pairs is good but insufficient in shell scripts.  I 
think it will work fine using XML.  But I think it is premature to 
consider XML at this time.

The reason the first approach won't work is that some packages need 
commands like sed, cp, ln, etc. applied.  In a few cases, a series of 
commands are needed.  The result starts looking like a shell script 
again.  Rock Linux uses shell scripts to build itself, so I looked at it 
to see what it does.  It also uses shell scripts, called conf files, 
that set variables.  Some variables contain functions.

Here is a quick idea on how binutils might be built.

# binutils.conf


A quick and dirty (and untested!) build function example in the build 

build() { # $1=package.conf

    source $1

    for patch in $patches
        patch $patchflags $patch

    if [ $builddir = "y" ]; then
        test -d $bdir  && rm -rf $bdir
        mkdir $bdir
        cd $bdir
        cd $srcdir

    # Run preconfigure function in conf file if it exists.
    eval $preconfigure

    if [ -z $bdir ]; then
        ./configure $confoptions --prefix=$prefix
        ../${srcdir}/configure $confoptions --prefix=$prefix

    # Run anything that needs to be run prior to running make.

    make $makeflags $makeoptions

    make check

    # Run anything that needs to be done after running make.
    eval $postmake

    make install $makeinstalloptions

Some metainformation about binutils might be useful

#  binutils.info
PACKAGE binutils
VERSION   2.13
NEEDS        gcc-core-3.2.1  glibc-2.3.1
URL             ftp.gnu.org/pub/
PATCHES    binutils-2.13.patch

More information about the clue-cert mailing list