moved check for gnutar into general dependencies check
[summon-arm-toolchain.git] / summon-arm-toolchain
index f1ddff04fa21a80dcc6e93ee49873c8aafe77851..e1f396eb1c526be099ac8ad228ef02455ec5d54c 100755 (executable)
@@ -18,12 +18,12 @@ set -e
 # Settings section
 # You probably want to customize those
 ##############################################################################
-TARGET=arm-none-eabi           # Or: TARGET=arm-elf
-PREFIX=${HOME}/arm-none-eabi   # Install location of your final toolchain
+TARGET=arm-elf         # Or: TARGET=arm-elf
+PREFIX=/arm    # Install location of your final toolchain
 PARALLEL=                      # Or: PARALLEL="-j 5" for 4 CPUs
 DARWIN_OPT_PATH=/opt/local     # Path in which MacPorts or Fink is installed
 # Set to 'sudo' if you need superuser privileges while installing
-SUDO=
+SUDO='sudo'
 # Set to 1 to be quieter while running
 QUIET=0
 # Set to 1 to use linaro gcc instead of the FSF gcc
@@ -91,6 +91,56 @@ SUMMON_DIR=$(pwd)
 SOURCES=${SUMMON_DIR}/sources
 STAMPS=${SUMMON_DIR}/stamps
 
+##############################################################################
+# OS and Tooldetection section
+# Detects which tools to use
+##############################################################################
+
+case "$(uname)" in
+       Linux)
+       echo "Found Linux OS."
+       TAR=tar
+       ;;
+       Darwin)
+       echo "Found Darwin OS."
+
+       # darwin dependencies
+       DARWINDEPS="gnutar mpfr libmpc gmp"
+  DARWINDEPSCOUNT=4
+
+  GCCFLAGS="${GCCFLAGS} \
+            --with-gmp=${DARWIN_OPT_PATH} \
+                 --with-mpfr=${DARWIN_OPT_PATH} \
+                 --with-mpc=${DARWIN_OPT_PATH} \
+                       -with-libiconv-prefix=${DARWIN_OPT_PATH}"
+
+  echo "Attempting to automatically check if common dependencies are installed on your system"
+  if ! which port > /dev/null; then
+    echo "MacPorts not installed."
+  else
+    pc=`port installed ${DARWINDEPS} | wc -l | tr -d " "`
+    if [ ${pc} -lt ${DARWINDEPSCOUNT} ];
+    then
+      echo "Something is missing, do you want to install everything needed?"
+      echo "(You need super user rights to do this.)"
+
+      if [ read = "y" || read = "yes" ];
+      then
+        sudo port install ${DARWINDEPS}
+      fi
+    else
+      echo "Found: "${DARWINDEPS}"!"
+    fi
+  fi
+
+       ;;
+
+       *)
+       echo "Found unknown OS. Aborting!"
+       exit 1
+       ;;
+esac
+
 ##############################################################################
 # Building section
 # You probably don't have to touch anything after this
@@ -115,8 +165,12 @@ function log {
 # Unpack an archive
 function unpack {
     log Unpacking $*
-    # Use 'auto' mode decompression.  Replace with a switch if tar doesn't support -a
-    tar xaf${TARFLAGS} ${SOURCES}/$1.tar.*
+    if [ -f ${SOURCES}/$1.tar.gz ];
+    then
+      ${TAR} xfz${TARFLAGS} ${SOURCES}/$1.tar.gz
+    else
+      ${TAR} xfj${TARFLAGS} ${SOURCES}/$1.tar.bz2
+    fi
 }
 
 # Install a build
@@ -125,23 +179,6 @@ function install {
     ${SUDO} make ${MAKEFLAGS} $2 $3 $4 $5 $6 $7 $8
 }
 
-case "$(uname)" in
-       Linux)
-       echo "Found Linux OS."
-       ;;
-       Darwin)
-       echo "Found Darwin OS."
-       GCCFLAGS="${GCCFLAGS} \
-                  --with-gmp=${DARWIN_OPT_PATH} \
-                 --with-mpfr=${DARWIN_OPT_PATH} \
-                 --with-mpc=${DARWIN_OPT_PATH} \
-                 -with-libiconv-prefix=${DARWIN_OPT_PATH}"
-       ;;
-       *)
-       echo "Found unknown OS. Aborting!"
-       exit 1
-       ;;
-esac
 
 mkdir -p ${STAMPS} ${SOURCES}
 
@@ -240,6 +277,7 @@ if [ ! -e ${STAMPS}/${GCC}-boot.build ]; then
                       --with-gnu-ld \
                       --disable-nls \
                       --disable-werror \
+                     --with-system-zlib \
                      ${GCCFLAGS}
     log "Building ${GCC}-boot"
     make ${MAKEFLAGS} all-gcc
@@ -288,6 +326,7 @@ if [ ! -e ${STAMPS}/${GCC}.build ]; then
                       --with-gnu-ld \
                      --disable-nls \
                       --disable-werror \
+                      --with-system-zlib \
                     ${GCCFLAGS}
     log "Building ${GCC}"
     make ${MAKEFLAGS}