From 0e3d2e0bea9eb90bef98c5bfe751949109bcadd0 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Sat, 12 Apr 2014 16:20:12 +0800 Subject: [PATCH] Make build CPU detection a tad more flexible --- configure | 109 ++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 59 insertions(+), 50 deletions(-) diff --git a/configure b/configure index c309de67..f6df9ada 100755 --- a/configure +++ b/configure @@ -71,46 +71,52 @@ if test -z "$source_path" -o "$source_path" = "." ; then source_path_used="no" fi -case "$cpu" in - i386|i486|i586|i686|i86pc|BePC|i686-AT386) - cpu="x86" - ;; - x86_64|amd64) - cpu="x86-64" - ;; - arm*) - case "$cpu" in - arm|armv4l) - cpuver=4 - ;; - armv5tel|armv5tejl) - cpuver=5 - ;; - armv6j|armv6l) - cpuver=6 - ;; - armv7a|armv7l) - cpuver=7 - ;; - esac - cpu="armv4l" - ;; - alpha) - cpu="alpha" - ;; - "Power Macintosh"|ppc|ppc64) - cpu="powerpc" - ;; - mips) - cpu="mips" - ;; - s390) - cpu="s390" - ;; - *) - cpu="unknown" - ;; -esac +classify_cpu () +{ + cpu="$1" + + case "$cpu" in + x86|i386|i486|i586|i686|i86pc|BePC|i686-AT386) + cpu="x86" + ;; + x86_64|amd64) + cpu="x86-64" + ;; + arm*) + case "$cpu" in + arm|armv4l) + cpuver=4 + ;; + armv5tel|armv5tejl) + cpuver=5 + ;; + armv6j|armv6l) + cpuver=6 + ;; + armv7a|armv7l) + cpuver=7 + ;; + esac + cpu="armv4l" + ;; + alpha) + cpu="alpha" + ;; + "Power Macintosh"|ppc|ppc64) + cpu="powerpc" + ;; + mips) + cpu="mips" + ;; + s390) + cpu="s390" + ;; + *) + echo "Unsupported CPU: $cpu" + exit 1 + ;; + esac +} for opt do eval opt=\"$opt\" @@ -141,14 +147,6 @@ for opt do ;; --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` ;; - --cc=*) cc=`echo $opt | cut -d '=' -f 2` - ;; - --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" - ;; - --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" - ;; - --extra-libs=*) extralibs=${opt#--extra-libs=} - ;; --sysincludepaths=*) tcc_sysincludepaths=`echo $opt | cut -d '=' -f 2` ;; --libpaths=*) tcc_libpaths=`echo $opt | cut -d '=' -f 2` @@ -157,7 +155,15 @@ for opt do ;; --elfinterp=*) tcc_elfinterp=`echo $opt | cut -d '=' -f 2` ;; - --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` + --cc=*) cc=`echo $opt | cut -d '=' -f 2` + ;; + --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" + ;; + --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" + ;; + --extra-libs=*) extralibs=${opt#--extra-libs=} + ;; + --cpu=*) build_cpu=`echo $opt | cut -d '=' -f 2` ;; --enable-gprof) gprof="yes" ;; @@ -186,6 +192,8 @@ for opt do esac done +classify_cpu "$cpu" + # Checking for CFLAGS if test -z "$CFLAGS"; then CFLAGS="-Wall -g -O2" @@ -271,6 +279,7 @@ Advanced options (experts only): --cc=CC use C compiler CC [$cc] --extra-cflags= specify compiler flags [$CFLAGS] --extra-ldflags= specify linker options [] + --cpu=CPU CPU [$cpu] --strip-binaries strip symbol tables from resulting binaries --disable-static make libtcc.so instead of libtcc.a --disable-rpath disable use of -rpath with the above @@ -356,8 +365,8 @@ Doc directory $docdir Target root prefix $sysroot Source path $source_path C compiler $cc +Build CPU $cpu Target OS $targetos -CPU $cpu Big Endian $bigendian gprof enabled $gprof cross compilers $build_cross -- 2.11.4.GIT