17d13299dSbellard#!/bin/sh 27d13299dSbellard# 33ef693a0Sbellard# qemu configure script (c) 2003 Fabrice Bellard 47d13299dSbellard# 57d13299dSbellard# set temporary file name 67d13299dSbellardif test ! -z "$TMPDIR" ; then 77d13299dSbellard TMPDIR1="${TMPDIR}" 87d13299dSbellardelif test ! -z "$TEMPDIR" ; then 97d13299dSbellard TMPDIR1="${TEMPDIR}" 107d13299dSbellardelse 117d13299dSbellard TMPDIR1="/tmp" 127d13299dSbellardfi 137d13299dSbellard 143ef693a0SbellardTMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" 153ef693a0SbellardTMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" 163ef693a0SbellardTMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" 173ef693a0SbellardTMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" 187d13299dSbellard 197d13299dSbellard# default parameters 2011d9f695Sbellardprefix="" 211e43adfcSbellardinterp_prefix="/usr/gnemul/qemu-%M" 2243ce4dfeSbellardstatic="no" 237d13299dSbellardcross_prefix="" 247d13299dSbellardcc="gcc" 257d13299dSbellardhost_cc="gcc" 267d13299dSbellardar="ar" 277d13299dSbellardmake="make" 287d13299dSbellardstrip="strip" 297d13299dSbellardcpu=`uname -m` 30*5327cf48Sbellardtarget_list="" 317d13299dSbellardcase "$cpu" in 327d13299dSbellard i386|i486|i586|i686|i86pc|BePC) 3397a847bcSbellard cpu="i386" 347d13299dSbellard ;; 35808c4954Sbellard armv4b) 36808c4954Sbellard cpu="armv4b" 37808c4954Sbellard ;; 387d13299dSbellard armv4l) 397d13299dSbellard cpu="armv4l" 407d13299dSbellard ;; 417d13299dSbellard alpha) 427d13299dSbellard cpu="alpha" 437d13299dSbellard ;; 44295defa5Sbellard "Power Macintosh"|ppc|ppc64) 457d13299dSbellard cpu="powerpc" 467d13299dSbellard ;; 477d13299dSbellard mips) 487d13299dSbellard cpu="mips" 497d13299dSbellard ;; 50fb3e5849Sbellard s390) 51fb3e5849Sbellard cpu="s390" 52fb3e5849Sbellard ;; 53ae228531Sbellard sparc) 54ae228531Sbellard cpu="sparc" 55ae228531Sbellard ;; 56ae228531Sbellard sparc64) 57ae228531Sbellard cpu="sparc64" 58ae228531Sbellard ;; 59a8baa8c5Sbellard ia64) 60a8baa8c5Sbellard cpu="ia64" 61a8baa8c5Sbellard ;; 6238e584a0Sbellard m68k) 6338e584a0Sbellard cpu="m68k" 6438e584a0Sbellard ;; 65bc51c5c9Sbellard x86_64|amd64) 660b0babc6Sbellard cpu="x86_64" 67bc51c5c9Sbellard ;; 687d13299dSbellard *) 697d13299dSbellard cpu="unknown" 707d13299dSbellard ;; 717d13299dSbellardesac 727d13299dSbellardgprof="no" 737d13299dSbellardbigendian="no" 7467b915a5Sbellardmingw32="no" 7567b915a5SbellardEXESUF="" 7667b915a5Sbellardgdbstub="yes" 77443f1376Sbellardslirp="yes" 78fb065187Sbellardadlib="no" 79fb065187Sbellardoss="no" 80102a52e4Sbellardfmod="no" 81102a52e4Sbellardfmod_lib="" 82102a52e4Sbellardfmod_inc="" 83*5327cf48Sbellardlinux="no" 847d13299dSbellard 857d13299dSbellard# OS specific 867d13299dSbellardtargetos=`uname -s` 877d13299dSbellardcase $targetos in 8867b915a5SbellardMINGW32*) 8967b915a5Sbellardmingw32="yes" 9067b915a5Sbellard;; 917d3505c5SbellardFreeBSD) 927d3505c5Sbellardbsd="yes" 93fb065187Sbellardoss="yes" 947d3505c5Sbellard;; 957d3505c5SbellardNetBSD) 967d3505c5Sbellardbsd="yes" 97fb065187Sbellardoss="yes" 987d3505c5Sbellard;; 997d3505c5SbellardOpenBSD) 1007d3505c5Sbellardbsd="yes" 101fb065187Sbellardoss="yes" 1027d3505c5Sbellard;; 10383fb7adfSbellardDarwin) 10483fb7adfSbellardbsd="yes" 10583fb7adfSbellarddarwin="yes" 10683fb7adfSbellard;; 107fb065187Sbellard*) 108fb065187Sbellardoss="yes" 109*5327cf48Sbellardlinux="yes" 110fb065187Sbellard;; 1117d13299dSbellardesac 1127d13299dSbellard 1137d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 11483fb7adfSbellard if [ ! "$darwin" = "yes" ] ; then 1157d3505c5Sbellard make="gmake" 11683fb7adfSbellard fi 1177d3505c5Sbellardfi 1187d3505c5Sbellard 1197d13299dSbellard# find source path 1207d13299dSbellard# XXX: we assume an absolute path is given when launching configure, 1217d13299dSbellard# except in './configure' case. 1227d13299dSbellardsource_path=${0%configure} 1237d13299dSbellardsource_path=${source_path%/} 1247d13299dSbellardsource_path_used="yes" 1257d13299dSbellardif test -z "$source_path" -o "$source_path" = "." ; then 1267d13299dSbellard source_path=`pwd` 1277d13299dSbellard source_path_used="no" 1287d13299dSbellardfi 1297d13299dSbellard 1307d13299dSbellardfor opt do 1317d13299dSbellard case "$opt" in 1327d13299dSbellard --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` 1337d13299dSbellard ;; 13432ce6337Sbellard --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2` 13532ce6337Sbellard ;; 1367d13299dSbellard --source-path=*) source_path=`echo $opt | cut -d '=' -f 2` 1377d13299dSbellard ;; 1387d13299dSbellard --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` 1397d13299dSbellard ;; 1407d13299dSbellard --cc=*) cc=`echo $opt | cut -d '=' -f 2` 1417d13299dSbellard ;; 1427d13299dSbellard --make=*) make=`echo $opt | cut -d '=' -f 2` 1437d13299dSbellard ;; 1447d13299dSbellard --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" 1457d13299dSbellard ;; 1467d13299dSbellard --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" 1477d13299dSbellard ;; 1487d13299dSbellard --extra-libs=*) extralibs=${opt#--extra-libs=} 1497d13299dSbellard ;; 1507d13299dSbellard --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` 1517d13299dSbellard ;; 15297a847bcSbellard --target-list=*) target_list=${opt#--target-list=} 153de83cd02Sbellard ;; 1547d13299dSbellard --enable-gprof) gprof="yes" 1557d13299dSbellard ;; 15643ce4dfeSbellard --static) static="yes" 15743ce4dfeSbellard ;; 15897a847bcSbellard --disable-sdl) sdl="no" 15997a847bcSbellard ;; 160102a52e4Sbellard --enable-fmod) fmod="yes" 161102a52e4Sbellard ;; 162102a52e4Sbellard --fmod-lib=*) fmod_lib=${opt#--fmod-lib=} 163102a52e4Sbellard ;; 164102a52e4Sbellard --fmod-inc=*) fmod_inc=${opt#--fmod-inc=} 165102a52e4Sbellard ;; 16667b915a5Sbellard --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" 16767b915a5Sbellard ;; 168443f1376Sbellard --disable-slirp) slirp="no" 169c20709aaSbellard ;; 170fb065187Sbellard --enable-adlib) adlib="yes" 171fb065187Sbellard ;; 1727d13299dSbellard esac 1737d13299dSbellarddone 1747d13299dSbellard 1757d13299dSbellard# Checking for CFLAGS 1767d13299dSbellardif test -z "$CFLAGS"; then 1777d13299dSbellard CFLAGS="-O2" 1787d13299dSbellardfi 1797d13299dSbellard 1807d13299dSbellardcc="${cross_prefix}${cc}" 1817d13299dSbellardar="${cross_prefix}${ar}" 1827d13299dSbellardstrip="${cross_prefix}${strip}" 1837d13299dSbellard 18467b915a5Sbellardif test "$mingw32" = "yes" ; then 185*5327cf48Sbellard linux="no" 18667b915a5Sbellard EXESUF=".exe" 18767b915a5Sbellard gdbstub="no" 1889f059ecaSbellard oss="no" 18967b915a5Sbellardfi 19067b915a5Sbellard 191*5327cf48Sbellardif test -z "$target_list" ; then 192*5327cf48Sbellard# these targets are portable 193*5327cf48Sbellard target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu" 194*5327cf48Sbellard# the following are Linux specific 195*5327cf48Sbellard if [ "$linux" = "yes" ] ; then 196*5327cf48Sbellard target_list="i386-user i386 arm-user armeb-user sparc-user ppc-user $target_list" 197*5327cf48Sbellard fi 198*5327cf48Sbellardfi 199*5327cf48Sbellard 2007d13299dSbellardif test -z "$cross_prefix" ; then 2017d13299dSbellard 2027d13299dSbellard# --- 2037d13299dSbellard# big/little endian test 2047d13299dSbellardcat > $TMPC << EOF 2057d13299dSbellard#include <inttypes.h> 2067d13299dSbellardint main(int argc, char ** argv){ 2077d13299dSbellard volatile uint32_t i=0x01234567; 2087d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 2097d13299dSbellard} 2107d13299dSbellardEOF 2117d13299dSbellard 2127d13299dSbellardif $cc -o $TMPE $TMPC 2>/dev/null ; then 2137d13299dSbellard$TMPE && bigendian="yes" 2147d13299dSbellardelse 2157d13299dSbellardecho big/little test failed 2167d13299dSbellardfi 2177d13299dSbellard 2187d13299dSbellardelse 2197d13299dSbellard 2207d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 221808c4954Sbellardif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then 2227d13299dSbellard bigendian="yes" 2237d13299dSbellardfi 2247d13299dSbellard 2257d13299dSbellardfi 2267d13299dSbellard 227e8cd23deSbellard# check gcc options support 22804369ff2Sbellardcat > $TMPC <<EOF 22904369ff2Sbellardint main(void) { 23004369ff2Sbellard} 23104369ff2SbellardEOF 23204369ff2Sbellard 233e8cd23deSbellardhave_gcc3_options="no" 234e8cd23deSbellardif $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then 235e8cd23deSbellard have_gcc3_options="yes" 23604369ff2Sbellardfi 237ca735206Sbellard 23811d9f695Sbellard########################################## 23911d9f695Sbellard# SDL probe 24011d9f695Sbellard 24111d9f695Sbellardsdl_too_old=no 24211d9f695Sbellard 24311d9f695Sbellardif test -z "$sdl" ; then 24411d9f695Sbellard 245a6e022adSbellardsdl_config="sdl-config" 246a6e022adSbellardsdl=no 2477c1f25b4Sbellardsdl_static=no 248a6e022adSbellard 249a6e022adSbellardif test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 250a6e022adSbellard# win32 cross compilation case 251a6e022adSbellard sdl_config="i386-mingw32msvc-sdl-config" 252a6e022adSbellard sdl=yes 253a6e022adSbellardelse 254a6e022adSbellard# normal SDL probe 25511d9f695Sbellardcat > $TMPC << EOF 25611d9f695Sbellard#include <SDL.h> 25711d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 25811d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 25911d9f695SbellardEOF 26011d9f695Sbellard 261a6e022adSbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then 262a6e022adSbellard_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 26311d9f695Sbellardif test "$_sdlversion" -lt 121 ; then 26411d9f695Sbellardsdl_too_old=yes 26511d9f695Sbellardelse 26611d9f695Sbellardsdl=yes 26711d9f695Sbellardfi 2687c1f25b4Sbellard 2697c1f25b4Sbellard# static link with sdl ? 2707c1f25b4Sbellardif test "$sdl" = "yes" ; then 2717c1f25b4Sbellardaa="no" 2727c1f25b4Sbellard`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes" 2737c1f25b4Sbellardsdl_static_libs=`$sdl_config --static-libs` 2747c1f25b4Sbellardif [ "$aa" = "yes" ] ; then 275d8d8aa4eSbellard sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 27611d9f695Sbellardfi 27711d9f695Sbellard 2787c1f25b4Sbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 2797c1f25b4Sbellard sdl_static=yes 2807c1f25b4Sbellardfi 2817c1f25b4Sbellard 2827c1f25b4Sbellardfi # static link 2837c1f25b4Sbellard 2847c1f25b4Sbellardfi # sdl compile test 2857c1f25b4Sbellard 286a6e022adSbellardfi # cross compilation 287a6e022adSbellardfi # -z $sdl 28811d9f695Sbellard 2897d13299dSbellardif test x"$1" = x"-h" -o x"$1" = x"--help" ; then 2907d13299dSbellardcat << EOF 2917d13299dSbellard 2927d13299dSbellardUsage: configure [options] 2937d13299dSbellardOptions: [defaults in brackets after descriptions] 2947d13299dSbellard 2957d13299dSbellardEOF 2967d13299dSbellardecho "Standard options:" 2977d13299dSbellardecho " --help print this message" 2987d13299dSbellardecho " --prefix=PREFIX install in PREFIX [$prefix]" 2991e43adfcSbellardecho " --interp-prefix=PREFIX where to find shared libraries, etc." 3001e43adfcSbellardecho " use %M for cpu name [$interp_prefix]" 30197a847bcSbellardecho " --target-list=LIST set target list [$target_list]" 3027d13299dSbellardecho "" 3037d13299dSbellardecho "Advanced options (experts only):" 3047d13299dSbellardecho " --source-path=PATH path of source code [$source_path]" 3057d13299dSbellardecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 3067d13299dSbellardecho " --cc=CC use C compiler CC [$cc]" 3077d13299dSbellardecho " --make=MAKE use specified make [$make]" 30843ce4dfeSbellardecho " --static enable static build [$static]" 30967b915a5Sbellardecho " --enable-mingw32 enable Win32 cross compilation with mingw32" 310102a52e4Sbellardecho " --enable-fmod enable FMOD audio output driver" 311102a52e4Sbellardecho " --fmod-lib path to FMOD library" 312102a52e4Sbellardecho " --fmod-inc path to FMOD includes" 3137d13299dSbellardecho "" 3147d13299dSbellardecho "NOTE: The object files are build at the place where configure is launched" 3157d13299dSbellardexit 1 3167d13299dSbellardfi 3177d13299dSbellard 31811d9f695Sbellardif test "$mingw32" = "yes" ; then 31911d9f695Sbellardif test -z "$prefix" ; then 32011d9f695Sbellard prefix="/c/Program Files/Qemu" 32111d9f695Sbellardfi 32211d9f695Sbellardmandir="$prefix" 3237efa4387Sbellarddatadir="$prefix" 3241f50f8d1Sbellarddocdir="$prefix" 32511d9f695Sbellardbindir="$prefix" 32611d9f695Sbellardelse 32711d9f695Sbellardif test -z "$prefix" ; then 32811d9f695Sbellard prefix="/usr/local" 32911d9f695Sbellardfi 3305a67135aSbellardmandir="$prefix/share/man" 3317efa4387Sbellarddatadir="$prefix/share/qemu" 3321f50f8d1Sbellarddocdir="$prefix/share/doc/qemu" 33311d9f695Sbellardbindir="$prefix/bin" 33411d9f695Sbellardfi 3355a67135aSbellard 3367d13299dSbellardecho "Install prefix $prefix" 3377efa4387Sbellardecho "BIOS directory $datadir" 33811d9f695Sbellardecho "binary directory $bindir" 33911d9f695Sbellardif test "$mingw32" = "no" ; then 34011d9f695Sbellardecho "Manual directory $mandir" 34143ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 34211d9f695Sbellardfi 3435a67135aSbellardecho "Source path $source_path" 3447d13299dSbellardecho "C compiler $cc" 3457d13299dSbellardecho "make $make" 346a98fd896Sbellardecho "host CPU $cpu" 347de83cd02Sbellardecho "host big endian $bigendian" 34897a847bcSbellardecho "target list $target_list" 3497d13299dSbellardecho "gprof enabled $gprof" 35043ce4dfeSbellardecho "static build $static" 35197a847bcSbellardecho "SDL support $sdl" 3527c1f25b4Sbellardecho "SDL static link $sdl_static" 35367b915a5Sbellardecho "mingw32 support $mingw32" 354fb065187Sbellardecho "Adlib support $adlib" 355102a52e4Sbellardecho -n "FMOD support $fmod" 356102a52e4Sbellardif test $fmod = "yes"; then 357102a52e4Sbellard echo -n " (lib='$fmod_lib' include='$fmod_inc')" 358102a52e4Sbellardfi 359102a52e4Sbellardecho "" 36067b915a5Sbellard 36197a847bcSbellardif test $sdl_too_old = "yes"; then 36297a847bcSbellardecho "-> Your SDL version is too old - please upgrade to have FFplay/SDL support" 363e8cd23deSbellardfi 3647c1f25b4Sbellardif test "$sdl_static" = "no"; then 3657c1f25b4Sbellard echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 3667c1f25b4Sbellardfi 36797a847bcSbellard 36897a847bcSbellardconfig_mak="config-host.mak" 36997a847bcSbellardconfig_h="config-host.h" 37097a847bcSbellard 3717c1f25b4Sbellard#echo "Creating $config_mak and $config_h" 37297a847bcSbellard 37397a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 37497a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 37597a847bcSbellard 37697a847bcSbellardecho "prefix=$prefix" >> $config_mak 37711d9f695Sbellardecho "bindir=$bindir" >> $config_mak 3785a67135aSbellardecho "mandir=$mandir" >> $config_mak 3797efa4387Sbellardecho "datadir=$datadir" >> $config_mak 3801f50f8d1Sbellardecho "docdir=$docdir" >> $config_mak 3817efa4387Sbellardecho "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h 38297a847bcSbellardecho "MAKE=$make" >> $config_mak 38397a847bcSbellardecho "CC=$cc" >> $config_mak 38497a847bcSbellardif test "$have_gcc3_options" = "yes" ; then 38597a847bcSbellard echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak 38697a847bcSbellardfi 38797a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak 38897a847bcSbellardecho "AR=$ar" >> $config_mak 38997a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak 39097a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak 39197a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak 39267b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak 39397a847bcSbellardif test "$cpu" = "i386" ; then 39497a847bcSbellard echo "ARCH=i386" >> $config_mak 39597a847bcSbellard echo "#define HOST_I386 1" >> $config_h 3960b0babc6Sbellardelif test "$cpu" = "x86_64" ; then 3970b0babc6Sbellard echo "ARCH=x86_64" >> $config_mak 3980b0babc6Sbellard echo "#define HOST_X86_64 1" >> $config_h 399808c4954Sbellardelif test "$cpu" = "armv4b" ; then 400808c4954Sbellard echo "ARCH=arm" >> $config_mak 401808c4954Sbellard echo "#define HOST_ARM 1" >> $config_h 4027d13299dSbellardelif test "$cpu" = "armv4l" ; then 40397a847bcSbellard echo "ARCH=arm" >> $config_mak 40497a847bcSbellard echo "#define HOST_ARM 1" >> $config_h 4057d13299dSbellardelif test "$cpu" = "powerpc" ; then 40697a847bcSbellard echo "ARCH=ppc" >> $config_mak 40797a847bcSbellard echo "#define HOST_PPC 1" >> $config_h 4087d13299dSbellardelif test "$cpu" = "mips" ; then 40997a847bcSbellard echo "ARCH=mips" >> $config_mak 41097a847bcSbellard echo "#define HOST_MIPS 1" >> $config_h 411fb3e5849Sbellardelif test "$cpu" = "s390" ; then 41297a847bcSbellard echo "ARCH=s390" >> $config_mak 41397a847bcSbellard echo "#define HOST_S390 1" >> $config_h 414295defa5Sbellardelif test "$cpu" = "alpha" ; then 41597a847bcSbellard echo "ARCH=alpha" >> $config_mak 41697a847bcSbellard echo "#define HOST_ALPHA 1" >> $config_h 417ae228531Sbellardelif test "$cpu" = "sparc" ; then 41897a847bcSbellard echo "ARCH=sparc" >> $config_mak 41997a847bcSbellard echo "#define HOST_SPARC 1" >> $config_h 420ae228531Sbellardelif test "$cpu" = "sparc64" ; then 42197a847bcSbellard echo "ARCH=sparc64" >> $config_mak 42297a847bcSbellard echo "#define HOST_SPARC64 1" >> $config_h 423a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then 42497a847bcSbellard echo "ARCH=ia64" >> $config_mak 42597a847bcSbellard echo "#define HOST_IA64 1" >> $config_h 42638e584a0Sbellardelif test "$cpu" = "m68k" ; then 42738ca2abcSbellard echo "ARCH=m68k" >> $config_mak 42838ca2abcSbellard echo "#define HOST_M68K 1" >> $config_h 4297d13299dSbellardelse 4307d13299dSbellard echo "Unsupported CPU" 4317d13299dSbellard exit 1 4327d13299dSbellardfi 4337d13299dSbellardif test "$bigendian" = "yes" ; then 43497a847bcSbellard echo "WORDS_BIGENDIAN=yes" >> $config_mak 43597a847bcSbellard echo "#define WORDS_BIGENDIAN 1" >> $config_h 43697a847bcSbellardfi 43767b915a5Sbellardif test "$mingw32" = "yes" ; then 43867b915a5Sbellard echo "CONFIG_WIN32=yes" >> $config_mak 43911d9f695Sbellard echo "#define CONFIG_WIN32 1" >> $config_h 4407d3505c5Sbellardelif test -f "/usr/include/byteswap.h" ; then 44197a847bcSbellard echo "#define HAVE_BYTESWAP_H 1" >> $config_h 44267b915a5Sbellardfi 44383fb7adfSbellardif test "$darwin" = "yes" ; then 44483fb7adfSbellard echo "CONFIG_DARWIN=yes" >> $config_mak 44583fb7adfSbellard echo "#define CONFIG_DARWIN 1" >> $config_h 44683fb7adfSbellardfi 44767b915a5Sbellardif test "$gdbstub" = "yes" ; then 44867b915a5Sbellard echo "CONFIG_GDBSTUB=yes" >> $config_mak 44967b915a5Sbellard echo "#define CONFIG_GDBSTUB 1" >> $config_h 45067b915a5Sbellardfi 45197a847bcSbellardif test "$gprof" = "yes" ; then 45297a847bcSbellard echo "TARGET_GPROF=yes" >> $config_mak 45397a847bcSbellard echo "#define HAVE_GPROF 1" >> $config_h 45497a847bcSbellardfi 45597a847bcSbellardif test "$static" = "yes" ; then 45697a847bcSbellard echo "CONFIG_STATIC=yes" >> $config_mak 45750863472Sbellard echo "#define CONFIG_STATIC 1" >> $config_h 45897a847bcSbellardfi 459c20709aaSbellardif test "$slirp" = "yes" ; then 460c20709aaSbellard echo "CONFIG_SLIRP=yes" >> $config_mak 461c20709aaSbellard echo "#define CONFIG_SLIRP 1" >> $config_h 462c20709aaSbellardfi 463fb065187Sbellardif test "$adlib" = "yes" ; then 464fb065187Sbellard echo "CONFIG_ADLIB=yes" >> $config_mak 465fb065187Sbellard echo "#define CONFIG_ADLIB 1" >> $config_h 466fb065187Sbellardfi 467fb065187Sbellardif test "$oss" = "yes" ; then 468fb065187Sbellard echo "CONFIG_OSS=yes" >> $config_mak 469fb065187Sbellard echo "#define CONFIG_OSS 1" >> $config_h 470fb065187Sbellardfi 471102a52e4Sbellardif test "$fmod" = "yes" ; then 472102a52e4Sbellard echo "CONFIG_FMOD=yes" >> $config_mak 473102a52e4Sbellard echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 474102a52e4Sbellard echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 475102a52e4Sbellard echo "#define CONFIG_FMOD 1" >> $config_h 476102a52e4Sbellardfi 47797a847bcSbellardecho -n "VERSION=" >>$config_mak 47897a847bcSbellardhead $source_path/VERSION >>$config_mak 47997a847bcSbellardecho "" >>$config_mak 48097a847bcSbellardecho -n "#define QEMU_VERSION \"" >> $config_h 48197a847bcSbellardhead $source_path/VERSION >> $config_h 48297a847bcSbellardecho "\"" >> $config_h 48397a847bcSbellard 48497a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak 48597a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak 48697a847bcSbellard 48783fb7adfSbellard# XXX: suppress that 4887d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 48943003046Sbellard echo "#define O_LARGEFILE 0" >> $config_h 49043003046Sbellard echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 4917d3505c5Sbellard echo "#define _BSD 1" >> $config_h 4927d3505c5Sbellardfi 4937d3505c5Sbellard 49497a847bcSbellardfor target in $target_list; do 49597a847bcSbellard 49697a847bcSbellardtarget_dir="$target" 49797a847bcSbellardconfig_mak=$target_dir/config.mak 49897a847bcSbellardconfig_h=$target_dir/config.h 49997a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1` 50097a847bcSbellardtarget_bigendian="no" 501808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes 5021e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes 50367867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes 50497a847bcSbellardtarget_softmmu="no" 50597a847bcSbellardif expr $target : '.*-softmmu' > /dev/null ; then 50697a847bcSbellard target_softmmu="yes" 5077d13299dSbellardfi 508997344f3Sbellardtarget_user_only="no" 509997344f3Sbellardif expr $target : '.*-user' > /dev/null ; then 510997344f3Sbellard target_user_only="yes" 511997344f3Sbellardfi 512de83cd02Sbellard 5137c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 51497a847bcSbellard 51597a847bcSbellardmkdir -p $target_dir 516808c4954Sbellardif test "$target" = "arm-user" -o "$target" = "armeb-user" ; then 51769de927cSbellard mkdir -p $target_dir/nwfpe 51869de927cSbellardfi 519a7e61ed4Sbellardif test "$target_user_only" = "no" ; then 520a7e61ed4Sbellard mkdir -p $target_dir/slirp 521a7e61ed4Sbellardfi 52269de927cSbellard 52397a847bcSbellardln -sf $source_path/Makefile.target $target_dir/Makefile 52497a847bcSbellard 52597a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 52697a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 52797a847bcSbellard 52897a847bcSbellard 52997a847bcSbellardecho "include ../config-host.mak" >> $config_mak 53097a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h 5311e43adfcSbellard 5321e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 5331e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 53497a847bcSbellard 53597a847bcSbellardif test "$target_cpu" = "i386" ; then 53697a847bcSbellard echo "TARGET_ARCH=i386" >> $config_mak 53797a847bcSbellard echo "#define TARGET_ARCH \"i386\"" >> $config_h 53897a847bcSbellard echo "#define TARGET_I386 1" >> $config_h 539808c4954Sbellardelif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then 54097a847bcSbellard echo "TARGET_ARCH=arm" >> $config_mak 54197a847bcSbellard echo "#define TARGET_ARCH \"arm\"" >> $config_h 54297a847bcSbellard echo "#define TARGET_ARM 1" >> $config_h 5431e43adfcSbellardelif test "$target_cpu" = "sparc" ; then 5441e43adfcSbellard echo "TARGET_ARCH=sparc" >> $config_mak 5451e43adfcSbellard echo "#define TARGET_ARCH \"sparc\"" >> $config_h 5461e43adfcSbellard echo "#define TARGET_SPARC 1" >> $config_h 54767867308Sbellardelif test "$target_cpu" = "ppc" ; then 54867867308Sbellard echo "TARGET_ARCH=ppc" >> $config_mak 54967867308Sbellard echo "#define TARGET_ARCH \"ppc\"" >> $config_h 55067867308Sbellard echo "#define TARGET_PPC 1" >> $config_h 5510b0babc6Sbellardelif test "$target_cpu" = "x86_64" ; then 5520b0babc6Sbellard echo "TARGET_ARCH=x86_64" >> $config_mak 5530b0babc6Sbellard echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 5540b0babc6Sbellard echo "#define TARGET_I386 1" >> $config_h 5550b0babc6Sbellard echo "#define TARGET_X86_64 1" >> $config_h 556de83cd02Sbellardelse 557de83cd02Sbellard echo "Unsupported target CPU" 558de83cd02Sbellard exit 1 559de83cd02Sbellardfi 560de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 56197a847bcSbellard echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 56297a847bcSbellard echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 56397a847bcSbellardfi 56497a847bcSbellardif test "$target_softmmu" = "yes" ; then 56597a847bcSbellard echo "CONFIG_SOFTMMU=yes" >> $config_mak 56697a847bcSbellard echo "#define CONFIG_SOFTMMU 1" >> $config_h 567de83cd02Sbellardfi 568997344f3Sbellardif test "$target_user_only" = "yes" ; then 569997344f3Sbellard echo "CONFIG_USER_ONLY=yes" >> $config_mak 570997344f3Sbellard echo "#define CONFIG_USER_ONLY 1" >> $config_h 571997344f3Sbellardfi 572de83cd02Sbellard 5737c1f25b4Sbellard# sdl defines 5747c1f25b4Sbellard 5757c1f25b4Sbellardif test "$target_user_only" = "no"; then 5767c1f25b4Sbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 577dbb2c921Sbellard sdl1=$sdl_static 5787c1f25b4Sbellard else 579dbb2c921Sbellard sdl1=$sdl 580dbb2c921Sbellard fi 581dbb2c921Sbellard if test "$sdl1" = "yes" ; then 5827c1f25b4Sbellard echo "#define CONFIG_SDL 1" >> $config_h 5837c1f25b4Sbellard echo "CONFIG_SDL=yes" >> $config_mak 584dbb2c921Sbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 585dbb2c921Sbellard echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 586dbb2c921Sbellard else 5877c1f25b4Sbellard echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 5887c1f25b4Sbellard fi 5897c1f25b4Sbellard echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 5907c1f25b4Sbellard if [ "${aa}" = "yes" ] ; then 5917c1f25b4Sbellard echo -n " `aalib-config --cflags`" >> $config_mak ; 5927c1f25b4Sbellard fi 5937c1f25b4Sbellard echo "" >> $config_mak 5947c1f25b4Sbellard fi 595dbb2c921Sbellardfi 5967c1f25b4Sbellard 59797a847bcSbellarddone # for target in $targets 5987d13299dSbellard 5997d13299dSbellard# build tree in object directory if source path is different from current one 6007d13299dSbellardif test "$source_path_used" = "yes" ; then 6017d13299dSbellard DIRS="tests" 6027d13299dSbellard FILES="Makefile tests/Makefile" 6037d13299dSbellard for dir in $DIRS ; do 6047d13299dSbellard mkdir -p $dir 6057d13299dSbellard done 6067d13299dSbellard for f in $FILES ; do 6077d13299dSbellard ln -sf $source_path/$f $f 6087d13299dSbellard done 6097d13299dSbellardfi 6107d13299dSbellard 61197a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS 612