util/crossgcc: Add buildgcc -G and --skip-gdb options
authorPeter Stuge <peter@stuge.se>
Thu, 9 Jun 2011 02:54:16 +0000 (04:54 +0200)
committerPeter Stuge <peter@stuge.se>
Thu, 9 Jun 2011 04:09:17 +0000 (06:09 +0200)
Change-Id: Ic31130774ad56abf0b5498b04b4890348352a621
Signed-off-by: Peter Stuge <peter@stuge.se>
Reviewed-on: http://review.coreboot.org/15
Tested-by: build bot (Jenkins)
Reviewed-by: Marshall Buschman <mbuschman@lucidmachines.com>
util/crossgcc/buildgcc

index 26fbc662c351ffa573c52cbd63ffd0c371e3ddcd..9211cfdd72c4f8bca24a86eb1d76adc1cefa52fb 100755 (executable)
@@ -59,6 +59,7 @@ W32API_DIR="w32api-${W32API_VERSION}-mingw32"
 MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
 
 SAVETEMPS=0
 MINGWRT_DIR="mingwrt-${MINGWRT_VERSION}-mingw32"
 
 SAVETEMPS=0
+SKIPGDB=0
 
 red='\e[0;31m'
 RED='\e[1;31m'
 
 red='\e[0;31m'
 RED='\e[1;31m'
@@ -100,7 +101,7 @@ cleanup()
 
 myhelp()
 {
 
 myhelp()
 {
-       printf "Usage: $0 [-V] [-c] [-p <platform>] [-d <target directory>] [-D <dest dir>]\n"
+       printf "Usage: $0 [-V] [-c] [-p <platform>] [-d <target directory>] [-D <dest dir>] [-G]\n"
        printf "       $0 [-V|--version]\n"
        printf "       $0 [-h|--help]\n\n"
 
        printf "       $0 [-V|--version]\n"
        printf "       $0 [-h|--help]\n\n"
 
@@ -116,6 +117,7 @@ myhelp()
        printf "                                  (defaults to $TARGETDIR)\n\n"
        printf "    [-D|--destdir <dest dir>]     destination directory to install cross compiler to\n"
        printf "                                  (for RPM builds, default unset)\n\n"
        printf "                                  (defaults to $TARGETDIR)\n\n"
        printf "    [-D|--destdir <dest dir>]     destination directory to install cross compiler to\n"
        printf "                                  (for RPM builds, default unset)\n\n"
+       printf "    [-G|--skip-gdb]               don't build GNU debugger\n"
 }
 
 myversion()
 }
 
 myversion()
@@ -147,11 +149,11 @@ getopt - > /dev/null 2>/dev/null || gcc -o getopt getopt.c
 getoptbrand="`getopt -V`"
 if [ "${getoptbrand:0:6}" == "getopt" ]; then
        # Detected GNU getopt that supports long options.
 getoptbrand="`getopt -V`"
 if [ "${getoptbrand:0:6}" == "getopt" ]; then
        # Detected GNU getopt that supports long options.
-       args=`getopt -l version,help,clean,directory:,platform:,jobs:,destdir:,savetemps Vhcd:p:j:D:t -- "$@"`
+       args=`getopt -l version,help,clean,directory:,platform:,jobs:,destdir:,savetemps,skip-gdb Vhcd:p:j:D:tG -- "$@"`
        eval set "$args"
 else
        # Detected non-GNU getopt
        eval set "$args"
 else
        # Detected non-GNU getopt
-       args=`getopt Vhcd:p:j:D:t $*`
+       args=`getopt Vhcd:p:j:D:tG $*`
        set -- $args
 fi
 
        set -- $args
 fi
 
@@ -170,12 +172,19 @@ while true ; do
                -p|--platform)  shift; TARGETARCH="$1"; shift;;
                -D|--destdir)   shift; DESTDIR="$1"; shift;;
                -j|--jobs)      shift; JOBS="-j $1"; shift;;
                -p|--platform)  shift; TARGETARCH="$1"; shift;;
                -D|--destdir)   shift; DESTDIR="$1"; shift;;
                -j|--jobs)      shift; JOBS="-j $1"; shift;;
+               -G|--skip-gdb)  shift; SKIPGDB=1;;
                --)             shift; break;;
                -*)             printf "Invalid option\n\n"; myhelp; exit 1;;
                *)              break;;
        esac
 done
 
                --)             shift; break;;
                -*)             printf "Invalid option\n\n"; myhelp; exit 1;;
                *)              break;;
        esac
 done
 
+GDB_PACKAGE="GDB"
+if [ $SKIPGDB -eq 1 ]; then
+       printf "Will skip GDB ... ${green}ok${NC}\n"
+       GDB_PACKAGE=""
+fi
+
 MINGW_ARCHIVES=""
 if [ "$TARGETARCH" = "i386-mingw32" ]; then
        MINGW_ARCHIVES="$W32API_ARCHIVE $MINGWRT_ARCHIVE"
 MINGW_ARCHIVES=""
 if [ "$TARGETARCH" = "i386-mingw32" ]; then
        MINGW_ARCHIVES="$W32API_ARCHIVE $MINGWRT_ARCHIVE"
@@ -228,7 +237,7 @@ if [ "$TARGETARCH" = "i386-mingw32" ]; then
 fi
 
 printf "Unpacking and patching ... \n"
 fi
 
 printf "Unpacking and patching ... \n"
-for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS GDB $MINGW_PACKAGES; do
+for PACKAGE in GMP MPFR MPC LIBELF GCC BINUTILS $GDB_PACKAGE $MINGW_PACKAGES; do
        archive=$PACKAGE"_ARCHIVE"
        archive=${!archive}
        dir=$PACKAGE"_DIR"
        archive=$PACKAGE"_ARCHIVE"
        archive=${!archive}
        dir=$PACKAGE"_DIR"
@@ -275,7 +284,10 @@ if [ `uname` = "Darwin" ]; then
        #rm .architecture_check.c .architecture_check.o
 fi
 
        #rm .architecture_check.c .architecture_check.o
 fi
 
-mkdir -p build-gmp build-mpfr build-mpc build-libelf build-binutils build-gcc build-gdb
+mkdir -p build-gmp build-mpfr build-mpc build-libelf build-binutils build-gcc
+if [ $SKIPGDB -eq 0 ]; then
+       mkdir -p build-gdb
+fi
 if [ -f build-gmp/.success ]; then
        printf "Skipping GMP as it is already built\n"
 else
 if [ -f build-gmp/.success ]; then
        printf "Skipping GMP as it is already built\n"
 else
@@ -415,6 +427,8 @@ fi
 
 if [ -f build-gdb/.success ]; then
        printf "Skipping GDB as it is already built\n"
 
 if [ -f build-gdb/.success ]; then
        printf "Skipping GDB as it is already built\n"
+elif [ $SKIPGDB -eq 1 ]; then
+       printf "Skipping GDB as requested by command line\n"
 else
 printf "Building GDB ${GDB_VERSION} ... "
 (
 else
 printf "Building GDB ${GDB_VERSION} ... "
 (