Update.
authorlace <>
Sat, 22 Nov 2008 13:46:18 +0000 (13:46 +0000)
committerlace <>
Sat, 22 Nov 2008 13:46:18 +0000 (13:46 +0000)
bin/errs1

index 37d8290..20fce10 100755 (executable)
--- a/bin/errs1
+++ b/bin/errs1
@@ -2,31 +2,82 @@
 # $Id$
 
 customss="--enable-static --disable-shared"
-if [ "$1" = "--origss" ];then
-       customss=
-       shift
-fi
-
 customm="-m64"
-if [ "$1" = "--origm" ];then
-       customm=
-       shift
-fi
-
+target=
+targets=
 configure="./configure"
-if [ "${1#*/configure}" != "$1" ];then
-       configure="$1"
-       shift
-fi
+debug="-ggdb2"
+
+while true
+do
+       if [ "$1" = "--origss" ];then
+               customss=
+               shift
+               continue
+       fi
+       if [ "$1" = "-shared" ];then
+               customss="--disable-static --enable-shared"
+               shift
+               continue
+       fi
+
+       if [ "$1" = "-m" ];then
+               customm=
+               shift
+               continue
+       fi
+       if [ "$1" = "-m32" ];then
+               customm=-m32
+               target=i386-unknown-linux-gnu
+               shift
+               continue
+       fi
+
+       if [ "${1#*/configure}" != "$1" ];then
+               configure="$1"
+               shift
+               continue
+       fi
+
+       if [ "$1" = "-s" ];then
+               # -O0 is important to override GCC -O2.
+               debug="-O0 -s"
+               shift
+               continue
+       fi
+
+       break
+done
 
 (
        set -ex
-       rm -f config.cache
+       find -name config.cache|xargs rm -f
+
+       # sourceware.org?
+       if test -f `dirname $configure`/bfd/elf64-x86-64.c \
+            -o -f `dirname $configure`/gcc/reload.c;then
+               maintainer=""
+       else
+               maintainer="--enable-maintainer-mode"
+       fi
+       if test -f `dirname $configure`/bfd/elf64-x86-64.c;then
+               test -f g77 || (test -f /usr/bin/gfortran && ln -s /usr/bin/gfortran g77)
+               targets="--enable-targets=all"
+       fi
+
+       if test -f `dirname $configure`/gcc/reload.c;then
+               werror="--disable-werror"
+               customm=""
+               customss="--disable-static --enable-shared"
+       else
+               werror=""
+       fi
+
        test -z "$CC" && CC=gcc
        : >errs1.c
        for flags in                                                                                                    \
-               "-ggdb2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4"   \
-               "-ggdb2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions"                                               \
+               "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4"   \
+               "$debug -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions"                                               \
                ""                                                                                                      \
                ;do
                if [ -z "$flags" ];then
@@ -43,13 +94,8 @@ fi
        export CFLAGS="$flags"
        export CXXFLAGS="$flags"
        export GCJFLAGS="$flags"
+       export CFLAGS_FOR_TARGET="$flags"
+       export CXXFLAGS_FOR_TARGET="$flags"
 
-       # sourceware.org?
-       if test -f `dirname $configure`/bfd/elf64-x86-64.c;then
-               maintainer=""
-       else
-               maintainer="--enable-maintainer-mode"
-       fi
-
-       time nice "$configure" $customss --enable-debug $maintainer "$@"
+       time nice "$configure" $target $targets $customss --enable-debug $maintainer $werror "$@"
        ) 2>&1|tee errs1