X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=make.sh;h=2222e773adaadf227263d95ebe73237ca28136ed;hb=926559088c0736da14389ca5224bd1f2e4089250;hp=1b6810f8a04915b5a3a1a0082c74f6ba292a48ef;hpb=d3f1f999278eedff0e1fa3ac7303ee711e93f0e1;p=ipfire-2.x.git diff --git a/make.sh b/make.sh index 1b6810f8a0..9ab16e57aa 100755 --- a/make.sh +++ b/make.sh @@ -17,16 +17,16 @@ # along with IPFire; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # # -# Copyright (C) 2007 IPFire-Team . # +# Copyright (C) 2007-2011 IPFire-Team . # # # ############################################################################ # NAME="IPFire" # Software name SNAME="ipfire" # Short name -VERSION="2.7" # Version number -CORE="41" # Core Level (Filename) -PAKFIRE_CORE="40" # Core Level (PAKFIRE) +VERSION="2.9" # Version number +CORE="52" # Core Level (Filename) +PAKFIRE_CORE="51" # Core Level (PAKFIRE) GIT_BRANCH=`git status | head -n1 | cut -d" " -f4` # Git Branch SLOGAN="www.ipfire.org" # Software slogan CONFIG_ROOT=/var/ipfire # Configuration rootdir @@ -37,9 +37,16 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'` MACHINE=`uname -m` GIT_TAG=$(git tag | tail -1) # Git Tag GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit -TOOLCHAINVER=2 +TOOLCHAINVER=1 IPFVER="full" # Which versions should be compiled? (full|devel) +BUILDMACHINE=$MACHINE + if [ "$MACHINE" = "x86_64" ]; then + BUILDMACHINE="i686"; + linux32="linux32"; + fi + + # Debian specific settings if [ ! -e /etc/debian_version ]; then FULLPATH=`which $0` @@ -219,6 +226,7 @@ prepareenv() { # Run LFS static binary creation scripts one by one export CCACHE_DIR=$BASEDIR/ccache + export CCACHE_COMPRESS=1 export CCACHE_HASHDIR=1 # Remove pre-install list of installed files in case user erase some files before rebuild @@ -226,16 +234,28 @@ prepareenv() { } buildtoolchain() { + if [ "$(uname -m)" = "x86_64" ]; then + exiterror "Cannot build toolchain on x86_64. Please use the download." + fi + if [ "$(uname -r | grep ipfire)" ]; then + exiterror "Cannot build toolchain on ipfire. Please use the download." + fi + LOGFILE="$BASEDIR/log/_build.toolchain.log" export LOGFILE - ORG_PATH=$PATH NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}` export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1} - lfsmake1 ccache + ORG_PATH=$PATH + export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH + lfsmake1 ccache PASS=1 + lfsmake1 make PASS=1 lfsmake1 binutils PASS=1 lfsmake1 gcc PASS=1 - export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH - lfsmake1 linux-libc-header + if [ "${MACHINE}" = "arm" ]; then + lfsmake1 linux TOOLS=1 HEADERS=1 + else + lfsmake1 linux-libc-header + fi lfsmake1 glibc lfsmake1 cleanup-toolchain PASS=1 lfsmake1 tcl @@ -243,6 +263,7 @@ buildtoolchain() { lfsmake1 dejagnu lfsmake1 gcc PASS=2 lfsmake1 binutils PASS=2 + lfsmake1 ccache PASS=2 lfsmake1 ncurses lfsmake1 bash lfsmake1 bzip2 @@ -254,7 +275,7 @@ buildtoolchain() { lfsmake1 grep lfsmake1 gzip lfsmake1 m4 - lfsmake1 make + lfsmake1 make PASS=2 lfsmake1 patch lfsmake1 perl lfsmake1 sed @@ -269,7 +290,11 @@ buildbase() { LOGFILE="$BASEDIR/log/_build.base.log" export LOGFILE lfsmake2 stage2 - lfsmake2 linux-libc-header + if [ "${MACHINE}" = "arm" ]; then + lfsmake2 linux HEADERS=1 + else + lfsmake2 linux-libc-header + fi lfsmake2 man-pages lfsmake2 glibc lfsmake2 cleanup-toolchain PASS=3 @@ -311,7 +336,6 @@ buildbase() { lfsmake2 man lfsmake2 mktemp lfsmake2 module-init-tools - lfsmake2 mtd lfsmake2 net-tools lfsmake2 patch lfsmake2 psmisc @@ -324,7 +348,11 @@ buildbase() { lfsmake2 udev lfsmake2 util-linux lfsmake2 vim - lfsmake2 grub + + # ARM cannot use grub. + if [ "${MACHINE}" != "arm" ]; then + lfsmake2 grub + fi } buildipfire() { @@ -342,47 +370,80 @@ buildipfire() { ipfiremake which ipfiremake xz ipfiremake linux-firmware - ipfiremake linux XEN=1 - ipfiremake kqemu XEN=1 - ipfiremake v4l-dvb XEN=1 - ipfiremake madwifi XEN=1 - ipfiremake mISDN XEN=1 - ipfiremake dahdi XEN=1 KMOD=1 - ipfiremake cryptodev XEN=1 - ipfiremake compat-wireless XEN=1 - ipfiremake r8169 XEN=1 - ipfiremake r8168 XEN=1 - ipfiremake r8101 XEN=1 - ipfiremake e1000 XEN=1 - ipfiremake e1000e XEN=1 - ipfiremake linux - ipfiremake kqemu - ipfiremake kvm-kmod + ipfiremake zd1211-firmware + + # The xen and PAE kernels are only available for x86 + if [ "${MACHINE}" != "arm" ]; then + ipfiremake linux XEN=1 + ipfiremake kqemu XEN=1 + ipfiremake v4l-dvb XEN=1 + ipfiremake madwifi XEN=1 + ipfiremake mISDN XEN=1 + ipfiremake dahdi XEN=1 KMOD=1 + ipfiremake cryptodev XEN=1 + ipfiremake compat-wireless XEN=1 + ipfiremake r8169 XEN=1 + ipfiremake r8168 XEN=1 + ipfiremake r8101 XEN=1 + ipfiremake e1000 XEN=1 + ipfiremake e1000e XEN=1 + ipfiremake igb XEN=1 + ipfiremake linux PAE=1 + ipfiremake kqemu PAE=1 + ipfiremake kvm-kmod PAE=1 + ipfiremake v4l-dvb PAE=1 + ipfiremake madwifi PAE=1 + ipfiremake alsa PAE=1 KMOD=1 + ipfiremake mISDN PAE=1 + ipfiremake dahdi PAE=1 KMOD=1 + ipfiremake cryptodev PAE=1 + ipfiremake compat-wireless PAE=1 +# ipfiremake r8169 PAE=1 +# ipfiremake r8168 PAE=1 +# ipfiremake r8101 PAE=1 + ipfiremake e1000 PAE=1 + ipfiremake e1000e PAE=1 + ipfiremake igb PAE=1 + fi + + # Default kernel build + #ipfiremake linux ipfiremake v4l-dvb - ipfiremake madwifi - ipfiremake alsa KMOD=1 - ipfiremake mISDN + + # Virtualization helpers are only available for x86. + if [ "${MACHINE}" != "arm" ]; then + ipfiremake kqemu + ipfiremake kvm-kmod + fi + #ipfiremake madwifi + #ipfiremake alsa KMOD=1 + #ipfiremake mISDN ipfiremake dahdi KMOD=1 ipfiremake cryptodev - ipfiremake compat-wireless - ipfiremake r8169 - ipfiremake r8168 - ipfiremake r8101 - ipfiremake e1000 - ipfiremake e1000e + #ipfiremake compat-wireless +# ipfiremake r8169 +# ipfiremake r8168 +# ipfiremake r8101 + #ipfiremake e1000 + #ipfiremake e1000e + #ipfiremake igb ipfiremake pkg-config ipfiremake linux-atm ipfiremake cpio - ipfiremake klibc - ipfiremake mkinitcpio - ipfiremake udev KLIBC=1 + + installmake strip + + ipfiremake dracut ipfiremake expat ipfiremake gdbm ipfiremake gmp ipfiremake pam ipfiremake openssl ipfiremake curl + ipfiremake tcl + ipfiremake sqlite ipfiremake python + ipfiremake fireinfo ipfiremake libnet ipfiremake libnl ipfiremake libidn @@ -396,6 +457,8 @@ buildipfire() { ipfiremake pcre ipfiremake slang ipfiremake newt + ipfiremake attr + ipfiremake acl ipfiremake libcap ipfiremake pciutils ipfiremake usbutils @@ -414,7 +477,6 @@ buildipfire() { ipfiremake cdrtools ipfiremake dnsmasq ipfiremake dosfstools - ipfiremake squashfstools ipfiremake reiserfsprogs ipfiremake xfsprogs ipfiremake sysfsutils @@ -484,6 +546,8 @@ buildipfire() { ipfiremake rrdtool ipfiremake setserial ipfiremake setup + ipfiremake libdnet + ipfiremake daq ipfiremake snort ipfiremake oinkmaster ipfiremake squid @@ -537,8 +601,6 @@ buildipfire() { ipfiremake gnump3d ipfiremake libsigc++ ipfiremake applejuice - ipfiremake ocaml - ipfiremake mldonkey ipfiremake libtorrent ipfiremake rtorrent ipfiremake ipfireseeder @@ -575,6 +637,7 @@ buildipfire() { ipfiremake phpSANE ipfiremake tunctl ipfiremake nagios + ipfiremake nagios_nrpe ipfiremake ebtables ipfiremake fontconfig ipfiremake freefont @@ -613,7 +676,6 @@ buildipfire() { ipfiremake splix ipfiremake streamripper ipfiremake sshfs - ipfiremake sqlite ipfiremake taglib ipfiremake mediatomb ipfiremake sslh @@ -637,6 +699,7 @@ buildipfire() { ipfiremake asterisk ipfiremake lcr ipfiremake usb_modeswitch + ipfiremake usb_modeswitch_data ipfiremake zerofree ipfiremake mdadm ipfiremake eject @@ -644,6 +707,22 @@ buildipfire() { ipfiremake minicom ipfiremake ddrescue ipfiremake imspector + ipfiremake miniupnpd + ipfiremake client175 + ipfiremake powertop + ipfiremake parted + ipfiremake swig + ipfiremake python-m2crypto + ipfiremake wireless-regdb + ipfiremake crda + ipfiremake libsatsolver + ipfiremake python-satsolver + ipfiremake python-distutils-extra + ipfiremake python-lzma + ipfiremake python-progressbar + ipfiremake python-xattr + ipfiremake intltool + ipfiremake pakfire3-deps echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild echo >> $BASEDIR/build/var/ipfire/firebuild @@ -667,34 +746,10 @@ buildinstaller() { ipfiremake as86 ipfiremake mbr ipfiremake memtest - installmake linux-libc-header - installmake binutils - ipfiremake uClibc PASS=1 - ipfiremake gcc INST=1 - installmake uClibc PASS=2 - installmake gcc INST=2 - installmake uClibc PASS=3 - installmake busybox - installmake udev - installmake slang - installmake newt - installmake gettext - installmake kbd - installmake popt - installmake sysvinit - installmake misc-progs - installmake reiserfsprogs - installmake sysfsutils - installmake util-linux - installmake pciutils - installmake zlib - installmake mtd - installmake wget - installmake hwdata - installmake kudzu - installmake pcmciautils - installmake installer - installmake initrd + ipfiremake installer + cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/ + installmake strip + ipfiremake initrd } buildpackages() { @@ -702,7 +757,6 @@ buildpackages() { export LOGFILE echo "... see detailed log in _build.*.log files" >> $LOGFILE - installmake strip # Generating list of packages used echo -n "Generating packages list from logs" | tee -a $LOGFILE @@ -746,6 +800,12 @@ buildpackages() { fi mv $LFS/install/images/*.bz2 $BASEDIR >> $LOGFILE 2>&1 + cd $BASEDIR + for i in `ls *.bz2 *.img.gz *.iso`; do + md5sum $i > $i.md5 + done + cd $PWD + # Cleanup stdumount rm -rf $BASEDIR/build/tmp/* @@ -785,7 +845,6 @@ ipfirepackages() { case "$1" in build) clear - BUILDMACHINE=`uname -m` PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1` #only restore on a clean disk if [ ! -f log/cleanup-toolchain-2-tools ]; then @@ -823,8 +882,10 @@ build) buildpackages beautify build_stage "Checking Logfiles for new Files" - cd .. + + cd $BASEDIR tools/checknewlog.pl + cd $PWD beautify build_end ;; @@ -856,6 +917,7 @@ clean) if [ -h /tools ]; then rm -f /tools fi + rm -f $BASEDIR/ipfire-* beautify message DONE ;; downloadsrc) @@ -875,7 +937,8 @@ downloadsrc) for i in *; do if [ -f "$i" -a "$i" != "Config" ]; then echo -ne "Loading $i" - make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 + make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$i\t ($c/$MAX_RETRIES)" download >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then beautify message FAIL FINISHED=0 @@ -891,7 +954,8 @@ downloadsrc) ERROR=0 for i in *; do if [ -f "$i" -a "$i" != "Config" ]; then - make -s -f $i LFS_BASEDIR=$BASEDIR MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 + make -s -f $i LFS_BASEDIR=$BASEDIR MACHINE=$MACHINE \ + MESSAGE="$i\t " md5 >> $LOGFILE 2>&1 if [ $? -ne 0 ]; then echo -ne "MD5 difference in lfs/$i" beautify message FAIL @@ -913,19 +977,17 @@ toolchain) prepareenv beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`" buildtoolchain - BUILDMACHINE=`uname -m` echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \ build/{bin,etc,usr/bin,usr/local} \ - build/tools/{bin,etc,*-linux-gnu,include,lib,libexec,sbin,share,var} \ + build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \ log >> $LOGFILE md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz \ > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.md5 stdumount ;; gettoolchain) - BUILDMACHINE=`uname -m` # arbitrary name to be updated in case of new toolchain package upload PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then