|
@@ -0,0 +1,127 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+#$Id$
|
|
|
+#
|
|
|
+# returns the CFLAGS for the given compiler (maximum optimizations)
|
|
|
+#
|
|
|
+
|
|
|
+
|
|
|
+ARCH=`uname -m |sed -e s/i.86/i386/ -e s/sun4u/sparc64/ `
|
|
|
+
|
|
|
+# gcc 3.x optimize for:
|
|
|
+x86CPU=athlon
|
|
|
+WARN_ARCH="WARNING: Not tested on architecture $ARCH, using default flags"
|
|
|
+
|
|
|
+if [ $# -lt 1 ]
|
|
|
+then
|
|
|
+ echo "ERROR: you must specify the compiler name" 1>&2
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+if [ "$1" = "-h" ]
|
|
|
+then
|
|
|
+ echo "Usage: "
|
|
|
+ echo " $0 compiler_name"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+
|
|
|
+if CCVER=`./ccver.sh $1`
|
|
|
+then
|
|
|
+ NAME=`echo "$CCVER"|cut -d" " -f 1`
|
|
|
+ VER=`echo "$CCVER"|cut -d" " -f 2`
|
|
|
+ MAJOR_VER=`echo "$CCVER"|cut -d" " -f 3`
|
|
|
+else
|
|
|
+ echo "ERROR executing ./ccver.sh" 2>&1
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+echo "name=$NAME, ver=$VER, mver=$MAJOR_VER"
|
|
|
+case $NAME
|
|
|
+in
|
|
|
+gcc)
|
|
|
+ #common stuff
|
|
|
+ CFLAGS="-O9 -funroll-loops -Winline -Wall"
|
|
|
+ case $MAJOR_VER
|
|
|
+ in
|
|
|
+ 3)
|
|
|
+ case $ARCH
|
|
|
+ in
|
|
|
+ i386)
|
|
|
+ CFLAGS="$CFLAGS -minline-all-stringops -malign-double"
|
|
|
+ CFLAGS="$CFLAGS -falign-loops -march=$x86CPU"
|
|
|
+ ;;
|
|
|
+ sparc64)
|
|
|
+ CFLAGS="$CFLAGS -mcpu=ultrasparc -mtune=ultrasparc"
|
|
|
+ CFLAGS="$CFLAGS -m32"
|
|
|
+ #other interesting options:
|
|
|
+ # -mcpu=v9 or ultrasparc? # -mtune implied by -mcpu
|
|
|
+ #-mno-epilogue #try to inline function exit code
|
|
|
+ #-mflat # omit save/restore
|
|
|
+ #-faster-structs #faster non Sparc ABI structure copy
|
|
|
+ ;;
|
|
|
+ armv4l)
|
|
|
+ CFLAGS="$CFLAGS -mcpu=strongarm1100"
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "$WARN_ARCH" 1>&2
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+ 2|*)
|
|
|
+ case $ARCH
|
|
|
+ in
|
|
|
+ i386)
|
|
|
+ CFLAGS="$CFLAGS -m486 -malign-loops=4"
|
|
|
+ ;;
|
|
|
+ sparc64)
|
|
|
+ CFLAGS="$CFLAGS -mv8 -Wa,-xarch=v8plus"
|
|
|
+ ;;
|
|
|
+ armv4l)
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "$WARN_ARCH" 1>&2
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+
|
|
|
+icc)
|
|
|
+ CFLAGS="-O3 -ipo -ipo_obj -unroll"
|
|
|
+ case $ARCH
|
|
|
+ in
|
|
|
+ i386)
|
|
|
+ CFLAGS="$CFLAGS -tpp6 -xK"
|
|
|
+ #-openmp #optimize for PIII
|
|
|
+ # -prefetch doesn't seem to work
|
|
|
+ #( ty to inline acroos files, unroll loops,prefetch,
|
|
|
+ # optimize for PIII, use PIII instructions & vect.,
|
|
|
+ # mutlithread loops)
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "$WARN_ARCH" 1>&2
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+
|
|
|
+suncc)
|
|
|
+ CFLAGS="-xO5 -fast -native -xCC -xc99"
|
|
|
+ case $ARCH
|
|
|
+ in
|
|
|
+ sparc64)
|
|
|
+ CFLAGS="$CFLAGS -xarch=v8plusa"
|
|
|
+ ;;
|
|
|
+ *)
|
|
|
+ echo "$WARN_ARCH" 1>&2
|
|
|
+ ;;
|
|
|
+ esac
|
|
|
+ ;;
|
|
|
+
|
|
|
+*)
|
|
|
+ echo "WARNING: unknown compiler $NAME, trying _very_ generic flags" 1>&2
|
|
|
+ CFLAGS="-O2"
|
|
|
+esac
|
|
|
+
|
|
|
+
|
|
|
+echo "CFLAGS=$CFLAGS"
|