xref: /openbmc/qemu/configure (revision 84778508)
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"
189d56d2dcSmalcTMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
197d13299dSbellard
207d13299dSbellard# default parameters
2111d9f695Sbellardprefix=""
221e43adfcSbellardinterp_prefix="/usr/gnemul/qemu-%M"
2343ce4dfeSbellardstatic="no"
247d13299dSbellardcross_prefix=""
257d13299dSbellardcc="gcc"
26328a4240Spbrookgcc3_search="yes"
27fe8f78e4Sbalroggcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
280c58ac1cSmalcaudio_drv_list=""
290c58ac1cSmalcaudio_card_list=""
307d13299dSbellardhost_cc="gcc"
317d13299dSbellardar="ar"
327d13299dSbellardmake="make"
336a882643Spbrookinstall="install"
347d13299dSbellardstrip="strip"
357d13299dSbellardcpu=`uname -m`
365327cf48Sbellardtarget_list=""
377d13299dSbellardcase "$cpu" in
387d13299dSbellard  i386|i486|i586|i686|i86pc|BePC)
3997a847bcSbellard    cpu="i386"
407d13299dSbellard  ;;
41aaa5fa14Saurel32  x86_64|amd64)
42aaa5fa14Saurel32    cpu="x86_64"
43aaa5fa14Saurel32  ;;
44aaa5fa14Saurel32  alpha)
45aaa5fa14Saurel32    cpu="alpha"
46aaa5fa14Saurel32  ;;
47ba68055eSbellard  armv*b)
48808c4954Sbellard    cpu="armv4b"
49808c4954Sbellard  ;;
50ba68055eSbellard  armv*l)
517d13299dSbellard    cpu="armv4l"
527d13299dSbellard  ;;
53aaa5fa14Saurel32  cris)
54aaa5fa14Saurel32    cpu="cris"
557d13299dSbellard  ;;
56f54b3f92Saurel32  parisc|parisc64)
57f54b3f92Saurel32    cpu="hppa"
58f54b3f92Saurel32  ;;
59aaa5fa14Saurel32  ia64)
60aaa5fa14Saurel32    cpu="ia64"
61aaa5fa14Saurel32  ;;
62aaa5fa14Saurel32  m68k)
63aaa5fa14Saurel32    cpu="m68k"
647d13299dSbellard  ;;
657d13299dSbellard  mips)
667d13299dSbellard    cpu="mips"
677d13299dSbellard  ;;
68fbe4f65bSths  mips64)
69fbe4f65bSths    cpu="mips64"
70fbe4f65bSths  ;;
71aaa5fa14Saurel32  "Power Macintosh"|ppc|ppc64)
72aaa5fa14Saurel32    cpu="powerpc"
73e7daa605Sths  ;;
740e7b8a9fSths  s390*)
75fb3e5849Sbellard    cpu="s390"
76fb3e5849Sbellard  ;;
773142255cSblueswir1  sparc|sun4[cdmuv])
78ae228531Sbellard    cpu="sparc"
79ae228531Sbellard  ;;
80ae228531Sbellard  sparc64)
81ae228531Sbellard    cpu="sparc64"
82ae228531Sbellard  ;;
837d13299dSbellard  *)
847d13299dSbellard    cpu="unknown"
857d13299dSbellard  ;;
867d13299dSbellardesac
877d13299dSbellardgprof="no"
8803b4fe7dSaliguorisparse="no"
897d13299dSbellardbigendian="no"
9067b915a5Sbellardmingw32="no"
9167b915a5SbellardEXESUF=""
9267b915a5Sbellardgdbstub="yes"
93443f1376Sbellardslirp="yes"
94e0e6c8c0Saliguorivde="yes"
95102a52e4Sbellardfmod_lib=""
96102a52e4Sbellardfmod_inc=""
972f6a1ab0Sblueswir1oss_lib=""
988d5d2d4cSthsvnc_tls="yes"
99b1a550a0Spbrookbsd="no"
1005327cf48Sbellardlinux="no"
101c9ec1fe4Sbellardkqemu="no"
10205c2a3e7Sbellardprofiler="no"
1035b0753e0Sbellardcocoa="no"
10497ccc689Sbellardcheck_gfx="yes"
1051aff381fSbellardcheck_gcc="yes"
1060a8e90f4Spbrooksoftmmu="yes"
107831b7825Sthslinux_user="no"
108831b7825Sthsdarwin_user="no"
109*84778508Sblueswir1bsd_user="no"
110cc8ae6deSpbrookbuild_docs="no"
111c5937220Spbrookuname_release=""
1124d3b6f6eSbalrogcurses="yes"
113414f0dabSblueswir1aio="yes"
114bd0c5661Spbrooknptl="yes"
1158ff9cbf7Smalcmixemu="no"
116fb599c9aSbalrogbluez="yes"
1177d13299dSbellard
1187d13299dSbellard# OS specific
1197d13299dSbellardtargetos=`uname -s`
1207d13299dSbellardcase $targetos in
121c326e0afSbellardCYGWIN*)
122c326e0afSbellardmingw32="yes"
1236f30fa85SthsOS_CFLAGS="-mno-cygwin"
124db8d7dd1Sthsif [ "$cpu" = "i386" ] ; then
125db8d7dd1Sths    kqemu="yes"
126db8d7dd1Sthsfi
127c2de5c91Smalcaudio_possible_drivers="sdl"
128c326e0afSbellard;;
12967b915a5SbellardMINGW32*)
13067b915a5Sbellardmingw32="yes"
131db8d7dd1Sthsif [ "$cpu" = "i386" ] ; then
132db8d7dd1Sths    kqemu="yes"
133db8d7dd1Sthsfi
134c2de5c91Smalcaudio_possible_drivers="dsound sdl fmod"
13567b915a5Sbellard;;
1365c40d2bdSthsGNU/kFreeBSD)
1370c58ac1cSmalcaudio_drv_list="oss"
138f34af52cSaurel32audio_possible_drivers="oss sdl esd pa"
1395c40d2bdSthsif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
1405c40d2bdSths    kqemu="yes"
1415c40d2bdSthsfi
1425c40d2bdSths;;
1437d3505c5SbellardFreeBSD)
1447d3505c5Sbellardbsd="yes"
1450c58ac1cSmalcaudio_drv_list="oss"
146f34af52cSaurel32audio_possible_drivers="oss sdl esd pa"
147e99f9060Sbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
14807f4ddbfSbellard    kqemu="yes"
14907f4ddbfSbellardfi
1507d3505c5Sbellard;;
1517d3505c5SbellardNetBSD)
1527d3505c5Sbellardbsd="yes"
1530c58ac1cSmalcaudio_drv_list="oss"
154c2de5c91Smalcaudio_possible_drivers="oss sdl esd"
1557d3505c5Sbellard;;
1567d3505c5SbellardOpenBSD)
1577d3505c5Sbellardbsd="yes"
158128ab2ffSblueswir1openbsd="yes"
1590c58ac1cSmalcaudio_drv_list="oss"
160c2de5c91Smalcaudio_possible_drivers="oss sdl esd"
1612f6a1ab0Sblueswir1oss_lib="-lossaudio"
1627d3505c5Sbellard;;
16383fb7adfSbellardDarwin)
16483fb7adfSbellardbsd="yes"
16583fb7adfSbellarddarwin="yes"
166831b7825Sthsdarwin_user="yes"
167fd677642Sthscocoa="yes"
1680c58ac1cSmalcaudio_drv_list="coreaudio"
169c2de5c91Smalcaudio_possible_drivers="coreaudio sdl fmod"
1706f30fa85SthsOS_CFLAGS="-mdynamic-no-pic"
171c2c59c3eSthsOS_LDFLAGS="-framework CoreFoundation -framework IOKit"
17283fb7adfSbellard;;
173ec530c81SbellardSunOS)
174ec530c81Sbellard    solaris="yes"
175c2b84fabSths    make="gmake"
176c2b84fabSths    install="ginstall"
1770475a5caSths    needs_libsunmath="no"
178c2b84fabSths    solarisrev=`uname -r | cut -f2 -d.`
179ef18c883Sths    # have to select again, because `uname -m` returns i86pc
180ef18c883Sths    # even on an x86_64 box.
181ef18c883Sths    solariscpu=`isainfo -k`
182ef18c883Sths    if test "${solariscpu}" = "amd64" ; then
183ef18c883Sths        cpu="x86_64"
184ef18c883Sths    fi
185c2b84fabSths    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
1860475a5caSths        if test "$solarisrev" -le 9 ; then
1870475a5caSths            if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
1880475a5caSths                needs_libsunmath="yes"
1890475a5caSths            else
1900475a5caSths                echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
1910475a5caSths                echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
1920475a5caSths                echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
1930475a5caSths                echo "Studio 11 can be downloaded from www.sun.com."
1940475a5caSths                exit 1
1950475a5caSths            fi
1960475a5caSths        fi
1970475a5caSths        if test "$solarisrev" -ge 9 ; then
198c2b84fabSths            kqemu="yes"
199c2b84fabSths        fi
20086b2bd93Sths    fi
2016b4d2ba1Sths    if test -f /usr/include/sys/soundcard.h ; then
2020c58ac1cSmalc        audio_drv_list="oss"
2036b4d2ba1Sths    fi
204c2de5c91Smalc    audio_possible_drivers="oss sdl"
205ec530c81Sbellard;;
206fb065187Sbellard*)
2070c58ac1cSmalcaudio_drv_list="oss"
208b8e59f18Smalcaudio_possible_drivers="oss alsa sdl esd pa"
2095327cf48Sbellardlinux="yes"
210831b7825Sthslinux_user="yes"
21107f4ddbfSbellardif [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
212c9ec1fe4Sbellard    kqemu="yes"
213c2de5c91Smalc    audio_possible_drivers="$audio_possible_drivers fmod"
214c9ec1fe4Sbellardfi
215fb065187Sbellard;;
2167d13299dSbellardesac
2177d13299dSbellard
2187d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
219b1a550a0Spbrook  if [ "$darwin" != "yes" ] ; then
2207d3505c5Sbellard    make="gmake"
22183fb7adfSbellard  fi
222*84778508Sblueswir1  bsd_user="yes"
2237d3505c5Sbellardfi
2247d3505c5Sbellard
2257d13299dSbellard# find source path
226ad064840Spbrooksource_path=`dirname "$0"`
22759faef3aSbalrogsource_path_used="no"
22859faef3aSbalrogworkdir=`pwd`
229ad064840Spbrookif [ -z "$source_path" ]; then
23059faef3aSbalrog    source_path=$workdir
231ad064840Spbrookelse
232ad064840Spbrook    source_path=`cd "$source_path"; pwd`
2337d13299dSbellardfi
234724db118Spbrook[ -f "$workdir/vl.c" ] || source_path_used="yes"
2357d13299dSbellard
23685aa5189Sbellardwerror="no"
2370d1e2394Sbellard# generate compile errors on warnings for development builds
2380d1e2394Sbellard#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
2390d1e2394Sbellard#werror="yes";
2400d1e2394Sbellard#fi
24185aa5189Sbellard
2427d13299dSbellardfor opt do
243a46e4035Spbrook  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
2447d13299dSbellard  case "$opt" in
2452efc3265Sbellard  --help|-h) show_help=yes
2462efc3265Sbellard  ;;
247b1a550a0Spbrook  --prefix=*) prefix="$optarg"
2487d13299dSbellard  ;;
249b1a550a0Spbrook  --interp-prefix=*) interp_prefix="$optarg"
25032ce6337Sbellard  ;;
251b1a550a0Spbrook  --source-path=*) source_path="$optarg"
252ad064840Spbrook  source_path_used="yes"
2537d13299dSbellard  ;;
254b1a550a0Spbrook  --cross-prefix=*) cross_prefix="$optarg"
2557d13299dSbellard  ;;
256b1a550a0Spbrook  --cc=*) cc="$optarg"
257328a4240Spbrook  gcc3_search="no"
2587d13299dSbellard  ;;
259b1a550a0Spbrook  --host-cc=*) host_cc="$optarg"
26083469015Sbellard  ;;
261b1a550a0Spbrook  --make=*) make="$optarg"
2627d13299dSbellard  ;;
2636a882643Spbrook  --install=*) install="$optarg"
2646a882643Spbrook  ;;
265b1a550a0Spbrook  --extra-cflags=*) CFLAGS="$optarg"
2667d13299dSbellard  ;;
267b1a550a0Spbrook  --extra-ldflags=*) LDFLAGS="$optarg"
2687d13299dSbellard  ;;
269b1a550a0Spbrook  --cpu=*) cpu="$optarg"
2707d13299dSbellard  ;;
271b1a550a0Spbrook  --target-list=*) target_list="$optarg"
272de83cd02Sbellard  ;;
2737d13299dSbellard  --enable-gprof) gprof="yes"
2747d13299dSbellard  ;;
27543ce4dfeSbellard  --static) static="yes"
27643ce4dfeSbellard  ;;
27797a847bcSbellard  --disable-sdl) sdl="no"
27897a847bcSbellard  ;;
279b1a550a0Spbrook  --fmod-lib=*) fmod_lib="$optarg"
280102a52e4Sbellard  ;;
281c2de5c91Smalc  --fmod-inc=*) fmod_inc="$optarg"
282c2de5c91Smalc  ;;
2832f6a1ab0Sblueswir1  --oss-lib=*) oss_lib="$optarg"
2842f6a1ab0Sblueswir1  ;;
2852fa7d3bfSmalc  --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
2860c58ac1cSmalc  ;;
2870c58ac1cSmalc  --audio-drv-list=*) audio_drv_list="$optarg"
2880c58ac1cSmalc  ;;
28903b4fe7dSaliguori  --enable-sparse) sparse="yes"
29003b4fe7dSaliguori  ;;
29103b4fe7dSaliguori  --disable-sparse) sparse="no"
29203b4fe7dSaliguori  ;;
2938d5d2d4cSths  --disable-vnc-tls) vnc_tls="no"
2948d5d2d4cSths  ;;
295443f1376Sbellard  --disable-slirp) slirp="no"
296c20709aaSbellard  ;;
297e0e6c8c0Saliguori  --disable-vde) vde="no"
2988a16d273Sths  ;;
299c9ec1fe4Sbellard  --disable-kqemu) kqemu="no"
300c9ec1fe4Sbellard  ;;
3012e4d9fb1Saurel32  --disable-brlapi) brlapi="no"
3022e4d9fb1Saurel32  ;;
303fb599c9aSbalrog  --disable-bluez) bluez="no"
304fb599c9aSbalrog  ;;
30505c2a3e7Sbellard  --enable-profiler) profiler="yes"
30605c2a3e7Sbellard  ;;
307c2de5c91Smalc  --enable-cocoa)
308c2de5c91Smalc      cocoa="yes" ;
309c2de5c91Smalc      sdl="no" ;
310c2de5c91Smalc      audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
3115b0753e0Sbellard  ;;
31297ccc689Sbellard  --disable-gfx-check) check_gfx="no"
31397ccc689Sbellard  ;;
3141aff381fSbellard  --disable-gcc-check) check_gcc="no"
3151aff381fSbellard  ;;
316cad25d69Spbrook  --disable-system) softmmu="no"
3170a8e90f4Spbrook  ;;
318cad25d69Spbrook  --enable-system) softmmu="yes"
3190a8e90f4Spbrook  ;;
320831b7825Sths  --disable-linux-user) linux_user="no"
3210a8e90f4Spbrook  ;;
322831b7825Sths  --enable-linux-user) linux_user="yes"
323831b7825Sths  ;;
324831b7825Sths  --disable-darwin-user) darwin_user="no"
325831b7825Sths  ;;
326831b7825Sths  --enable-darwin-user) darwin_user="yes"
3270a8e90f4Spbrook  ;;
328*84778508Sblueswir1  --disable-bsd-user) bsd_user="no"
329*84778508Sblueswir1  ;;
330*84778508Sblueswir1  --enable-bsd-user) bsd_user="yes"
331*84778508Sblueswir1  ;;
332c5937220Spbrook  --enable-uname-release=*) uname_release="$optarg"
333c5937220Spbrook  ;;
3343142255cSblueswir1  --sparc_cpu=*)
3353142255cSblueswir1      sparc_cpu="$optarg"
3363142255cSblueswir1      case $sparc_cpu in
3373142255cSblueswir1        v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
3383142255cSblueswir1                 target_cpu="sparc"; cpu="sparc" ;;
3393142255cSblueswir1        v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
3403142255cSblueswir1                 target_cpu="sparc"; cpu="sparc" ;;
3413142255cSblueswir1        v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
3423142255cSblueswir1                 target_cpu="sparc64"; cpu="sparc64" ;;
3433142255cSblueswir1        *)     echo "undefined SPARC architecture. Exiting";exit 1;;
3443142255cSblueswir1      esac
3453142255cSblueswir1  ;;
34685aa5189Sbellard  --enable-werror) werror="yes"
34785aa5189Sbellard  ;;
34885aa5189Sbellard  --disable-werror) werror="no"
34985aa5189Sbellard  ;;
3504d3b6f6eSbalrog  --disable-curses) curses="no"
3514d3b6f6eSbalrog  ;;
352bd0c5661Spbrook  --disable-nptl) nptl="no"
353bd0c5661Spbrook  ;;
3548ff9cbf7Smalc  --enable-mixemu) mixemu="yes"
3558ff9cbf7Smalc  ;;
356414f0dabSblueswir1  --disable-aio) aio="no"
357414f0dabSblueswir1  ;;
3587f1559c6Sbalrog  *) echo "ERROR: unknown option $opt"; show_help="yes"
3597f1559c6Sbalrog  ;;
3607d13299dSbellard  esac
3617d13299dSbellarddone
3627d13299dSbellard
3636f30fa85Sths# default flags for all hosts
364ac41a620Sblueswir1CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
365ac41a620Sblueswir1CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
3666f30fa85SthsLDFLAGS="$LDFLAGS -g"
36785aa5189Sbellardif test "$werror" = "yes" ; then
36885aa5189SbellardCFLAGS="$CFLAGS -Werror"
36985aa5189Sbellardfi
3706f30fa85Sths
37149237acdSblueswir1if ld --version 2>/dev/null | grep -q "GNU ld" ; then
37249237acdSblueswir1    LDFLAGS="$LDFLAGS -Wl,--warn-common"
37349237acdSblueswir1fi
37449237acdSblueswir1
3753142255cSblueswir1#
3763142255cSblueswir1# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
3773142255cSblueswir1# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
3783142255cSblueswir1#
37940293e58Sbellardcase "$cpu" in
3803142255cSblueswir1    sparc) if test -z "$sparc_cpu" ; then
3813142255cSblueswir1               ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
3823142255cSblueswir1               ARCH_LDFLAGS="-m32"
3833142255cSblueswir1           else
3843142255cSblueswir1               ARCH_CFLAGS="${SP_CFLAGS}"
3853142255cSblueswir1               ARCH_LDFLAGS="${SP_LDFLAGS}"
3863142255cSblueswir1           fi
3873142255cSblueswir1           ;;
3883142255cSblueswir1    sparc64) if test -z "$sparc_cpu" ; then
3893142255cSblueswir1               ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
3903142255cSblueswir1               ARCH_LDFLAGS="-m64"
3913142255cSblueswir1           else
3923142255cSblueswir1               ARCH_CFLAGS="${SP_CFLAGS}"
3933142255cSblueswir1               ARCH_LDFLAGS="${SP_LDFLAGS}"
3943142255cSblueswir1           fi
3953142255cSblueswir1           ;;
39676d83bdeSths    s390)
39776d83bdeSths           ARCH_CFLAGS="-march=z900"
39876d83bdeSths           ;;
39940293e58Sbellard    i386)
40040293e58Sbellard           ARCH_CFLAGS="-m32"
40140293e58Sbellard           ARCH_LDFLAGS="-m32"
40240293e58Sbellard           ;;
40340293e58Sbellard    x86_64)
40440293e58Sbellard           ARCH_CFLAGS="-m64"
40540293e58Sbellard           ARCH_LDFLAGS="-m64"
40640293e58Sbellard           ;;
4073142255cSblueswir1esac
4083142255cSblueswir1
409af5db58eSpbrookif test x"$show_help" = x"yes" ; then
410af5db58eSpbrookcat << EOF
411af5db58eSpbrook
412af5db58eSpbrookUsage: configure [options]
413af5db58eSpbrookOptions: [defaults in brackets after descriptions]
414af5db58eSpbrook
415af5db58eSpbrookEOF
416af5db58eSpbrookecho "Standard options:"
417af5db58eSpbrookecho "  --help                   print this message"
418af5db58eSpbrookecho "  --prefix=PREFIX          install in PREFIX [$prefix]"
419af5db58eSpbrookecho "  --interp-prefix=PREFIX   where to find shared libraries, etc."
420af5db58eSpbrookecho "                           use %M for cpu name [$interp_prefix]"
421af5db58eSpbrookecho "  --target-list=LIST       set target list [$target_list]"
422af5db58eSpbrookecho ""
423af5db58eSpbrookecho "kqemu kernel acceleration support:"
424af5db58eSpbrookecho "  --disable-kqemu          disable kqemu support"
425af5db58eSpbrookecho ""
426af5db58eSpbrookecho "Advanced options (experts only):"
427af5db58eSpbrookecho "  --source-path=PATH       path of source code [$source_path]"
428af5db58eSpbrookecho "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
429af5db58eSpbrookecho "  --cc=CC                  use C compiler CC [$cc]"
430af5db58eSpbrookecho "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
431af5db58eSpbrookecho "  --make=MAKE              use specified make [$make]"
4326a882643Spbrookecho "  --install=INSTALL        use specified install [$install]"
433af5db58eSpbrookecho "  --static                 enable static build [$static]"
434890b1658Saliguoriecho "  --enable-sparse          enable sparse checker"
435890b1658Saliguoriecho "  --disable-sparse         disable sparse checker (default)"
43685aa5189Sbellardecho "  --disable-werror         disable compilation abort on warning"
437fe8f78e4Sbalrogecho "  --disable-sdl            disable SDL"
438af5db58eSpbrookecho "  --enable-cocoa           enable COCOA (Mac OS X only)"
439c2de5c91Smalcecho "  --audio-drv-list=LIST    set audio drivers list:"
440c2de5c91Smalcecho "                           Available drivers: $audio_possible_drivers"
441c2de5c91Smalcecho "  --audio-card-list=LIST   set list of additional emulated audio cards"
442c2de5c91Smalcecho "                           Available cards: ac97 adlib cs4231a gus"
4438ff9cbf7Smalcecho "  --enable-mixemu          enable mixer emulation"
4442e4d9fb1Saurel32echo "  --disable-brlapi         disable BrlAPI"
4458d5d2d4cSthsecho "  --disable-vnc-tls        disable TLS encryption for VNC server"
446af896aaaSpbrookecho "  --disable-curses         disable curses output"
447fb599c9aSbalrogecho "  --disable-bluez          disable bluez stack connectivity"
448bd0c5661Spbrookecho "  --disable-nptl           disable usermode NPTL support"
449af5db58eSpbrookecho "  --enable-system          enable all system emulation targets"
450af5db58eSpbrookecho "  --disable-system         disable all system emulation targets"
451831b7825Sthsecho "  --enable-linux-user      enable all linux usermode emulation targets"
452831b7825Sthsecho "  --disable-linux-user     disable all linux usermode emulation targets"
453831b7825Sthsecho "  --enable-darwin-user     enable all darwin usermode emulation targets"
454831b7825Sthsecho "  --disable-darwin-user    disable all darwin usermode emulation targets"
455*84778508Sblueswir1echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
456*84778508Sblueswir1echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
457af5db58eSpbrookecho "  --fmod-lib               path to FMOD library"
458af5db58eSpbrookecho "  --fmod-inc               path to FMOD includes"
4592f6a1ab0Sblueswir1echo "  --oss-lib                path to OSS library"
460c5937220Spbrookecho "  --enable-uname-release=R Return R for uname -r in usermode emulation"
4613142255cSblueswir1echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
462e0e6c8c0Saliguoriecho "  --disable-vde            disable support for vde network"
463414f0dabSblueswir1echo "  --disable-aio            disable AIO support"
464af5db58eSpbrookecho ""
4655bf08934Sthsecho "NOTE: The object files are built at the place where configure is launched"
466af5db58eSpbrookexit 1
467af5db58eSpbrookfi
468af5db58eSpbrook
4697d13299dSbellardcc="${cross_prefix}${cc}"
4707d13299dSbellardar="${cross_prefix}${ar}"
4717d13299dSbellardstrip="${cross_prefix}${strip}"
4727d13299dSbellard
473064aae13Spbrook# check that the C compiler works.
474064aae13Spbrookcat > $TMPC <<EOF
475064aae13Spbrookint main(void) {}
476064aae13SpbrookEOF
477064aae13Spbrook
478db7287edSpbrookif $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
479064aae13Spbrook  : C compiler works ok
480064aae13Spbrookelse
481064aae13Spbrook    echo "ERROR: \"$cc\" either does not exist or does not work"
482064aae13Spbrook    exit 1
483a7350fa1Sbellardfi
484a7350fa1Sbellard
485cd01b4a3Saliguori# check compiler to see if we're on mingw32
486cd01b4a3Saliguoricat > $TMPC <<EOF
487cd01b4a3Saliguori#include <windows.h>
488cd01b4a3Saliguori#ifndef _WIN32
489cd01b4a3Saliguori#error not windows
490cd01b4a3Saliguori#endif
491cd01b4a3Saliguoriint main(void) {}
492cd01b4a3SaliguoriEOF
493cd01b4a3Saliguori
494cd01b4a3Saliguoriif $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
495cd01b4a3Saliguori    mingw32="yes"
496cd01b4a3Saliguorifi
497cd01b4a3Saliguori
49867b915a5Sbellardif test "$mingw32" = "yes" ; then
4995327cf48Sbellard    linux="no"
50067b915a5Sbellard    EXESUF=".exe"
5019f059ecaSbellard    oss="no"
502cd01b4a3Saliguori    linux_user="no"
503*84778508Sblueswir1    bsd_user="no"
504cd01b4a3Saliguorifi
505cd01b4a3Saliguori
506997306fcSaliguoriif [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
507cd01b4a3Saliguori    AIOLIBS=
508997306fcSaliguorielif [ "$bsd" = "yes" ]; then
509997306fcSaliguori    AIOLIBS="-lpthread"
510cd01b4a3Saliguorielse
511cd01b4a3Saliguori    # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
512cd01b4a3Saliguori    AIOLIBS="-lrt -lpthread"
51367b915a5Sbellardfi
51467b915a5Sbellard
515328a4240Spbrook# Check for gcc4, error if pre-gcc4
516328a4240Spbrookif test "$check_gcc" = "yes" ; then
517328a4240Spbrook    cat > $TMPC <<EOF
518328a4240Spbrook#if __GNUC__ < 4
519328a4240Spbrook#error gcc3
520328a4240Spbrook#endif
521328a4240Spbrookint main(){return 0;}
522328a4240SpbrookEOF
523db7287edSpbrook    if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
524328a4240Spbrook	echo "WARNING: \"$cc\" looks like gcc 4.x"
525328a4240Spbrook	found_compat_cc="no"
526328a4240Spbrook	if test "$gcc3_search" = "yes" ; then
527328a4240Spbrook	    echo "Looking for gcc 3.x"
528328a4240Spbrook	    for compat_cc in $gcc3_list ; do
529d4af3de2Sbalrog		if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
530328a4240Spbrook		    echo "Found \"$compat_cc\""
5311124426aSpbrook		    cc="$cross_prefix$compat_cc"
532328a4240Spbrook		    found_compat_cc="yes"
533328a4240Spbrook		    break
534328a4240Spbrook		fi
535328a4240Spbrook	    done
536328a4240Spbrook	    if test "$found_compat_cc" = "no" ; then
537328a4240Spbrook		echo "gcc 3.x not found!"
538328a4240Spbrook	    fi
539328a4240Spbrook	fi
540328a4240Spbrook	if test "$found_compat_cc" = "no" ; then
541328a4240Spbrook	    echo "QEMU is known to have problems when compiled with gcc 4.x"
542328a4240Spbrook	    echo "It is recommended that you use gcc 3.x to build QEMU"
543328a4240Spbrook	    echo "To use this compiler anyway, configure with --disable-gcc-check"
544328a4240Spbrook	    exit 1;
545328a4240Spbrook	fi
546328a4240Spbrook    fi
547328a4240Spbrookfi
548328a4240Spbrook
54903b4fe7dSaliguoriif test ! -x "$(which cgcc 2>/dev/null)"; then
55003b4fe7dSaliguori    sparse="no"
55103b4fe7dSaliguorifi
55203b4fe7dSaliguori
553ec530c81Sbellard#
554ec530c81Sbellard# Solaris specific configure tool chain decisions
555ec530c81Sbellard#
556ec530c81Sbellardif test "$solaris" = "yes" ; then
557ec530c81Sbellard  #
558ec530c81Sbellard  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
559ec530c81Sbellard  # override the check with --disable-gcc-check
560ec530c81Sbellard  #
561ec530c81Sbellard  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
562ec530c81Sbellard    solgcc=`which $cc`
563ec530c81Sbellard    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
564ec530c81Sbellard      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
565ec530c81Sbellard      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
566ec530c81Sbellard      echo "or get the latest patch from SunSolve for gcc"
567ec530c81Sbellard      exit 1
568ec530c81Sbellard    fi
569ec530c81Sbellard  fi
570ec530c81Sbellard  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
571ec530c81Sbellard  if test -z "$solinst" ; then
572ec530c81Sbellard    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
573ec530c81Sbellard    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
574ec530c81Sbellard    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
575ec530c81Sbellard    exit 1
576ec530c81Sbellard  fi
577ec530c81Sbellard  if test "$solinst" = "/usr/sbin/install" ; then
578ec530c81Sbellard    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
579ec530c81Sbellard    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
580ec530c81Sbellard    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
581ec530c81Sbellard    exit 1
582ec530c81Sbellard  fi
583ec530c81Sbellard  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
584ec530c81Sbellard  if test -z "$sol_ar" ; then
585ec530c81Sbellard    echo "Error: No path includes ar"
586ec530c81Sbellard    if test -f /usr/ccs/bin/ar ; then
587ec530c81Sbellard      echo "Add /usr/ccs/bin to your path and rerun configure"
588ec530c81Sbellard    fi
589ec530c81Sbellard    exit 1
590ec530c81Sbellard  fi
591ec530c81Sbellardfi
592ec530c81Sbellard
593ec530c81Sbellard
5945327cf48Sbellardif test -z "$target_list" ; then
5955327cf48Sbellard# these targets are portable
5960a8e90f4Spbrook    if [ "$softmmu" = "yes" ] ; then
5972408a527Saurel32        target_list="\
5982408a527Saurel32i386-softmmu \
5992408a527Saurel32x86_64-softmmu \
6002408a527Saurel32arm-softmmu \
6012408a527Saurel32cris-softmmu \
6022408a527Saurel32m68k-softmmu \
6032408a527Saurel32mips-softmmu \
6042408a527Saurel32mipsel-softmmu \
6052408a527Saurel32mips64-softmmu \
6062408a527Saurel32mips64el-softmmu \
6072408a527Saurel32ppc-softmmu \
6082408a527Saurel32ppcemb-softmmu \
6092408a527Saurel32ppc64-softmmu \
6102408a527Saurel32sh4-softmmu \
6112408a527Saurel32sh4eb-softmmu \
6122408a527Saurel32sparc-softmmu \
6132408a527Saurel32"
6140a8e90f4Spbrook    fi
6155327cf48Sbellard# the following are Linux specific
616831b7825Sths    if [ "$linux_user" = "yes" ] ; then
6172408a527Saurel32        target_list="${target_list}\
6182408a527Saurel32i386-linux-user \
6192408a527Saurel32x86_64-linux-user \
6202408a527Saurel32alpha-linux-user \
6212408a527Saurel32arm-linux-user \
6222408a527Saurel32armeb-linux-user \
6232408a527Saurel32cris-linux-user \
6242408a527Saurel32m68k-linux-user \
6252408a527Saurel32mips-linux-user \
6262408a527Saurel32mipsel-linux-user \
6272408a527Saurel32ppc-linux-user \
6282408a527Saurel32ppc64-linux-user \
6292408a527Saurel32ppc64abi32-linux-user \
6302408a527Saurel32sh4-linux-user \
6312408a527Saurel32sh4eb-linux-user \
6322408a527Saurel32sparc-linux-user \
6332408a527Saurel32sparc64-linux-user \
6342408a527Saurel32sparc32plus-linux-user \
6352408a527Saurel32"
636831b7825Sths    fi
637831b7825Sths# the following are Darwin specific
638831b7825Sths    if [ "$darwin_user" = "yes" ] ; then
6392408a527Saurel32        target_list="$target_list i386-darwin-user ppc-darwin-user"
6405327cf48Sbellard    fi
641*84778508Sblueswir1# the following are BSD specific
642*84778508Sblueswir1    if [ "$bsd_user" = "yes" ] ; then
643*84778508Sblueswir1        target_list="${target_list}\
644*84778508Sblueswir1sparc64-bsd-user \
645*84778508Sblueswir1"
646*84778508Sblueswir1    fi
6476e20a45fSbellardelse
648b1a550a0Spbrook    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
6495327cf48Sbellardfi
6500a8e90f4Spbrookif test -z "$target_list" ; then
6510a8e90f4Spbrook    echo "No targets enabled"
6520a8e90f4Spbrook    exit 1
6530a8e90f4Spbrookfi
6545327cf48Sbellard
6557d13299dSbellardif test -z "$cross_prefix" ; then
6567d13299dSbellard
6577d13299dSbellard# ---
6587d13299dSbellard# big/little endian test
6597d13299dSbellardcat > $TMPC << EOF
6607d13299dSbellard#include <inttypes.h>
6617d13299dSbellardint main(int argc, char ** argv){
6627d13299dSbellard        volatile uint32_t i=0x01234567;
6637d13299dSbellard        return (*((uint8_t*)(&i))) == 0x67;
6647d13299dSbellard}
6657d13299dSbellardEOF
6667d13299dSbellard
667db7287edSpbrookif $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
6687d13299dSbellard$TMPE && bigendian="yes"
6697d13299dSbellardelse
6707d13299dSbellardecho big/little test failed
6717d13299dSbellardfi
6727d13299dSbellard
6737d13299dSbellardelse
6747d13299dSbellard
6757d13299dSbellard# if cross compiling, cannot launch a program, so make a static guess
6760938cda5Saurel32if test "$cpu" = "armv4b" \
677f54b3f92Saurel32     -o "$cpu" = "hppa" \
6780938cda5Saurel32     -o "$cpu" = "m68k" \
6790938cda5Saurel32     -o "$cpu" = "mips" \
6800938cda5Saurel32     -o "$cpu" = "mips64" \
6810938cda5Saurel32     -o "$cpu" = "powerpc" \
6820938cda5Saurel32     -o "$cpu" = "s390" \
6830938cda5Saurel32     -o "$cpu" = "sparc" \
6840938cda5Saurel32     -o "$cpu" = "sparc64"; then
6857d13299dSbellard    bigendian="yes"
6867d13299dSbellardfi
6877d13299dSbellard
6887d13299dSbellardfi
6897d13299dSbellard
690b6853697Sbellard# host long bits test
691b6853697Sbellardhostlongbits="32"
6920938cda5Saurel32if test "$cpu" = "x86_64" \
6930938cda5Saurel32     -o "$cpu" = "alpha" \
6940938cda5Saurel32     -o "$cpu" = "ia64" \
6950938cda5Saurel32     -o "$cpu" = "sparc64"; then
696b6853697Sbellard    hostlongbits="64"
697b6853697Sbellardfi
698b6853697Sbellard
699810260a8Smalc# ppc specific hostlongbits selection
700810260a8Smalcif test "$cpu" = "powerpc" ; then
7019d56d2dcSmalc    if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
7029d56d2dcSmalc        grep -q __powerpc64__ $TMPI && hostlongbits=64
703810260a8Smalc    else
704810260a8Smalc        echo hostlongbits test failed
705ba69a08aSmalc        exit 1
706810260a8Smalc    fi
707810260a8Smalcfi
708810260a8Smalc
709e8cd23deSbellard# check gcc options support
71004369ff2Sbellardcat > $TMPC <<EOF
71104369ff2Sbellardint main(void) {
71204369ff2Sbellard}
71304369ff2SbellardEOF
71404369ff2Sbellard
715bd0c5661Spbrook# Check host NPTL support
716bd0c5661Spbrookcat > $TMPC <<EOF
717bd0c5661Spbrook#include <sched.h>
71830813ceaSpbrook#include <linux/futex.h>
719bd0c5661Spbrookvoid foo()
720bd0c5661Spbrook{
721bd0c5661Spbrook#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
722bd0c5661Spbrook#error bork
723bd0c5661Spbrook#endif
724bd0c5661Spbrook}
725bd0c5661SpbrookEOF
726bd0c5661Spbrook
727bd0c5661Spbrookif $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
728bd0c5661Spbrook  :
729bd0c5661Spbrookelse
730bd0c5661Spbrook   nptl="no"
731bd0c5661Spbrookfi
732bd0c5661Spbrook
73311d9f695Sbellard##########################################
734ac62922eSbalrog# zlib check
735ac62922eSbalrog
736ac62922eSbalrogcat > $TMPC << EOF
737ac62922eSbalrog#include <zlib.h>
738ac62922eSbalrogint main(void) { zlibVersion(); return 0; }
739ac62922eSbalrogEOF
74017e1592dSbalrogif $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
741ac62922eSbalrog    :
742ac62922eSbalrogelse
743ac62922eSbalrog    echo
744ac62922eSbalrog    echo "Error: zlib check failed"
745ac62922eSbalrog    echo "Make sure to have the zlib libs and headers installed."
746ac62922eSbalrog    echo
747ac62922eSbalrog    exit 1
748ac62922eSbalrogfi
749ac62922eSbalrog
750ac62922eSbalrog##########################################
75111d9f695Sbellard# SDL probe
75211d9f695Sbellard
75311d9f695Sbellardsdl_too_old=no
75411d9f695Sbellard
75511d9f695Sbellardif test -z "$sdl" ; then
756a6e022adSbellard    sdl_config="sdl-config"
757a6e022adSbellard    sdl=no
7587c1f25b4Sbellard    sdl_static=no
759a6e022adSbellard
76011d9f695Sbellardcat > $TMPC << EOF
76111d9f695Sbellard#include <SDL.h>
76211d9f695Sbellard#undef main /* We don't want SDL to override our main() */
76311d9f695Sbellardint main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
76411d9f695SbellardEOF
765db7287edSpbrook    if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
766a6e022adSbellard        _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
76711d9f695Sbellard        if test "$_sdlversion" -lt 121 ; then
76811d9f695Sbellard            sdl_too_old=yes
76911d9f695Sbellard        else
770fd677642Sths            if test "$cocoa" = "no" ; then
77111d9f695Sbellard                sdl=yes
77211d9f695Sbellard            fi
773fd677642Sths        fi
7747c1f25b4Sbellard
7757c1f25b4Sbellard        # static link with sdl ?
7767c1f25b4Sbellard        if test "$sdl" = "yes" ; then
7777c1f25b4Sbellard            aa="no"
778e14a693dSths            `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
779e14a693dSths            sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
7807c1f25b4Sbellard            if [ "$aa" = "yes" ] ; then
781d8d8aa4eSbellard                sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
78211d9f695Sbellard            fi
78311d9f695Sbellard
7848281db4dSths            if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
7857c1f25b4Sbellard                sdl_static=yes
7867c1f25b4Sbellard            fi
7877c1f25b4Sbellard        fi # static link
7887c1f25b4Sbellard    fi # sdl compile test
789fd677642Sthselse
790fd677642Sths    # Make sure to disable cocoa if sdl was set
791fd677642Sths    if test "$sdl" = "yes" ; then
792fd677642Sths       cocoa="no"
793c2de5c91Smalc       audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
794fd677642Sths    fi
795a6e022adSbellardfi # -z $sdl
79611d9f695Sbellard
7978f28f3fbSths##########################################
7988d5d2d4cSths# VNC TLS detection
7998d5d2d4cSthsif test "$vnc_tls" = "yes" ; then
800ae6b5e5aSaliguoricat > $TMPC <<EOF
801ae6b5e5aSaliguori#include <gnutls/gnutls.h>
802ae6b5e5aSaliguoriint main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
803ae6b5e5aSaliguoriEOF
804ae6b5e5aSaliguori    vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
805ae6b5e5aSaliguori    vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
806ae6b5e5aSaliguori    if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
807ae6b5e5aSaliguori           $vnc_tls_libs 2> /dev/null ; then
808ae6b5e5aSaliguori	:
809ae6b5e5aSaliguori    else
810ae6b5e5aSaliguori	vnc_tls="no"
8118d5d2d4cSths    fi
8128d5d2d4cSthsfi
8138d5d2d4cSths
8148d5d2d4cSths##########################################
8158a16d273Sths# vde libraries probe
8168a16d273Sthsif test "$vde" = "yes" ; then
8178a16d273Sths  cat > $TMPC << EOF
8188a16d273Sths#include <libvdeplug.h>
8194a7f0e06Spbrookint main(void)
8204a7f0e06Spbrook{
8214a7f0e06Spbrook    struct vde_open_args a = {0, 0, 0};
8224a7f0e06Spbrook    vde_open("", "", &a);
8234a7f0e06Spbrook    return 0;
8244a7f0e06Spbrook}
8258a16d273SthsEOF
8264a7f0e06Spbrook    if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
8278a16d273Sths        :
8288a16d273Sths    else
829e0e6c8c0Saliguori        vde="no"
8308a16d273Sths    fi
8318a16d273Sthsfi
8328a16d273Sths
8338a16d273Sths##########################################
834c2de5c91Smalc# Sound support libraries probe
8358f28f3fbSths
836c2de5c91Smalcaudio_drv_probe()
837c2de5c91Smalc{
838c2de5c91Smalc    drv=$1
839c2de5c91Smalc    hdr=$2
840c2de5c91Smalc    lib=$3
841c2de5c91Smalc    exp=$4
842c2de5c91Smalc    cfl=$5
8438f28f3fbSths        cat > $TMPC << EOF
844c2de5c91Smalc#include <$hdr>
845c2de5c91Smalcint main(void) { $exp }
8468f28f3fbSthsEOF
847c2de5c91Smalc    if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
8488f28f3fbSths        :
8498f28f3fbSths    else
8508f28f3fbSths        echo
851c2de5c91Smalc        echo "Error: $drv check failed"
852c2de5c91Smalc        echo "Make sure to have the $drv libs and headers installed."
8538f28f3fbSths        echo
8548f28f3fbSths        exit 1
8558f28f3fbSths    fi
856c2de5c91Smalc}
857c2de5c91Smalc
8582fa7d3bfSmalcaudio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
859c2de5c91Smalcfor drv in $audio_drv_list; do
860c2de5c91Smalc    case $drv in
861c2de5c91Smalc    alsa)
862c2de5c91Smalc    audio_drv_probe $drv alsa/asoundlib.h -lasound \
863c2de5c91Smalc        "snd_pcm_t **handle; return snd_pcm_close(*handle);"
864c2de5c91Smalc    ;;
865c2de5c91Smalc
866c2de5c91Smalc    fmod)
867c2de5c91Smalc    if test -z $fmod_lib || test -z $fmod_inc; then
868c2de5c91Smalc        echo
869c2de5c91Smalc        echo "Error: You must specify path to FMOD library and headers"
870c2de5c91Smalc        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
871c2de5c91Smalc        echo
872c2de5c91Smalc        exit 1
8738f28f3fbSths    fi
874c2de5c91Smalc    audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
875c2de5c91Smalc    ;;
876c2de5c91Smalc
877c2de5c91Smalc    esd)
878c2de5c91Smalc    audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
879c2de5c91Smalc    ;;
880b8e59f18Smalc
881b8e59f18Smalc    pa)
882b8e59f18Smalc    audio_drv_probe $drv pulse/simple.h -lpulse-simple \
883b8e59f18Smalc        "pa_simple *s = NULL; pa_simple_free(s); return 0;"
884b8e59f18Smalc    ;;
885b8e59f18Smalc
8862f6a1ab0Sblueswir1    oss|sdl|core|wav|dsound)
8872f6a1ab0Sblueswir1    # XXX: Probes for CoreAudio, DirectSound, SDL(?)
8882f6a1ab0Sblueswir1    ;;
8892f6a1ab0Sblueswir1
890e4c63a6aSmalc    *)
8911c9b2a52Smalc    echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
892e4c63a6aSmalc        echo
893e4c63a6aSmalc        echo "Error: Unknown driver '$drv' selected"
894e4c63a6aSmalc        echo "Possible drivers are: $audio_possible_drivers"
895e4c63a6aSmalc        echo
896e4c63a6aSmalc        exit 1
897e4c63a6aSmalc    }
898e4c63a6aSmalc    ;;
899c2de5c91Smalc    esac
900c2de5c91Smalcdone
9018f28f3fbSths
9024d3b6f6eSbalrog##########################################
9032e4d9fb1Saurel32# BrlAPI probe
9042e4d9fb1Saurel32
9052e4d9fb1Saurel32if test -z "$brlapi" ; then
9062e4d9fb1Saurel32    brlapi=no
9072e4d9fb1Saurel32cat > $TMPC << EOF
9082e4d9fb1Saurel32#include <brlapi.h>
9092e4d9fb1Saurel32int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
9102e4d9fb1Saurel32EOF
911a40e56d5Saurel32    if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
9122e4d9fb1Saurel32	    brlapi=yes
9132e4d9fb1Saurel32    fi # brlapi compile test
9142e4d9fb1Saurel32fi # -z $brlapi
9152e4d9fb1Saurel32
9162e4d9fb1Saurel32##########################################
9174d3b6f6eSbalrog# curses probe
9184d3b6f6eSbalrog
9194d3b6f6eSbalrogif test "$curses" = "yes" ; then
9204d3b6f6eSbalrog  curses=no
9214d3b6f6eSbalrog  cat > $TMPC << EOF
9224d3b6f6eSbalrog#include <curses.h>
9234d3b6f6eSbalrogint main(void) { return curses_version(); }
9244d3b6f6eSbalrogEOF
925af896aaaSpbrook  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
9264d3b6f6eSbalrog    curses=yes
9274d3b6f6eSbalrog  fi
9284d3b6f6eSbalrogfi # test "$curses"
9294d3b6f6eSbalrog
930414f0dabSblueswir1##########################################
931fb599c9aSbalrog# bluez support probe
932fb599c9aSbalrogif test "$bluez" = "yes" ; then
933fb599c9aSbalrog  `pkg-config bluez` || bluez="no"
934fb599c9aSbalrogfi
935fb599c9aSbalrogif test "$bluez" = "yes" ; then
936e820e3f4Sbalrog  cat > $TMPC << EOF
937e820e3f4Sbalrog#include <bluetooth/bluetooth.h>
938e820e3f4Sbalrogint main(void) { return bt_error(0); }
939e820e3f4SbalrogEOF
940fb599c9aSbalrog  bluez_cflags=`pkg-config --cflags bluez`
941fb599c9aSbalrog  bluez_libs=`pkg-config --libs bluez`
94217e1592dSbalrog  if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
943e820e3f4Sbalrog      $bluez_libs 2> /dev/null ; then
944e820e3f4Sbalrog    :
945e820e3f4Sbalrog  else
946e820e3f4Sbalrog    bluez="no"
947e820e3f4Sbalrog  fi
948fb599c9aSbalrogfi
949fb599c9aSbalrog
950fb599c9aSbalrog##########################################
951414f0dabSblueswir1# AIO probe
952414f0dabSblueswir1if test "$aio" = "yes" ; then
953414f0dabSblueswir1  aio=no
954414f0dabSblueswir1  cat > $TMPC << EOF
955414f0dabSblueswir1#include <aio.h>
956414f0dabSblueswir1int main(void) { return aio_write(NULL); }
957414f0dabSblueswir1EOF
958414f0dabSblueswir1  if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
959414f0dabSblueswir1    aio=yes
960414f0dabSblueswir1  fi
961414f0dabSblueswir1fi
962414f0dabSblueswir1
963cc8ae6deSpbrook# Check if tools are available to build documentation.
9646c591867Sthsif [ -x "`which texi2html 2>/dev/null`" ] && \
9656c591867Sths   [ -x "`which pod2man 2>/dev/null`" ]; then
966cc8ae6deSpbrook  build_docs="yes"
967cc8ae6deSpbrookfi
968cc8ae6deSpbrook
96911d9f695Sbellardif test "$mingw32" = "yes" ; then
97011d9f695Sbellard  if test -z "$prefix" ; then
97117e90973Saliguori      prefix="c:\\\\Program Files\\\\Qemu"
97211d9f695Sbellard  fi
973308c3593Spbrook  mansuffix=""
974308c3593Spbrook  datasuffix=""
975308c3593Spbrook  docsuffix=""
976308c3593Spbrook  binsuffix=""
97711d9f695Sbellardelse
97811d9f695Sbellard  if test -z "$prefix" ; then
97911d9f695Sbellard      prefix="/usr/local"
98011d9f695Sbellard  fi
981308c3593Spbrook  mansuffix="/share/man"
982308c3593Spbrook  datasuffix="/share/qemu"
983308c3593Spbrook  docsuffix="/share/doc/qemu"
984308c3593Spbrook  binsuffix="/bin"
98511d9f695Sbellardfi
9865a67135aSbellard
9877d13299dSbellardecho "Install prefix    $prefix"
988308c3593Spbrookecho "BIOS directory    $prefix$datasuffix"
989308c3593Spbrookecho "binary directory  $prefix$binsuffix"
99011d9f695Sbellardif test "$mingw32" = "no" ; then
991308c3593Spbrookecho "Manual directory  $prefix$mansuffix"
99243ce4dfeSbellardecho "ELF interp prefix $interp_prefix"
99311d9f695Sbellardfi
9945a67135aSbellardecho "Source path       $source_path"
9957d13299dSbellardecho "C compiler        $cc"
99683469015Sbellardecho "Host C compiler   $host_cc"
997db7287edSpbrookecho "ARCH_CFLAGS       $ARCH_CFLAGS"
9987d13299dSbellardecho "make              $make"
9996a882643Spbrookecho "install           $install"
1000a98fd896Sbellardecho "host CPU          $cpu"
1001de83cd02Sbellardecho "host big endian   $bigendian"
100297a847bcSbellardecho "target list       $target_list"
10037d13299dSbellardecho "gprof enabled     $gprof"
100403b4fe7dSaliguoriecho "sparse enabled    $sparse"
100505c2a3e7Sbellardecho "profiler          $profiler"
100643ce4dfeSbellardecho "static build      $static"
100785aa5189Sbellardecho "-Werror enabled   $werror"
10085b0753e0Sbellardif test "$darwin" = "yes" ; then
10095b0753e0Sbellard    echo "Cocoa support     $cocoa"
10105b0753e0Sbellardfi
101197a847bcSbellardecho "SDL support       $sdl"
1012e4afee97Sbellardif test "$sdl" != "no" ; then
10137c1f25b4Sbellard    echo "SDL static link   $sdl_static"
1014e4afee97Sbellardfi
10154d3b6f6eSbalrogecho "curses support    $curses"
101667b915a5Sbellardecho "mingw32 support   $mingw32"
10170c58ac1cSmalcecho "Audio drivers     $audio_drv_list"
10180c58ac1cSmalcecho "Extra audio cards $audio_card_list"
10198ff9cbf7Smalcecho "Mixer emulation   $mixemu"
10208d5d2d4cSthsecho "VNC TLS support   $vnc_tls"
10218d5d2d4cSthsif test "$vnc_tls" = "yes" ; then
10228d5d2d4cSths    echo "    TLS CFLAGS    $vnc_tls_cflags"
10238d5d2d4cSths    echo "    TLS LIBS      $vnc_tls_libs"
10248d5d2d4cSthsfi
10253142255cSblueswir1if test -n "$sparc_cpu"; then
10263142255cSblueswir1    echo "Target Sparc Arch $sparc_cpu"
10273142255cSblueswir1fi
102807f4ddbfSbellardecho "kqemu support     $kqemu"
10292e4d9fb1Saurel32echo "brlapi support    $brlapi"
1030cc8ae6deSpbrookecho "Documentation     $build_docs"
1031c5937220Spbrook[ ! -z "$uname_release" ] && \
1032c5937220Spbrookecho "uname -r          $uname_release"
1033bd0c5661Spbrookecho "NPTL support      $nptl"
10348a16d273Sthsecho "vde support       $vde"
1035414f0dabSblueswir1echo "AIO support       $aio"
103667b915a5Sbellard
103797a847bcSbellardif test $sdl_too_old = "yes"; then
103824b55b96Sbellardecho "-> Your SDL version is too old - please upgrade to have SDL support"
1039e8cd23deSbellardfi
104020b40c6aSthsif [ -s /tmp/qemu-$$-sdl-config.log ]; then
104120b40c6aSths  echo "The error log from compiling the libSDL test is: "
104220b40c6aSths  cat /tmp/qemu-$$-sdl-config.log
104320b40c6aSthsfi
104420b40c6aSthsrm -f /tmp/qemu-$$-sdl-config.log
104524b55b96Sbellard#if test "$sdl_static" = "no"; then
104624b55b96Sbellard#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
104724b55b96Sbellard#fi
104897a847bcSbellardconfig_mak="config-host.mak"
104997a847bcSbellardconfig_h="config-host.h"
105097a847bcSbellard
10517c1f25b4Sbellard#echo "Creating $config_mak and $config_h"
105297a847bcSbellard
105315d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~
105415d9ca0fSths
105597a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
105629517134Spbrookecho "# Configured with: $0 $@" >> $config_mak
105797a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
105897a847bcSbellard
105997a847bcSbellardecho "prefix=$prefix" >> $config_mak
1060308c3593Spbrookecho "bindir=\${prefix}$binsuffix" >> $config_mak
1061308c3593Spbrookecho "mandir=\${prefix}$mansuffix" >> $config_mak
1062308c3593Spbrookecho "datadir=\${prefix}$datasuffix" >> $config_mak
10634ad5b06dSthsecho "docdir=\${prefix}$docsuffix" >> $config_mak
1064308c3593Spbrookecho "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
106597a847bcSbellardecho "MAKE=$make" >> $config_mak
10666a882643Spbrookecho "INSTALL=$install" >> $config_mak
106797a847bcSbellardecho "CC=$cc" >> $config_mak
106897a847bcSbellardecho "HOST_CC=$host_cc" >> $config_mak
106997a847bcSbellardecho "AR=$ar" >> $config_mak
107097a847bcSbellardecho "STRIP=$strip -s -R .comment -R .note" >> $config_mak
107140293e58Sbellard# XXX: only use CFLAGS and LDFLAGS ?
107240293e58Sbellard# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
107340293e58Sbellard# compilation of dyngen tool (useful for win32 build on Linux host)
10746f30fa85Sthsecho "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
10753142255cSblueswir1echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
10763142255cSblueswir1echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
10773142255cSblueswir1echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
107897a847bcSbellardecho "CFLAGS=$CFLAGS" >> $config_mak
107997a847bcSbellardecho "LDFLAGS=$LDFLAGS" >> $config_mak
108067b915a5Sbellardecho "EXESUF=$EXESUF" >> $config_mak
108170956b77Sthsecho "AIOLIBS=$AIOLIBS" >> $config_mak
10822408a527Saurel32case "$cpu" in
10832408a527Saurel32  i386)
108497a847bcSbellard    echo "ARCH=i386" >> $config_mak
108597a847bcSbellard    echo "#define HOST_I386 1" >> $config_h
10862408a527Saurel32  ;;
10872408a527Saurel32  x86_64)
10880b0babc6Sbellard    echo "ARCH=x86_64" >> $config_mak
10890b0babc6Sbellard    echo "#define HOST_X86_64 1" >> $config_h
10902408a527Saurel32  ;;
10912408a527Saurel32  alpha)
10920938cda5Saurel32    echo "ARCH=alpha" >> $config_mak
10930938cda5Saurel32    echo "#define HOST_ALPHA 1" >> $config_h
10942408a527Saurel32  ;;
10952408a527Saurel32  armv4b)
1096808c4954Sbellard    echo "ARCH=arm" >> $config_mak
1097808c4954Sbellard    echo "#define HOST_ARM 1" >> $config_h
10982408a527Saurel32  ;;
10992408a527Saurel32  armv4l)
110097a847bcSbellard    echo "ARCH=arm" >> $config_mak
110197a847bcSbellard    echo "#define HOST_ARM 1" >> $config_h
11022408a527Saurel32  ;;
11032408a527Saurel32  cris)
1104e7daa605Sths    echo "ARCH=cris" >> $config_mak
1105e7daa605Sths    echo "#define HOST_CRIS 1" >> $config_h
11062408a527Saurel32  ;;
11072408a527Saurel32  hppa)
1108f54b3f92Saurel32    echo "ARCH=hppa" >> $config_mak
1109f54b3f92Saurel32    echo "#define HOST_HPPA 1" >> $config_h
11102408a527Saurel32  ;;
11112408a527Saurel32  ia64)
111297a847bcSbellard    echo "ARCH=ia64" >> $config_mak
111397a847bcSbellard    echo "#define HOST_IA64 1" >> $config_h
11142408a527Saurel32  ;;
11152408a527Saurel32  m68k)
111638ca2abcSbellard    echo "ARCH=m68k" >> $config_mak
111738ca2abcSbellard    echo "#define HOST_M68K 1" >> $config_h
11182408a527Saurel32  ;;
11192408a527Saurel32  mips)
11200938cda5Saurel32    echo "ARCH=mips" >> $config_mak
11210938cda5Saurel32    echo "#define HOST_MIPS 1" >> $config_h
11222408a527Saurel32  ;;
11232408a527Saurel32  mips64)
11240938cda5Saurel32    echo "ARCH=mips64" >> $config_mak
11250938cda5Saurel32    echo "#define HOST_MIPS64 1" >> $config_h
11262408a527Saurel32  ;;
11272408a527Saurel32  powerpc)
1128810260a8Smalc  if test "$hostlongbits" = "32"; then
11290938cda5Saurel32      echo "ARCH=ppc" >> $config_mak
11300938cda5Saurel32      echo "#define HOST_PPC 1" >> $config_h
1131810260a8Smalc  else
1132810260a8Smalc      echo "ARCH=ppc64" >> $config_mak
1133810260a8Smalc      echo "#define HOST_PPC64 1" >> $config_h
1134810260a8Smalc  fi
11352408a527Saurel32  ;;
11362408a527Saurel32  s390)
11370938cda5Saurel32    echo "ARCH=s390" >> $config_mak
11380938cda5Saurel32    echo "#define HOST_S390 1" >> $config_h
11392408a527Saurel32  ;;
11402408a527Saurel32  sparc)
11410938cda5Saurel32    echo "ARCH=sparc" >> $config_mak
11420938cda5Saurel32    echo "#define HOST_SPARC 1" >> $config_h
11432408a527Saurel32  ;;
11442408a527Saurel32  sparc64)
11450938cda5Saurel32    echo "ARCH=sparc64" >> $config_mak
11460938cda5Saurel32    echo "#define HOST_SPARC64 1" >> $config_h
11472408a527Saurel32  ;;
11482408a527Saurel32  *)
11493142255cSblueswir1    echo "Unsupported CPU = $cpu"
11507d13299dSbellard    exit 1
11512408a527Saurel32  ;;
11522408a527Saurel32esac
115303b4fe7dSaliguoriif test "$sparse" = "yes" ; then
115403b4fe7dSaliguori  echo "CC      := REAL_CC=\"\$(CC)\" cgcc"       >> $config_mak
115503b4fe7dSaliguori  echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_mak
115603b4fe7dSaliguori  echo "CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
115703b4fe7dSaliguorifi
11587d13299dSbellardif test "$bigendian" = "yes" ; then
115997a847bcSbellard  echo "WORDS_BIGENDIAN=yes" >> $config_mak
116097a847bcSbellard  echo "#define WORDS_BIGENDIAN 1" >> $config_h
116197a847bcSbellardfi
1162b6853697Sbellardecho "#define HOST_LONG_BITS $hostlongbits" >> $config_h
116367b915a5Sbellardif test "$mingw32" = "yes" ; then
116467b915a5Sbellard  echo "CONFIG_WIN32=yes" >> $config_mak
116511d9f695Sbellard  echo "#define CONFIG_WIN32 1" >> $config_h
1166210fa556Spbrookelse
1167210fa556Spbrook  cat > $TMPC << EOF
1168210fa556Spbrook#include <byteswap.h>
1169210fa556Spbrookint main(void) { return bswap_32(0); }
1170210fa556SpbrookEOF
1171db7287edSpbrook  if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
117297a847bcSbellard    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
117367b915a5Sbellard  fi
1174210fa556Spbrookfi
1175128ab2ffSblueswir1
1176128ab2ffSblueswir1if [ "$openbsd" = "yes" ] ; then
1177128ab2ffSblueswir1  echo "#define ENOTSUP 4096" >> $config_h
1178128ab2ffSblueswir1fi
1179128ab2ffSblueswir1
118083fb7adfSbellardif test "$darwin" = "yes" ; then
118183fb7adfSbellard  echo "CONFIG_DARWIN=yes" >> $config_mak
118283fb7adfSbellard  echo "#define CONFIG_DARWIN 1" >> $config_h
118383fb7adfSbellardfi
1184ec530c81Sbellardif test "$solaris" = "yes" ; then
1185ec530c81Sbellard  echo "CONFIG_SOLARIS=yes" >> $config_mak
118638cfa06cSbellard  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
11870475a5caSths  if test "$needs_libsunmath" = "yes" ; then
11880475a5caSths    echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
11890475a5caSths    echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
11900475a5caSths  fi
1191ec530c81Sbellardfi
11923142255cSblueswir1if test -n "$sparc_cpu"; then
11933142255cSblueswir1  echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
11943142255cSblueswir1  echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
11953142255cSblueswir1fi
119667b915a5Sbellardif test "$gdbstub" = "yes" ; then
119767b915a5Sbellard  echo "CONFIG_GDBSTUB=yes" >> $config_mak
119867b915a5Sbellard  echo "#define CONFIG_GDBSTUB 1" >> $config_h
119967b915a5Sbellardfi
120097a847bcSbellardif test "$gprof" = "yes" ; then
120197a847bcSbellard  echo "TARGET_GPROF=yes" >> $config_mak
120297a847bcSbellard  echo "#define HAVE_GPROF 1" >> $config_h
120397a847bcSbellardfi
120497a847bcSbellardif test "$static" = "yes" ; then
120597a847bcSbellard  echo "CONFIG_STATIC=yes" >> $config_mak
120650863472Sbellard  echo "#define CONFIG_STATIC 1" >> $config_h
120797a847bcSbellardfi
120805c2a3e7Sbellardif test $profiler = "yes" ; then
120905c2a3e7Sbellard  echo "#define CONFIG_PROFILER 1" >> $config_h
121005c2a3e7Sbellardfi
1211c20709aaSbellardif test "$slirp" = "yes" ; then
1212c20709aaSbellard  echo "CONFIG_SLIRP=yes" >> $config_mak
1213c20709aaSbellard  echo "#define CONFIG_SLIRP 1" >> $config_h
1214c20709aaSbellardfi
12158a16d273Sthsif test "$vde" = "yes" ; then
12168a16d273Sths  echo "CONFIG_VDE=yes" >> $config_mak
12178a16d273Sths  echo "#define CONFIG_VDE 1" >> $config_h
12188a16d273Sths  echo "VDE_LIBS=-lvdeplug" >> $config_mak
12198a16d273Sthsfi
12200c58ac1cSmalcfor card in $audio_card_list; do
1221f6e5889eSpbrook    def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
12220c58ac1cSmalc    echo "$def=yes" >> $config_mak
12230c58ac1cSmalc    echo "#define $def 1" >> $config_h
12240c58ac1cSmalcdone
12250c58ac1cSmalcecho "#define AUDIO_DRIVERS \\" >> $config_h
12260c58ac1cSmalcfor drv in $audio_drv_list; do
12270c58ac1cSmalc    echo "    &${drv}_audio_driver, \\" >>$config_h
1228f6e5889eSpbrook    def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
12290c58ac1cSmalc    echo "$def=yes" >> $config_mak
1230923e4521Smalc    if test "$drv" = "fmod"; then
12310c58ac1cSmalc        echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
12320c58ac1cSmalc        echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
12332f6a1ab0Sblueswir1    elif test "$drv" = "oss"; then
12342f6a1ab0Sblueswir1        echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
1235fb065187Sbellard    fi
12360c58ac1cSmalcdone
12370c58ac1cSmalcecho "" >>$config_h
12388ff9cbf7Smalcif test "$mixemu" = "yes" ; then
12398ff9cbf7Smalc  echo "CONFIG_MIXEMU=yes" >> $config_mak
12408ff9cbf7Smalc  echo "#define CONFIG_MIXEMU 1" >> $config_h
12418ff9cbf7Smalcfi
12428d5d2d4cSthsif test "$vnc_tls" = "yes" ; then
12438d5d2d4cSths  echo "CONFIG_VNC_TLS=yes" >> $config_mak
12448d5d2d4cSths  echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
12458d5d2d4cSths  echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
12468d5d2d4cSths  echo "#define CONFIG_VNC_TLS 1" >> $config_h
12478d5d2d4cSthsfi
1248b1a550a0Spbrookqemu_version=`head $source_path/VERSION`
1249b1a550a0Spbrookecho "VERSION=$qemu_version" >>$config_mak
1250d4b8f039Spbrookecho "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
125197a847bcSbellard
125297a847bcSbellardecho "SRC_PATH=$source_path" >> $config_mak
1253ad064840Spbrookif [ "$source_path_used" = "yes" ]; then
1254ad064840Spbrook  echo "VPATH=$source_path" >> $config_mak
1255ad064840Spbrookfi
125697a847bcSbellardecho "TARGET_DIRS=$target_list" >> $config_mak
1257cc8ae6deSpbrookif [ "$build_docs" = "yes" ] ; then
1258cc8ae6deSpbrook  echo "BUILD_DOCS=yes" >> $config_mak
1259cc8ae6deSpbrookfi
126049ecc3faSbellardif test "$static" = "yes"; then
126149ecc3faSbellard  sdl1=$sdl_static
126249ecc3faSbellardelse
126349ecc3faSbellard  sdl1=$sdl
126449ecc3faSbellardfi
126549ecc3faSbellardif test "$sdl1" = "yes" ; then
126649ecc3faSbellard  echo "#define CONFIG_SDL 1" >> $config_h
126749ecc3faSbellard  echo "CONFIG_SDL=yes" >> $config_mak
126849ecc3faSbellard  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
126949ecc3faSbellard    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
127049ecc3faSbellard  else
127149ecc3faSbellard    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
127249ecc3faSbellard  fi
127349ecc3faSbellard  if [ "${aa}" = "yes" ] ; then
127449ecc3faSbellard    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
127549ecc3faSbellard  else
127649ecc3faSbellard    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
127749ecc3faSbellard  fi
127849ecc3faSbellardfi
127949ecc3faSbellardif test "$cocoa" = "yes" ; then
128049ecc3faSbellard  echo "#define CONFIG_COCOA 1" >> $config_h
128149ecc3faSbellard  echo "CONFIG_COCOA=yes" >> $config_mak
128249ecc3faSbellardfi
12834d3b6f6eSbalrogif test "$curses" = "yes" ; then
12844d3b6f6eSbalrog  echo "#define CONFIG_CURSES 1" >> $config_h
12854d3b6f6eSbalrog  echo "CONFIG_CURSES=yes" >> $config_mak
12864d3b6f6eSbalrog  echo "CURSES_LIBS=-lcurses" >> $config_mak
12874d3b6f6eSbalrogfi
12882e4d9fb1Saurel32if test "$brlapi" = "yes" ; then
12892e4d9fb1Saurel32  echo "CONFIG_BRLAPI=yes" >> $config_mak
12902e4d9fb1Saurel32  echo "#define CONFIG_BRLAPI 1" >> $config_h
12912e4d9fb1Saurel32  echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
12922e4d9fb1Saurel32fi
1293fb599c9aSbalrogif test "$bluez" = "yes" ; then
1294fb599c9aSbalrog  echo "CONFIG_BLUEZ=yes" >> $config_mak
1295fb599c9aSbalrog  echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1296fb599c9aSbalrog  echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1297fb599c9aSbalrog  echo "#define CONFIG_BLUEZ 1" >> $config_h
1298fb599c9aSbalrogfi
1299414f0dabSblueswir1if test "$aio" = "yes" ; then
1300414f0dabSblueswir1  echo "#define CONFIG_AIO 1" >> $config_h
1301a3392f9bSaliguori  echo "CONFIG_AIO=yes" >> $config_mak
1302414f0dabSblueswir1fi
130397a847bcSbellard
130483fb7adfSbellard# XXX: suppress that
13057d3505c5Sbellardif [ "$bsd" = "yes" ] ; then
130643003046Sbellard  echo "#define O_LARGEFILE 0" >> $config_h
130743003046Sbellard  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
13087d3505c5Sbellard  echo "#define _BSD 1" >> $config_h
13097d3505c5Sbellardfi
13107d3505c5Sbellard
1311c5937220Spbrookecho "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1312c5937220Spbrook
1313c39e3338Spbrooktools=
1314c39e3338Spbrookif test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1315c39e3338Spbrook  tools="qemu-img\$(EXESUF) $tools"
13167a5ca864Sbellard  if [ "$linux" = "yes" ] ; then
13177a5ca864Sbellard      tools="qemu-nbd\$(EXESUF) $tools"
13187a5ca864Sbellard  fi
1319c39e3338Spbrookfi
1320c39e3338Spbrookecho "TOOLS=$tools" >> $config_mak
1321c39e3338Spbrook
132215d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
132315d9ca0fSths
132497a847bcSbellardfor target in $target_list; do
132597a847bcSbellardtarget_dir="$target"
132697a847bcSbellardconfig_mak=$target_dir/config.mak
132797a847bcSbellardconfig_h=$target_dir/config.h
132897a847bcSbellardtarget_cpu=`echo $target | cut -d '-' -f 1`
132997a847bcSbellardtarget_bigendian="no"
1330808c4954Sbellard[ "$target_cpu" = "armeb" ] && target_bigendian=yes
13310938cda5Saurel32[ "$target_cpu" = "m68k" ] && target_bigendian=yes
13320938cda5Saurel32[ "$target_cpu" = "mips" ] && target_bigendian=yes
13330938cda5Saurel32[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
13340938cda5Saurel32[ "$target_cpu" = "mips64" ] && target_bigendian=yes
133567867308Sbellard[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1336d4082e95Sj_mayer[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
133722f8a8b3Sj_mayer[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1338e85e7c6eSj_mayer[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1339908f52b0Spbrook[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
13400938cda5Saurel32[ "$target_cpu" = "sparc" ] && target_bigendian=yes
13410938cda5Saurel32[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
13420938cda5Saurel32[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
134397a847bcSbellardtarget_softmmu="no"
1344997344f3Sbellardtarget_user_only="no"
1345831b7825Sthstarget_linux_user="no"
1346831b7825Sthstarget_darwin_user="no"
1347*84778508Sblueswir1target_bsd_user="no"
13489e407a85Spbrookcase "$target" in
13499e407a85Spbrook  ${target_cpu}-softmmu)
13509e407a85Spbrook    target_softmmu="yes"
13519e407a85Spbrook    ;;
13529e407a85Spbrook  ${target_cpu}-linux-user)
13539e407a85Spbrook    target_user_only="yes"
13549e407a85Spbrook    target_linux_user="yes"
13559e407a85Spbrook    ;;
13569e407a85Spbrook  ${target_cpu}-darwin-user)
13579e407a85Spbrook    target_user_only="yes"
1358831b7825Sths    target_darwin_user="yes"
13599e407a85Spbrook    ;;
1360*84778508Sblueswir1  ${target_cpu}-bsd-user)
1361*84778508Sblueswir1    target_user_only="yes"
1362*84778508Sblueswir1    target_bsd_user="yes"
1363*84778508Sblueswir1    ;;
13649e407a85Spbrook  *)
13659e407a85Spbrook    echo "ERROR: Target '$target' not recognised"
13669e407a85Spbrook    exit 1
13679e407a85Spbrook    ;;
13689e407a85Spbrookesac
1369831b7825Sths
137097ccc689Sbellardif test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
137197ccc689Sbellard        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
137297ccc689Sbellard    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
13739c038506Spbrook    echo "To build QEMU without graphical output configure with --disable-gfx-check"
13744d3b6f6eSbalrog    echo "Note that this will disable all output from the virtual graphics card"
13754d3b6f6eSbalrog    echo "except through VNC or curses."
137697ccc689Sbellard    exit 1;
137797ccc689Sbellardfi
137897ccc689Sbellard
13797c1f25b4Sbellard#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
138097a847bcSbellard
138115d9ca0fSthstest -f $config_h && mv $config_h ${config_h}~
138215d9ca0fSths
138397a847bcSbellardmkdir -p $target_dir
1384158142c2Sbellardmkdir -p $target_dir/fpu
138557fec1feSbellardmkdir -p $target_dir/tcg
1386*84778508Sblueswir1if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
138769de927cSbellard  mkdir -p $target_dir/nwfpe
138869de927cSbellardfi
138969de927cSbellard
1390ec530c81Sbellard#
1391ec530c81Sbellard# don't use ln -sf as not all "ln -sf" over write the file/link
1392ec530c81Sbellard#
1393ec530c81Sbellardrm -f $target_dir/Makefile
1394ec530c81Sbellardln -s $source_path/Makefile.target $target_dir/Makefile
1395ec530c81Sbellard
139697a847bcSbellard
139797a847bcSbellardecho "# Automatically generated by configure - do not modify" > $config_mak
139897a847bcSbellardecho "/* Automatically generated by configure - do not modify */" > $config_h
139997a847bcSbellard
140097a847bcSbellard
140197a847bcSbellardecho "include ../config-host.mak" >> $config_mak
140297a847bcSbellardecho "#include \"../config-host.h\"" >> $config_h
14031e43adfcSbellard
1404e5fe0c52Spbrookbflt="no"
1405cb33da57Sblueswir1elfload32="no"
1406bd0c5661Spbrooktarget_nptl="no"
14071e43adfcSbellardinterp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
14081e43adfcSbellardecho "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
140956aebc89Spbrookgdb_xml_files=""
141097a847bcSbellard
14112408a527Saurel32case "$target_cpu" in
14122408a527Saurel32  i386)
141397a847bcSbellard    echo "TARGET_ARCH=i386" >> $config_mak
141497a847bcSbellard    echo "#define TARGET_ARCH \"i386\"" >> $config_h
141597a847bcSbellard    echo "#define TARGET_I386 1" >> $config_h
1416da260249Sbellard    if test $kqemu = "yes" -a "$target_softmmu" = "yes"
14172408a527Saurel32    then
1418824d560fSbellard      echo "#define USE_KQEMU 1" >> $config_h
1419824d560fSbellard    fi
1420f2bf094eSaurel32    gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
142111d1fdb0Spbrook    if test -n "$gcc3minver" && test $gcc3minver -gt 3
1422f2bf094eSaurel32    then
1423f2bf094eSaurel32      echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1424f2bf094eSaurel32    else
1425f2bf094eSaurel32      echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1426f2bf094eSaurel32    fi
14272408a527Saurel32  ;;
14282408a527Saurel32  x86_64)
14290938cda5Saurel32    echo "TARGET_ARCH=x86_64" >> $config_mak
14300938cda5Saurel32    echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
14310938cda5Saurel32    echo "#define TARGET_I386 1" >> $config_h
14320938cda5Saurel32    echo "#define TARGET_X86_64 1" >> $config_h
14332408a527Saurel32    if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
14342408a527Saurel32    then
14350938cda5Saurel32      echo "#define USE_KQEMU 1" >> $config_h
14360938cda5Saurel32    fi
14372408a527Saurel32  ;;
14382408a527Saurel32  alpha)
14390938cda5Saurel32    echo "TARGET_ARCH=alpha" >> $config_mak
14400938cda5Saurel32    echo "#define TARGET_ARCH \"alpha\"" >> $config_h
14410938cda5Saurel32    echo "#define TARGET_ALPHA 1" >> $config_h
14422408a527Saurel32  ;;
14432408a527Saurel32  arm|armeb)
144497a847bcSbellard    echo "TARGET_ARCH=arm" >> $config_mak
144597a847bcSbellard    echo "#define TARGET_ARCH \"arm\"" >> $config_h
144697a847bcSbellard    echo "#define TARGET_ARM 1" >> $config_h
1447e5fe0c52Spbrook    bflt="yes"
1448bd0c5661Spbrook    target_nptl="yes"
144956aebc89Spbrook    gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
14502408a527Saurel32  ;;
14512408a527Saurel32  cris)
14520938cda5Saurel32    echo "TARGET_ARCH=cris" >> $config_mak
14530938cda5Saurel32    echo "#define TARGET_ARCH \"cris\"" >> $config_h
14540938cda5Saurel32    echo "#define TARGET_CRIS 1" >> $config_h
14552408a527Saurel32  ;;
14562408a527Saurel32  m68k)
14570938cda5Saurel32    echo "TARGET_ARCH=m68k" >> $config_mak
14580938cda5Saurel32    echo "#define TARGET_ARCH \"m68k\"" >> $config_h
14590938cda5Saurel32    echo "#define TARGET_M68K 1" >> $config_h
14600938cda5Saurel32    bflt="yes"
146156aebc89Spbrook    gdb_xml_files="cf-core.xml cf-fp.xml"
14622408a527Saurel32  ;;
14632408a527Saurel32  mips|mipsel)
14640938cda5Saurel32    echo "TARGET_ARCH=mips" >> $config_mak
14650938cda5Saurel32    echo "#define TARGET_ARCH \"mips\"" >> $config_h
14660938cda5Saurel32    echo "#define TARGET_MIPS 1" >> $config_h
14670938cda5Saurel32    echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
14682408a527Saurel32  ;;
14692408a527Saurel32  mipsn32|mipsn32el)
14700938cda5Saurel32    echo "TARGET_ARCH=mipsn32" >> $config_mak
14710938cda5Saurel32    echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
14720938cda5Saurel32    echo "#define TARGET_MIPS 1" >> $config_h
14730938cda5Saurel32    echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
14742408a527Saurel32  ;;
14752408a527Saurel32  mips64|mips64el)
14760938cda5Saurel32    echo "TARGET_ARCH=mips64" >> $config_mak
14770938cda5Saurel32    echo "#define TARGET_ARCH \"mips64\"" >> $config_h
14780938cda5Saurel32    echo "#define TARGET_MIPS 1" >> $config_h
14790938cda5Saurel32    echo "#define TARGET_MIPS64 1" >> $config_h
14800938cda5Saurel32    echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
14812408a527Saurel32  ;;
14822408a527Saurel32  ppc)
148367867308Sbellard    echo "TARGET_ARCH=ppc" >> $config_mak
1484bf6247fbSblueswir1    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
148567867308Sbellard    echo "#define TARGET_ARCH \"ppc\"" >> $config_h
148667867308Sbellard    echo "#define TARGET_PPC 1" >> $config_h
1487bf6247fbSblueswir1    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
14882408a527Saurel32  ;;
14892408a527Saurel32  ppcemb)
1490d4082e95Sj_mayer    echo "TARGET_ARCH=ppcemb" >> $config_mak
1491e85e7c6eSj_mayer    echo "TARGET_ABI_DIR=ppc" >> $config_mak
1492bf6247fbSblueswir1    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1493d4082e95Sj_mayer    echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1494d4082e95Sj_mayer    echo "#define TARGET_PPC 1" >> $config_h
1495d4082e95Sj_mayer    echo "#define TARGET_PPCEMB 1" >> $config_h
1496ec5b78cdSblueswir1    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
14972408a527Saurel32  ;;
14982408a527Saurel32  ppc64)
149922f8a8b3Sj_mayer    echo "TARGET_ARCH=ppc64" >> $config_mak
1500f85e9a68Sj_mayer    echo "TARGET_ABI_DIR=ppc" >> $config_mak
1501bf6247fbSblueswir1    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
15025e692ecdSj_mayer    echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
150322f8a8b3Sj_mayer    echo "#define TARGET_PPC 1" >> $config_h
150422f8a8b3Sj_mayer    echo "#define TARGET_PPC64 1" >> $config_h
1505bf6247fbSblueswir1    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
15062408a527Saurel32  ;;
15072408a527Saurel32  ppc64abi32)
1508e85e7c6eSj_mayer    echo "TARGET_ARCH=ppc64" >> $config_mak
1509e85e7c6eSj_mayer    echo "TARGET_ABI_DIR=ppc" >> $config_mak
15100c64b9cdSbellard    echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1511bf6247fbSblueswir1    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
15125e692ecdSj_mayer    echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1513e85e7c6eSj_mayer    echo "#define TARGET_PPC 1" >> $config_h
1514e85e7c6eSj_mayer    echo "#define TARGET_PPC64 1" >> $config_h
1515e85e7c6eSj_mayer    echo "#define TARGET_ABI32 1" >> $config_h
1516bf6247fbSblueswir1    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
15172408a527Saurel32  ;;
15182408a527Saurel32  sh4|sh4eb)
1519fdf9b3e8Sbellard    echo "TARGET_ARCH=sh4" >> $config_mak
1520fdf9b3e8Sbellard    echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1521fdf9b3e8Sbellard    echo "#define TARGET_SH4 1" >> $config_h
15224dbed897Spbrook    bflt="yes"
15230b6d3ae0Saurel32    target_nptl="yes"
15242408a527Saurel32  ;;
15252408a527Saurel32  sparc)
15260938cda5Saurel32    echo "TARGET_ARCH=sparc" >> $config_mak
15270938cda5Saurel32    echo "#define TARGET_ARCH \"sparc\"" >> $config_h
15280938cda5Saurel32    echo "#define TARGET_SPARC 1" >> $config_h
15292408a527Saurel32  ;;
15302408a527Saurel32  sparc64)
15310938cda5Saurel32    echo "TARGET_ARCH=sparc64" >> $config_mak
15320938cda5Saurel32    echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
15330938cda5Saurel32    echo "#define TARGET_SPARC 1" >> $config_h
15340938cda5Saurel32    echo "#define TARGET_SPARC64 1" >> $config_h
15350938cda5Saurel32    elfload32="yes"
15362408a527Saurel32  ;;
15372408a527Saurel32  sparc32plus)
15380938cda5Saurel32    echo "TARGET_ARCH=sparc64" >> $config_mak
15390938cda5Saurel32    echo "TARGET_ABI_DIR=sparc" >> $config_mak
15400938cda5Saurel32    echo "TARGET_ARCH2=sparc32plus" >> $config_mak
15410938cda5Saurel32    echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
15420938cda5Saurel32    echo "#define TARGET_SPARC 1" >> $config_h
15430938cda5Saurel32    echo "#define TARGET_SPARC64 1" >> $config_h
15440938cda5Saurel32    echo "#define TARGET_ABI32 1" >> $config_h
15452408a527Saurel32  ;;
15462408a527Saurel32  *)
1547de83cd02Sbellard    echo "Unsupported target CPU"
1548de83cd02Sbellard    exit 1
15492408a527Saurel32  ;;
15502408a527Saurel32esac
1551de83cd02Sbellardif test "$target_bigendian" = "yes" ; then
155297a847bcSbellard  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
155397a847bcSbellard  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
155497a847bcSbellardfi
155597a847bcSbellardif test "$target_softmmu" = "yes" ; then
155697a847bcSbellard  echo "CONFIG_SOFTMMU=yes" >> $config_mak
155797a847bcSbellard  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1558de83cd02Sbellardfi
1559997344f3Sbellardif test "$target_user_only" = "yes" ; then
1560997344f3Sbellard  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1561997344f3Sbellard  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1562997344f3Sbellardfi
1563831b7825Sthsif test "$target_linux_user" = "yes" ; then
1564831b7825Sths  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1565831b7825Sths  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1566831b7825Sthsfi
1567831b7825Sthsif test "$target_darwin_user" = "yes" ; then
1568831b7825Sths  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1569831b7825Sths  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1570831b7825Sthsfi
157156aebc89Spbrooklist=""
157256aebc89Spbrookif test ! -z "$gdb_xml_files" ; then
157356aebc89Spbrook  for x in $gdb_xml_files; do
157456aebc89Spbrook    list="$list $source_path/gdb-xml/$x"
157556aebc89Spbrook  done
157656aebc89Spbrookfi
157756aebc89Spbrookecho "TARGET_XML_FILES=$list" >> $config_mak
1578de83cd02Sbellard
15790938cda5Saurel32if test "$target_cpu" = "arm" \
15800938cda5Saurel32     -o "$target_cpu" = "armeb" \
15810938cda5Saurel32     -o "$target_cpu" = "m68k" \
15820938cda5Saurel32     -o "$target_cpu" = "mips" \
15830938cda5Saurel32     -o "$target_cpu" = "mipsel" \
15840938cda5Saurel32     -o "$target_cpu" = "mipsn32" \
15850938cda5Saurel32     -o "$target_cpu" = "mipsn32el" \
15860938cda5Saurel32     -o "$target_cpu" = "mips64" \
15870938cda5Saurel32     -o "$target_cpu" = "mips64el" \
15880938cda5Saurel32     -o "$target_cpu" = "sparc" \
15890938cda5Saurel32     -o "$target_cpu" = "sparc64" \
15900938cda5Saurel32     -o "$target_cpu" = "sparc32plus"; then
1591158142c2Sbellard  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1592158142c2Sbellard  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1593158142c2Sbellardfi
1594e5fe0c52Spbrookif test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1595e5fe0c52Spbrook  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1596e5fe0c52Spbrook  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1597e5fe0c52Spbrookfi
1598bd0c5661Spbrookif test "$target_user_only" = "yes" \
1599bd0c5661Spbrook        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1600bd0c5661Spbrook  echo "#define USE_NPTL 1" >> $config_h
1601bd0c5661Spbrookfi
1602cb33da57Sblueswir1# 32 bit ELF loader in addition to native 64 bit loader?
1603cb33da57Sblueswir1if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1604cb33da57Sblueswir1  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1605cb33da57Sblueswir1  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1606cb33da57Sblueswir1fi
1607*84778508Sblueswir1if test "$target_bsd_user" = "yes" ; then
1608*84778508Sblueswir1  echo "CONFIG_BSD_USER=yes" >> $config_mak
1609*84778508Sblueswir1  echo "#define CONFIG_BSD_USER 1" >> $config_h
1610*84778508Sblueswir1fi
16115b0753e0Sbellard
161215d9ca0fSthstest -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
161315d9ca0fSths
161497a847bcSbellarddone # for target in $targets
16157d13299dSbellard
16167d13299dSbellard# build tree in object directory if source path is different from current one
16177d13299dSbellardif test "$source_path_used" = "yes" ; then
161849ecc3faSbellard    DIRS="tests tests/cris slirp audio"
16197d13299dSbellard    FILES="Makefile tests/Makefile"
1620e7daa605Sths    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1621e1ffb0f1Sedgar_igl    FILES="$FILES tests/test-mmap.c"
16227d13299dSbellard    for dir in $DIRS ; do
16237d13299dSbellard            mkdir -p $dir
16247d13299dSbellard    done
1625ec530c81Sbellard    # remove the link and recreate it, as not all "ln -sf" overwrite the link
16267d13299dSbellard    for f in $FILES ; do
1627ec530c81Sbellard        rm -f $f
1628ec530c81Sbellard        ln -s $source_path/$f $f
16297d13299dSbellard    done
16307d13299dSbellardfi
16317d13299dSbellard
16329d56d2dcSmalcrm -f $TMPO $TMPC $TMPE $TMPS $TMPI
1633