###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2010 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2011 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
get_pkg_ver()
{
- PKG_VER=`grep ^VER $1 | awk '{print $3}'`
+ PKG_VER=`grep -E "^VER |^VER=|^VER " $1 | awk '{print $3}'`
if [ -z $PKG_VER ]; then
PKG_VER=`grep "Exp " $1 | awk '{print $4}'`
fi
-
+ if [ -z $PKG_VER ]; then
+ PKG_VER="?"
+ fi
if [ ${#PKG_VER} -gt $VER_WIDTH ]; then
# If a package version number is greater than $VER_WIDTH, we keep the first 4 characters
# and replace enough characters to fit the resulting string on the screen. We'll replace
if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then
echo "`date -u '+%b %e %T'`: Machine is iX86 (or equivalent)" >> $LOGFILE
MACHINE=i586
+ CROSSTARGET=${MACHINE}-cross-linux-gnu
BUILDTARGET=i586-pc-linux-gnu
CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
-elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE ]; then
+elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then
echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE
MACHINE=armv5tel
MACHINE_TYPE=arm
+ CROSSTARGET=${MACHINE}-cross-linux-gnueabi
BUILDTARGET=${MACHINE}-unknown-linux-gnueabi
- CFLAGS="-O2 -march=armv5te -fomit-frame-pointer -pipe"
+ CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe"
CXXFLAGS="$CFLAGS"
C2FLAGS="$CFLAGS"
CXX2FLAGS="$CXXFLAGS"
else
- echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE" >> $LOGFILE
+ echo "`date -u '+%b %e %T'`: Can't determine your architecture - $MACHINE"
exit 1
fi
exit 1
}
+fake_environ() {
+ [ -e "${BASEDIR}/build/tools/lib/libpakfire_preload.so" ] || return
+
+ local env="LD_PRELOAD=/tools/lib/libpakfire_preload.so"
+
+ # Fake kernel version, because some of the packages do not compile
+ # with kernel 3.0 and later.
+ env="${env} UTS_RELEASE=${KVER}"
+
+ # Fake machine version.
+ env="${env} UTS_MACHINE=${MACHINE}"
+
+ echo "${env}"
+}
+
entershell() {
if [ ! -e $BASEDIR/build/usr/src/lfs/ ]; then
exiterror "No such file or directory: $BASEDIR/build/usr/src/lfs/"
fi
+
echo "Entering to a shell inside LFS chroot, go out with exit"
- $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+ chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
+ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \
CCACHE_DIR=/usr/src/ccache \
CCACHE_COMPRESS=1 \
- CCACHE_HASHDIR=1 \
+ CCACHE_COMPILERCHECK="none" \
KVER=$KVER \
BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
KGCC="ccache /usr/bin/gcc" \
+ $(fake_environ) \
/tools/bin/bash
if [ $? -ne 0 ]; then
beautify message FAIL
local PKG_TIME_START=`date +%s`
cd $BASEDIR/lfs && make -f $* BUILDTARGET=$BUILDTARGET \
+ CROSSTARGET="${CROSSTARGET}" \
MACHINE=$MACHINE \
MACHINE_TYPE=$MACHINE_TYPE \
LFS_BASEDIR=$BASEDIR \
[ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s`
- $linux32 chroot $LFS /tools/bin/env -i HOME=/root \
+ chroot $LFS /tools/bin/env -i HOME=/root \
TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
VERSION=$VERSION \
CONFIG_ROOT=$CONFIG_ROOT \
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
- CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+ CCACHE_COMPILERCHECK="none" \
KVER=$KVER MAKETUNING=$MAKETUNING \
- BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+ BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
+ MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
+ $(fake_environ) \
/tools/bin/bash -x -c "cd /usr/src/lfs && \
make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
local COMPILE_SUCCESS=$?
[ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s`
- $linux32 chroot $LFS /tools/bin/env -i HOME=/root \
+ chroot $LFS /tools/bin/env -i HOME=/root \
TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
VERSION=$VERSION \
CORE=$CORE \
CONFIG_ROOT=$CONFIG_ROOT \
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
- CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+ CCACHE_COMPILERCHECK="none" \
KVER=$KVER MAKETUNING=$MAKETUNING \
- BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+ BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
+ MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
+ $(fake_environ) \
/bin/bash -x -c "cd /usr/src/lfs && \
make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
local PKG_TIME_START=`date +%s`
chroot $LFS /tools/bin/env -i HOME=/root \
TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
VERSION=$VERSION \
CONFIG_ROOT=$CONFIG_ROOT \
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
- CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+ CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+ CCACHE_COMPILERCHECK="none" \
KVER=$KVER \
- BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+ BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
+ MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
+ $(fake_environ) \
/bin/bash -x -c "cd /usr/src/lfs && \
make -f $1 LFS_BASEDIR=/usr/src dist" >>$LOGFILE 2>&1
[ $? == 1 ] && return 0
local PKG_TIME_START=`date +%s`
- $linux32 chroot $LFS /tools/bin/env -i HOME=/root \
+ chroot $LFS /tools/bin/env -i HOME=/root \
TERM=$TERM PS1='\u:\w\$ ' \
- PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+ PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
VERSION=$VERSION \
CONFIG_ROOT=$CONFIG_ROOT \
- LFS_PASS="install" \
NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
CFLAGS="-Os" CXXFLAGS="-Os" \
CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
KVER=$KVER \
- BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+ BUILDTARGET="$BUILDTARGET" \
+ CROSSTARGET="${CROSSTARGET}" \
+ MACHINE="$MACHINE" \
MACHINE_TYPE="$MACHINE_TYPE" \
- /bin/bash -x -c "cd /usr/src/lfs && \
- make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+ LD_LIBRARY_PATH=/tools/lib \
+ /tools/bin/bash -x -c "cd /usr/src/lfs && \
+ /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
local COMPILE_SUCCESS=$?
local PKG_TIME_END=`date +%s`
$BASEDIR/tools/sort_strings.pl es
$BASEDIR/tools/sort_strings.pl pl
$BASEDIR/tools/sort_strings.pl ru
+ $BASEDIR/tools/sort_strings.pl nl
+ $BASEDIR/tools/sort_strings.pl tr
$BASEDIR/tools/check_strings.pl en > $BASEDIR/doc/language_issues.en
$BASEDIR/tools/check_strings.pl de > $BASEDIR/doc/language_issues.de
$BASEDIR/tools/check_strings.pl fr > $BASEDIR/doc/language_issues.fr
$BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.es
$BASEDIR/tools/check_strings.pl es > $BASEDIR/doc/language_issues.pl
$BASEDIR/tools/check_strings.pl ru > $BASEDIR/doc/language_issues.ru
+ $BASEDIR/tools/check_strings.pl nl > $BASEDIR/doc/language_issues.nl
+ $BASEDIR/tools/check_strings.pl tr > $BASEDIR/doc/language_issues.tr
$BASEDIR/tools/check_langs.sh > $BASEDIR/doc/language_missings
beautify message DONE
}