]> git.ipfire.org Git - people/amarx/ipfire-3.x.git/blobdiff - tools/make-include
Merge branch 'ssp'
[people/amarx/ipfire-3.x.git] / tools / make-include
index 9ed5c409f6c977b5201ac74d600a47cc8bfd57ce..bb5f5b2b302ba0489e08ca80fe820d573f92a320 100644 (file)
@@ -24,9 +24,9 @@
 #
 ###############################################################################
 
-CONFIG_ROOT=/etc/$SNAME                                        # Configuration rootdir
-NICE=10                                                                                                        # Nice level
-TARGET=i686                                                                                    # Default target
+CONFIG_ROOT=/etc/$SNAME                # Configuration rootdir
+NICE=10                                # Nice level
+TARGET=i686                    # Default target
 KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }' | tr -d '\n'; grep --max-count=1 FULLVER lfs/linux | awk '{ print $3 }' | cut -c 7-| tail -1`
 MACHINE_REAL=`uname -m`
 GIT_TAG=$(git tag | tail -1)
@@ -37,7 +37,7 @@ PIE=1
 PAX=1
 
 # Parallelism flag
-PARALLELISM=$(( $(grep processor < /proc/cpuinfo | wc -l) * 2 + 1 ))
+PARALLELISMFLAGS=-j$(( $(grep processor < /proc/cpuinfo | wc -l) * 2 + 1 ))
 DISTCC_HOSTS=localhost
 
 PWD=`pwd`
@@ -94,13 +94,17 @@ if [ 'i686' = $TARGET -o 'i586' = $TARGET \
        IFS_TARGET="${MACHINE}-pc-linux-gnu"
        CFLAGS="-march=${MACHINE} -O2 -pipe -fomit-frame-pointer"
        CXXFLAGS="${CFLAGS}"
+       UCLIBC_TARGET=${MACHINE}-pc-linux-uclibc
+       UCLIBC_CFLAGS="-march=${MACHINE} -Os -pipe"
 elif [ 'via-c7' = $TARGET ]; then
        MACHINE=i686
        MACHINE_REAL=${MACHINE_REAL}
        LINKER=/lib/ld-linux.so.2
        IFS_TARGET="${MACHINE}-pc-linux-gnu"
-       CFLAGS="-march=${MACHINE} -mmmx -msse -msse2 -msse3 -O2 -pipe -fomit-frame-pointer"
+       CFLAGS="-march=${MACHINE} -mmmx -msse -msse2 -msse3 -O2 -pipe"
        CXXFLAGS="${CFLAGS}"
+       UCLIBC_TARGET=${MACHINE}-pc-linux-uclibc
+       UCLIBC_CFLAGS="-march=i386 -Os -pipe"
 elif [ 'via-c3' = $TARGET ]; then
        MACHINE=i586
        MACHINE_REAL=${MACHINE_REAL}
@@ -108,6 +112,8 @@ elif [ 'via-c3' = $TARGET ]; then
        IFS_TARGET="${MACHINE}-pc-linux-gnu"
        CFLAGS="-march=c3 -m3dnow -O2 -pipe -fomit-frame-pointer"
        CXXFLAGS="${CFLAGS}"
+       UCLIBC_TARGET=${MACHINE}-pc-linux-uclibc
+       UCLIBC_CFLAGS="-march=${MACHINE} -Os -pipe"
 else
        beautify message FAIL
        echo "Not a valid target arch (i686|i586|i486|i386|via-c7|via-c3) - $TARGET"
@@ -132,6 +138,12 @@ IMAGES_DIR=/images
 # include machine in TOOLCHAINNAME
 TOOLCHAINNAME=$SNAME-$TOOLCHAINVERSION-toolchain-t${TARGET}-m${MACHINE}
 
+# The place where all uclibc files are stored in
+UCLIBC_DIR=/usr/${UCLIBC_TARGET}
+UCLIBC_CC_CORE_STATIC_DIR=${UCLIBC_DIR}/gcc-core-static
+
+#UCLIBC_SYSROOT_DIR=${UCLIBC_DIR}/${UCLIBC_TARGET}/sys-root
+UCLIBC_SYSROOT_DIR=${INSTALLER_DIR}
 
 ###############################################################################
 #
@@ -372,7 +384,7 @@ entershell() {
                CCACHE_PREFIX=${CCACHE_PREFIX} \
                CCACHE_HASHDIR=${CCACHE_HASHDIR} \
                DISTCC_DIR=/usr/src/distcc \
-               PARALLELISM=$PARALLELISM \
+               PARALLELISMFLAGS=$PARALLELISMFLAGS \
                LINKER=$LINKER \
                TOOLS_DIR=$TOOLS_DIR \
                INSTALLER_DIR=$INSTALLER_DIR \
@@ -400,14 +412,14 @@ entershell() {
 ################################################################################
 # Common checking before entering the chroot and compilling                    #
 # Return:0 caller can continue                                                 #
-#      :1 skip (nothing to do)                                                      #
-#      or fail if no script file found                                              #
+#      :1 skip (nothing to do)                                                #
+#      or fail if no script file found                                        #
 ################################################################################
 lfsmakecommoncheck()
 {
        # Script present?
        if [ ! -f $BASEDIR/lfs/$1 ]; then
-               exiterror "No such file or directory: $BASEDIR/$1"
+               exiterror "No such file or directory: $BASEDIR/lfs/$1"
        fi
 
        local PKG_VER=`get_pkg_ver $BASEDIR/lfs/$1`
@@ -456,7 +468,8 @@ toolchain_make() {
                IFS_TARGET="$IFS_TARGET" \
                LFS_BASEDIR=$BASEDIR \
                LFS=$LFS \
-               PARALLELISM=$PARALLELISM \
+               INSTALLER_DIR=$INSTALLER_DIR \
+               PARALLELISMFLAGS=$PARALLELISMFLAGS \
                KVER=$KVER \
                STAGE=$STAGE \
                STAGE_ORDER=$STAGE_ORDER \
@@ -479,7 +492,7 @@ toolchain_make() {
 } # End of toolchain_make()
 
 ################################################################################
-# This is the function that builds every package in stage "base"                    #
+# This is the function that builds every package in stage "base" and "ipfire"  #
 ################################################################################
 ipfire_make() {
        lfsmakecommoncheck $*
@@ -495,6 +508,15 @@ ipfire_make() {
        if grep -qEi 'KERNEL_MOD = yes' $1 ; then
                unset EXTRA_MAKE
        fi
+       
+       local MYCFLAGS MYCXXFLAGS
+       if [ "${STAGE}" = "installer" ]; then
+               MYCFLAGS=${UCLIBC_CFLAGS}
+               MYCXXFLAGS=${UCLIBC_CFLAGS}
+       else
+               MYCFLAGS=${CFLAGS}
+               MYCXXFLAGS=${CXXFLAGS}
+       fi
 
        local PKG_TIME_START=`date +%s`
        chroot $LFS $TOOLS_DIR/bin/env -i \
@@ -511,16 +533,20 @@ ipfire_make() {
                CCACHE_PREFIX=${CCACHE_PREFIX} \
                CCACHE_HASHDIR=${CCACHE_HASHDIR} \
                DISTCC_DIR=/usr/src/distcc \
-               PARALLELISM=$PARALLELISM \
+               PARALLELISMFLAGS=$PARALLELISMFLAGS \
                LINKER=$LINKER \
                TOOLS_DIR=$TOOLS_DIR \
                INSTALLER_DIR=$INSTALLER_DIR \
                CDROM_DIR=$CDROM_DIR \
                IMAGES_DIR=$IMAGES_DIR \
+               UCLIBC_DIR=$UCLIBC_DIR \
+               UCLIBC_SYSROOT_DIR=$UCLIBC_SYSROOT_DIR \
+               UCLIBC_TARGET=$UCLIBC_TARGET \
+               UCLIBC_CC_CORE_STATIC_DIR=${UCLIBC_CC_CORE_STATIC_DIR} \
                MACHINE="$MACHINE" \
                MACHINE_REAL="$MACHINE_REAL" \
-               CFLAGS="$CFLAGS" \
-               CXXFLAGS="$CXXFLAGS" \
+               CFLAGS="$MYCFLAGS" \
+               CXXFLAGS="$MYCXXFLAGS" \
                IFS_HOST="$IFS_HOST" \
                IFS_TARGET="$IFS_TARGET" \
                KVER=$KVER \
@@ -685,8 +711,9 @@ prepareenv() {
        unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
 
        # Make some extra directories
-       mkdir -p $BASEDIR/build_${MACHINE}/{$TOOLS_DIR,$INSTALLER_DIR,cdrom,images} 2>/dev/null
+       mkdir -p $BASEDIR/build_${MACHINE}/{$TOOLS_DIR,cdrom} 2>/dev/null
        mkdir -p $BASEDIR/{cache,ccache,distcc} 2>/dev/null
+       mkdir -p $BASEDIR/cache/toolchains 2>/dev/null
        mkdir -p $LFS/{$TOOLS_DIR/usr,usr/src} 2>/dev/null
        mkdir -p $LFS/dev/pts
        mkdir -p $LFS/proc
@@ -698,20 +725,18 @@ prepareenv() {
        mknod -m 666 $BASEDIR/build/dev/null c 1 3 2>/dev/null
 
        # Make all sources and proc available under lfs build
-       mount --bind /dev                                                                                                                                                                       $LFS/dev
-  mount --bind /proc                                                                                                                                                           $LFS/proc
-       mount --bind $BASEDIR/cache                                                                                                                             $LFS/usr/src/cache
-       mount --bind $BASEDIR/ccache                                                                                                                    $LFS/usr/src/ccache
-       mount --bind $BASEDIR/distcc                                                                                                                    $LFS/usr/src/distcc
-       mount --bind $BASEDIR/config                                                                                                                    $LFS/usr/src/config
-       mount --bind $BASEDIR/doc                                                                                                                                       $LFS/usr/src/doc
-       mount --bind $BASEDIR/lfs                                                                                                                                       $LFS/usr/src/lfs
-       mount --bind $BASEDIR/log_${MACHINE}                                                                                    $LFS/usr/src/log_${MACHINE}
-       mount --bind $BASEDIR/src                                                                                                                                       $LFS/usr/src/src
-       mount --bind $BASEDIR/build_${MACHINE}/$TOOLS_DIR                                       $LFS/$TOOLS_DIR
-       mount --bind $BASEDIR/build_${MACHINE}/$INSTALLER_DIR                   $LFS/$INSTALLER_DIR
-       mount --bind $BASEDIR/build_${MACHINE}/$CDROM_DIR                                       $LFS/$CDROM_DIR
-       mount --bind $BASEDIR/build_${MACHINE}/$IMAGES_DIR                              $LFS/$IMAGES_DIR
+       mount --bind /dev                                       $LFS/dev
+       mount --bind /proc                                      $LFS/proc
+       mount --bind $BASEDIR/cache                             $LFS/usr/src/cache
+       mount --bind $BASEDIR/ccache                            $LFS/usr/src/ccache
+       mount --bind $BASEDIR/distcc                            $LFS/usr/src/distcc
+       mount --bind $BASEDIR/config                            $LFS/usr/src/config
+       mount --bind $BASEDIR/doc                               $LFS/usr/src/doc
+       mount --bind $BASEDIR/lfs                               $LFS/usr/src/lfs
+       mount --bind $BASEDIR/log_${MACHINE}                    $LFS/usr/src/log_${MACHINE}
+       mount --bind $BASEDIR/src                               $LFS/usr/src/src
+       mount --bind $BASEDIR/build_${MACHINE}/$TOOLS_DIR       $LFS/$TOOLS_DIR
+       mount --bind $BASEDIR/build_${MACHINE}/$CDROM_DIR       $LFS/$CDROM_DIR
 
        # Run LFS static binary creation scripts one by one
        export CCACHE_DIR=$BASEDIR/ccache
@@ -755,12 +780,8 @@ build() {
                        toolchain_build
                else
                        echo "Restore from $PACKAGE"
-                       if [ `md5sum $BASEDIR/cache/toolchains/$PACKAGE | awk '{print $1}'` == `cat $BASEDIR/cache/toolchains/$TOOLCHAINNAME.md5 | awk '{print $1}'` ]; then
-                               cd $BASEDIR && tar jxf $BASEDIR/cache/toolchains/$PACKAGE
-                               prepareenv
-                       else
-                               exiterror "$TOOLCHAINNAME md5 did not match, check downloaded package"
-                       fi
+                       cd $BASEDIR && tar jxf $BASEDIR/cache/toolchains/$PACKAGE
+                       prepareenv
                fi
        fi