xref: /openbmc/qemu/configure (revision 102a52e4)
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`
30e95c8d51Sbellardtarget_list="i386-user i386 i386-softmmu arm-user sparc-user ppc-user ppc-softmmu sparc-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"
74443f1376Sbellardslirp="yes"
75fb065187Sbellardadlib="no"
76fb065187Sbellardoss="no"
77*102a52e4Sbellardfmod="no"
78*102a52e4Sbellardfmod_lib=""
79*102a52e4Sbellardfmod_inc=""
807d13299dSbellard
817d13299dSbellard# OS specific
827d13299dSbellardtargetos=`uname -s`
837d13299dSbellardcase $targetos in
8467b915a5SbellardMINGW32*)
8567b915a5Sbellardmingw32="yes"
8667b915a5Sbellard;;
877d3505c5SbellardFreeBSD)
887d3505c5Sbellardbsd="yes"
89fb065187Sbellardoss="yes"
907d3505c5Sbellard;;
917d3505c5SbellardNetBSD)
927d3505c5Sbellardbsd="yes"
93fb065187Sbellardoss="yes"
947d3505c5Sbellard;;
957d3505c5SbellardOpenBSD)
967d3505c5Sbellardbsd="yes"
97fb065187Sbellardoss="yes"
987d3505c5Sbellard;;
9983fb7adfSbellardDarwin)
10083fb7adfSbellardbsd="yes"
10183fb7adfSbellarddarwin="yes"
10283fb7adfSbellard;;
103fb065187Sbellard*)
104fb065187Sbellardoss="yes"
105fb065187Sbellard;;
1067d13299dSbellardesac
1077d13299dSbellard
1087d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
10983fb7adfSbellard  if [ ! "$darwin" = "yes" ] ; then
1107d3505c5Sbellard    make="gmake"
11183fb7adfSbellard  fi
112e95c8d51Sbellard  target_list="i386-softmmu ppc-softmmu sparc-softmmu"
1137d3505c5Sbellardfi
1147d3505c5Sbellard
1157d13299dSbellard# find source path
1167d13299dSbellard# XXX: we assume an absolute path is given when launching configure,
1177d13299dSbellard# except in './configure' case.
1187d13299dSbellardsource_path=${0%configure}
1197d13299dSbellardsource_path=${source_path%/}
1207d13299dSbellardsource_path_used="yes"
1217d13299dSbellardif test -z "$source_path" -o "$source_path" = "." ; then
1227d13299dSbellard    source_path=`pwd`
1237d13299dSbellard    source_path_used="no"
1247d13299dSbellardfi
1257d13299dSbellard
1267d13299dSbellardfor opt do
1277d13299dSbellard  case "$opt" in
1287d13299dSbellard  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
1297d13299dSbellard  ;;
13032ce6337Sbellard  --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
13132ce6337Sbellard  ;;
1327d13299dSbellard  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
1337d13299dSbellard  ;;
1347d13299dSbellard  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
1357d13299dSbellard  ;;
1367d13299dSbellard  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
1377d13299dSbellard  ;;
1387d13299dSbellard  --make=*) make=`echo $opt | cut -d '=' -f 2`
1397d13299dSbellard  ;;
1407d13299dSbellard  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
1417d13299dSbellard  ;;
1427d13299dSbellard  --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
1437d13299dSbellard  ;;
1447d13299dSbellard  --extra-libs=*) extralibs=${opt#--extra-libs=}
1457d13299dSbellard  ;;
1467d13299dSbellard  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
1477d13299dSbellard  ;;
14897a847bcSbellard  --target-list=*) target_list=${opt#--target-list=}
149de83cd02Sbellard  ;;
1507d13299dSbellard  --enable-gprof) gprof="yes"
1517d13299dSbellard  ;;
15243ce4dfeSbellard  --static) static="yes"
15343ce4dfeSbellard  ;;
15497a847bcSbellard  --disable-sdl) sdl="no"
15597a847bcSbellard  ;;
156*102a52e4Sbellard  --enable-fmod) fmod="yes"
157*102a52e4Sbellard  ;;
158*102a52e4Sbellard  --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
159*102a52e4Sbellard  ;;
160*102a52e4Sbellard  --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
161*102a52e4Sbellard  ;;
16267b915a5Sbellard  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
16367b915a5Sbellard  ;;
164443f1376Sbellard  --disable-slirp) slirp="no"
165c20709aaSbellard  ;;
166fb065187Sbellard  --enable-adlib) adlib="yes"
167fb065187Sbellard  ;;
1687d13299dSbellard  esac
1697d13299dSbellarddone
1707d13299dSbellard
1717d13299dSbellard# Checking for CFLAGS
1727d13299dSbellardif test -z "$CFLAGS"; then
1737d13299dSbellard    CFLAGS="-O2"
1747d13299dSbellardfi
1757d13299dSbellard
1767d13299dSbellardcc="${cross_prefix}${cc}"
1777d13299dSbellardar="${cross_prefix}${ar}"
1787d13299dSbellardstrip="${cross_prefix}${strip}"
1797d13299dSbellard
18067b915a5Sbellardif test "$mingw32" = "yes" ; then
181e95c8d51Sbellard    target_list="i386-softmmu ppc-softmmu sparc-softmmu"
18267b915a5Sbellard    EXESUF=".exe"
18367b915a5Sbellard    gdbstub="no"
1849f059ecaSbellard    oss="no"
18567b915a5Sbellardfi
18667b915a5Sbellard
1877d13299dSbellardif test -z "$cross_prefix" ; then
1887d13299dSbellard
1897d13299dSbellard# ---
1907d13299dSbellard# big/little endian test
1917d13299dSbellardcat > $TMPC << EOF
1927d13299dSbellard#include <inttypes.h>
1937d13299dSbellardint main(int argc, char ** argv){
1947d13299dSbellard	volatile uint32_t i=0x01234567;
1957d13299dSbellard	return (*((uint8_t*)(&i))) == 0x67;
1967d13299dSbellard}
1977d13299dSbellardEOF
1987d13299dSbellard
1997d13299dSbellardif $cc -o $TMPE $TMPC 2>/dev/null ; then
2007d13299dSbellard$TMPE && bigendian="yes"
2017d13299dSbellardelse
2027d13299dSbellardecho big/little test failed
2037d13299dSbellardfi
2047d13299dSbellard
2057d13299dSbellardelse
2067d13299dSbellard
2077d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess
20838e584a0Sbellardif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k"; then
2097d13299dSbellard    bigendian="yes"
2107d13299dSbellardfi
2117d13299dSbellard
2127d13299dSbellardfi
2137d13299dSbellard
214e8cd23deSbellard# check gcc options support
21504369ff2Sbellardcat > $TMPC <<EOF
21604369ff2Sbellardint main(void) {
21704369ff2Sbellard}
21804369ff2SbellardEOF
21904369ff2Sbellard
220e8cd23deSbellardhave_gcc3_options="no"
221e8cd23deSbellardif $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
222e8cd23deSbellard   have_gcc3_options="yes"
22304369ff2Sbellardfi
224ca735206Sbellard
22511d9f695Sbellard##########################################
22611d9f695Sbellard# SDL probe
22711d9f695Sbellard
22811d9f695Sbellardsdl_too_old=no
22911d9f695Sbellard
23011d9f695Sbellardif test -z "$sdl" ; then
23111d9f695Sbellard
232a6e022adSbellardsdl_config="sdl-config"
233a6e022adSbellardsdl=no
2347c1f25b4Sbellardsdl_static=no
235a6e022adSbellard
236a6e022adSbellardif test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
237a6e022adSbellard# win32 cross compilation case
238a6e022adSbellard    sdl_config="i386-mingw32msvc-sdl-config"
239a6e022adSbellard    sdl=yes
240a6e022adSbellardelse
241a6e022adSbellard# normal SDL probe
24211d9f695Sbellardcat > $TMPC << EOF
24311d9f695Sbellard#include <SDL.h>
24411d9f695Sbellard#undef main /* We don't want SDL to override our main() */
24511d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
24611d9f695SbellardEOF
24711d9f695Sbellard
248a6e022adSbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
249a6e022adSbellard_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
25011d9f695Sbellardif test "$_sdlversion" -lt 121 ; then
25111d9f695Sbellardsdl_too_old=yes
25211d9f695Sbellardelse
25311d9f695Sbellardsdl=yes
25411d9f695Sbellardfi
2557c1f25b4Sbellard
2567c1f25b4Sbellard# static link with sdl ?
2577c1f25b4Sbellardif test "$sdl" = "yes" ; then
2587c1f25b4Sbellardaa="no"
2597c1f25b4Sbellard`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
2607c1f25b4Sbellardsdl_static_libs=`$sdl_config --static-libs`
2617c1f25b4Sbellardif [ "$aa" = "yes" ] ; then
262d8d8aa4eSbellard  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
26311d9f695Sbellardfi
26411d9f695Sbellard
2657c1f25b4Sbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
2667c1f25b4Sbellard  sdl_static=yes
2677c1f25b4Sbellardfi
2687c1f25b4Sbellard
2697c1f25b4Sbellardfi # static link
2707c1f25b4Sbellard
2717c1f25b4Sbellardfi # sdl compile test
2727c1f25b4Sbellard
273a6e022adSbellardfi # cross compilation
274a6e022adSbellardfi # -z $sdl
27511d9f695Sbellard
2767d13299dSbellardif test x"$1" = x"-h" -o x"$1" = x"--help" ; then
2777d13299dSbellardcat << EOF
2787d13299dSbellard
2797d13299dSbellardUsage: configure [options]
2807d13299dSbellardOptions: [defaults in brackets after descriptions]
2817d13299dSbellard
2827d13299dSbellardEOF
2837d13299dSbellardecho "Standard options:"
2847d13299dSbellardecho "  --help                   print this message"
2857d13299dSbellardecho "  --prefix=PREFIX          install in PREFIX [$prefix]"
2861e43adfcSbellardecho "  --interp-prefix=PREFIX   where to find shared libraries, etc."
2871e43adfcSbellardecho "                           use %M for cpu name [$interp_prefix]"
28897a847bcSbellardecho "  --target-list=LIST       set target list [$target_list]"
2897d13299dSbellardecho ""
2907d13299dSbellardecho "Advanced options (experts only):"
2917d13299dSbellardecho "  --source-path=PATH       path of source code [$source_path]"
2927d13299dSbellardecho "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
2937d13299dSbellardecho "  --cc=CC                  use C compiler CC [$cc]"
2947d13299dSbellardecho "  --make=MAKE              use specified make [$make]"
29543ce4dfeSbellardecho "  --static                 enable static build [$static]"
29667b915a5Sbellardecho "  --enable-mingw32         enable Win32 cross compilation with mingw32"
297*102a52e4Sbellardecho "  --enable-fmod            enable FMOD audio output driver"
298*102a52e4Sbellardecho "  --fmod-lib               path to FMOD library"
299*102a52e4Sbellardecho "  --fmod-inc               path to FMOD includes"
3007d13299dSbellardecho ""
3017d13299dSbellardecho "NOTE: The object files are build at the place where configure is launched"
3027d13299dSbellardexit 1
3037d13299dSbellardfi
3047d13299dSbellard
30511d9f695Sbellardif test "$mingw32" = "yes" ; then
30611d9f695Sbellardif test -z "$prefix" ; then
30711d9f695Sbellard    prefix="/c/Program Files/Qemu"
30811d9f695Sbellardfi
30911d9f695Sbellardmandir="$prefix"
3107efa4387Sbellarddatadir="$prefix"
3111f50f8d1Sbellarddocdir="$prefix"
31211d9f695Sbellardbindir="$prefix"
31311d9f695Sbellardelse
31411d9f695Sbellardif test -z "$prefix" ; then
31511d9f695Sbellard    prefix="/usr/local"
31611d9f695Sbellardfi
3175a67135aSbellardmandir="$prefix/share/man"
3187efa4387Sbellarddatadir="$prefix/share/qemu"
3191f50f8d1Sbellarddocdir="$prefix/share/doc/qemu"
32011d9f695Sbellardbindir="$prefix/bin"
32111d9f695Sbellardfi
3225a67135aSbellard
3237d13299dSbellardecho "Install prefix    $prefix"
3247efa4387Sbellardecho "BIOS directory    $datadir"
32511d9f695Sbellardecho "binary directory  $bindir"
32611d9f695Sbellardif test "$mingw32" = "no" ; then
32711d9f695Sbellardecho "Manual directory  $mandir"
32843ce4dfeSbellardecho "ELF interp prefix $interp_prefix"
32911d9f695Sbellardfi
3305a67135aSbellardecho "Source path       $source_path"
3317d13299dSbellardecho "C compiler        $cc"
3327d13299dSbellardecho "make              $make"
333a98fd896Sbellardecho "host CPU          $cpu"
334de83cd02Sbellardecho "host big endian   $bigendian"
33597a847bcSbellardecho "target list       $target_list"
3367d13299dSbellardecho "gprof enabled     $gprof"
33743ce4dfeSbellardecho "static build      $static"
33897a847bcSbellardecho "SDL support       $sdl"
3397c1f25b4Sbellardecho "SDL static link   $sdl_static"
34067b915a5Sbellardecho "mingw32 support   $mingw32"
341fb065187Sbellardecho "Adlib support     $adlib"
342*102a52e4Sbellardecho -n "FMOD support      $fmod"
343*102a52e4Sbellardif test $fmod = "yes"; then
344*102a52e4Sbellard    echo -n " (lib='$fmod_lib' include='$fmod_inc')"
345*102a52e4Sbellardfi
346*102a52e4Sbellardecho ""
34767b915a5Sbellard
34897a847bcSbellardif test $sdl_too_old = "yes"; then
34997a847bcSbellardecho "-> Your SDL version is too old - please upgrade to have FFplay/SDL support"
350e8cd23deSbellardfi
3517c1f25b4Sbellardif test "$sdl_static" = "no"; then
3527c1f25b4Sbellard  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
3537c1f25b4Sbellardfi
35497a847bcSbellard
35597a847bcSbellardconfig_mak="config-host.mak"
35697a847bcSbellardconfig_h="config-host.h"
35797a847bcSbellard
3587c1f25b4Sbellard#echo "Creating $config_mak and $config_h"
35997a847bcSbellard
36097a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
36197a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
36297a847bcSbellard
36397a847bcSbellardecho "prefix=$prefix" >> $config_mak
36411d9f695Sbellardecho "bindir=$bindir" >> $config_mak
3655a67135aSbellardecho "mandir=$mandir" >> $config_mak
3667efa4387Sbellardecho "datadir=$datadir" >> $config_mak
3671f50f8d1Sbellardecho "docdir=$docdir" >> $config_mak
3687efa4387Sbellardecho "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
36997a847bcSbellardecho "MAKE=$make" >> $config_mak
37097a847bcSbellardecho "CC=$cc" >> $config_mak
37197a847bcSbellardif test "$have_gcc3_options" = "yes" ; then
37297a847bcSbellard  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
37397a847bcSbellardfi
37497a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak
37597a847bcSbellardecho "AR=$ar" >> $config_mak
37697a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak
37797a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak
37897a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak
37967b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak
38097a847bcSbellardif test "$cpu" = "i386" ; then
38197a847bcSbellard  echo "ARCH=i386" >> $config_mak
38297a847bcSbellard  echo "#define HOST_I386 1" >> $config_h
383bc51c5c9Sbellardelif test "$cpu" = "amd64" ; then
384bc51c5c9Sbellard  echo "ARCH=amd64" >> $config_mak
385bc51c5c9Sbellard  echo "#define HOST_AMD64 1" >> $config_h
3867d13299dSbellardelif test "$cpu" = "armv4l" ; then
38797a847bcSbellard  echo "ARCH=arm" >> $config_mak
38897a847bcSbellard  echo "#define HOST_ARM 1" >> $config_h
3897d13299dSbellardelif test "$cpu" = "powerpc" ; then
39097a847bcSbellard  echo "ARCH=ppc" >> $config_mak
39197a847bcSbellard  echo "#define HOST_PPC 1" >> $config_h
3927d13299dSbellardelif test "$cpu" = "mips" ; then
39397a847bcSbellard  echo "ARCH=mips" >> $config_mak
39497a847bcSbellard  echo "#define HOST_MIPS 1" >> $config_h
395fb3e5849Sbellardelif test "$cpu" = "s390" ; then
39697a847bcSbellard  echo "ARCH=s390" >> $config_mak
39797a847bcSbellard  echo "#define HOST_S390 1" >> $config_h
398295defa5Sbellardelif test "$cpu" = "alpha" ; then
39997a847bcSbellard  echo "ARCH=alpha" >> $config_mak
40097a847bcSbellard  echo "#define HOST_ALPHA 1" >> $config_h
401ae228531Sbellardelif test "$cpu" = "sparc" ; then
40297a847bcSbellard  echo "ARCH=sparc" >> $config_mak
40397a847bcSbellard  echo "#define HOST_SPARC 1" >> $config_h
404ae228531Sbellardelif test "$cpu" = "sparc64" ; then
40597a847bcSbellard  echo "ARCH=sparc64" >> $config_mak
40697a847bcSbellard  echo "#define HOST_SPARC64 1" >> $config_h
407a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then
40897a847bcSbellard  echo "ARCH=ia64" >> $config_mak
40997a847bcSbellard  echo "#define HOST_IA64 1" >> $config_h
41038e584a0Sbellardelif test "$cpu" = "m68k" ; then
41138ca2abcSbellard  echo "ARCH=m68k" >> $config_mak
41238ca2abcSbellard  echo "#define HOST_M68K 1" >> $config_h
4137d13299dSbellardelse
4147d13299dSbellard  echo "Unsupported CPU"
4157d13299dSbellard  exit 1
4167d13299dSbellardfi
4177d13299dSbellardif test "$bigendian" = "yes" ; then
41897a847bcSbellard  echo "WORDS_BIGENDIAN=yes" >> $config_mak
41997a847bcSbellard  echo "#define WORDS_BIGENDIAN 1" >> $config_h
42097a847bcSbellardfi
42167b915a5Sbellardif test "$mingw32" = "yes" ; then
42267b915a5Sbellard  echo "CONFIG_WIN32=yes" >> $config_mak
42311d9f695Sbellard  echo "#define CONFIG_WIN32 1" >> $config_h
4247d3505c5Sbellardelif test -f "/usr/include/byteswap.h" ; then
42597a847bcSbellard  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
42667b915a5Sbellardfi
42783fb7adfSbellardif test "$darwin" = "yes" ; then
42883fb7adfSbellard  echo "CONFIG_DARWIN=yes" >> $config_mak
42983fb7adfSbellard  echo "#define CONFIG_DARWIN 1" >> $config_h
43083fb7adfSbellardfi
43167b915a5Sbellardif test "$gdbstub" = "yes" ; then
43267b915a5Sbellard  echo "CONFIG_GDBSTUB=yes" >> $config_mak
43367b915a5Sbellard  echo "#define CONFIG_GDBSTUB 1" >> $config_h
43467b915a5Sbellardfi
43597a847bcSbellardif test "$gprof" = "yes" ; then
43697a847bcSbellard  echo "TARGET_GPROF=yes" >> $config_mak
43797a847bcSbellard  echo "#define HAVE_GPROF 1" >> $config_h
43897a847bcSbellardfi
43997a847bcSbellardif test "$static" = "yes" ; then
44097a847bcSbellard  echo "CONFIG_STATIC=yes" >> $config_mak
44150863472Sbellard  echo "#define CONFIG_STATIC 1" >> $config_h
44297a847bcSbellardfi
443c20709aaSbellardif test "$slirp" = "yes" ; then
444c20709aaSbellard  echo "CONFIG_SLIRP=yes" >> $config_mak
445c20709aaSbellard  echo "#define CONFIG_SLIRP 1" >> $config_h
446c20709aaSbellardfi
447fb065187Sbellardif test "$adlib" = "yes" ; then
448fb065187Sbellard  echo "CONFIG_ADLIB=yes" >> $config_mak
449fb065187Sbellard  echo "#define CONFIG_ADLIB 1" >> $config_h
450fb065187Sbellardfi
451fb065187Sbellardif test "$oss" = "yes" ; then
452fb065187Sbellard  echo "CONFIG_OSS=yes" >> $config_mak
453fb065187Sbellard  echo "#define CONFIG_OSS 1" >> $config_h
454fb065187Sbellardfi
455*102a52e4Sbellardif test "$fmod" = "yes" ; then
456*102a52e4Sbellard  echo "CONFIG_FMOD=yes" >> $config_mak
457*102a52e4Sbellard  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
458*102a52e4Sbellard  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
459*102a52e4Sbellard  echo "#define CONFIG_FMOD 1" >> $config_h
460*102a52e4Sbellardfi
46197a847bcSbellardecho -n "VERSION=" >>$config_mak
46297a847bcSbellardhead $source_path/VERSION >>$config_mak
46397a847bcSbellardecho "" >>$config_mak
46497a847bcSbellardecho -n "#define QEMU_VERSION \"" >> $config_h
46597a847bcSbellardhead $source_path/VERSION >> $config_h
46697a847bcSbellardecho "\"" >> $config_h
46797a847bcSbellard
46897a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak
46997a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak
47097a847bcSbellard
47183fb7adfSbellard# XXX: suppress that
4727d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
47343003046Sbellard  echo "#define O_LARGEFILE 0" >> $config_h
47443003046Sbellard  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
4757d3505c5Sbellard  echo "#define _BSD 1" >> $config_h
4767d3505c5Sbellardfi
4777d3505c5Sbellard
47897a847bcSbellardfor target in $target_list; do
47997a847bcSbellard
48097a847bcSbellardtarget_dir="$target"
48197a847bcSbellardconfig_mak=$target_dir/config.mak
48297a847bcSbellardconfig_h=$target_dir/config.h
48397a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1`
48497a847bcSbellardtarget_bigendian="no"
4851e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes
48667867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes
48797a847bcSbellardtarget_softmmu="no"
48897a847bcSbellardif expr $target : '.*-softmmu' > /dev/null ; then
48997a847bcSbellard  target_softmmu="yes"
4907d13299dSbellardfi
491997344f3Sbellardtarget_user_only="no"
492997344f3Sbellardif expr $target : '.*-user' > /dev/null ; then
493997344f3Sbellard  target_user_only="yes"
494997344f3Sbellardfi
495de83cd02Sbellard
4967c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
49797a847bcSbellard
49897a847bcSbellardmkdir -p $target_dir
49969de927cSbellardif test "$target" = "arm-user" ; then
50069de927cSbellard  mkdir -p $target_dir/nwfpe
50169de927cSbellardfi
502a7e61ed4Sbellardif test "$target_user_only" = "no" ; then
503a7e61ed4Sbellard  mkdir -p $target_dir/slirp
504a7e61ed4Sbellardfi
50569de927cSbellard
50697a847bcSbellardln -sf $source_path/Makefile.target $target_dir/Makefile
50797a847bcSbellard
50897a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
50997a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
51097a847bcSbellard
51197a847bcSbellard
51297a847bcSbellardecho "include ../config-host.mak" >> $config_mak
51397a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h
5141e43adfcSbellard
5151e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
5161e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
51797a847bcSbellard
51897a847bcSbellardif test "$target_cpu" = "i386" ; then
51997a847bcSbellard  echo "TARGET_ARCH=i386" >> $config_mak
52097a847bcSbellard  echo "#define TARGET_ARCH \"i386\"" >> $config_h
52197a847bcSbellard  echo "#define TARGET_I386 1" >> $config_h
522de83cd02Sbellardelif test "$target_cpu" = "arm" ; then
52397a847bcSbellard  echo "TARGET_ARCH=arm" >> $config_mak
52497a847bcSbellard  echo "#define TARGET_ARCH \"arm\"" >> $config_h
52597a847bcSbellard  echo "#define TARGET_ARM 1" >> $config_h
5261e43adfcSbellardelif test "$target_cpu" = "sparc" ; then
5271e43adfcSbellard  echo "TARGET_ARCH=sparc" >> $config_mak
5281e43adfcSbellard  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
5291e43adfcSbellard  echo "#define TARGET_SPARC 1" >> $config_h
53067867308Sbellardelif test "$target_cpu" = "ppc" ; then
53167867308Sbellard  echo "TARGET_ARCH=ppc" >> $config_mak
53267867308Sbellard  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
53367867308Sbellard  echo "#define TARGET_PPC 1" >> $config_h
534de83cd02Sbellardelse
535de83cd02Sbellard  echo "Unsupported target CPU"
536de83cd02Sbellard  exit 1
537de83cd02Sbellardfi
538de83cd02Sbellardif test "$target_bigendian" = "yes" ; then
53997a847bcSbellard  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
54097a847bcSbellard  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
54197a847bcSbellardfi
54297a847bcSbellardif test "$target_softmmu" = "yes" ; then
54397a847bcSbellard  echo "CONFIG_SOFTMMU=yes" >> $config_mak
54497a847bcSbellard  echo "#define CONFIG_SOFTMMU 1" >> $config_h
545de83cd02Sbellardfi
546997344f3Sbellardif test "$target_user_only" = "yes" ; then
547997344f3Sbellard  echo "CONFIG_USER_ONLY=yes" >> $config_mak
548997344f3Sbellard  echo "#define CONFIG_USER_ONLY 1" >> $config_h
549997344f3Sbellardfi
550de83cd02Sbellard
5517c1f25b4Sbellard# sdl defines
5527c1f25b4Sbellard
5537c1f25b4Sbellardif test "$target_user_only" = "no"; then
5547c1f25b4Sbellard    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
555dbb2c921Sbellard        sdl1=$sdl_static
5567c1f25b4Sbellard    else
557dbb2c921Sbellard        sdl1=$sdl
558dbb2c921Sbellard    fi
559dbb2c921Sbellard    if test "$sdl1" = "yes" ; then
5607c1f25b4Sbellard        echo "#define CONFIG_SDL 1" >> $config_h
5617c1f25b4Sbellard        echo "CONFIG_SDL=yes" >> $config_mak
562dbb2c921Sbellard        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
563dbb2c921Sbellard            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
564dbb2c921Sbellard        else
5657c1f25b4Sbellard            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
5667c1f25b4Sbellard        fi
5677c1f25b4Sbellard        echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
5687c1f25b4Sbellard        if [ "${aa}" = "yes" ] ; then
5697c1f25b4Sbellard            echo -n " `aalib-config --cflags`" >> $config_mak ;
5707c1f25b4Sbellard        fi
5717c1f25b4Sbellard        echo "" >> $config_mak
5727c1f25b4Sbellard    fi
573dbb2c921Sbellardfi
5747c1f25b4Sbellard
57597a847bcSbellarddone # for target in $targets
5767d13299dSbellard
5777d13299dSbellard# build tree in object directory if source path is different from current one
5787d13299dSbellardif test "$source_path_used" = "yes" ; then
5797d13299dSbellard    DIRS="tests"
5807d13299dSbellard    FILES="Makefile tests/Makefile"
5817d13299dSbellard    for dir in $DIRS ; do
5827d13299dSbellard            mkdir -p $dir
5837d13299dSbellard    done
5847d13299dSbellard    for f in $FILES ; do
5857d13299dSbellard        ln -sf $source_path/$f $f
5867d13299dSbellard    done
5877d13299dSbellardfi
5887d13299dSbellard
58997a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS
590