X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=configure;h=ae10b581caf873200ca5b8cd43d97642ddb0052a;hb=c904d61f78479b46a154273960e5f4e2b22d6b55;hp=ff504b2b3a02975285a7bb1047bba39ee5e4875c;hpb=af5db58e8b8a997fb3849046ec1f5df4527ff8b8;p=qemu diff --git a/configure b/configure index ff504b2..ae10b58 100755 --- a/configure +++ b/configure @@ -25,6 +25,7 @@ cc="gcc" host_cc="gcc" ar="ar" make="make" +install="install" strip="strip" cpu=`uname -m` target_list="" @@ -50,7 +51,7 @@ case "$cpu" in s390) cpu="s390" ;; - sparc) + sparc|sun4[muv]) cpu="sparc" ;; sparc64) @@ -83,6 +84,7 @@ alsa="no" fmod="no" fmod_lib="" fmod_inc="" +bsd="no" linux="no" kqemu="no" profiler="no" @@ -92,6 +94,7 @@ check_gfx="yes" check_gcc="yes" softmmu="yes" user="no" +build_docs="no" # OS specific targetos=`uname -s` @@ -122,6 +125,9 @@ Darwin) bsd="yes" darwin="yes" ;; +SunOS) +solaris="yes" +;; *) oss="yes" linux="yes" @@ -133,47 +139,59 @@ fi esac if [ "$bsd" = "yes" ] ; then - if [ ! "$darwin" = "yes" ] ; then + if [ "$darwin" != "yes" ] ; then make="gmake" fi fi +if [ "$solaris" = "yes" ] ; then + make="gmake" + install="ginstall" + solarisrev=`uname -r | cut -f2 -d.` +fi + # find source path -# XXX: we assume an absolute path is given when launching configure, -# except in './configure' case. -source_path=${0%configure} -source_path=${source_path%/} -source_path_used="yes" -if test -z "$source_path" -o "$source_path" = "." ; then +source_path=`dirname "$0"` +if [ -z "$source_path" ]; then source_path=`pwd` +else + source_path=`cd "$source_path"; pwd` +fi +if test "$source_path" = `pwd` ; then source_path_used="no" +else + source_path_used="yes" fi for opt do + optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` case "$opt" in --help|-h) show_help=yes ;; - --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` + --prefix=*) prefix="$optarg" ;; - --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2` + --interp-prefix=*) interp_prefix="$optarg" ;; - --source-path=*) source_path=`echo $opt | cut -d '=' -f 2` + --source-path=*) source_path="$optarg" + source_path_used="yes" ;; - --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` + --cross-prefix=*) cross_prefix="$optarg" ;; - --cc=*) cc=`echo $opt | cut -d '=' -f 2` + --cc=*) cc="$optarg" ;; - --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2` + --host-cc=*) host_cc="$optarg" ;; - --make=*) make=`echo $opt | cut -d '=' -f 2` + --make=*) make="$optarg" ;; - --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" + --install=*) install="$optarg" ;; - --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" + --extra-cflags=*) CFLAGS="$optarg" ;; - --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` + --extra-ldflags=*) LDFLAGS="$optarg" ;; - --target-list=*) target_list=${opt#--target-list=} + --cpu=*) cpu="$optarg" + ;; + --target-list=*) target_list="$optarg" ;; --enable-gprof) gprof="yes" ;; @@ -189,9 +207,9 @@ for opt do ;; --enable-fmod) fmod="yes" ;; - --fmod-lib=*) fmod_lib=${opt#--fmod-lib=} + --fmod-lib=*) fmod_lib="$optarg" ;; - --fmod-inc=*) fmod_inc=${opt#--fmod-inc=} + --fmod-inc=*) fmod_inc="$optarg" ;; --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ;; @@ -203,7 +221,7 @@ for opt do ;; --enable-profiler) profiler="yes" ;; - --kernel-path=*) kernel_path=${opt#--kernel-path=} + --kernel-path=*) kernel_path="$optarg" ;; --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no" ;; @@ -251,6 +269,7 @@ echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" echo " --cc=CC use C compiler CC [$cc]" 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 " --enable-cocoa enable COCOA (Mac OS X only)" echo " --enable-mingw32 enable Win32 cross compilation with mingw32" @@ -274,6 +293,11 @@ cc="${cross_prefix}${cc}" ar="${cross_prefix}${ar}" strip="${cross_prefix}${strip}" +if [ ! -x "`which $cc`" ] ; then + echo "Compiler $cc could not be found" + exit +fi + if test "$mingw32" = "yes" ; then linux="no" EXESUF=".exe" @@ -284,6 +308,47 @@ if test "$mingw32" = "yes" ; then fi fi +# +# Solaris specific configure tool chain decisions +# +if test "$solaris" = "yes" ; then + # + # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly + # override the check with --disable-gcc-check + # + if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then + solgcc=`which $cc` + if test "$solgcc" = "/usr/sfw/bin/gcc" ; then + echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly." + echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3" + echo "or get the latest patch from SunSolve for gcc" + exit 1 + fi + fi + solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"` + if test -z "$solinst" ; then + echo "Solaris install program not found. Use --install=/usr/ucb/install or" + echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" + echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" + exit 1 + fi + if test "$solinst" = "/usr/sbin/install" ; then + echo "Error: Solaris /usr/sbin/install is not an appropriate install program." + echo "try ginstall from the GNU fileutils available from www.blastwave.org" + echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" + exit 1 + fi + sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"` + if test -z "$sol_ar" ; then + echo "Error: No path includes ar" + if test -f /usr/ccs/bin/ar ; then + echo "Add /usr/ccs/bin to your path and rerun configure" + fi + exit 1 + fi +fi + + if test -z "$target_list" ; then # these targets are portable if [ "$softmmu" = "yes" ] ; then @@ -294,7 +359,7 @@ if test -z "$target_list" ; then target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list" fi else - target_list=$(echo "$target_list" | sed -e 's/,/ /g') + target_list=`echo "$target_list" | sed -e 's/,/ /g'` fi if test -z "$target_list" ; then echo "No targets enabled" @@ -345,15 +410,15 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu have_gcc3_options="yes" fi -# Check for gcc4 +# Check for gcc4, error if pre-gcc4 if test "$check_gcc" = "yes" ; then cat > $TMPC <= 4 -#error gcc4 +#if __GNUC__ < 4 +#error gcc3 #endif int main(){return 0;} EOF - if ! $cc -o $TMPO $TMPC 2>/dev/null ; then + if $cc -o $TMPO $TMPC 2>/dev/null ; then echo "ERROR: \"$cc\" looks like gcc 4.x" echo "QEMU is known to have problems when compiled with gcc 4.x" echo "It is recommended that you use gcc 3.x to build QEMU" @@ -413,6 +478,11 @@ fi # sdl compile test fi # cross compilation fi # -z $sdl +# Check if tools are available to build documentation. +if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then + build_docs="yes" +fi + if test "$mingw32" = "yes" ; then if test -z "$prefix" ; then prefix="/c/Program Files/Qemu" @@ -442,6 +512,7 @@ echo "Source path $source_path" echo "C compiler $cc" echo "Host C compiler $host_cc" echo "make $make" +echo "install $install" echo "host CPU $cpu" echo "host big endian $bigendian" echo "target list $target_list" @@ -460,7 +531,6 @@ echo "Adlib support $adlib" echo "CoreAudio support $coreaudio" echo "ALSA support $alsa" echo "DSound support $dsound" -echo -n "FMOD support $fmod" if test "$fmod" = "yes"; then if test -z $fmod_lib || test -z $fmod_inc; then echo @@ -469,10 +539,13 @@ if test "$fmod" = "yes"; then echo exit 1 fi - echo -n " (lib='$fmod_lib' include='$fmod_inc')" + fmod_support=" (lib='$fmod_lib' include='$fmod_inc')" +else + fmod_support="" fi -echo "" +echo "FMOD support $fmod $fmod_support" echo "kqemu support $kqemu" +echo "Documentation $build_docs" if test $sdl_too_old = "yes"; then echo "-> Your SDL version is too old - please upgrade to have SDL support" @@ -480,7 +553,6 @@ fi #if test "$sdl_static" = "no"; then # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" #fi - config_mak="config-host.mak" config_h="config-host.h" @@ -497,6 +569,7 @@ echo "datadir=$datadir" >> $config_mak echo "docdir=$docdir" >> $config_mak echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h echo "MAKE=$make" >> $config_mak +echo "INSTALL=$install" >> $config_mak echo "CC=$cc" >> $config_mak if test "$have_gcc3_options" = "yes" ; then echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak @@ -562,6 +635,10 @@ if test "$darwin" = "yes" ; then echo "CONFIG_DARWIN=yes" >> $config_mak echo "#define CONFIG_DARWIN 1" >> $config_h fi +if test "$solaris" = "yes" ; then + echo "CONFIG_SOLARIS=yes" >> $config_mak + echo "#define HOST_SOLARIS $solarisrev" >> $config_h +fi if test "$gdbstub" = "yes" ; then echo "CONFIG_GDBSTUB=yes" >> $config_mak echo "#define CONFIG_GDBSTUB 1" >> $config_h @@ -607,15 +684,18 @@ if test "$fmod" = "yes" ; then echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak echo "#define CONFIG_FMOD 1" >> $config_h 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 +qemu_version=`head $source_path/VERSION` +echo "VERSION=$qemu_version" >>$config_mak +echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h echo "SRC_PATH=$source_path" >> $config_mak +if [ "$source_path_used" = "yes" ]; then + echo "VPATH=$source_path" >> $config_mak +fi echo "TARGET_DIRS=$target_list" >> $config_mak +if [ "$build_docs" = "yes" ] ; then + echo "BUILD_DOCS=yes" >> $config_mak +fi # XXX: suppress that if [ "$bsd" = "yes" ] ; then @@ -625,7 +705,6 @@ if [ "$bsd" = "yes" ] ; then fi for target in $target_list; do - target_dir="$target" config_mak=$target_dir/config.mak config_h=$target_dir/config.h @@ -649,7 +728,7 @@ fi if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ -a "$sdl" = "no" -a "$cocoa" = "no" ; then echo "ERROR: QEMU requires SDL or Cocoa for graphical output" - echo "To build QEMU with graphical output configure with --disable-gfx-check" + echo "To build QEMU without graphical output configure with --disable-gfx-check" echo "Note that this will disable all output from the virtual graphics card." exit 1; fi @@ -665,7 +744,12 @@ if test "$target_user_only" = "no" ; then mkdir -p $target_dir/slirp fi -ln -sf $source_path/Makefile.target $target_dir/Makefile +# +# don't use ln -sf as not all "ln -sf" over write the file/link +# +rm -f $target_dir/Makefile +ln -s $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 @@ -718,6 +802,10 @@ 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 +elif test "$target_cpu" = "sh4" ; then + echo "TARGET_ARCH=sh4" >> $config_mak + echo "#define TARGET_ARCH \"sh4\"" >> $config_h + echo "#define TARGET_SH4 1" >> $config_h else echo "Unsupported target CPU" exit 1 @@ -755,11 +843,11 @@ if test "$target_user_only" = "no"; then else echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak fi - echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak if [ "${aa}" = "yes" ] ; then - echo -n " `aalib-config --cflags`" >> $config_mak ; + echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak + else + echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak fi - echo "" >> $config_mak fi fi @@ -777,8 +865,10 @@ if test "$source_path_used" = "yes" ; then for dir in $DIRS ; do mkdir -p $dir done + # remove the link and recreate it, as not all "ln -sf" overwrite the link for f in $FILES ; do - ln -sf $source_path/$f $f + rm -f $f + ln -s $source_path/$f $f done fi