diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 143 |
1 files changed, 99 insertions, 44 deletions
@@ -23,7 +23,7 @@ static="no" cross_prefix="" cc="gcc" gcc3_search="yes" -gcc3_list="gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32" +gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32" host_cc="gcc" ar="ar" make="make" @@ -53,6 +53,9 @@ case "$cpu" in mips64) cpu="mips64" ;; + cris) + cpu="cris" + ;; s390*) cpu="s390" ;; @@ -219,6 +222,12 @@ else source_path_used="yes" fi +werror="no" +# generate compile errors on warnings for development builds +#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then +#werror="yes"; +#fi + for opt do optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` case "$opt" in @@ -316,18 +325,28 @@ for opt do *) echo "undefined SPARC architecture. Exiting";exit 1;; esac ;; + --enable-werror) werror="yes" + ;; + --disable-werror) werror="no" + ;; + *) echo "ERROR: unknown option $opt"; show_help="yes" + ;; esac done if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then AIOLIBS= else - AIOLIBS="-lrt" + # Some Linux architectures (e.g. s390) don't imply -lpthread automatically. + AIOLIBS="-lrt -lpthread" fi # default flags for all hosts CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing" LDFLAGS="$LDFLAGS -g" +if test "$werror" = "yes" ; then +CFLAGS="$CFLAGS -Werror" +fi # # If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right @@ -350,11 +369,15 @@ case $cpu in ARCH_LDFLAGS="${SP_LDFLAGS}" fi ;; + s390) + ARCH_CFLAGS="-march=z900" + ;; esac if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then CFLAGS="${CFLAGS} -m64" OS_CFLAGS="${OS_CFLAGS} -m64" + OS_LDFLAGS="${OS_LDFLAGS} -m64" fi if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then @@ -389,6 +412,8 @@ echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc." echo " --make=MAKE use specified make [$make]" echo " --install=INSTALL use specified install [$install]" echo " --static enable static build [$static]" +echo " --disable-werror disable compilation abort on warning" +echo " --disable-sdl disable SDL" echo " --enable-cocoa enable COCOA (Mac OS X only)" echo " --enable-mingw32 enable Win32 cross compilation with mingw32" echo " --enable-adlib enable Adlib emulation" @@ -512,11 +537,11 @@ fi if test -z "$target_list" ; then # these targets are portable if [ "$softmmu" = "yes" ] ; then - target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu ppcemb-softmmu m68k-softmmu sh4-softmmu" + target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu" fi # the following are Linux specific if [ "$linux_user" = "yes" ] ; then - target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user ppc64-linux-user sh4-linux-user $target_list" + target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list" fi # the following are Darwin specific if [ "$darwin_user" = "yes" ] ; then @@ -590,7 +615,7 @@ cat > $TMPC << EOF #undef main /* We don't want SDL to override our main() */ int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } EOF - if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then + if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` if test "$_sdlversion" -lt 121 ; then sdl_too_old=yes @@ -609,7 +634,7 @@ EOF sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" fi - if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then + if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then sdl_static=yes fi fi # static link @@ -694,6 +719,7 @@ echo "target list $target_list" echo "gprof enabled $gprof" echo "profiler $profiler" echo "static build $static" +echo "-Werror enabled $werror" if test "$darwin" = "yes" ; then echo "Cocoa support $cocoa" fi @@ -798,6 +824,9 @@ elif test "$cpu" = "mips" ; then elif test "$cpu" = "mips64" ; then echo "ARCH=mips64" >> $config_mak echo "#define HOST_MIPS64 1" >> $config_h +elif test "$cpu" = "cris" ; then + echo "ARCH=cris" >> $config_mak + echo "#define HOST_CRIS 1" >> $config_h elif test "$cpu" = "s390" ; then echo "ARCH=s390" >> $config_mak echo "#define HOST_S390 1" >> $config_h @@ -917,6 +946,29 @@ echo "TARGET_DIRS=$target_list" >> $config_mak if [ "$build_docs" = "yes" ] ; then echo "BUILD_DOCS=yes" >> $config_mak fi +if test "$static" = "yes"; then + sdl1=$sdl_static +else + sdl1=$sdl +fi +if test "$sdl1" = "yes" ; then + echo "#define CONFIG_SDL 1" >> $config_h + echo "CONFIG_SDL=yes" >> $config_mak + if test "$target_softmmu" = "no" -o "$static" = "yes"; then + echo "SDL_LIBS=$sdl_static_libs" >> $config_mak + else + echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak + fi + if [ "${aa}" = "yes" ] ; then + echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak + else + echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak + fi +fi +if test "$cocoa" = "yes" ; then + echo "#define CONFIG_COCOA 1" >> $config_h + echo "CONFIG_COCOA=yes" >> $config_mak +fi # XXX: suppress that if [ "$bsd" = "yes" ] ; then @@ -944,9 +996,11 @@ target_bigendian="no" [ "$target_cpu" = "armeb" ] && target_bigendian=yes [ "$target_cpu" = "sparc" ] && target_bigendian=yes [ "$target_cpu" = "sparc64" ] && target_bigendian=yes +[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes [ "$target_cpu" = "ppc" ] && target_bigendian=yes -[ "$target_cpu" = "ppc64" ] && target_bigendian=yes [ "$target_cpu" = "ppcemb" ] && target_bigendian=yes +[ "$target_cpu" = "ppc64" ] && target_bigendian=yes +[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes [ "$target_cpu" = "mips" ] && target_bigendian=yes [ "$target_cpu" = "mipsn32" ] && target_bigendian=yes [ "$target_cpu" = "mips64" ] && target_bigendian=yes @@ -991,9 +1045,6 @@ mkdir -p $target_dir/fpu if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then mkdir -p $target_dir/nwfpe fi -if test "$target_user_only" = "no" ; then - mkdir -p $target_dir/slirp -fi # # don't use ln -sf as not all "ln -sf" over write the file/link @@ -1010,6 +1061,7 @@ echo "include ../config-host.mak" >> $config_mak echo "#include \"../config-host.h\"" >> $config_h bflt="no" +elfload32="no" interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h @@ -1048,20 +1100,37 @@ elif test "$target_cpu" = "sparc64" ; then echo "#define TARGET_ARCH \"sparc64\"" >> $config_h echo "#define TARGET_SPARC 1" >> $config_h echo "#define TARGET_SPARC64 1" >> $config_h + elfload32="yes" +elif test "$target_cpu" = "sparc32plus" ; then + echo "TARGET_ARCH=sparc64" >> $config_mak + echo "TARGET_ABI_DIR=sparc" >> $config_mak + echo "#define TARGET_ARCH \"sparc64\"" >> $config_h + echo "#define TARGET_SPARC 1" >> $config_h + echo "#define TARGET_SPARC64 1" >> $config_h + echo "#define TARGET_ABI32 1" >> $config_h elif test "$target_cpu" = "ppc" ; then echo "TARGET_ARCH=ppc" >> $config_mak echo "#define TARGET_ARCH \"ppc\"" >> $config_h echo "#define TARGET_PPC 1" >> $config_h +elif test "$target_cpu" = "ppcemb" ; then + echo "TARGET_ARCH=ppcemb" >> $config_mak + echo "TARGET_ABI_DIR=ppc" >> $config_mak + echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h + echo "#define TARGET_PPC 1" >> $config_h + echo "#define TARGET_PPCEMB 1" >> $config_h elif test "$target_cpu" = "ppc64" ; then echo "TARGET_ARCH=ppc64" >> $config_mak + echo "TARGET_ABI_DIR=ppc" >> $config_mak echo "#define TARGET_ARCH \"ppc64\"" >> $config_h echo "#define TARGET_PPC 1" >> $config_h echo "#define TARGET_PPC64 1" >> $config_h -elif test "$target_cpu" = "ppcemb" ; then - echo "TARGET_ARCH=ppcemb" >> $config_mak - echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h +elif test "$target_cpu" = "ppc64abi32" ; then + echo "TARGET_ARCH=ppc64" >> $config_mak + echo "TARGET_ABI_DIR=ppc" >> $config_mak + echo "#define TARGET_ARCH \"ppc64\"" >> $config_h echo "#define TARGET_PPC 1" >> $config_h - echo "#define TARGET_PPCEMB 1" >> $config_h + echo "#define TARGET_PPC64 1" >> $config_h + echo "#define TARGET_ABI32 1" >> $config_h elif test "$target_cpu" = "x86_64" ; then echo "TARGET_ARCH=x86_64" >> $config_mak echo "#define TARGET_ARCH \"x86_64\"" >> $config_h @@ -1075,16 +1144,24 @@ elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then echo "TARGET_ARCH=mips" >> $config_mak echo "#define TARGET_ARCH \"mips\"" >> $config_h echo "#define TARGET_MIPS 1" >> $config_h + echo "#define TARGET_ABI_MIPSO32 1" >> $config_h elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then echo "TARGET_ARCH=mipsn32" >> $config_mak echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h echo "#define TARGET_MIPS 1" >> $config_h - echo "#define TARGET_MIPSN32 1" >> $config_h + echo "#define TARGET_ABI_MIPSN32 1" >> $config_h elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then echo "TARGET_ARCH=mips64" >> $config_mak echo "#define TARGET_ARCH \"mips64\"" >> $config_h echo "#define TARGET_MIPS 1" >> $config_h echo "#define TARGET_MIPS64 1" >> $config_h + echo "#define TARGET_ABI_MIPSN64 1" >> $config_h +elif test "$target_cpu" = "cris" ; then + echo "TARGET_ARCH=cris" >> $config_mak + echo "#define TARGET_ARCH \"cris\"" >> $config_h + echo "#define TARGET_CRIS 1" >> $config_h + echo "CONFIG_SOFTFLOAT=yes" >> $config_mak + echo "#define CONFIG_SOFTFLOAT 1" >> $config_h elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then echo "TARGET_ARCH=sh4" >> $config_mak echo "#define TARGET_ARCH \"sh4\"" >> $config_h @@ -1124,7 +1201,7 @@ if test "$target_darwin_user" = "yes" ; then echo "#define CONFIG_DARWIN_USER 1" >> $config_h fi -if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then +if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then echo "CONFIG_SOFTFLOAT=yes" >> $config_mak echo "#define CONFIG_SOFTFLOAT 1" >> $config_h fi @@ -1132,33 +1209,10 @@ if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then echo "TARGET_HAS_BFLT=yes" >> $config_mak echo "#define TARGET_HAS_BFLT 1" >> $config_h fi -# sdl defines - -if test "$target_user_only" = "no"; then - if test "$target_softmmu" = "no" -o "$static" = "yes"; then - sdl1=$sdl_static - else - sdl1=$sdl - fi - if test "$sdl1" = "yes" ; then - echo "#define CONFIG_SDL 1" >> $config_h - echo "CONFIG_SDL=yes" >> $config_mak - if test "$target_softmmu" = "no" -o "$static" = "yes"; then - echo "SDL_LIBS=$sdl_static_libs" >> $config_mak - else - echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak - fi - if [ "${aa}" = "yes" ] ; then - echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak - else - echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak - fi - fi -fi - -if test "$cocoa" = "yes" ; then - echo "#define CONFIG_COCOA 1" >> $config_h - echo "CONFIG_COCOA=yes" >> $config_mak +# 32 bit ELF loader in addition to native 64 bit loader? +if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then + echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak + echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h fi test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h @@ -1167,8 +1221,9 @@ done # for target in $targets # build tree in object directory if source path is different from current one if test "$source_path_used" = "yes" ; then - DIRS="tests" + DIRS="tests tests/cris slirp audio" FILES="Makefile tests/Makefile" + FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" for dir in $DIRS ; do mkdir -p $dir done |