diff --git a/configure b/configure index e56c603d04094ddde9e0624420180babd25ea380..2b830710a7ca495f93735c04baf7e10be2281962 100755 --- a/configure +++ b/configure @@ -15,7 +15,6 @@ TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" -TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h" # default parameters prefix="/usr/local" @@ -27,12 +26,11 @@ host_cc="gcc" ar="ar" make="make" strip="strip" -target_cpu="x86" -target_bigendian="default" cpu=`uname -m` +target_list="i386 i386-softmmu arm" case "$cpu" in i386|i486|i586|i686|i86pc|BePC) - cpu="x86" + cpu="i386" ;; armv4l) cpu="armv4l" @@ -71,6 +69,26 @@ case $targetos in *) ;; esac +########################################## +# SDL probe + +cat > $TMPC << EOF +#include +#undef main /* We don't want SDL to override our main() */ +int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } +EOF + +sdl_too_old=no +sdl=no +if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs` 2> /dev/null ; then +_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'` +if test "$_sdlversion" -lt 121 ; then +sdl_too_old=yes +else +sdl=yes +fi +fi + # find source path # XXX: we assume an absolute path is given when launching configure, # except in './configure' case. @@ -104,16 +122,14 @@ for opt do ;; --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` ;; - --target-cpu=*) target_cpu=`echo $opt | cut -d '=' -f 2` - ;; - --target-big-endian) target_bigendian="yes" - ;; - --target-little-endian) target_bigendian="no" + --target-list=*) target_list=${opt#--target-list=} ;; --enable-gprof) gprof="yes" ;; --static) static="yes" ;; + --disable-sdl) sdl="no" + ;; esac done @@ -164,16 +180,6 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu have_gcc3_options="yes" fi -if test "$target_bigendian" = "default" ; then - if test "$target_cpu" = "x86" ; then - target_bigendian="no" - elif test "$target_cpu" = "arm" ; then - target_bigendian="no" - else - target_bigendian="no" - fi -fi - if test x"$1" = x"-h" -o x"$1" = x"--help" ; then cat << EOF @@ -185,7 +191,7 @@ echo "Standard options:" echo " --help print this message" echo " --prefix=PREFIX install in PREFIX [$prefix]" echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" -echo " --target_cpu=CPU set target cpu (x86 or arm) [$target_cpu]" +echo " --target-list=LIST set target list [$target_list]" echo "" echo "Advanced options (experts only):" echo " --source-path=PATH path of source code [$source_path]" @@ -205,94 +211,139 @@ echo "C compiler $cc" echo "make $make" echo "host CPU $cpu" echo "host big endian $bigendian" -echo "target CPU $target_cpu" -echo "target big endian $target_bigendian" +echo "target list $target_list" echo "gprof enabled $gprof" echo "static build $static" +echo "SDL support $sdl" +if test $sdl_too_old = "yes"; then +echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support" +fi + +config_mak="config-host.mak" +config_h="config-host.h" -echo "Creating config.mak and config.h" +echo "Creating $config_mak and $config_h" -echo "# Automatically generated by configure - do not modify" > config.mak -echo "/* Automatically generated by configure - do not modify */" > $TMPH +echo "# Automatically generated by configure - do not modify" > $config_mak +echo "/* Automatically generated by configure - do not modify */" > $config_h -echo "prefix=$prefix" >> config.mak -echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $TMPH -echo "MAKE=$make" >> config.mak -echo "CC=$cc" >> config.mak +echo "prefix=$prefix" >> $config_mak +echo "MAKE=$make" >> $config_mak +echo "CC=$cc" >> $config_mak if test "$have_gcc3_options" = "yes" ; then - echo "HAVE_GCC3_OPTIONS=yes" >> config.mak + echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak fi -echo "HOST_CC=$host_cc" >> config.mak -echo "AR=$ar" >> config.mak -echo "STRIP=$strip -s -R .comment -R .note" >> config.mak -echo "CFLAGS=$CFLAGS" >> config.mak -echo "LDFLAGS=$LDFLAGS" >> config.mak -if test "$cpu" = "x86" ; then - echo "ARCH=i386" >> config.mak - echo "#define HOST_I386 1" >> $TMPH +echo "HOST_CC=$host_cc" >> $config_mak +echo "AR=$ar" >> $config_mak +echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak +echo "CFLAGS=$CFLAGS" >> $config_mak +echo "LDFLAGS=$LDFLAGS" >> $config_mak +if test "$cpu" = "i386" ; then + echo "ARCH=i386" >> $config_mak + echo "#define HOST_I386 1" >> $config_h elif test "$cpu" = "armv4l" ; then - echo "ARCH=arm" >> config.mak - echo "#define HOST_ARM 1" >> $TMPH + echo "ARCH=arm" >> $config_mak + echo "#define HOST_ARM 1" >> $config_h elif test "$cpu" = "powerpc" ; then - echo "ARCH=ppc" >> config.mak - echo "#define HOST_PPC 1" >> $TMPH + echo "ARCH=ppc" >> $config_mak + echo "#define HOST_PPC 1" >> $config_h elif test "$cpu" = "mips" ; then - echo "ARCH=mips" >> config.mak - echo "#define HOST_MIPS 1" >> $TMPH + echo "ARCH=mips" >> $config_mak + echo "#define HOST_MIPS 1" >> $config_h elif test "$cpu" = "s390" ; then - echo "ARCH=s390" >> config.mak - echo "#define HOST_S390 1" >> $TMPH + echo "ARCH=s390" >> $config_mak + echo "#define HOST_S390 1" >> $config_h elif test "$cpu" = "alpha" ; then - echo "ARCH=alpha" >> config.mak - echo "#define HOST_ALPHA 1" >> $TMPH + echo "ARCH=alpha" >> $config_mak + echo "#define HOST_ALPHA 1" >> $config_h elif test "$cpu" = "sparc" ; then - echo "ARCH=sparc" >> config.mak - echo "#define HOST_SPARC 1" >> $TMPH + echo "ARCH=sparc" >> $config_mak + echo "#define HOST_SPARC 1" >> $config_h elif test "$cpu" = "sparc64" ; then - echo "ARCH=sparc64" >> config.mak - echo "#define HOST_SPARC64 1" >> $TMPH + echo "ARCH=sparc64" >> $config_mak + echo "#define HOST_SPARC64 1" >> $config_h elif test "$cpu" = "ia64" ; then - echo "ARCH=ia64" >> config.mak - echo "#define HOST_IA64 1" >> $TMPH + echo "ARCH=ia64" >> $config_mak + echo "#define HOST_IA64 1" >> $config_h else echo "Unsupported CPU" exit 1 fi if test "$bigendian" = "yes" ; then - echo "WORDS_BIGENDIAN=yes" >> config.mak - echo "#define WORDS_BIGENDIAN 1" >> $TMPH + echo "WORDS_BIGENDIAN=yes" >> $config_mak + echo "#define WORDS_BIGENDIAN 1" >> $config_h +fi +echo "#define HAVE_BYTESWAP_H 1" >> $config_h +if test "$gprof" = "yes" ; then + echo "TARGET_GPROF=yes" >> $config_mak + echo "#define HAVE_GPROF 1" >> $config_h +fi +if test "$static" = "yes" ; then + echo "CONFIG_STATIC=yes" >> $config_mak fi +if test "$sdl" = "yes" ; then + echo "CONFIG_SDL=yes" >> $config_mak + echo "#define CONFIG_SDL 1" >> $config_h + echo "SDL_LIBS=`sdl-config --libs`" >> $config_mak + echo "SDL_CFLAGS=`sdl-config --cflags`" >> $config_mak +fi +echo -n "VERSION=" >>$config_mak +head $source_path/VERSION >>$config_mak +echo "" >>$config_mak +echo -n "#define QEMU_VERSION \"" >> $config_h +head $source_path/VERSION >> $config_h +echo "\"" >> $config_h + +echo "SRC_PATH=$source_path" >> $config_mak +echo "TARGET_DIRS=$target_list" >> $config_mak + +for target in $target_list; do + +target_dir="$target" +config_mak=$target_dir/config.mak +config_h=$target_dir/config.h +target_cpu=`echo $target | cut -d '-' -f 1` +target_bigendian="no" +target_softmmu="no" +if expr $target : '.*-softmmu' > /dev/null ; then + target_softmmu="yes" +fi + +echo "Creating $config_mak, $config_h and $target_dir/Makefile" + +mkdir -p $target_dir +ln -sf $source_path/Makefile.target $target_dir/Makefile + +echo "# Automatically generated by configure - do not modify" > $config_mak +echo "/* Automatically generated by configure - do not modify */" > $config_h + -if test "$target_cpu" = "x86" ; then - echo "TARGET_ARCH=i386" >> config.mak - echo "#define TARGET_ARCH \"i386\"" >> $TMPH - echo "#define TARGET_I386 1" >> $TMPH +echo "include ../config-host.mak" >> $config_mak +echo "#include \"../config-host.h\"" >> $config_h +echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $config_h + +if test "$target_cpu" = "i386" ; then + echo "TARGET_ARCH=i386" >> $config_mak + echo "#define TARGET_ARCH \"i386\"" >> $config_h + echo "#define TARGET_I386 1" >> $config_h elif test "$target_cpu" = "arm" ; then - echo "TARGET_ARCH=arm" >> config.mak - echo "#define TARGET_ARCH \"arm\"" >> $TMPH - echo "#define TARGET_ARM 1" >> $TMPH + echo "TARGET_ARCH=arm" >> $config_mak + echo "#define TARGET_ARCH \"arm\"" >> $config_h + echo "#define TARGET_ARM 1" >> $config_h else echo "Unsupported target CPU" exit 1 fi if test "$target_bigendian" = "yes" ; then - echo "TARGET_WORDS_BIGENDIAN=yes" >> config.mak - echo "#define TARGET_WORDS_BIGENDIAN 1" >> $TMPH + echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak + echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h fi - -if test "$gprof" = "yes" ; then - echo "TARGET_GPROF=yes" >> config.mak - echo "#define HAVE_GPROF 1" >> $TMPH -fi -if test "$static" = "yes" ; then - echo "CONFIG_STATIC=yes" >> config.mak +if test "$target_softmmu" = "yes" ; then + echo "CONFIG_SOFTMMU=yes" >> $config_mak + echo "#define CONFIG_SOFTMMU 1" >> $config_h fi -echo -n "VERSION=" >>config.mak -head $source_path/VERSION >>config.mak -echo "" >>config.mak -echo -n "#define QEMU_VERSION \"" >> $TMPH -head $source_path/VERSION >> $TMPH -echo "\"" >> $TMPH + +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 @@ -305,13 +356,5 @@ if test "$source_path_used" = "yes" ; then ln -sf $source_path/$f $f done fi -echo "SRC_PATH=$source_path" >> config.mak - -diff $TMPH config.h >/dev/null 2>&1 -if test $? -ne 0 ; then - mv -f $TMPH config.h -else - echo "config.h is unchanged" -fi -rm -f $TMPO $TMPC $TMPE $TMPS $TMPH +rm -f $TMPO $TMPC $TMPE $TMPS