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` 30a541f297Sbellardtarget_list="i386-user i386 i386-softmmu arm-user sparc-user ppc-user ppc-softmmu" 317d13299dSbellardcase "$cpu" in 327d13299dSbellard i386|i486|i586|i686|i86pc|BePC) 3397a847bcSbellard cpu="i386" 347d13299dSbellard ;; 357d13299dSbellard armv4l) 367d13299dSbellard cpu="armv4l" 377d13299dSbellard ;; 387d13299dSbellard alpha) 397d13299dSbellard cpu="alpha" 407d13299dSbellard ;; 41295defa5Sbellard "Power Macintosh"|ppc|ppc64) 427d13299dSbellard cpu="powerpc" 437d13299dSbellard ;; 447d13299dSbellard mips) 457d13299dSbellard cpu="mips" 467d13299dSbellard ;; 47fb3e5849Sbellard s390) 48fb3e5849Sbellard cpu="s390" 49fb3e5849Sbellard ;; 50ae228531Sbellard sparc) 51ae228531Sbellard cpu="sparc" 52ae228531Sbellard ;; 53ae228531Sbellard sparc64) 54ae228531Sbellard cpu="sparc64" 55ae228531Sbellard ;; 56a8baa8c5Sbellard ia64) 57a8baa8c5Sbellard cpu="ia64" 58a8baa8c5Sbellard ;; 5938e584a0Sbellard m68k) 6038e584a0Sbellard cpu="m68k" 6138e584a0Sbellard ;; 62bc51c5c9Sbellard x86_64|amd64) 63bc51c5c9Sbellard cpu="amd64" 64bc51c5c9Sbellard ;; 657d13299dSbellard *) 667d13299dSbellard cpu="unknown" 677d13299dSbellard ;; 687d13299dSbellardesac 697d13299dSbellardgprof="no" 707d13299dSbellardbigendian="no" 7167b915a5Sbellardmingw32="no" 7267b915a5SbellardEXESUF="" 7367b915a5Sbellardgdbstub="yes" 74*443f1376Sbellardslirp="yes" 757d13299dSbellard 767d13299dSbellard# OS specific 777d13299dSbellardtargetos=`uname -s` 787d13299dSbellardcase $targetos in 7967b915a5SbellardMINGW32*) 8067b915a5Sbellardmingw32="yes" 8167b915a5Sbellard;; 827d3505c5SbellardFreeBSD) 837d3505c5Sbellardbsd="yes" 847d3505c5Sbellard;; 857d3505c5SbellardNetBSD) 867d3505c5Sbellardbsd="yes" 877d3505c5Sbellard;; 887d3505c5SbellardOpenBSD) 897d3505c5Sbellardbsd="yes" 907d3505c5Sbellard;; 917d13299dSbellard*) ;; 927d13299dSbellardesac 937d13299dSbellard 947d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 957d3505c5Sbellard make="gmake" 967d3505c5Sbellard target_list="i386-softmmu" 977d3505c5Sbellardfi 987d3505c5Sbellard 997d13299dSbellard# find source path 1007d13299dSbellard# XXX: we assume an absolute path is given when launching configure, 1017d13299dSbellard# except in './configure' case. 1027d13299dSbellardsource_path=${0%configure} 1037d13299dSbellardsource_path=${source_path%/} 1047d13299dSbellardsource_path_used="yes" 1057d13299dSbellardif test -z "$source_path" -o "$source_path" = "." ; then 1067d13299dSbellard source_path=`pwd` 1077d13299dSbellard source_path_used="no" 1087d13299dSbellardfi 1097d13299dSbellard 1107d13299dSbellardfor opt do 1117d13299dSbellard case "$opt" in 1127d13299dSbellard --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` 1137d13299dSbellard ;; 11432ce6337Sbellard --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2` 11532ce6337Sbellard ;; 1167d13299dSbellard --source-path=*) source_path=`echo $opt | cut -d '=' -f 2` 1177d13299dSbellard ;; 1187d13299dSbellard --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` 1197d13299dSbellard ;; 1207d13299dSbellard --cc=*) cc=`echo $opt | cut -d '=' -f 2` 1217d13299dSbellard ;; 1227d13299dSbellard --make=*) make=`echo $opt | cut -d '=' -f 2` 1237d13299dSbellard ;; 1247d13299dSbellard --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" 1257d13299dSbellard ;; 1267d13299dSbellard --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" 1277d13299dSbellard ;; 1287d13299dSbellard --extra-libs=*) extralibs=${opt#--extra-libs=} 1297d13299dSbellard ;; 1307d13299dSbellard --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` 1317d13299dSbellard ;; 13297a847bcSbellard --target-list=*) target_list=${opt#--target-list=} 133de83cd02Sbellard ;; 1347d13299dSbellard --enable-gprof) gprof="yes" 1357d13299dSbellard ;; 13643ce4dfeSbellard --static) static="yes" 13743ce4dfeSbellard ;; 13897a847bcSbellard --disable-sdl) sdl="no" 13997a847bcSbellard ;; 14067b915a5Sbellard --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" 14167b915a5Sbellard ;; 142*443f1376Sbellard --disable-slirp) slirp="no" 143c20709aaSbellard ;; 1447d13299dSbellard esac 1457d13299dSbellarddone 1467d13299dSbellard 1477d13299dSbellard# Checking for CFLAGS 1487d13299dSbellardif test -z "$CFLAGS"; then 1497d13299dSbellard CFLAGS="-O2" 1507d13299dSbellardfi 1517d13299dSbellard 1527d13299dSbellardcc="${cross_prefix}${cc}" 1537d13299dSbellardar="${cross_prefix}${ar}" 1547d13299dSbellardstrip="${cross_prefix}${strip}" 1557d13299dSbellard 15667b915a5Sbellardif test "$mingw32" = "yes" ; then 15743003046Sbellard target_list="i386-softmmu ppc-softmmu" 15867b915a5Sbellard EXESUF=".exe" 15967b915a5Sbellard gdbstub="no" 160*443f1376Sbellard slirp="no" 16167b915a5Sbellardfi 16267b915a5Sbellard 1637d13299dSbellardif test -z "$cross_prefix" ; then 1647d13299dSbellard 1657d13299dSbellard# --- 1667d13299dSbellard# big/little endian test 1677d13299dSbellardcat > $TMPC << EOF 1687d13299dSbellard#include <inttypes.h> 1697d13299dSbellardint main(int argc, char ** argv){ 1707d13299dSbellard volatile uint32_t i=0x01234567; 1717d13299dSbellard return (*((uint8_t*)(&i))) == 0x67; 1727d13299dSbellard} 1737d13299dSbellardEOF 1747d13299dSbellard 1757d13299dSbellardif $cc -o $TMPE $TMPC 2>/dev/null ; then 1767d13299dSbellard$TMPE && bigendian="yes" 1777d13299dSbellardelse 1787d13299dSbellardecho big/little test failed 1797d13299dSbellardfi 1807d13299dSbellard 1817d13299dSbellardelse 1827d13299dSbellard 1837d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess 18438e584a0Sbellardif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k"; then 1857d13299dSbellard bigendian="yes" 1867d13299dSbellardfi 1877d13299dSbellard 1887d13299dSbellardfi 1897d13299dSbellard 190e8cd23deSbellard# check gcc options support 19104369ff2Sbellardcat > $TMPC <<EOF 19204369ff2Sbellardint main(void) { 19304369ff2Sbellard} 19404369ff2SbellardEOF 19504369ff2Sbellard 196e8cd23deSbellardhave_gcc3_options="no" 197e8cd23deSbellardif $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then 198e8cd23deSbellard have_gcc3_options="yes" 19904369ff2Sbellardfi 200ca735206Sbellard 20111d9f695Sbellard########################################## 20211d9f695Sbellard# SDL probe 20311d9f695Sbellard 20411d9f695Sbellardsdl_too_old=no 20511d9f695Sbellard 20611d9f695Sbellardif test -z "$sdl" ; then 20711d9f695Sbellard 208a6e022adSbellardsdl_config="sdl-config" 209a6e022adSbellardsdl=no 2107c1f25b4Sbellardsdl_static=no 211a6e022adSbellard 212a6e022adSbellardif test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 213a6e022adSbellard# win32 cross compilation case 214a6e022adSbellard sdl_config="i386-mingw32msvc-sdl-config" 215a6e022adSbellard sdl=yes 216a6e022adSbellardelse 217a6e022adSbellard# normal SDL probe 21811d9f695Sbellardcat > $TMPC << EOF 21911d9f695Sbellard#include <SDL.h> 22011d9f695Sbellard#undef main /* We don't want SDL to override our main() */ 22111d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 22211d9f695SbellardEOF 22311d9f695Sbellard 224a6e022adSbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then 225a6e022adSbellard_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 22611d9f695Sbellardif test "$_sdlversion" -lt 121 ; then 22711d9f695Sbellardsdl_too_old=yes 22811d9f695Sbellardelse 22911d9f695Sbellardsdl=yes 23011d9f695Sbellardfi 2317c1f25b4Sbellard 2327c1f25b4Sbellard# static link with sdl ? 2337c1f25b4Sbellardif test "$sdl" = "yes" ; then 2347c1f25b4Sbellardaa="no" 2357c1f25b4Sbellard`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes" 2367c1f25b4Sbellardsdl_static_libs=`$sdl_config --static-libs` 2377c1f25b4Sbellardif [ "$aa" = "yes" ] ; then 238d8d8aa4eSbellard sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 23911d9f695Sbellardfi 24011d9f695Sbellard 2417c1f25b4Sbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 2427c1f25b4Sbellard sdl_static=yes 2437c1f25b4Sbellardfi 2447c1f25b4Sbellard 2457c1f25b4Sbellardfi # static link 2467c1f25b4Sbellard 2477c1f25b4Sbellardfi # sdl compile test 2487c1f25b4Sbellard 249a6e022adSbellardfi # cross compilation 250a6e022adSbellardfi # -z $sdl 25111d9f695Sbellard 2527d13299dSbellardif test x"$1" = x"-h" -o x"$1" = x"--help" ; then 2537d13299dSbellardcat << EOF 2547d13299dSbellard 2557d13299dSbellardUsage: configure [options] 2567d13299dSbellardOptions: [defaults in brackets after descriptions] 2577d13299dSbellard 2587d13299dSbellardEOF 2597d13299dSbellardecho "Standard options:" 2607d13299dSbellardecho " --help print this message" 2617d13299dSbellardecho " --prefix=PREFIX install in PREFIX [$prefix]" 2621e43adfcSbellardecho " --interp-prefix=PREFIX where to find shared libraries, etc." 2631e43adfcSbellardecho " use %M for cpu name [$interp_prefix]" 26497a847bcSbellardecho " --target-list=LIST set target list [$target_list]" 2657d13299dSbellardecho "" 2667d13299dSbellardecho "Advanced options (experts only):" 2677d13299dSbellardecho " --source-path=PATH path of source code [$source_path]" 2687d13299dSbellardecho " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 2697d13299dSbellardecho " --cc=CC use C compiler CC [$cc]" 2707d13299dSbellardecho " --make=MAKE use specified make [$make]" 27143ce4dfeSbellardecho " --static enable static build [$static]" 27267b915a5Sbellardecho " --enable-mingw32 enable Win32 cross compilation with mingw32" 2737d13299dSbellardecho "" 2747d13299dSbellardecho "NOTE: The object files are build at the place where configure is launched" 2757d13299dSbellardexit 1 2767d13299dSbellardfi 2777d13299dSbellard 27811d9f695Sbellardif test "$mingw32" = "yes" ; then 27911d9f695Sbellardif test -z "$prefix" ; then 28011d9f695Sbellard prefix="/c/Program Files/Qemu" 28111d9f695Sbellardfi 28211d9f695Sbellardmandir="$prefix" 2837efa4387Sbellarddatadir="$prefix" 2841f50f8d1Sbellarddocdir="$prefix" 28511d9f695Sbellardbindir="$prefix" 28611d9f695Sbellardelse 28711d9f695Sbellardif test -z "$prefix" ; then 28811d9f695Sbellard prefix="/usr/local" 28911d9f695Sbellardfi 2905a67135aSbellardmandir="$prefix/share/man" 2917efa4387Sbellarddatadir="$prefix/share/qemu" 2921f50f8d1Sbellarddocdir="$prefix/share/doc/qemu" 29311d9f695Sbellardbindir="$prefix/bin" 29411d9f695Sbellardfi 2955a67135aSbellard 2967d13299dSbellardecho "Install prefix $prefix" 2977efa4387Sbellardecho "BIOS directory $datadir" 29811d9f695Sbellardecho "binary directory $bindir" 29911d9f695Sbellardif test "$mingw32" = "no" ; then 30011d9f695Sbellardecho "Manual directory $mandir" 30143ce4dfeSbellardecho "ELF interp prefix $interp_prefix" 30211d9f695Sbellardfi 3035a67135aSbellardecho "Source path $source_path" 3047d13299dSbellardecho "C compiler $cc" 3057d13299dSbellardecho "make $make" 306a98fd896Sbellardecho "host CPU $cpu" 307de83cd02Sbellardecho "host big endian $bigendian" 30897a847bcSbellardecho "target list $target_list" 3097d13299dSbellardecho "gprof enabled $gprof" 31043ce4dfeSbellardecho "static build $static" 31197a847bcSbellardecho "SDL support $sdl" 3127c1f25b4Sbellardecho "SDL static link $sdl_static" 31367b915a5Sbellardecho "mingw32 support $mingw32" 31467b915a5Sbellard 31597a847bcSbellardif test $sdl_too_old = "yes"; then 31697a847bcSbellardecho "-> Your SDL version is too old - please upgrade to have FFplay/SDL support" 317e8cd23deSbellardfi 3187c1f25b4Sbellardif test "$sdl_static" = "no"; then 3197c1f25b4Sbellard echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 3207c1f25b4Sbellardfi 32197a847bcSbellard 32297a847bcSbellardconfig_mak="config-host.mak" 32397a847bcSbellardconfig_h="config-host.h" 32497a847bcSbellard 3257c1f25b4Sbellard#echo "Creating $config_mak and $config_h" 32697a847bcSbellard 32797a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 32897a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 32997a847bcSbellard 33097a847bcSbellardecho "prefix=$prefix" >> $config_mak 33111d9f695Sbellardecho "bindir=$bindir" >> $config_mak 3325a67135aSbellardecho "mandir=$mandir" >> $config_mak 3337efa4387Sbellardecho "datadir=$datadir" >> $config_mak 3341f50f8d1Sbellardecho "docdir=$docdir" >> $config_mak 3357efa4387Sbellardecho "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h 33697a847bcSbellardecho "MAKE=$make" >> $config_mak 33797a847bcSbellardecho "CC=$cc" >> $config_mak 33897a847bcSbellardif test "$have_gcc3_options" = "yes" ; then 33997a847bcSbellard echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak 34097a847bcSbellardfi 34197a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak 34297a847bcSbellardecho "AR=$ar" >> $config_mak 34397a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak 34497a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak 34597a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak 34667b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak 34797a847bcSbellardif test "$cpu" = "i386" ; then 34897a847bcSbellard echo "ARCH=i386" >> $config_mak 34997a847bcSbellard echo "#define HOST_I386 1" >> $config_h 350bc51c5c9Sbellardelif test "$cpu" = "amd64" ; then 351bc51c5c9Sbellard echo "ARCH=amd64" >> $config_mak 352bc51c5c9Sbellard echo "#define HOST_AMD64 1" >> $config_h 3537d13299dSbellardelif test "$cpu" = "armv4l" ; then 35497a847bcSbellard echo "ARCH=arm" >> $config_mak 35597a847bcSbellard echo "#define HOST_ARM 1" >> $config_h 3567d13299dSbellardelif test "$cpu" = "powerpc" ; then 35797a847bcSbellard echo "ARCH=ppc" >> $config_mak 35897a847bcSbellard echo "#define HOST_PPC 1" >> $config_h 3597d13299dSbellardelif test "$cpu" = "mips" ; then 36097a847bcSbellard echo "ARCH=mips" >> $config_mak 36197a847bcSbellard echo "#define HOST_MIPS 1" >> $config_h 362fb3e5849Sbellardelif test "$cpu" = "s390" ; then 36397a847bcSbellard echo "ARCH=s390" >> $config_mak 36497a847bcSbellard echo "#define HOST_S390 1" >> $config_h 365295defa5Sbellardelif test "$cpu" = "alpha" ; then 36697a847bcSbellard echo "ARCH=alpha" >> $config_mak 36797a847bcSbellard echo "#define HOST_ALPHA 1" >> $config_h 368ae228531Sbellardelif test "$cpu" = "sparc" ; then 36997a847bcSbellard echo "ARCH=sparc" >> $config_mak 37097a847bcSbellard echo "#define HOST_SPARC 1" >> $config_h 371ae228531Sbellardelif test "$cpu" = "sparc64" ; then 37297a847bcSbellard echo "ARCH=sparc64" >> $config_mak 37397a847bcSbellard echo "#define HOST_SPARC64 1" >> $config_h 374a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then 37597a847bcSbellard echo "ARCH=ia64" >> $config_mak 37697a847bcSbellard echo "#define HOST_IA64 1" >> $config_h 37738e584a0Sbellardelif test "$cpu" = "m68k" ; then 37838ca2abcSbellard echo "ARCH=m68k" >> $config_mak 37938ca2abcSbellard echo "#define HOST_M68K 1" >> $config_h 3807d13299dSbellardelse 3817d13299dSbellard echo "Unsupported CPU" 3827d13299dSbellard exit 1 3837d13299dSbellardfi 3847d13299dSbellardif test "$bigendian" = "yes" ; then 38597a847bcSbellard echo "WORDS_BIGENDIAN=yes" >> $config_mak 38697a847bcSbellard echo "#define WORDS_BIGENDIAN 1" >> $config_h 38797a847bcSbellardfi 38867b915a5Sbellardif test "$mingw32" = "yes" ; then 38967b915a5Sbellard echo "CONFIG_WIN32=yes" >> $config_mak 39011d9f695Sbellard echo "#define CONFIG_WIN32 1" >> $config_h 3917d3505c5Sbellardelif test -f "/usr/include/byteswap.h" ; then 39297a847bcSbellard echo "#define HAVE_BYTESWAP_H 1" >> $config_h 39367b915a5Sbellardfi 39467b915a5Sbellardif test "$gdbstub" = "yes" ; then 39567b915a5Sbellard echo "CONFIG_GDBSTUB=yes" >> $config_mak 39667b915a5Sbellard echo "#define CONFIG_GDBSTUB 1" >> $config_h 39767b915a5Sbellardfi 39897a847bcSbellardif test "$gprof" = "yes" ; then 39997a847bcSbellard echo "TARGET_GPROF=yes" >> $config_mak 40097a847bcSbellard echo "#define HAVE_GPROF 1" >> $config_h 40197a847bcSbellardfi 40297a847bcSbellardif test "$static" = "yes" ; then 40397a847bcSbellard echo "CONFIG_STATIC=yes" >> $config_mak 40450863472Sbellard echo "#define CONFIG_STATIC 1" >> $config_h 40597a847bcSbellardfi 406c20709aaSbellardif test "$slirp" = "yes" ; then 407c20709aaSbellard echo "CONFIG_SLIRP=yes" >> $config_mak 408c20709aaSbellard echo "#define CONFIG_SLIRP 1" >> $config_h 409c20709aaSbellardfi 41097a847bcSbellardecho -n "VERSION=" >>$config_mak 41197a847bcSbellardhead $source_path/VERSION >>$config_mak 41297a847bcSbellardecho "" >>$config_mak 41397a847bcSbellardecho -n "#define QEMU_VERSION \"" >> $config_h 41497a847bcSbellardhead $source_path/VERSION >> $config_h 41597a847bcSbellardecho "\"" >> $config_h 41697a847bcSbellard 41797a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak 41897a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak 41997a847bcSbellard 4207d3505c5Sbellardif [ "$bsd" = "yes" ] ; then 42143003046Sbellard echo "#define O_LARGEFILE 0" >> $config_h 42243003046Sbellard echo "#define lseek64 lseek" >> $config_h 42343003046Sbellard echo "#define ftruncate64 ftruncate" >> $config_h 42443003046Sbellard echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 4257d3505c5Sbellard echo "#define _BSD 1" >> $config_h 4267d3505c5Sbellardfi 4277d3505c5Sbellard 42897a847bcSbellardfor target in $target_list; do 42997a847bcSbellard 43097a847bcSbellardtarget_dir="$target" 43197a847bcSbellardconfig_mak=$target_dir/config.mak 43297a847bcSbellardconfig_h=$target_dir/config.h 43397a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1` 43497a847bcSbellardtarget_bigendian="no" 4351e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes 43667867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes 43797a847bcSbellardtarget_softmmu="no" 43897a847bcSbellardif expr $target : '.*-softmmu' > /dev/null ; then 43997a847bcSbellard target_softmmu="yes" 4407d13299dSbellardfi 441997344f3Sbellardtarget_user_only="no" 442997344f3Sbellardif expr $target : '.*-user' > /dev/null ; then 443997344f3Sbellard target_user_only="yes" 444997344f3Sbellardfi 445de83cd02Sbellard 4467c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 44797a847bcSbellard 44897a847bcSbellardmkdir -p $target_dir 44969de927cSbellardif test "$target" = "arm-user" ; then 45069de927cSbellard mkdir -p $target_dir/nwfpe 45169de927cSbellardfi 452a7e61ed4Sbellardif test "$target_user_only" = "no" ; then 453a7e61ed4Sbellard mkdir -p $target_dir/slirp 454a7e61ed4Sbellardfi 45569de927cSbellard 45697a847bcSbellardln -sf $source_path/Makefile.target $target_dir/Makefile 45797a847bcSbellard 45897a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak 45997a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h 46097a847bcSbellard 46197a847bcSbellard 46297a847bcSbellardecho "include ../config-host.mak" >> $config_mak 46397a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h 4641e43adfcSbellard 4651e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 4661e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 46797a847bcSbellard 46897a847bcSbellardif test "$target_cpu" = "i386" ; then 46997a847bcSbellard echo "TARGET_ARCH=i386" >> $config_mak 47097a847bcSbellard echo "#define TARGET_ARCH \"i386\"" >> $config_h 47197a847bcSbellard echo "#define TARGET_I386 1" >> $config_h 472de83cd02Sbellardelif test "$target_cpu" = "arm" ; then 47397a847bcSbellard echo "TARGET_ARCH=arm" >> $config_mak 47497a847bcSbellard echo "#define TARGET_ARCH \"arm\"" >> $config_h 47597a847bcSbellard echo "#define TARGET_ARM 1" >> $config_h 4761e43adfcSbellardelif test "$target_cpu" = "sparc" ; then 4771e43adfcSbellard echo "TARGET_ARCH=sparc" >> $config_mak 4781e43adfcSbellard echo "#define TARGET_ARCH \"sparc\"" >> $config_h 4791e43adfcSbellard echo "#define TARGET_SPARC 1" >> $config_h 48067867308Sbellardelif test "$target_cpu" = "ppc" ; then 48167867308Sbellard echo "TARGET_ARCH=ppc" >> $config_mak 48267867308Sbellard echo "#define TARGET_ARCH \"ppc\"" >> $config_h 48367867308Sbellard echo "#define TARGET_PPC 1" >> $config_h 484de83cd02Sbellardelse 485de83cd02Sbellard echo "Unsupported target CPU" 486de83cd02Sbellard exit 1 487de83cd02Sbellardfi 488de83cd02Sbellardif test "$target_bigendian" = "yes" ; then 48997a847bcSbellard echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 49097a847bcSbellard echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 49197a847bcSbellardfi 49297a847bcSbellardif test "$target_softmmu" = "yes" ; then 49397a847bcSbellard echo "CONFIG_SOFTMMU=yes" >> $config_mak 49497a847bcSbellard echo "#define CONFIG_SOFTMMU 1" >> $config_h 495de83cd02Sbellardfi 496997344f3Sbellardif test "$target_user_only" = "yes" ; then 497997344f3Sbellard echo "CONFIG_USER_ONLY=yes" >> $config_mak 498997344f3Sbellard echo "#define CONFIG_USER_ONLY 1" >> $config_h 499997344f3Sbellardfi 500de83cd02Sbellard 5017c1f25b4Sbellard# sdl defines 5027c1f25b4Sbellard 5037c1f25b4Sbellardif test "$target_user_only" = "no"; then 5047c1f25b4Sbellard if test "$target_softmmu" = "no" -o "$static" = "yes"; then 5057c1f25b4Sbellard if test "$sdl_static" = "yes" ; then 5067c1f25b4Sbellard echo "#define CONFIG_SDL 1" >> $config_h 5077c1f25b4Sbellard echo "CONFIG_SDL=yes" >> $config_mak 5087c1f25b4Sbellard echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 5097c1f25b4Sbellard fi 5107c1f25b4Sbellard else 5117c1f25b4Sbellard if test "$sdl" = "yes" ; then 5127c1f25b4Sbellard echo "#define CONFIG_SDL 1" >> $config_h 5137c1f25b4Sbellard echo "CONFIG_SDL=yes" >> $config_mak 5147c1f25b4Sbellard echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 5157c1f25b4Sbellard fi 5167c1f25b4Sbellard fi 5177c1f25b4Sbellard echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 5187c1f25b4Sbellard if [ "${aa}" = "yes" ] ; then 5197c1f25b4Sbellard echo -n " `aalib-config --cflags`" >> $config_mak ; 5207c1f25b4Sbellard fi 5217c1f25b4Sbellard echo "" >> $config_mak 5227c1f25b4Sbellardfi 5237c1f25b4Sbellard 52497a847bcSbellarddone # for target in $targets 5257d13299dSbellard 5267d13299dSbellard# build tree in object directory if source path is different from current one 5277d13299dSbellardif test "$source_path_used" = "yes" ; then 5287d13299dSbellard DIRS="tests" 5297d13299dSbellard FILES="Makefile tests/Makefile" 5307d13299dSbellard for dir in $DIRS ; do 5317d13299dSbellard mkdir -p $dir 5327d13299dSbellard done 5337d13299dSbellard for f in $FILES ; do 5347d13299dSbellard ln -sf $source_path/$f $f 5357d13299dSbellard done 5367d13299dSbellardfi 5377d13299dSbellard 53897a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS 539