xref: /openbmc/qemu/configure (revision 328a4240)
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"
25*328a4240Spbrookgcc3_search="yes"
26*328a4240Spbrookgcc3_list="gcc-3.4 gcc34 gcc-3.3 gcc33 gcc-3.2 gcc32"
277d13299dSbellardhost_cc="gcc"
287d13299dSbellardar="ar"
297d13299dSbellardmake="make"
306a882643Spbrookinstall="install"
317d13299dSbellardstrip="strip"
327d13299dSbellardcpu=`uname -m`
335327cf48Sbellardtarget_list=""
347d13299dSbellardcase "$cpu" in
357d13299dSbellard  i386|i486|i586|i686|i86pc|BePC)
3697a847bcSbellard    cpu="i386"
377d13299dSbellard  ;;
38ba68055eSbellard  armv*b)
39808c4954Sbellard    cpu="armv4b"
40808c4954Sbellard  ;;
41ba68055eSbellard  armv*l)
427d13299dSbellard    cpu="armv4l"
437d13299dSbellard  ;;
447d13299dSbellard  alpha)
457d13299dSbellard    cpu="alpha"
467d13299dSbellard  ;;
47295defa5Sbellard  "Power Macintosh"|ppc|ppc64)
487d13299dSbellard    cpu="powerpc"
497d13299dSbellard  ;;
507d13299dSbellard  mips)
517d13299dSbellard    cpu="mips"
527d13299dSbellard  ;;
53fb3e5849Sbellard  s390)
54fb3e5849Sbellard    cpu="s390"
55fb3e5849Sbellard  ;;
5694ac5158Spbrook  sparc|sun4[muv])
57ae228531Sbellard    cpu="sparc"
58ae228531Sbellard  ;;
59ae228531Sbellard  sparc64)
60ae228531Sbellard    cpu="sparc64"
61ae228531Sbellard  ;;
62a8baa8c5Sbellard  ia64)
63a8baa8c5Sbellard    cpu="ia64"
64a8baa8c5Sbellard  ;;
6538e584a0Sbellard  m68k)
6638e584a0Sbellard    cpu="m68k"
6738e584a0Sbellard  ;;
68bc51c5c9Sbellard  x86_64|amd64)
690b0babc6Sbellard    cpu="x86_64"
70bc51c5c9Sbellard  ;;
717d13299dSbellard  *)
727d13299dSbellard    cpu="unknown"
737d13299dSbellard  ;;
747d13299dSbellardesac
757d13299dSbellardgprof="no"
767d13299dSbellardbigendian="no"
7767b915a5Sbellardmingw32="no"
7867b915a5SbellardEXESUF=""
7967b915a5Sbellardgdbstub="yes"
80443f1376Sbellardslirp="yes"
81fb065187Sbellardadlib="no"
82fb065187Sbellardoss="no"
831d14ffa9Sbellarddsound="no"
841d14ffa9Sbellardcoreaudio="no"
851d14ffa9Sbellardalsa="no"
86102a52e4Sbellardfmod="no"
87102a52e4Sbellardfmod_lib=""
88102a52e4Sbellardfmod_inc=""
89b1a550a0Spbrookbsd="no"
905327cf48Sbellardlinux="no"
91c9ec1fe4Sbellardkqemu="no"
9205c2a3e7Sbellardprofiler="no"
935b0753e0Sbellardcocoa="no"
9497ccc689Sbellardcheck_gfx="yes"
951aff381fSbellardcheck_gcc="yes"
960a8e90f4Spbrooksoftmmu="yes"
970a8e90f4Spbrookuser="no"
98cc8ae6deSpbrookbuild_docs="no"
99c5937220Spbrookuname_release=""
1007d13299dSbellard
1017d13299dSbellard# OS specific
1027d13299dSbellardtargetos=`uname -s`
1037d13299dSbellardcase $targetos in
104c326e0afSbellardCYGWIN*)
105c326e0afSbellardmingw32="yes"
106c326e0afSbellardCFLAGS="-O2 -mno-cygwin"
107c326e0afSbellard;;
10867b915a5SbellardMINGW32*)
10967b915a5Sbellardmingw32="yes"
11067b915a5Sbellard;;
1117d3505c5SbellardFreeBSD)
1127d3505c5Sbellardbsd="yes"
113fb065187Sbellardoss="yes"
114e99f9060Sbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
11507f4ddbfSbellard    kqemu="yes"
11607f4ddbfSbellardfi
1177d3505c5Sbellard;;
1187d3505c5SbellardNetBSD)
1197d3505c5Sbellardbsd="yes"
120fb065187Sbellardoss="yes"
1217d3505c5Sbellard;;
1227d3505c5SbellardOpenBSD)
1237d3505c5Sbellardbsd="yes"
124fb065187Sbellardoss="yes"
1257d3505c5Sbellard;;
12683fb7adfSbellardDarwin)
12783fb7adfSbellardbsd="yes"
12883fb7adfSbellarddarwin="yes"
12983fb7adfSbellard;;
130ec530c81SbellardSunOS)
131ec530c81Sbellardsolaris="yes"
132ec530c81Sbellard;;
133fb065187Sbellard*)
134fb065187Sbellardoss="yes"
1355327cf48Sbellardlinux="yes"
1360a8e90f4Spbrookuser="yes"
13707f4ddbfSbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
138c9ec1fe4Sbellard    kqemu="yes"
139c9ec1fe4Sbellardfi
140fb065187Sbellard;;
1417d13299dSbellardesac
1427d13299dSbellard
1437d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
144b1a550a0Spbrook  if [ "$darwin" != "yes" ] ; then
1457d3505c5Sbellard    make="gmake"
14683fb7adfSbellard  fi
1477d3505c5Sbellardfi
1487d3505c5Sbellard
149ec530c81Sbellardif [ "$solaris" = "yes" ] ; then
150ec530c81Sbellard    make="gmake"
151ec530c81Sbellard    install="ginstall"
152ec530c81Sbellard    solarisrev=`uname -r | cut -f2 -d.`
153ec530c81Sbellardfi
154ec530c81Sbellard
1557d13299dSbellard# find source path
156ad064840Spbrooksource_path=`dirname "$0"`
157ad064840Spbrookif [ -z "$source_path" ]; then
1587d13299dSbellard    source_path=`pwd`
159ad064840Spbrookelse
160ad064840Spbrook    source_path=`cd "$source_path"; pwd`
161ad064840Spbrookfi
162ad064840Spbrookif test "$source_path" = `pwd` ; then
1637d13299dSbellard    source_path_used="no"
164ad064840Spbrookelse
165ad064840Spbrook    source_path_used="yes"
1667d13299dSbellardfi
1677d13299dSbellard
1687d13299dSbellardfor opt do
169a46e4035Spbrook  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
1707d13299dSbellard  case "$opt" in
1712efc3265Sbellard  --help|-h) show_help=yes
1722efc3265Sbellard  ;;
173b1a550a0Spbrook  --prefix=*) prefix="$optarg"
1747d13299dSbellard  ;;
175b1a550a0Spbrook  --interp-prefix=*) interp_prefix="$optarg"
17632ce6337Sbellard  ;;
177b1a550a0Spbrook  --source-path=*) source_path="$optarg"
178ad064840Spbrook  source_path_used="yes"
1797d13299dSbellard  ;;
180b1a550a0Spbrook  --cross-prefix=*) cross_prefix="$optarg"
1817d13299dSbellard  ;;
182b1a550a0Spbrook  --cc=*) cc="$optarg"
183*328a4240Spbrook  gcc3_search="no"
1847d13299dSbellard  ;;
185b1a550a0Spbrook  --host-cc=*) host_cc="$optarg"
18683469015Sbellard  ;;
187b1a550a0Spbrook  --make=*) make="$optarg"
1887d13299dSbellard  ;;
1896a882643Spbrook  --install=*) install="$optarg"
1906a882643Spbrook  ;;
191b1a550a0Spbrook  --extra-cflags=*) CFLAGS="$optarg"
1927d13299dSbellard  ;;
193b1a550a0Spbrook  --extra-ldflags=*) LDFLAGS="$optarg"
1947d13299dSbellard  ;;
195b1a550a0Spbrook  --cpu=*) cpu="$optarg"
1967d13299dSbellard  ;;
197b1a550a0Spbrook  --target-list=*) target_list="$optarg"
198de83cd02Sbellard  ;;
1997d13299dSbellard  --enable-gprof) gprof="yes"
2007d13299dSbellard  ;;
20143ce4dfeSbellard  --static) static="yes"
20243ce4dfeSbellard  ;;
20397a847bcSbellard  --disable-sdl) sdl="no"
20497a847bcSbellard  ;;
2051d14ffa9Sbellard  --enable-coreaudio) coreaudio="yes"
2061d14ffa9Sbellard  ;;
2071d14ffa9Sbellard  --enable-alsa) alsa="yes"
2081d14ffa9Sbellard  ;;
2091d14ffa9Sbellard  --enable-dsound) dsound="yes"
2101d14ffa9Sbellard  ;;
211102a52e4Sbellard  --enable-fmod) fmod="yes"
212102a52e4Sbellard  ;;
213b1a550a0Spbrook  --fmod-lib=*) fmod_lib="$optarg"
214102a52e4Sbellard  ;;
215b1a550a0Spbrook  --fmod-inc=*) fmod_inc="$optarg"
216102a52e4Sbellard  ;;
21787ac5427Sbellard  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; user="no"
21867b915a5Sbellard  ;;
219443f1376Sbellard  --disable-slirp) slirp="no"
220c20709aaSbellard  ;;
221fb065187Sbellard  --enable-adlib) adlib="yes"
222fb065187Sbellard  ;;
223c9ec1fe4Sbellard  --disable-kqemu) kqemu="no"
224c9ec1fe4Sbellard  ;;
22505c2a3e7Sbellard  --enable-profiler) profiler="yes"
22605c2a3e7Sbellard  ;;
2271d14ffa9Sbellard  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
2285b0753e0Sbellard  ;;
22997ccc689Sbellard  --disable-gfx-check) check_gfx="no"
23097ccc689Sbellard  ;;
2311aff381fSbellard  --disable-gcc-check) check_gcc="no"
2321aff381fSbellard  ;;
233cad25d69Spbrook  --disable-system) softmmu="no"
2340a8e90f4Spbrook  ;;
235cad25d69Spbrook  --enable-system) softmmu="yes"
2360a8e90f4Spbrook  ;;
2370a8e90f4Spbrook  --disable-user) user="no"
2380a8e90f4Spbrook  ;;
2390a8e90f4Spbrook  --enable-user) user="yes"
2400a8e90f4Spbrook  ;;
241c5937220Spbrook  --enable-uname-release=*) uname_release="$optarg"
242c5937220Spbrook  ;;
2437d13299dSbellard  esac
2447d13299dSbellarddone
2457d13299dSbellard
2467d13299dSbellard# Checking for CFLAGS
2477d13299dSbellardif test -z "$CFLAGS"; then
2487d13299dSbellard    CFLAGS="-O2"
2497d13299dSbellardfi
2507d13299dSbellard
251af5db58eSpbrookif test x"$show_help" = x"yes" ; then
252af5db58eSpbrookcat << EOF
253af5db58eSpbrook
254af5db58eSpbrookUsage: configure [options]
255af5db58eSpbrookOptions: [defaults in brackets after descriptions]
256af5db58eSpbrook
257af5db58eSpbrookEOF
258af5db58eSpbrookecho "Standard options:"
259af5db58eSpbrookecho "  --help                   print this message"
260af5db58eSpbrookecho "  --prefix=PREFIX          install in PREFIX [$prefix]"
261af5db58eSpbrookecho "  --interp-prefix=PREFIX   where to find shared libraries, etc."
262af5db58eSpbrookecho "                           use %M for cpu name [$interp_prefix]"
263af5db58eSpbrookecho "  --target-list=LIST       set target list [$target_list]"
264af5db58eSpbrookecho ""
265af5db58eSpbrookecho "kqemu kernel acceleration support:"
266af5db58eSpbrookecho "  --disable-kqemu          disable kqemu support"
267af5db58eSpbrookecho ""
268af5db58eSpbrookecho "Advanced options (experts only):"
269af5db58eSpbrookecho "  --source-path=PATH       path of source code [$source_path]"
270af5db58eSpbrookecho "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
271af5db58eSpbrookecho "  --cc=CC                  use C compiler CC [$cc]"
272af5db58eSpbrookecho "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
273af5db58eSpbrookecho "  --make=MAKE              use specified make [$make]"
2746a882643Spbrookecho "  --install=INSTALL        use specified install [$install]"
275af5db58eSpbrookecho "  --static                 enable static build [$static]"
276af5db58eSpbrookecho "  --enable-cocoa           enable COCOA (Mac OS X only)"
277af5db58eSpbrookecho "  --enable-mingw32         enable Win32 cross compilation with mingw32"
278af5db58eSpbrookecho "  --enable-adlib           enable Adlib emulation"
279af5db58eSpbrookecho "  --enable-coreaudio       enable Coreaudio audio driver"
280af5db58eSpbrookecho "  --enable-alsa            enable ALSA audio driver"
281af5db58eSpbrookecho "  --enable-fmod            enable FMOD audio driver"
282af5db58eSpbrookecho "  --enabled-dsound         enable DirectSound audio driver"
283af5db58eSpbrookecho "  --enable-system          enable all system emulation targets"
284af5db58eSpbrookecho "  --disable-system         disable all system emulation targets"
285af5db58eSpbrookecho "  --enable-user            enable all linux usermode emulation targets"
286af5db58eSpbrookecho "  --disable-user           disable all linux usermode emulation targets"
287af5db58eSpbrookecho "  --fmod-lib               path to FMOD library"
288af5db58eSpbrookecho "  --fmod-inc               path to FMOD includes"
289c5937220Spbrookecho "  --enable-uname-release=R Return R for uname -r in usermode emulation"
290af5db58eSpbrookecho ""
291af5db58eSpbrookecho "NOTE: The object files are build at the place where configure is launched"
292af5db58eSpbrookexit 1
293af5db58eSpbrookfi
294af5db58eSpbrook
2957d13299dSbellardcc="${cross_prefix}${cc}"
2967d13299dSbellardar="${cross_prefix}${ar}"
2977d13299dSbellardstrip="${cross_prefix}${strip}"
2987d13299dSbellard
299064aae13Spbrook# check that the C compiler works.
300064aae13Spbrookcat > $TMPC <<EOF
301064aae13Spbrookint main(void) {}
302064aae13SpbrookEOF
303064aae13Spbrook
304064aae13Spbrookif $cc -c -o $TMPO $TMPC 2>/dev/null ; then
305064aae13Spbrook  : C compiler works ok
306064aae13Spbrookelse
307064aae13Spbrook    echo "ERROR: \"$cc\" either does not exist or does not work"
308064aae13Spbrook    exit 1
309a7350fa1Sbellardfi
310a7350fa1Sbellard
31167b915a5Sbellardif test "$mingw32" = "yes" ; then
3125327cf48Sbellard    linux="no"
31367b915a5Sbellard    EXESUF=".exe"
3149f059ecaSbellard    oss="no"
31507f4ddbfSbellard    if [ "$cpu" = "i386" ] ; then
31607f4ddbfSbellard        kqemu="yes"
31707f4ddbfSbellard    fi
31867b915a5Sbellardfi
31967b915a5Sbellard
320*328a4240Spbrook# Check for gcc4, error if pre-gcc4
321*328a4240Spbrookif test "$check_gcc" = "yes" ; then
322*328a4240Spbrook    cat > $TMPC <<EOF
323*328a4240Spbrook#if __GNUC__ < 4
324*328a4240Spbrook#error gcc3
325*328a4240Spbrook#endif
326*328a4240Spbrookint main(){return 0;}
327*328a4240SpbrookEOF
328*328a4240Spbrook    check_cc() {
329*328a4240Spbrook	which "$1" >&/dev/null
330*328a4240Spbrook	return $?
331*328a4240Spbrook    }
332*328a4240Spbrook
333*328a4240Spbrook    if "$cc" -o $TMPE $TMPC 2>/dev/null ; then
334*328a4240Spbrook	echo "WARNING: \"$cc\" looks like gcc 4.x"
335*328a4240Spbrook	found_compat_cc="no"
336*328a4240Spbrook	if test "$gcc3_search" = "yes" ; then
337*328a4240Spbrook	    echo "Looking for gcc 3.x"
338*328a4240Spbrook	    for compat_cc in $gcc3_list ; do
339*328a4240Spbrook		if check_cc "$compat_cc" ; then
340*328a4240Spbrook		    echo "Found \"$compat_cc\""
341*328a4240Spbrook		    cc="$compat_cc"
342*328a4240Spbrook		    found_compat_cc="yes"
343*328a4240Spbrook		    break
344*328a4240Spbrook		fi
345*328a4240Spbrook	    done
346*328a4240Spbrook	    if test "$found_compat_cc" = "no" ; then
347*328a4240Spbrook		echo "gcc 3.x not found!"
348*328a4240Spbrook	    fi
349*328a4240Spbrook	fi
350*328a4240Spbrook	if test "$found_compat_cc" = "no" ; then
351*328a4240Spbrook	    echo "QEMU is known to have problems when compiled with gcc 4.x"
352*328a4240Spbrook	    echo "It is recommended that you use gcc 3.x to build QEMU"
353*328a4240Spbrook	    echo "To use this compiler anyway, configure with --disable-gcc-check"
354*328a4240Spbrook	    exit 1;
355*328a4240Spbrook	fi
356*328a4240Spbrook    fi
357*328a4240Spbrookfi
358*328a4240Spbrook
359ec530c81Sbellard#
360ec530c81Sbellard# Solaris specific configure tool chain decisions
361ec530c81Sbellard#
362ec530c81Sbellardif test "$solaris" = "yes" ; then
363ec530c81Sbellard  #
364ec530c81Sbellard  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
365ec530c81Sbellard  # override the check with --disable-gcc-check
366ec530c81Sbellard  #
367ec530c81Sbellard  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
368ec530c81Sbellard    solgcc=`which $cc`
369ec530c81Sbellard    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
370ec530c81Sbellard      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
371ec530c81Sbellard      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
372ec530c81Sbellard      echo "or get the latest patch from SunSolve for gcc"
373ec530c81Sbellard      exit 1
374ec530c81Sbellard    fi
375ec530c81Sbellard  fi
376ec530c81Sbellard  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
377ec530c81Sbellard  if test -z "$solinst" ; then
378ec530c81Sbellard    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
379ec530c81Sbellard    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
380ec530c81Sbellard    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
381ec530c81Sbellard    exit 1
382ec530c81Sbellard  fi
383ec530c81Sbellard  if test "$solinst" = "/usr/sbin/install" ; then
384ec530c81Sbellard    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
385ec530c81Sbellard    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
386ec530c81Sbellard    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
387ec530c81Sbellard    exit 1
388ec530c81Sbellard  fi
389ec530c81Sbellard  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
390ec530c81Sbellard  if test -z "$sol_ar" ; then
391ec530c81Sbellard    echo "Error: No path includes ar"
392ec530c81Sbellard    if test -f /usr/ccs/bin/ar ; then
393ec530c81Sbellard      echo "Add /usr/ccs/bin to your path and rerun configure"
394ec530c81Sbellard    fi
395ec530c81Sbellard    exit 1
396ec530c81Sbellard  fi
397ec530c81Sbellardfi
398ec530c81Sbellard
399ec530c81Sbellard
4005327cf48Sbellardif test -z "$target_list" ; then
4015327cf48Sbellard# these targets are portable
4020a8e90f4Spbrook    if [ "$softmmu" = "yes" ] ; then
40338260998Spbrook        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
4040a8e90f4Spbrook    fi
4055327cf48Sbellard# the following are Linux specific
4060a8e90f4Spbrook    if [ "$user" = "yes" ] ; then
407e6e5906bSpbrook        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user m68k-user $target_list"
4085327cf48Sbellard    fi
4096e20a45fSbellardelse
410b1a550a0Spbrook    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
4115327cf48Sbellardfi
4120a8e90f4Spbrookif test -z "$target_list" ; then
4130a8e90f4Spbrook    echo "No targets enabled"
4140a8e90f4Spbrook    exit 1
4150a8e90f4Spbrookfi
4165327cf48Sbellard
4177d13299dSbellardif test -z "$cross_prefix" ; then
4187d13299dSbellard
4197d13299dSbellard# ---
4207d13299dSbellard# big/little endian test
4217d13299dSbellardcat > $TMPC << EOF
4227d13299dSbellard#include <inttypes.h>
4237d13299dSbellardint main(int argc, char ** argv){
4247d13299dSbellard        volatile uint32_t i=0x01234567;
4257d13299dSbellard        return (*((uint8_t*)(&i))) == 0x67;
4267d13299dSbellard}
4277d13299dSbellardEOF
4287d13299dSbellard
4297d13299dSbellardif $cc -o $TMPE $TMPC 2>/dev/null ; then
4307d13299dSbellard$TMPE && bigendian="yes"
4317d13299dSbellardelse
4327d13299dSbellardecho big/little test failed
4337d13299dSbellardfi
4347d13299dSbellard
4357d13299dSbellardelse
4367d13299dSbellard
4377d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess
438808c4954Sbellardif test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
4397d13299dSbellard    bigendian="yes"
4407d13299dSbellardfi
4417d13299dSbellard
4427d13299dSbellardfi
4437d13299dSbellard
444b6853697Sbellard# host long bits test
445b6853697Sbellardhostlongbits="32"
446b6853697Sbellardif test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
447b6853697Sbellard    hostlongbits="64"
448b6853697Sbellardfi
449b6853697Sbellard
450e8cd23deSbellard# check gcc options support
45104369ff2Sbellardcat > $TMPC <<EOF
45204369ff2Sbellardint main(void) {
45304369ff2Sbellard}
45404369ff2SbellardEOF
45504369ff2Sbellard
456e8cd23deSbellardhave_gcc3_options="no"
457e8cd23deSbellardif $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
458e8cd23deSbellard   have_gcc3_options="yes"
45904369ff2Sbellardfi
460ca735206Sbellard
46111d9f695Sbellard##########################################
46211d9f695Sbellard# SDL probe
46311d9f695Sbellard
46411d9f695Sbellardsdl_too_old=no
46511d9f695Sbellard
46611d9f695Sbellardif test -z "$sdl" ; then
46711d9f695Sbellard
468a6e022adSbellardsdl_config="sdl-config"
469a6e022adSbellardsdl=no
4707c1f25b4Sbellardsdl_static=no
471a6e022adSbellard
472a6e022adSbellardif test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
473a6e022adSbellard# win32 cross compilation case
474a6e022adSbellard    sdl_config="i386-mingw32msvc-sdl-config"
475a6e022adSbellard    sdl=yes
476a6e022adSbellardelse
477a6e022adSbellard# normal SDL probe
47811d9f695Sbellardcat > $TMPC << EOF
47911d9f695Sbellard#include <SDL.h>
48011d9f695Sbellard#undef main /* We don't want SDL to override our main() */
48111d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
48211d9f695SbellardEOF
48311d9f695Sbellard
484a6e022adSbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
485a6e022adSbellard_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
48611d9f695Sbellardif test "$_sdlversion" -lt 121 ; then
48711d9f695Sbellardsdl_too_old=yes
48811d9f695Sbellardelse
48911d9f695Sbellardsdl=yes
49011d9f695Sbellardfi
4917c1f25b4Sbellard
4927c1f25b4Sbellard# static link with sdl ?
4937c1f25b4Sbellardif test "$sdl" = "yes" ; then
4947c1f25b4Sbellardaa="no"
4957c1f25b4Sbellard`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
4967c1f25b4Sbellardsdl_static_libs=`$sdl_config --static-libs`
4977c1f25b4Sbellardif [ "$aa" = "yes" ] ; then
498d8d8aa4eSbellard  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
49911d9f695Sbellardfi
50011d9f695Sbellard
5017c1f25b4Sbellardif $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
5027c1f25b4Sbellard  sdl_static=yes
5037c1f25b4Sbellardfi
5047c1f25b4Sbellard
5057c1f25b4Sbellardfi # static link
5067c1f25b4Sbellard
5077c1f25b4Sbellardfi # sdl compile test
5087c1f25b4Sbellard
509a6e022adSbellardfi # cross compilation
510a6e022adSbellardfi # -z $sdl
51111d9f695Sbellard
512cc8ae6deSpbrook# Check if tools are available to build documentation.
51394ac5158Spbrookif [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
514cc8ae6deSpbrook  build_docs="yes"
515cc8ae6deSpbrookfi
516cc8ae6deSpbrook
51711d9f695Sbellardif test "$mingw32" = "yes" ; then
51811d9f695Sbellardif test -z "$prefix" ; then
51911d9f695Sbellard    prefix="/c/Program Files/Qemu"
52011d9f695Sbellardfi
52111d9f695Sbellardmandir="$prefix"
5227efa4387Sbellarddatadir="$prefix"
5231f50f8d1Sbellarddocdir="$prefix"
52411d9f695Sbellardbindir="$prefix"
52511d9f695Sbellardelse
52611d9f695Sbellardif test -z "$prefix" ; then
52711d9f695Sbellard    prefix="/usr/local"
52811d9f695Sbellardfi
5295a67135aSbellardmandir="$prefix/share/man"
5307efa4387Sbellarddatadir="$prefix/share/qemu"
5311f50f8d1Sbellarddocdir="$prefix/share/doc/qemu"
53211d9f695Sbellardbindir="$prefix/bin"
53311d9f695Sbellardfi
5345a67135aSbellard
5357d13299dSbellardecho "Install prefix    $prefix"
5367efa4387Sbellardecho "BIOS directory    $datadir"
53711d9f695Sbellardecho "binary directory  $bindir"
53811d9f695Sbellardif test "$mingw32" = "no" ; then
53911d9f695Sbellardecho "Manual directory  $mandir"
54043ce4dfeSbellardecho "ELF interp prefix $interp_prefix"
54111d9f695Sbellardfi
5425a67135aSbellardecho "Source path       $source_path"
5437d13299dSbellardecho "C compiler        $cc"
54483469015Sbellardecho "Host C compiler   $host_cc"
5457d13299dSbellardecho "make              $make"
5466a882643Spbrookecho "install           $install"
547a98fd896Sbellardecho "host CPU          $cpu"
548de83cd02Sbellardecho "host big endian   $bigendian"
54997a847bcSbellardecho "target list       $target_list"
5507d13299dSbellardecho "gprof enabled     $gprof"
55105c2a3e7Sbellardecho "profiler          $profiler"
55243ce4dfeSbellardecho "static build      $static"
5535b0753e0Sbellardif test "$darwin" = "yes" ; then
5545b0753e0Sbellard    echo "Cocoa support     $cocoa"
5555b0753e0Sbellardfi
55697a847bcSbellardecho "SDL support       $sdl"
557e4afee97Sbellardif test "$sdl" != "no" ; then
5587c1f25b4Sbellard    echo "SDL static link   $sdl_static"
559e4afee97Sbellardfi
56067b915a5Sbellardecho "mingw32 support   $mingw32"
561fb065187Sbellardecho "Adlib support     $adlib"
5621d14ffa9Sbellardecho "CoreAudio support $coreaudio"
5631d14ffa9Sbellardecho "ALSA support      $alsa"
5641d14ffa9Sbellardecho "DSound support    $dsound"
5651d14ffa9Sbellardif test "$fmod" = "yes"; then
5661d14ffa9Sbellard    if test -z $fmod_lib || test -z $fmod_inc; then
5671d14ffa9Sbellard        echo
5681d14ffa9Sbellard        echo "Error: You must specify path to FMOD library and headers"
5691d14ffa9Sbellard        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
5701d14ffa9Sbellard        echo
5711d14ffa9Sbellard        exit 1
5721d14ffa9Sbellard    fi
573b1a550a0Spbrook    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
574b1a550a0Spbrookelse
575b1a550a0Spbrook    fmod_support=""
576102a52e4Sbellardfi
577b1a550a0Spbrookecho "FMOD support      $fmod $fmod_support"
57807f4ddbfSbellardecho "kqemu support     $kqemu"
579cc8ae6deSpbrookecho "Documentation     $build_docs"
580c5937220Spbrook[ ! -z "$uname_release" ] && \
581c5937220Spbrookecho "uname -r          $uname_release"
58267b915a5Sbellard
58397a847bcSbellardif test $sdl_too_old = "yes"; then
58424b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support"
585e8cd23deSbellardfi
58624b55b96Sbellard#if test "$sdl_static" = "no"; then
58724b55b96Sbellard#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
58824b55b96Sbellard#fi
58997a847bcSbellardconfig_mak="config-host.mak"
59097a847bcSbellardconfig_h="config-host.h"
59197a847bcSbellard
5927c1f25b4Sbellard#echo "Creating $config_mak and $config_h"
59397a847bcSbellard
59497a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
59529517134Spbrookecho "# Configured with: $0 $@" >> $config_mak
59697a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
59797a847bcSbellard
59897a847bcSbellardecho "prefix=$prefix" >> $config_mak
59911d9f695Sbellardecho "bindir=$bindir" >> $config_mak
6005a67135aSbellardecho "mandir=$mandir" >> $config_mak
6017efa4387Sbellardecho "datadir=$datadir" >> $config_mak
6021f50f8d1Sbellardecho "docdir=$docdir" >> $config_mak
6037efa4387Sbellardecho "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
60497a847bcSbellardecho "MAKE=$make" >> $config_mak
6056a882643Spbrookecho "INSTALL=$install" >> $config_mak
60697a847bcSbellardecho "CC=$cc" >> $config_mak
60797a847bcSbellardif test "$have_gcc3_options" = "yes" ; then
60897a847bcSbellard  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
60997a847bcSbellardfi
61097a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak
61197a847bcSbellardecho "AR=$ar" >> $config_mak
61297a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak
61397a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak
61497a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak
61567b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak
61697a847bcSbellardif test "$cpu" = "i386" ; then
61797a847bcSbellard  echo "ARCH=i386" >> $config_mak
61897a847bcSbellard  echo "#define HOST_I386 1" >> $config_h
6190b0babc6Sbellardelif test "$cpu" = "x86_64" ; then
6200b0babc6Sbellard  echo "ARCH=x86_64" >> $config_mak
6210b0babc6Sbellard  echo "#define HOST_X86_64 1" >> $config_h
622808c4954Sbellardelif test "$cpu" = "armv4b" ; then
623808c4954Sbellard  echo "ARCH=arm" >> $config_mak
624808c4954Sbellard  echo "#define HOST_ARM 1" >> $config_h
6257d13299dSbellardelif test "$cpu" = "armv4l" ; then
62697a847bcSbellard  echo "ARCH=arm" >> $config_mak
62797a847bcSbellard  echo "#define HOST_ARM 1" >> $config_h
6287d13299dSbellardelif test "$cpu" = "powerpc" ; then
62997a847bcSbellard  echo "ARCH=ppc" >> $config_mak
63097a847bcSbellard  echo "#define HOST_PPC 1" >> $config_h
6317d13299dSbellardelif test "$cpu" = "mips" ; then
63297a847bcSbellard  echo "ARCH=mips" >> $config_mak
63397a847bcSbellard  echo "#define HOST_MIPS 1" >> $config_h
634fb3e5849Sbellardelif test "$cpu" = "s390" ; then
63597a847bcSbellard  echo "ARCH=s390" >> $config_mak
63697a847bcSbellard  echo "#define HOST_S390 1" >> $config_h
637295defa5Sbellardelif test "$cpu" = "alpha" ; then
63897a847bcSbellard  echo "ARCH=alpha" >> $config_mak
63997a847bcSbellard  echo "#define HOST_ALPHA 1" >> $config_h
640ae228531Sbellardelif test "$cpu" = "sparc" ; then
64197a847bcSbellard  echo "ARCH=sparc" >> $config_mak
64297a847bcSbellard  echo "#define HOST_SPARC 1" >> $config_h
643ae228531Sbellardelif test "$cpu" = "sparc64" ; then
64497a847bcSbellard  echo "ARCH=sparc64" >> $config_mak
64597a847bcSbellard  echo "#define HOST_SPARC64 1" >> $config_h
646a8baa8c5Sbellardelif test "$cpu" = "ia64" ; then
64797a847bcSbellard  echo "ARCH=ia64" >> $config_mak
64897a847bcSbellard  echo "#define HOST_IA64 1" >> $config_h
64938e584a0Sbellardelif test "$cpu" = "m68k" ; then
65038ca2abcSbellard  echo "ARCH=m68k" >> $config_mak
65138ca2abcSbellard  echo "#define HOST_M68K 1" >> $config_h
6527d13299dSbellardelse
6537d13299dSbellard  echo "Unsupported CPU"
6547d13299dSbellard  exit 1
6557d13299dSbellardfi
6567d13299dSbellardif test "$bigendian" = "yes" ; then
65797a847bcSbellard  echo "WORDS_BIGENDIAN=yes" >> $config_mak
65897a847bcSbellard  echo "#define WORDS_BIGENDIAN 1" >> $config_h
65997a847bcSbellardfi
660b6853697Sbellardecho "#define HOST_LONG_BITS $hostlongbits" >> $config_h
66167b915a5Sbellardif test "$mingw32" = "yes" ; then
66267b915a5Sbellard  echo "CONFIG_WIN32=yes" >> $config_mak
66311d9f695Sbellard  echo "#define CONFIG_WIN32 1" >> $config_h
6647d3505c5Sbellardelif test -f "/usr/include/byteswap.h" ; then
66597a847bcSbellard  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
66667b915a5Sbellardfi
66783fb7adfSbellardif test "$darwin" = "yes" ; then
66883fb7adfSbellard  echo "CONFIG_DARWIN=yes" >> $config_mak
66983fb7adfSbellard  echo "#define CONFIG_DARWIN 1" >> $config_h
67083fb7adfSbellardfi
671ec530c81Sbellardif test "$solaris" = "yes" ; then
672ec530c81Sbellard  echo "CONFIG_SOLARIS=yes" >> $config_mak
67338cfa06cSbellard  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
674ec530c81Sbellardfi
67567b915a5Sbellardif test "$gdbstub" = "yes" ; then
67667b915a5Sbellard  echo "CONFIG_GDBSTUB=yes" >> $config_mak
67767b915a5Sbellard  echo "#define CONFIG_GDBSTUB 1" >> $config_h
67867b915a5Sbellardfi
67997a847bcSbellardif test "$gprof" = "yes" ; then
68097a847bcSbellard  echo "TARGET_GPROF=yes" >> $config_mak
68197a847bcSbellard  echo "#define HAVE_GPROF 1" >> $config_h
68297a847bcSbellardfi
68397a847bcSbellardif test "$static" = "yes" ; then
68497a847bcSbellard  echo "CONFIG_STATIC=yes" >> $config_mak
68550863472Sbellard  echo "#define CONFIG_STATIC 1" >> $config_h
68697a847bcSbellardfi
68705c2a3e7Sbellardif test $profiler = "yes" ; then
68805c2a3e7Sbellard  echo "#define CONFIG_PROFILER 1" >> $config_h
68905c2a3e7Sbellardfi
690c20709aaSbellardif test "$slirp" = "yes" ; then
691c20709aaSbellard  echo "CONFIG_SLIRP=yes" >> $config_mak
692c20709aaSbellard  echo "#define CONFIG_SLIRP 1" >> $config_h
693c20709aaSbellardfi
694fb065187Sbellardif test "$adlib" = "yes" ; then
695fb065187Sbellard  echo "CONFIG_ADLIB=yes" >> $config_mak
696fb065187Sbellard  echo "#define CONFIG_ADLIB 1" >> $config_h
697fb065187Sbellardfi
698fb065187Sbellardif test "$oss" = "yes" ; then
699fb065187Sbellard  echo "CONFIG_OSS=yes" >> $config_mak
700fb065187Sbellard  echo "#define CONFIG_OSS 1" >> $config_h
701fb065187Sbellardfi
7021d14ffa9Sbellardif test "$coreaudio" = "yes" ; then
7031d14ffa9Sbellard  echo "CONFIG_COREAUDIO=yes" >> $config_mak
7041d14ffa9Sbellard  echo "#define CONFIG_COREAUDIO 1" >> $config_h
7051d14ffa9Sbellardfi
7061d14ffa9Sbellardif test "$alsa" = "yes" ; then
7071d14ffa9Sbellard  echo "CONFIG_ALSA=yes" >> $config_mak
7081d14ffa9Sbellard  echo "#define CONFIG_ALSA 1" >> $config_h
7091d14ffa9Sbellardfi
7101d14ffa9Sbellardif test "$dsound" = "yes" ; then
7111d14ffa9Sbellard  echo "CONFIG_DSOUND=yes" >> $config_mak
7121d14ffa9Sbellard  echo "#define CONFIG_DSOUND 1" >> $config_h
7131d14ffa9Sbellardfi
714102a52e4Sbellardif test "$fmod" = "yes" ; then
715102a52e4Sbellard  echo "CONFIG_FMOD=yes" >> $config_mak
716102a52e4Sbellard  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
717102a52e4Sbellard  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
718102a52e4Sbellard  echo "#define CONFIG_FMOD 1" >> $config_h
719102a52e4Sbellardfi
720b1a550a0Spbrookqemu_version=`head $source_path/VERSION`
721b1a550a0Spbrookecho "VERSION=$qemu_version" >>$config_mak
722d4b8f039Spbrookecho "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
72397a847bcSbellard
72497a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak
725ad064840Spbrookif [ "$source_path_used" = "yes" ]; then
726ad064840Spbrook  echo "VPATH=$source_path" >> $config_mak
727ad064840Spbrookfi
72897a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak
729cc8ae6deSpbrookif [ "$build_docs" = "yes" ] ; then
730cc8ae6deSpbrook  echo "BUILD_DOCS=yes" >> $config_mak
731cc8ae6deSpbrookfi
73297a847bcSbellard
73383fb7adfSbellard# XXX: suppress that
7347d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
73543003046Sbellard  echo "#define O_LARGEFILE 0" >> $config_h
73643003046Sbellard  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7377d3505c5Sbellard  echo "#define _BSD 1" >> $config_h
7387d3505c5Sbellardfi
7397d3505c5Sbellard
740c5937220Spbrookecho "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
741c5937220Spbrook
74297a847bcSbellardfor target in $target_list; do
74397a847bcSbellardtarget_dir="$target"
74497a847bcSbellardconfig_mak=$target_dir/config.mak
74597a847bcSbellardconfig_h=$target_dir/config.h
74697a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1`
74797a847bcSbellardtarget_bigendian="no"
748808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes
7491e43adfcSbellard[ "$target_cpu" = "sparc" ] && target_bigendian=yes
75064b3ab24Sbellard[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
75167867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes
752a2458627Sbellard[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
753d3258560Sbellard[ "$target_cpu" = "mips" ] && target_bigendian=yes
754908f52b0Spbrook[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
755e6e5906bSpbrook[ "$target_cpu" = "m68k" ] && target_bigendian=yes
75697a847bcSbellardtarget_softmmu="no"
75797a847bcSbellardif expr $target : '.*-softmmu' > /dev/null ; then
75897a847bcSbellard  target_softmmu="yes"
7597d13299dSbellardfi
760997344f3Sbellardtarget_user_only="no"
761997344f3Sbellardif expr $target : '.*-user' > /dev/null ; then
762997344f3Sbellard  target_user_only="yes"
763997344f3Sbellardfi
764de83cd02Sbellard
76597ccc689Sbellardif test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
76697ccc689Sbellard        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
76797ccc689Sbellard    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
7689c038506Spbrook    echo "To build QEMU without graphical output configure with --disable-gfx-check"
76997ccc689Sbellard    echo "Note that this will disable all output from the virtual graphics card."
77097ccc689Sbellard    exit 1;
77197ccc689Sbellardfi
77297ccc689Sbellard
7737c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
77497a847bcSbellard
77597a847bcSbellardmkdir -p $target_dir
776158142c2Sbellardmkdir -p $target_dir/fpu
777808c4954Sbellardif test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
77869de927cSbellard  mkdir -p $target_dir/nwfpe
77969de927cSbellardfi
780a7e61ed4Sbellardif test "$target_user_only" = "no" ; then
781a7e61ed4Sbellard  mkdir -p $target_dir/slirp
782a7e61ed4Sbellardfi
78369de927cSbellard
784ec530c81Sbellard#
785ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link
786ec530c81Sbellard#
787ec530c81Sbellardrm -f $target_dir/Makefile
788ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile
789ec530c81Sbellard
79097a847bcSbellard
79197a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
79297a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
79397a847bcSbellard
79497a847bcSbellard
79597a847bcSbellardecho "include ../config-host.mak" >> $config_mak
79697a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h
7971e43adfcSbellard
798e5fe0c52Spbrookbflt="no"
7991e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
8001e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
80197a847bcSbellard
80297a847bcSbellardif test "$target_cpu" = "i386" ; then
80397a847bcSbellard  echo "TARGET_ARCH=i386" >> $config_mak
80497a847bcSbellard  echo "#define TARGET_ARCH \"i386\"" >> $config_h
80597a847bcSbellard  echo "#define TARGET_I386 1" >> $config_h
80607f4ddbfSbellard  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
807824d560fSbellard    echo "#define USE_KQEMU 1" >> $config_h
808824d560fSbellard  fi
809808c4954Sbellardelif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
81097a847bcSbellard  echo "TARGET_ARCH=arm" >> $config_mak
81197a847bcSbellard  echo "#define TARGET_ARCH \"arm\"" >> $config_h
81297a847bcSbellard  echo "#define TARGET_ARM 1" >> $config_h
813e5fe0c52Spbrook  bflt="yes"
8141e43adfcSbellardelif test "$target_cpu" = "sparc" ; then
8151e43adfcSbellard  echo "TARGET_ARCH=sparc" >> $config_mak
8161e43adfcSbellard  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
8171e43adfcSbellard  echo "#define TARGET_SPARC 1" >> $config_h
81864b3ab24Sbellardelif test "$target_cpu" = "sparc64" ; then
81964b3ab24Sbellard  echo "TARGET_ARCH=sparc64" >> $config_mak
82064b3ab24Sbellard  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
82164b3ab24Sbellard  echo "#define TARGET_SPARC 1" >> $config_h
82264b3ab24Sbellard  echo "#define TARGET_SPARC64 1" >> $config_h
82367867308Sbellardelif test "$target_cpu" = "ppc" ; then
82467867308Sbellard  echo "TARGET_ARCH=ppc" >> $config_mak
82567867308Sbellard  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
82667867308Sbellard  echo "#define TARGET_PPC 1" >> $config_h
827a2458627Sbellardelif test "$target_cpu" = "ppc64" ; then
828a2458627Sbellard  echo "TARGET_ARCH=ppc64" >> $config_mak
829a2458627Sbellard  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
830a2458627Sbellard  echo "#define TARGET_PPC 1" >> $config_h
831a2458627Sbellard  echo "#define TARGET_PPC64 1" >> $config_h
8320b0babc6Sbellardelif test "$target_cpu" = "x86_64" ; then
8330b0babc6Sbellard  echo "TARGET_ARCH=x86_64" >> $config_mak
8340b0babc6Sbellard  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
8350b0babc6Sbellard  echo "#define TARGET_I386 1" >> $config_h
8360b0babc6Sbellard  echo "#define TARGET_X86_64 1" >> $config_h
83707f4ddbfSbellard  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
83807f4ddbfSbellard    echo "#define USE_KQEMU 1" >> $config_h
83907f4ddbfSbellard  fi
840c20eb473Sbellardelif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
841d3258560Sbellard  echo "TARGET_ARCH=mips" >> $config_mak
842d3258560Sbellard  echo "#define TARGET_ARCH \"mips\"" >> $config_h
843d3258560Sbellard  echo "#define TARGET_MIPS 1" >> $config_h
8446ea83fedSbellard  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
8456ea83fedSbellard  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
846908f52b0Spbrookelif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
847fdf9b3e8Sbellard  echo "TARGET_ARCH=sh4" >> $config_mak
848fdf9b3e8Sbellard  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
849fdf9b3e8Sbellard  echo "#define TARGET_SH4 1" >> $config_h
8504dbed897Spbrook  bflt="yes"
851e6e5906bSpbrookelif test "$target_cpu" = "m68k" ; then
852e6e5906bSpbrook  echo "TARGET_ARCH=m68k" >> $config_mak
853e6e5906bSpbrook  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
854e6e5906bSpbrook  echo "#define TARGET_M68K 1" >> $config_h
855e6e5906bSpbrook  bflt="yes"
856de83cd02Sbellardelse
857de83cd02Sbellard  echo "Unsupported target CPU"
858de83cd02Sbellard  exit 1
859de83cd02Sbellardfi
860de83cd02Sbellardif test "$target_bigendian" = "yes" ; then
86197a847bcSbellard  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
86297a847bcSbellard  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
86397a847bcSbellardfi
86497a847bcSbellardif test "$target_softmmu" = "yes" ; then
86597a847bcSbellard  echo "CONFIG_SOFTMMU=yes" >> $config_mak
86697a847bcSbellard  echo "#define CONFIG_SOFTMMU 1" >> $config_h
867de83cd02Sbellardfi
868997344f3Sbellardif test "$target_user_only" = "yes" ; then
869997344f3Sbellard  echo "CONFIG_USER_ONLY=yes" >> $config_mak
870997344f3Sbellard  echo "#define CONFIG_USER_ONLY 1" >> $config_h
871997344f3Sbellardfi
872de83cd02Sbellard
873e6e5906bSpbrookif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
874158142c2Sbellard  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
875158142c2Sbellard  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
876158142c2Sbellardfi
877e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
878e5fe0c52Spbrook  echo "TARGET_HAS_BFLT=yes" >> $config_mak
879e5fe0c52Spbrook  echo "#define TARGET_HAS_BFLT 1" >> $config_h
880e5fe0c52Spbrookfi
8817c1f25b4Sbellard# sdl defines
8827c1f25b4Sbellard
8837c1f25b4Sbellardif test "$target_user_only" = "no"; then
8847c1f25b4Sbellard    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
885dbb2c921Sbellard        sdl1=$sdl_static
8867c1f25b4Sbellard    else
887dbb2c921Sbellard        sdl1=$sdl
888dbb2c921Sbellard    fi
889dbb2c921Sbellard    if test "$sdl1" = "yes" ; then
8907c1f25b4Sbellard        echo "#define CONFIG_SDL 1" >> $config_h
8917c1f25b4Sbellard        echo "CONFIG_SDL=yes" >> $config_mak
892dbb2c921Sbellard        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
893dbb2c921Sbellard            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
894dbb2c921Sbellard        else
8957c1f25b4Sbellard            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
8967c1f25b4Sbellard        fi
8977c1f25b4Sbellard        if [ "${aa}" = "yes" ] ; then
898b1a550a0Spbrook            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
899b1a550a0Spbrook        else
900b1a550a0Spbrook            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
9017c1f25b4Sbellard        fi
9027c1f25b4Sbellard    fi
903dbb2c921Sbellardfi
9047c1f25b4Sbellard
9055b0753e0Sbellardif test "$cocoa" = "yes" ; then
9065b0753e0Sbellard    echo "#define CONFIG_COCOA 1" >> $config_h
9075b0753e0Sbellard    echo "CONFIG_COCOA=yes" >> $config_mak
9085b0753e0Sbellardfi
9095b0753e0Sbellard
91097a847bcSbellarddone # for target in $targets
9117d13299dSbellard
9127d13299dSbellard# build tree in object directory if source path is different from current one
9137d13299dSbellardif test "$source_path_used" = "yes" ; then
9147d13299dSbellard    DIRS="tests"
9157d13299dSbellard    FILES="Makefile tests/Makefile"
9167d13299dSbellard    for dir in $DIRS ; do
9177d13299dSbellard            mkdir -p $dir
9187d13299dSbellard    done
919ec530c81Sbellard    # remove the link and recreate it, as not all "ln -sf" overwrite the link
9207d13299dSbellard    for f in $FILES ; do
921ec530c81Sbellard        rm -f $f
922ec530c81Sbellard        ln -s $source_path/$f $f
9237d13299dSbellard    done
9247d13299dSbellardfi
9257d13299dSbellard
92697a847bcSbellardrm -f $TMPO $TMPC $TMPE $TMPS
927