]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - make.sh
Remove start and stop beep sounds.
[ipfire-2.x.git] / make.sh
diff --git a/make.sh b/make.sh
index f96a6b4d1ebb5f5811e45210b9ca4575a83c6506..1679d3293a9f07fde8592187e3a2722809e6a084 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -24,9 +24,9 @@
 
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
-VERSION="2.9"                                                  # Version number
-CORE="51"                                                      # Core Level (Filename)
-PAKFIRE_CORE="51"                                              # Core Level (PAKFIRE)
+VERSION="2.11"                                                 # Version number
+CORE="53"                                                      # Core Level (Filename)
+PAKFIRE_CORE="52"                                              # 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
@@ -189,7 +189,11 @@ prepareenv() {
     set +h
     LC_ALL=POSIX
     if [ -z $MAKETUNING ]; then
-       MAKETUNING="-j6"
+        if [ "${MACHINE:0:3}" = "arm" ]; then
+            MAKETUNING="-j2"
+        else
+            MAKETUNING="-j6"
+        fi
     fi
     export LFS LC_ALL CFLAGS CXXFLAGS MAKETUNING
     unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
@@ -243,15 +247,19 @@ buildtoolchain() {
 
     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}
+    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_TYPE}" = "arm" ]; then
+        lfsmake1 linux TOOLS=1 HEADERS=1
+    else
+        lfsmake1 linux-libc-header
+    fi
     lfsmake1 glibc
     lfsmake1 cleanup-toolchain PASS=1
     lfsmake1 tcl
@@ -278,6 +286,7 @@ buildtoolchain() {
     lfsmake1 tar
     lfsmake1 texinfo
     lfsmake1 util-linux
+    lfsmake1 strip
     lfsmake1 cleanup-toolchain PASS=2
     export PATH=$ORG_PATH
 }
@@ -286,7 +295,11 @@ buildbase() {
     LOGFILE="$BASEDIR/log/_build.base.log"
     export LOGFILE
     lfsmake2 stage2
-    lfsmake2 linux-libc-header
+    if [ "${MACHINE_TYPE}" = "arm" ]; then
+        lfsmake2 linux HEADERS=1
+    else
+        lfsmake2 linux-libc-header
+    fi
     lfsmake2 man-pages
     lfsmake2 glibc
     lfsmake2 cleanup-toolchain PASS=3
@@ -358,42 +371,54 @@ 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 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
+  ipfiremake zd1211-firmware
+  ipfiremake u-boot
+
+  # The xen and PAE kernels are only available for x86
+  if [ "${MACHINE_TYPE}" != "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 kqemu
   ipfiremake kvm-kmod
-  ipfiremake v4l-dvb
   ipfiremake madwifi
-  ipfiremake alsa                      KMOD=1
+  if [ "${MACHINE_TYPE}" = "arm" ]; then
+    #todo enable alsa driver in kernel config
+    ipfiremake alsa                    KMOD=1
+  fi
+  #undefined declaration in echo canceler try to fix later
   ipfiremake mISDN
   ipfiremake dahdi                     KMOD=1
   ipfiremake cryptodev
@@ -407,9 +432,6 @@ buildipfire() {
   ipfiremake pkg-config
   ipfiremake linux-atm
   ipfiremake cpio
-
-  installmake strip
-
   ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
@@ -451,7 +473,7 @@ buildipfire() {
   ipfiremake arping
   ipfiremake beep
   ipfiremake bind
-  ipfiremake cdrtools
+  ipfiremake dvdrtools
   ipfiremake dnsmasq
   ipfiremake dosfstools
   ipfiremake reiserfsprogs
@@ -536,7 +558,6 @@ buildipfire() {
   ipfiremake wireless
   ipfiremake libsafe
   ipfiremake pakfire
-  ipfiremake java
   ipfiremake spandsp
   ipfiremake lzo
   ipfiremake openvpn
@@ -584,6 +605,7 @@ buildipfire() {
   ipfiremake rsync
   ipfiremake tcpwrapper
   ipfiremake libevent
+  ipfiremake libevent2
   ipfiremake portmap
   ipfiremake nfs
   ipfiremake nmap
@@ -614,6 +636,7 @@ buildipfire() {
   ipfiremake phpSANE
   ipfiremake tunctl
   ipfiremake nagios
+  ipfiremake nagios_nrpe
   ipfiremake ebtables
   ipfiremake fontconfig
   ipfiremake freefont
@@ -689,15 +712,16 @@ buildipfire() {
   ipfiremake parted
   ipfiremake swig
   ipfiremake python-m2crypto
+  ipfiremake wireless-regdb
   ipfiremake crda
-  ipfiremake libsatsolver
-  ipfiremake python-satsolver
+  ipfiremake libsolv
   ipfiremake python-distutils-extra
   ipfiremake python-lzma
   ipfiremake python-progressbar
   ipfiremake python-xattr
   ipfiremake intltool
   ipfiremake pakfire3-deps
+  ipfiremake transmission
   echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
   cat /proc/version >> $BASEDIR/build/var/ipfire/firebuild
   echo >> $BASEDIR/build/var/ipfire/firebuild
@@ -707,7 +731,7 @@ buildipfire() {
   echo >> $BASEDIR/build/var/ipfire/firebuild
   cat /proc/cpuinfo >> $BASEDIR/build/var/ipfire/firebuild
   echo $PAKFIRE_CORE > $BASEDIR/build/opt/pakfire/db/core/mine
-  if [ "$GIT_BRANCH" = "master" ]; then
+  if [ "$GIT_BRANCH" = "next" ]; then
        echo "$NAME $VERSION - (Development Build: $GIT_LASTCOMMIT)" > $BASEDIR/build/etc/system-release
   else
        echo "$NAME $VERSION - $GIT_BRANCH" > $BASEDIR/build/etc/system-release
@@ -753,11 +777,13 @@ buildpackages() {
   $0 git log
 
   # Create images for install
-       ipfiremake cdrom ED=$IPFVER
+  ipfiremake cdrom ED=$IPFVER
 
   # Check if there is a loop device for building in virtual environments
-  if [ $BUILD_IMAGES == 1 ] &&  ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
-       ipfiremake usb-stick ED=$IPFVER
+  if [ $BUILD_IMAGES == 1 ] && ([ -e /dev/loop/0 ] || [ -e /dev/loop0 ]); then
+       if [ "${MACHINE_TYPE}" != "arm" ]; then
+               ipfiremake usb-stick ED=$IPFVER
+       fi
        ipfiremake flash-images ED=$IPFVER
   fi
 
@@ -820,7 +846,7 @@ ipfirepackages() {
 case "$1" in 
 build)
        clear
-       PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE.tar.gz 2> /dev/null | head -n 1`
+       PACKAGE=`ls -v -r $BASEDIR/cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz 2> /dev/null | head -n 1`
        #only restore on a clean disk
        if [ ! -f log/cleanup-toolchain-2-tools ]; then
                if [ ! -n "$PACKAGE" ]; then
@@ -911,8 +937,10 @@ downloadsrc)
                cd $BASEDIR/lfs
                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
+                               lfsmakecommoncheck ${i} || continue
+
+                               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
@@ -928,7 +956,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
@@ -950,27 +979,27 @@ toolchain)
        prepareenv
        beautify build_stage "Toolchain compilation - Native GCC: `gcc --version | grep GCC | awk {'print $3'}`"
        buildtoolchain
-       echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
+       echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | 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 \
+       cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.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
+       md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
+               > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5
        stdumount
        ;;
 gettoolchain)
        # arbitrary name to be updated in case of new toolchain package upload
-       PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$BUILDMACHINE
+       PACKAGE=$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE
        if [ ! -f $BASEDIR/cache/toolchains/$PACKAGE.tar.gz ]; then
                URL_TOOLCHAIN=`grep URL_TOOLCHAIN lfs/Config | awk '{ print $3 }'`
                test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
-               echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $BUILDMACHINE" | tee -a $LOGFILE
+               echo "`date -u '+%b %e %T'`: Load toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
                cd $BASEDIR/cache/toolchains
                wget -U "IPFireSourceGrabber/2.x" $URL_TOOLCHAIN/$PACKAGE.tar.gz $URL_TOOLCHAIN/$PACKAGE.md5 >& /dev/null
                if [ $? -ne 0 ]; then
-                       echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for $BUILDMACHINE machine" | tee -a $LOGFILE
+                       echo "`date -u '+%b %e %T'`: error downloading $PACKAGE toolchain for $MACHINE machine" | tee -a $LOGFILE
                else
                        if [ "`md5sum $PACKAGE.tar.gz | awk '{print $1}'`" = "`cat $PACKAGE.md5 | awk '{print $1}'`" ]; then
                                echo "`date -u '+%b %e %T'`: toolchain md5 ok" | tee -a $LOGFILE