blob: 7f827866060ff81f39ffb65dcad3fd1f34a3dfc4 [file] [log] [blame]
bellard7d132992003-03-06 23:23:54 +00001#!/bin/sh
2#
bellard3ef693a2003-03-23 20:17:16 +00003# qemu configure script (c) 2003 Fabrice Bellard
bellard7d132992003-03-06 23:23:54 +00004#
5# set temporary file name
6if test ! -z "$TMPDIR" ; then
7 TMPDIR1="${TMPDIR}"
8elif test ! -z "$TEMPDIR" ; then
9 TMPDIR1="${TEMPDIR}"
10else
11 TMPDIR1="/tmp"
12fi
13
bellard3ef693a2003-03-23 20:17:16 +000014TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
malc9d56d2d2008-09-30 19:44:32 +000018TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
malcd4742de2008-11-29 22:04:31 +000019TMPSDLLOG="${TMPDIR1}/qemu-conf-sdl-$$-${RANDOM}.log"
bellard7d132992003-03-06 23:23:54 +000020
malcd4742de2008-11-29 22:04:31 +000021trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG; exit" 0 2 3 15
malc9ac81bb2008-11-29 20:09:56 +000022
bellard7d132992003-03-06 23:23:54 +000023# default parameters
bellard11d9f692004-04-02 20:55:59 +000024prefix=""
bellard1e43adf2003-09-30 20:54:24 +000025interp_prefix="/usr/gnemul/qemu-%M"
bellard43ce4df2003-06-09 19:53:12 +000026static="no"
bellard7d132992003-03-06 23:23:54 +000027cross_prefix=""
28cc="gcc"
pbrook328a4242006-12-19 03:31:34 +000029gcc3_search="yes"
balrogfe8f78e2007-10-31 01:03:28 +000030gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
malc0c58ac12008-06-25 21:04:05 +000031audio_drv_list=""
32audio_card_list=""
bellard7d132992003-03-06 23:23:54 +000033host_cc="gcc"
34ar="ar"
35make="make"
pbrook6a882642006-04-17 13:57:12 +000036install="install"
bellard7d132992003-03-06 23:23:54 +000037strip="strip"
malcb29fe3e2008-11-18 01:42:22 +000038cpu=`test $(uname -s) = AIX && uname -p || uname -m`
bellard5327cf42005-01-10 23:18:50 +000039target_list=""
bellard7d132992003-03-06 23:23:54 +000040case "$cpu" in
41 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000042 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000043 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000044 x86_64|amd64)
45 cpu="x86_64"
46 ;;
47 alpha)
48 cpu="alpha"
49 ;;
bellardba680552005-03-13 09:49:52 +000050 armv*b)
bellard808c4952004-12-19 23:33:47 +000051 cpu="armv4b"
52 ;;
bellardba680552005-03-13 09:49:52 +000053 armv*l)
bellard7d132992003-03-06 23:23:54 +000054 cpu="armv4l"
55 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000056 cris)
57 cpu="cris"
bellard7d132992003-03-06 23:23:54 +000058 ;;
aurel32f54b3f92008-04-12 20:14:54 +000059 parisc|parisc64)
60 cpu="hppa"
61 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000062 ia64)
63 cpu="ia64"
64 ;;
65 m68k)
66 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000067 ;;
68 mips)
69 cpu="mips"
70 ;;
thsfbe4f652007-04-01 11:16:48 +000071 mips64)
72 cpu="mips64"
73 ;;
malcb29fe3e2008-11-18 01:42:22 +000074 "Power Macintosh"|ppc|ppc64|powerpc)
aurel32aaa5fa12008-04-11 22:04:22 +000075 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000076 ;;
ths0e7b8a92007-08-01 00:09:31 +000077 s390*)
bellardfb3e5842003-03-29 17:32:36 +000078 cpu="s390"
79 ;;
blueswir131422552007-04-16 18:27:06 +000080 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000081 cpu="sparc"
82 ;;
83 sparc64)
84 cpu="sparc64"
85 ;;
bellard7d132992003-03-06 23:23:54 +000086 *)
87 cpu="unknown"
88 ;;
89esac
90gprof="no"
aliguori03b4fe72008-10-07 19:16:17 +000091sparse="no"
bellard7d132992003-03-06 23:23:54 +000092bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000093mingw32="no"
94EXESUF=""
95gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000096slirp="yes"
aliguorie0e6c8c02008-07-23 18:14:33 +000097vde="yes"
bellard102a52e2004-11-14 19:57:29 +000098fmod_lib=""
99fmod_inc=""
blueswir12f6a1ab2008-08-21 18:00:53 +0000100oss_lib=""
ths8d5d2d42007-08-25 01:37:51 +0000101vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +0000102bsd="no"
bellard5327cf42005-01-10 23:18:50 +0000103linux="no"
blueswir1d2c7c9b2008-11-01 14:50:20 +0000104solaris="no"
bellardc9ec1fe2005-02-10 21:55:30 +0000105kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +0000106profiler="no"
bellard5b0753e2005-03-01 21:37:28 +0000107cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000108check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000109check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000110softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000111linux_user="no"
112darwin_user="no"
blueswir184778502008-10-26 20:33:16 +0000113bsd_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000114build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000115uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000116curses="yes"
blueswir1414f0da2008-08-15 18:20:52 +0000117aio="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000118nptl="yes"
malc8ff9cbf2008-06-23 18:33:30 +0000119mixemu="no"
balrogfb599c92008-09-28 23:49:55 +0000120bluez="yes"
aliguori7ba1e612008-11-05 16:04:33 +0000121kvm="yes"
aliguorieac30262008-11-05 16:28:56 +0000122kerneldir=""
malcb29fe3e2008-11-18 01:42:22 +0000123aix="no"
ths77755342008-11-27 15:45:16 +0000124blobs="yes"
bellard7d132992003-03-06 23:23:54 +0000125
126# OS specific
127targetos=`uname -s`
128case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000129CYGWIN*)
130mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000131OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000132if [ "$cpu" = "i386" ] ; then
133 kqemu="yes"
134fi
malcc2de5c92008-06-28 19:13:06 +0000135audio_possible_drivers="sdl"
bellardc326e0a2005-04-23 18:30:28 +0000136;;
bellard67b915a2004-03-31 23:37:16 +0000137MINGW32*)
138mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000139if [ "$cpu" = "i386" ] ; then
140 kqemu="yes"
141fi
malcc2de5c92008-06-28 19:13:06 +0000142audio_possible_drivers="dsound sdl fmod"
bellard67b915a2004-03-31 23:37:16 +0000143;;
ths5c40d2b2007-06-23 16:03:36 +0000144GNU/kFreeBSD)
malc0c58ac12008-06-25 21:04:05 +0000145audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000146audio_possible_drivers="oss sdl esd pa"
ths5c40d2b2007-06-23 16:03:36 +0000147if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
148 kqemu="yes"
149fi
150;;
bellard7d3505c2004-05-12 19:32:15 +0000151FreeBSD)
152bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000153audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000154audio_possible_drivers="oss sdl esd pa"
blueswir1f4887912008-11-23 07:27:59 +0000155aio_lib="-lpthread"
bellarde99f9062005-07-28 21:45:38 +0000156if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000157 kqemu="yes"
158fi
bellard7d3505c2004-05-12 19:32:15 +0000159;;
160NetBSD)
161bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000162audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000163audio_possible_drivers="oss sdl esd"
blueswir18ef92a82008-11-22 20:24:29 +0000164oss_lib="-lossaudio"
165aio_lib="-lrt -lpthread"
bellard7d3505c2004-05-12 19:32:15 +0000166;;
167OpenBSD)
168bsd="yes"
blueswir1128ab2f2008-08-15 18:33:42 +0000169openbsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000170audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000171audio_possible_drivers="oss sdl esd"
blueswir12f6a1ab2008-08-21 18:00:53 +0000172oss_lib="-lossaudio"
blueswir18ef92a82008-11-22 20:24:29 +0000173aio_lib="-lpthread"
bellard7d3505c2004-05-12 19:32:15 +0000174;;
bellard83fb7ad2004-07-05 21:25:26 +0000175Darwin)
176bsd="yes"
177darwin="yes"
ths831b7822007-01-18 20:06:33 +0000178darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000179cocoa="yes"
malc0c58ac12008-06-25 21:04:05 +0000180audio_drv_list="coreaudio"
malcc2de5c92008-06-28 19:13:06 +0000181audio_possible_drivers="coreaudio sdl fmod"
ths6f30fa82007-01-05 01:00:47 +0000182OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000183OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
blueswir18ef92a82008-11-22 20:24:29 +0000184aio_lib="-lpthread"
bellard83fb7ad2004-07-05 21:25:26 +0000185;;
bellardec530c82006-04-25 22:36:06 +0000186SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000187 solaris="yes"
188 make="gmake"
189 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000190 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000191 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000192 # have to select again, because `uname -m` returns i86pc
193 # even on an x86_64 box.
194 solariscpu=`isainfo -k`
195 if test "${solariscpu}" = "amd64" ; then
196 cpu="x86_64"
197 fi
thsc2b84fa2007-02-10 23:21:21 +0000198 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000199 if test "$solarisrev" -le 9 ; then
200 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
201 needs_libsunmath="yes"
202 else
203 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
204 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
205 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
206 echo "Studio 11 can be downloaded from www.sun.com."
207 exit 1
208 fi
209 fi
210 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000211 kqemu="yes"
212 fi
ths86b2bd92007-02-11 00:31:33 +0000213 fi
ths6b4d2ba2007-05-13 18:02:43 +0000214 if test -f /usr/include/sys/soundcard.h ; then
malc0c58ac12008-06-25 21:04:05 +0000215 audio_drv_list="oss"
ths6b4d2ba2007-05-13 18:02:43 +0000216 fi
malcc2de5c92008-06-28 19:13:06 +0000217 audio_possible_drivers="oss sdl"
ths86b2bd92007-02-11 00:31:33 +0000218;;
malcb29fe3e2008-11-18 01:42:22 +0000219AIX)
220aix="yes"
221make="gmake"
222;;
bellard1d14ffa2005-10-30 18:58:22 +0000223*)
malc0c58ac12008-06-25 21:04:05 +0000224audio_drv_list="oss"
malcb8e59f12008-07-02 21:03:08 +0000225audio_possible_drivers="oss alsa sdl esd pa"
bellard5327cf42005-01-10 23:18:50 +0000226linux="yes"
ths831b7822007-01-18 20:06:33 +0000227linux_user="yes"
blueswir168063642008-11-22 21:03:55 +0000228usb="linux"
bellard07f4ddb2005-04-23 17:44:28 +0000229if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000230 kqemu="yes"
malcc2de5c92008-06-28 19:13:06 +0000231 audio_possible_drivers="$audio_possible_drivers fmod"
bellardc9ec1fe2005-02-10 21:55:30 +0000232fi
bellardfb065182004-11-09 23:09:44 +0000233;;
bellard7d132992003-03-06 23:23:54 +0000234esac
235
bellard7d3505c2004-05-12 19:32:15 +0000236if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000237 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000238 make="gmake"
blueswir168063642008-11-22 21:03:55 +0000239 usb="bsd"
bellard83fb7ad2004-07-05 21:25:26 +0000240 fi
blueswir184778502008-10-26 20:33:16 +0000241 bsd_user="yes"
bellard7d3505c2004-05-12 19:32:15 +0000242fi
243
bellard7d132992003-03-06 23:23:54 +0000244# find source path
pbrookad064842006-04-16 12:41:07 +0000245source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000246source_path_used="no"
247workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000248if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000249 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000250else
251 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000252fi
pbrook724db112008-02-03 19:20:13 +0000253[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000254
bellard85aa5182007-11-11 20:17:03 +0000255werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000256# generate compile errors on warnings for development builds
257#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
258#werror="yes";
259#fi
bellard85aa5182007-11-11 20:17:03 +0000260
bellard7d132992003-03-06 23:23:54 +0000261for opt do
pbrooka46e4032006-04-29 23:05:22 +0000262 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000263 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000264 --help|-h) show_help=yes
265 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000266 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000267 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000268 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000269 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000270 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000271 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000272 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000273 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000274 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000275 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000276 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000277 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000278 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000279 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000280 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000281 ;;
pbrook6a882642006-04-17 13:57:12 +0000282 --install=*) install="$optarg"
283 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000284 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000285 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000286 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000287 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000288 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000289 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000290 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000291 ;;
bellard7d132992003-03-06 23:23:54 +0000292 --enable-gprof) gprof="yes"
293 ;;
bellard43ce4df2003-06-09 19:53:12 +0000294 --static) static="yes"
295 ;;
bellard97a847b2003-08-10 21:36:04 +0000296 --disable-sdl) sdl="no"
297 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000298 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000299 ;;
malcc2de5c92008-06-28 19:13:06 +0000300 --fmod-inc=*) fmod_inc="$optarg"
301 ;;
blueswir12f6a1ab2008-08-21 18:00:53 +0000302 --oss-lib=*) oss_lib="$optarg"
303 ;;
malc2fa7d3b2008-07-29 12:58:44 +0000304 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
malc0c58ac12008-06-25 21:04:05 +0000305 ;;
306 --audio-drv-list=*) audio_drv_list="$optarg"
307 ;;
aliguori03b4fe72008-10-07 19:16:17 +0000308 --enable-sparse) sparse="yes"
309 ;;
310 --disable-sparse) sparse="no"
311 ;;
ths8d5d2d42007-08-25 01:37:51 +0000312 --disable-vnc-tls) vnc_tls="no"
313 ;;
bellard443f1372004-06-04 11:13:20 +0000314 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000315 ;;
aliguorie0e6c8c02008-07-23 18:14:33 +0000316 --disable-vde) vde="no"
ths8a16d272008-07-19 09:56:24 +0000317 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000318 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000319 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000320 --disable-brlapi) brlapi="no"
321 ;;
balrogfb599c92008-09-28 23:49:55 +0000322 --disable-bluez) bluez="no"
323 ;;
aliguori7ba1e612008-11-05 16:04:33 +0000324 --disable-kvm) kvm="no"
325 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000326 --enable-profiler) profiler="yes"
327 ;;
malcc2de5c92008-06-28 19:13:06 +0000328 --enable-cocoa)
329 cocoa="yes" ;
330 sdl="no" ;
331 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
bellard1d14ffa2005-10-30 18:58:22 +0000332 ;;
bellard97ccc682005-07-02 13:32:17 +0000333 --disable-gfx-check) check_gfx="no"
334 ;;
bellard1aff3812005-11-02 22:30:45 +0000335 --disable-gcc-check) check_gcc="no"
336 ;;
pbrookcad25d62006-03-19 16:31:11 +0000337 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000338 ;;
pbrookcad25d62006-03-19 16:31:11 +0000339 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000340 ;;
ths831b7822007-01-18 20:06:33 +0000341 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000342 ;;
ths831b7822007-01-18 20:06:33 +0000343 --enable-linux-user) linux_user="yes"
344 ;;
345 --disable-darwin-user) darwin_user="no"
346 ;;
347 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000348 ;;
blueswir184778502008-10-26 20:33:16 +0000349 --disable-bsd-user) bsd_user="no"
350 ;;
351 --enable-bsd-user) bsd_user="yes"
352 ;;
pbrookc5937222006-05-14 11:30:38 +0000353 --enable-uname-release=*) uname_release="$optarg"
354 ;;
blueswir131422552007-04-16 18:27:06 +0000355 --sparc_cpu=*)
356 sparc_cpu="$optarg"
357 case $sparc_cpu in
358 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
359 target_cpu="sparc"; cpu="sparc" ;;
360 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
361 target_cpu="sparc"; cpu="sparc" ;;
362 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
363 target_cpu="sparc64"; cpu="sparc64" ;;
364 *) echo "undefined SPARC architecture. Exiting";exit 1;;
365 esac
366 ;;
bellard85aa5182007-11-11 20:17:03 +0000367 --enable-werror) werror="yes"
368 ;;
369 --disable-werror) werror="no"
370 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000371 --disable-curses) curses="no"
372 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000373 --disable-nptl) nptl="no"
374 ;;
malc8ff9cbf2008-06-23 18:33:30 +0000375 --enable-mixemu) mixemu="yes"
376 ;;
blueswir1414f0da2008-08-15 18:20:52 +0000377 --disable-aio) aio="no"
378 ;;
ths77755342008-11-27 15:45:16 +0000379 --disable-blobs) blobs="no"
380 ;;
aliguorieac30262008-11-05 16:28:56 +0000381 --kerneldir=*) kerneldir="$optarg"
382 ;;
balrog7f1559c2007-11-17 10:24:32 +0000383 *) echo "ERROR: unknown option $opt"; show_help="yes"
384 ;;
bellard7d132992003-03-06 23:23:54 +0000385 esac
386done
387
ths6f30fa82007-01-05 01:00:47 +0000388# default flags for all hosts
blueswir1ac41a622008-09-14 06:46:31 +0000389CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
390CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
ths6f30fa82007-01-05 01:00:47 +0000391LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000392if test "$werror" = "yes" ; then
393CFLAGS="$CFLAGS -Werror"
394fi
ths6f30fa82007-01-05 01:00:47 +0000395
blueswir1d2c7c9b2008-11-01 14:50:20 +0000396if test "$solaris" = "no" ; then
397 if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
398 LDFLAGS="$LDFLAGS -Wl,--warn-common"
399 fi
blueswir149237ac2008-09-17 19:05:19 +0000400fi
401
blueswir131422552007-04-16 18:27:06 +0000402#
403# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
404# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
405#
bellard40293e52008-01-31 11:32:10 +0000406case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000407 sparc) if test -z "$sparc_cpu" ; then
408 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
409 ARCH_LDFLAGS="-m32"
410 else
411 ARCH_CFLAGS="${SP_CFLAGS}"
412 ARCH_LDFLAGS="${SP_LDFLAGS}"
413 fi
414 ;;
415 sparc64) if test -z "$sparc_cpu" ; then
416 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
417 ARCH_LDFLAGS="-m64"
418 else
419 ARCH_CFLAGS="${SP_CFLAGS}"
420 ARCH_LDFLAGS="${SP_LDFLAGS}"
421 fi
422 ;;
ths76d83bd2007-11-18 21:22:10 +0000423 s390)
424 ARCH_CFLAGS="-march=z900"
425 ;;
bellard40293e52008-01-31 11:32:10 +0000426 i386)
427 ARCH_CFLAGS="-m32"
428 ARCH_LDFLAGS="-m32"
429 ;;
430 x86_64)
431 ARCH_CFLAGS="-m64"
432 ARCH_LDFLAGS="-m64"
433 ;;
blueswir131422552007-04-16 18:27:06 +0000434esac
435
pbrookaf5db582006-04-08 14:26:41 +0000436if test x"$show_help" = x"yes" ; then
437cat << EOF
438
439Usage: configure [options]
440Options: [defaults in brackets after descriptions]
441
442EOF
443echo "Standard options:"
444echo " --help print this message"
445echo " --prefix=PREFIX install in PREFIX [$prefix]"
446echo " --interp-prefix=PREFIX where to find shared libraries, etc."
447echo " use %M for cpu name [$interp_prefix]"
448echo " --target-list=LIST set target list [$target_list]"
449echo ""
450echo "kqemu kernel acceleration support:"
451echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000452echo ""
453echo "Advanced options (experts only):"
454echo " --source-path=PATH path of source code [$source_path]"
455echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
456echo " --cc=CC use C compiler CC [$cc]"
457echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
458echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000459echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000460echo " --static enable static build [$static]"
aliguori890b1652008-10-07 21:22:41 +0000461echo " --enable-sparse enable sparse checker"
462echo " --disable-sparse disable sparse checker (default)"
bellard85aa5182007-11-11 20:17:03 +0000463echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000464echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000465echo " --enable-cocoa enable COCOA (Mac OS X only)"
malcc2de5c92008-06-28 19:13:06 +0000466echo " --audio-drv-list=LIST set audio drivers list:"
467echo " Available drivers: $audio_possible_drivers"
468echo " --audio-card-list=LIST set list of additional emulated audio cards"
469echo " Available cards: ac97 adlib cs4231a gus"
malc8ff9cbf2008-06-23 18:33:30 +0000470echo " --enable-mixemu enable mixer emulation"
aurel322e4d9fb2008-04-08 06:01:02 +0000471echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000472echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000473echo " --disable-curses disable curses output"
balrogfb599c92008-09-28 23:49:55 +0000474echo " --disable-bluez disable bluez stack connectivity"
aliguori7ba1e612008-11-05 16:04:33 +0000475echo " --disable-kvm disable KVM acceleration support"
pbrookbd0c5662008-05-29 14:34:11 +0000476echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000477echo " --enable-system enable all system emulation targets"
478echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000479echo " --enable-linux-user enable all linux usermode emulation targets"
480echo " --disable-linux-user disable all linux usermode emulation targets"
481echo " --enable-darwin-user enable all darwin usermode emulation targets"
482echo " --disable-darwin-user disable all darwin usermode emulation targets"
blueswir184778502008-10-26 20:33:16 +0000483echo " --enable-bsd-user enable all BSD usermode emulation targets"
484echo " --disable-bsd-user disable all BSD usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000485echo " --fmod-lib path to FMOD library"
486echo " --fmod-inc path to FMOD includes"
blueswir12f6a1ab2008-08-21 18:00:53 +0000487echo " --oss-lib path to OSS library"
pbrookc5937222006-05-14 11:30:38 +0000488echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000489echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
aliguorie0e6c8c02008-07-23 18:14:33 +0000490echo " --disable-vde disable support for vde network"
blueswir1414f0da2008-08-15 18:20:52 +0000491echo " --disable-aio disable AIO support"
ths77755342008-11-27 15:45:16 +0000492echo " --disable-blobs disable installing provided firmware blobs"
aliguorieac30262008-11-05 16:28:56 +0000493echo " --kerneldir=PATH look for kernel includes in PATH"
pbrookaf5db582006-04-08 14:26:41 +0000494echo ""
ths5bf08932006-12-23 00:33:26 +0000495echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000496exit 1
497fi
498
bellard7d132992003-03-06 23:23:54 +0000499cc="${cross_prefix}${cc}"
500ar="${cross_prefix}${ar}"
501strip="${cross_prefix}${strip}"
502
pbrook064aae12006-05-08 00:51:44 +0000503# check that the C compiler works.
504cat > $TMPC <<EOF
505int main(void) {}
506EOF
507
pbrookdb7287e2008-02-03 16:27:13 +0000508if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000509 : C compiler works ok
510else
511 echo "ERROR: \"$cc\" either does not exist or does not work"
512 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000513fi
514
aliguoricd01b4a2008-08-21 19:25:45 +0000515# check compiler to see if we're on mingw32
516cat > $TMPC <<EOF
517#include <windows.h>
518#ifndef _WIN32
519#error not windows
520#endif
521int main(void) {}
522EOF
523
524if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
525 mingw32="yes"
526fi
527
bellard67b915a2004-03-31 23:37:16 +0000528if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000529 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000530 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000531 oss="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000532 linux_user="no"
blueswir184778502008-10-26 20:33:16 +0000533 bsd_user="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000534fi
535
aliguori997306f2008-09-26 15:52:17 +0000536if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
aliguoricd01b4a2008-08-21 19:25:45 +0000537 AIOLIBS=
aliguori997306f2008-09-26 15:52:17 +0000538elif [ "$bsd" = "yes" ]; then
blueswir18ef92a82008-11-22 20:24:29 +0000539 AIOLIBS="$aio_lib"
aliguoricd01b4a2008-08-21 19:25:45 +0000540else
541 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
542 AIOLIBS="-lrt -lpthread"
bellard67b915a2004-03-31 23:37:16 +0000543fi
544
ths5fafdf22007-09-16 21:08:06 +0000545# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000546if test "$check_gcc" = "yes" ; then
547 cat > $TMPC <<EOF
548#if __GNUC__ < 4
549#error gcc3
550#endif
551int main(){return 0;}
552EOF
pbrookdb7287e2008-02-03 16:27:13 +0000553 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000554 echo "WARNING: \"$cc\" looks like gcc 4.x"
555 found_compat_cc="no"
556 if test "$gcc3_search" = "yes" ; then
557 echo "Looking for gcc 3.x"
558 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000559 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000560 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000561 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000562 found_compat_cc="yes"
563 break
564 fi
565 done
566 if test "$found_compat_cc" = "no" ; then
567 echo "gcc 3.x not found!"
568 fi
569 fi
570 if test "$found_compat_cc" = "no" ; then
571 echo "QEMU is known to have problems when compiled with gcc 4.x"
572 echo "It is recommended that you use gcc 3.x to build QEMU"
573 echo "To use this compiler anyway, configure with --disable-gcc-check"
574 exit 1;
575 fi
576 fi
577fi
578
aliguori03b4fe72008-10-07 19:16:17 +0000579if test ! -x "$(which cgcc 2>/dev/null)"; then
580 sparse="no"
581fi
582
bellardec530c82006-04-25 22:36:06 +0000583#
584# Solaris specific configure tool chain decisions
585#
586if test "$solaris" = "yes" ; then
587 #
588 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
589 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000590 #
bellardec530c82006-04-25 22:36:06 +0000591 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
592 solgcc=`which $cc`
593 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
594 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
595 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
596 echo "or get the latest patch from SunSolve for gcc"
597 exit 1
598 fi
599 fi
600 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
601 if test -z "$solinst" ; then
602 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
603 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
604 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
605 exit 1
606 fi
607 if test "$solinst" = "/usr/sbin/install" ; then
608 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
609 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
610 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
611 exit 1
612 fi
bellardec530c82006-04-25 22:36:06 +0000613 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
614 if test -z "$sol_ar" ; then
615 echo "Error: No path includes ar"
616 if test -f /usr/ccs/bin/ar ; then
617 echo "Add /usr/ccs/bin to your path and rerun configure"
618 fi
619 exit 1
620 fi
ths5fafdf22007-09-16 21:08:06 +0000621fi
bellardec530c82006-04-25 22:36:06 +0000622
623
bellard5327cf42005-01-10 23:18:50 +0000624if test -z "$target_list" ; then
625# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000626 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000627 target_list="\
628i386-softmmu \
629x86_64-softmmu \
630arm-softmmu \
631cris-softmmu \
632m68k-softmmu \
633mips-softmmu \
634mipsel-softmmu \
635mips64-softmmu \
636mips64el-softmmu \
637ppc-softmmu \
638ppcemb-softmmu \
639ppc64-softmmu \
640sh4-softmmu \
641sh4eb-softmmu \
642sparc-softmmu \
643"
pbrook0a8e90f2006-03-19 14:54:16 +0000644 fi
bellard5327cf42005-01-10 23:18:50 +0000645# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000646 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000647 target_list="${target_list}\
648i386-linux-user \
649x86_64-linux-user \
650alpha-linux-user \
651arm-linux-user \
652armeb-linux-user \
653cris-linux-user \
654m68k-linux-user \
655mips-linux-user \
656mipsel-linux-user \
657ppc-linux-user \
658ppc64-linux-user \
659ppc64abi32-linux-user \
660sh4-linux-user \
661sh4eb-linux-user \
662sparc-linux-user \
663sparc64-linux-user \
664sparc32plus-linux-user \
665"
ths831b7822007-01-18 20:06:33 +0000666 fi
667# the following are Darwin specific
668 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000669 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000670 fi
blueswir184778502008-10-26 20:33:16 +0000671# the following are BSD specific
672 if [ "$bsd_user" = "yes" ] ; then
673 target_list="${target_list}\
674sparc64-bsd-user \
675"
676 fi
bellard6e20a452005-06-05 15:56:02 +0000677else
pbrookb1a550a2006-04-16 13:28:56 +0000678 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000679fi
pbrook0a8e90f2006-03-19 14:54:16 +0000680if test -z "$target_list" ; then
681 echo "No targets enabled"
682 exit 1
683fi
bellard5327cf42005-01-10 23:18:50 +0000684
bellard7d132992003-03-06 23:23:54 +0000685if test -z "$cross_prefix" ; then
686
687# ---
688# big/little endian test
689cat > $TMPC << EOF
690#include <inttypes.h>
691int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000692 volatile uint32_t i=0x01234567;
693 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000694}
695EOF
696
pbrookdb7287e2008-02-03 16:27:13 +0000697if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000698$TMPE && bigendian="yes"
699else
700echo big/little test failed
701fi
702
703else
704
705# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000706if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000707 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000708 -o "$cpu" = "m68k" \
709 -o "$cpu" = "mips" \
710 -o "$cpu" = "mips64" \
711 -o "$cpu" = "powerpc" \
712 -o "$cpu" = "s390" \
713 -o "$cpu" = "sparc" \
714 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000715 bigendian="yes"
716fi
717
718fi
719
bellardb6853692005-06-05 17:10:39 +0000720# host long bits test
721hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000722if test "$cpu" = "x86_64" \
723 -o "$cpu" = "alpha" \
724 -o "$cpu" = "ia64" \
725 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000726 hostlongbits="64"
727fi
728
malc810260a2008-07-23 19:17:46 +0000729# ppc specific hostlongbits selection
730if test "$cpu" = "powerpc" ; then
malc9d56d2d2008-09-30 19:44:32 +0000731 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
732 grep -q __powerpc64__ $TMPI && hostlongbits=64
malc810260a2008-07-23 19:17:46 +0000733 else
734 echo hostlongbits test failed
malcba69a082008-07-24 17:51:36 +0000735 exit 1
malc810260a2008-07-23 19:17:46 +0000736 fi
737fi
738
bellarde8cd23d2003-06-25 16:08:13 +0000739# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000740cat > $TMPC <<EOF
741int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000742}
743EOF
744
pbrookbd0c5662008-05-29 14:34:11 +0000745# Check host NPTL support
746cat > $TMPC <<EOF
747#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000748#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000749void foo()
750{
751#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
752#error bork
753#endif
754}
755EOF
756
757if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
758 :
759else
760 nptl="no"
761fi
762
bellard11d9f692004-04-02 20:55:59 +0000763##########################################
balrogac629222008-10-11 09:56:04 +0000764# zlib check
765
766cat > $TMPC << EOF
767#include <zlib.h>
768int main(void) { zlibVersion(); return 0; }
769EOF
balrog17e15922008-10-11 12:00:42 +0000770if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
balrogac629222008-10-11 09:56:04 +0000771 :
772else
773 echo
774 echo "Error: zlib check failed"
775 echo "Make sure to have the zlib libs and headers installed."
776 echo
777 exit 1
778fi
779
780##########################################
bellard11d9f692004-04-02 20:55:59 +0000781# SDL probe
782
783sdl_too_old=no
784
785if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000786 sdl_config="sdl-config"
787 sdl=no
788 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000789
790cat > $TMPC << EOF
791#include <SDL.h>
792#undef main /* We don't want SDL to override our main() */
793int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
794EOF
malcd4742de2008-11-29 22:04:31 +0000795 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> $TMPSDLLOG ; then
aliguoricd01b4a2008-08-21 19:25:45 +0000796 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
797 if test "$_sdlversion" -lt 121 ; then
798 sdl_too_old=yes
799 else
800 if test "$cocoa" = "no" ; then
801 sdl=yes
802 fi
803 fi
804
805 # static link with sdl ?
806 if test "$sdl" = "yes" ; then
807 aa="no"
808 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
809 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
810 if [ "$aa" = "yes" ] ; then
811 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
ths069b0bd2007-07-12 00:27:15 +0000812 fi
bellard11d9f692004-04-02 20:55:59 +0000813
aliguoricd01b4a2008-08-21 19:25:45 +0000814 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
815 sdl_static=yes
816 fi
817 fi # static link
818 fi # sdl compile test
bellard11d9f692004-04-02 20:55:59 +0000819else
ths069b0bd2007-07-12 00:27:15 +0000820 # Make sure to disable cocoa if sdl was set
821 if test "$sdl" = "yes" ; then
822 cocoa="no"
malcc2de5c92008-06-28 19:13:06 +0000823 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
ths069b0bd2007-07-12 00:27:15 +0000824 fi
bellarda6e022a2004-04-02 21:55:47 +0000825fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000826
ths8f28f3f2007-01-05 21:25:54 +0000827##########################################
ths8d5d2d42007-08-25 01:37:51 +0000828# VNC TLS detection
829if test "$vnc_tls" = "yes" ; then
aliguoriae6b5e52008-08-06 16:55:50 +0000830cat > $TMPC <<EOF
831#include <gnutls/gnutls.h>
832int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
833EOF
834 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
835 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
836 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
837 $vnc_tls_libs 2> /dev/null ; then
838 :
839 else
840 vnc_tls="no"
841 fi
ths8d5d2d42007-08-25 01:37:51 +0000842fi
843
844##########################################
ths8a16d272008-07-19 09:56:24 +0000845# vde libraries probe
846if test "$vde" = "yes" ; then
847 cat > $TMPC << EOF
848#include <libvdeplug.h>
pbrook4a7f0e02008-09-07 16:42:53 +0000849int main(void)
850{
851 struct vde_open_args a = {0, 0, 0};
852 vde_open("", "", &a);
853 return 0;
854}
ths8a16d272008-07-19 09:56:24 +0000855EOF
pbrook4a7f0e02008-09-07 16:42:53 +0000856 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
ths8a16d272008-07-19 09:56:24 +0000857 :
858 else
aliguorie0e6c8c02008-07-23 18:14:33 +0000859 vde="no"
ths8a16d272008-07-19 09:56:24 +0000860 fi
861fi
862
863##########################################
malcc2de5c92008-06-28 19:13:06 +0000864# Sound support libraries probe
ths8f28f3f2007-01-05 21:25:54 +0000865
malcc2de5c92008-06-28 19:13:06 +0000866audio_drv_probe()
867{
868 drv=$1
869 hdr=$2
870 lib=$3
871 exp=$4
872 cfl=$5
873 cat > $TMPC << EOF
874#include <$hdr>
875int main(void) { $exp }
ths8f28f3f2007-01-05 21:25:54 +0000876EOF
malcc2de5c92008-06-28 19:13:06 +0000877 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
878 :
879 else
880 echo
881 echo "Error: $drv check failed"
882 echo "Make sure to have the $drv libs and headers installed."
883 echo
884 exit 1
885 fi
886}
887
malc2fa7d3b2008-07-29 12:58:44 +0000888audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
malcc2de5c92008-06-28 19:13:06 +0000889for drv in $audio_drv_list; do
890 case $drv in
891 alsa)
892 audio_drv_probe $drv alsa/asoundlib.h -lasound \
893 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
894 ;;
895
896 fmod)
897 if test -z $fmod_lib || test -z $fmod_inc; then
898 echo
899 echo "Error: You must specify path to FMOD library and headers"
900 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
901 echo
902 exit 1
903 fi
904 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
905 ;;
906
907 esd)
908 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
909 ;;
malcb8e59f12008-07-02 21:03:08 +0000910
911 pa)
912 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
913 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
914 ;;
915
blueswir12f6a1ab2008-08-21 18:00:53 +0000916 oss|sdl|core|wav|dsound)
917 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
918 ;;
919
malce4c63a62008-07-19 16:15:16 +0000920 *)
malc1c9b2a52008-07-19 16:57:30 +0000921 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
malce4c63a62008-07-19 16:15:16 +0000922 echo
923 echo "Error: Unknown driver '$drv' selected"
924 echo "Possible drivers are: $audio_possible_drivers"
925 echo
926 exit 1
927 }
928 ;;
malcc2de5c92008-06-28 19:13:06 +0000929 esac
930done
ths8f28f3f2007-01-05 21:25:54 +0000931
balrog4d3b6f62008-02-10 16:33:14 +0000932##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000933# BrlAPI probe
934
935if test -z "$brlapi" ; then
936 brlapi=no
937cat > $TMPC << EOF
938#include <brlapi.h>
939int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
940EOF
aurel32a40e56d2008-05-04 00:50:25 +0000941 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000942 brlapi=yes
943 fi # brlapi compile test
944fi # -z $brlapi
945
946##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000947# curses probe
948
949if test "$curses" = "yes" ; then
950 curses=no
951 cat > $TMPC << EOF
952#include <curses.h>
953int main(void) { return curses_version(); }
954EOF
pbrookaf896aa2008-03-23 00:47:42 +0000955 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000956 curses=yes
957 fi
958fi # test "$curses"
959
blueswir1414f0da2008-08-15 18:20:52 +0000960##########################################
balrogfb599c92008-09-28 23:49:55 +0000961# bluez support probe
962if test "$bluez" = "yes" ; then
963 `pkg-config bluez` || bluez="no"
964fi
965if test "$bluez" = "yes" ; then
balroge820e3f2008-09-30 02:27:44 +0000966 cat > $TMPC << EOF
967#include <bluetooth/bluetooth.h>
968int main(void) { return bt_error(0); }
969EOF
balrogfb599c92008-09-28 23:49:55 +0000970 bluez_cflags=`pkg-config --cflags bluez`
971 bluez_libs=`pkg-config --libs bluez`
balrog17e15922008-10-11 12:00:42 +0000972 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
balroge820e3f2008-09-30 02:27:44 +0000973 $bluez_libs 2> /dev/null ; then
974 :
975 else
976 bluez="no"
977 fi
balrogfb599c92008-09-28 23:49:55 +0000978fi
979
980##########################################
aliguori7ba1e612008-11-05 16:04:33 +0000981# kvm probe
982if test "$kvm" = "yes" ; then
983 cat > $TMPC <<EOF
984#include <linux/kvm.h>
985#if !defined(KVM_API_VERSION) || \
986 KVM_API_VERSION < 12 || \
987 KVM_API_VERSION > 12 || \
988 !defined(KVM_CAP_USER_MEMORY) || \
989 !defined(KVM_CAP_SET_TSS_ADDR)
990#error Invalid KVM version
991#endif
992int main(void) { return 0; }
993EOF
aliguorieac30262008-11-05 16:28:56 +0000994 if test "$kerneldir" != "" ; then
995 kvm_cflags=-I"$kerneldir"/include
996 else
997 kvm_cflags=""
998 fi
aliguori7ba1e612008-11-05 16:04:33 +0000999 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
1000 2>/dev/null ; then
1001 :
1002 else
1003 kvm="no"
1004 fi
1005fi
1006
1007##########################################
blueswir1414f0da2008-08-15 18:20:52 +00001008# AIO probe
1009if test "$aio" = "yes" ; then
1010 aio=no
1011 cat > $TMPC << EOF
1012#include <aio.h>
1013int main(void) { return aio_write(NULL); }
1014EOF
1015 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1016 aio=yes
1017 fi
1018fi
1019
pbrookcc8ae6d2006-04-23 17:57:59 +00001020# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +00001021if [ -x "`which texi2html 2>/dev/null`" ] && \
1022 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +00001023 build_docs="yes"
1024fi
1025
bellard11d9f692004-04-02 20:55:59 +00001026if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +00001027 if test -z "$prefix" ; then
aliguori17e90972008-10-24 14:11:41 +00001028 prefix="c:\\\\Program Files\\\\Qemu"
pbrook308c3592007-02-27 00:52:01 +00001029 fi
1030 mansuffix=""
1031 datasuffix=""
1032 docsuffix=""
1033 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +00001034else
pbrook308c3592007-02-27 00:52:01 +00001035 if test -z "$prefix" ; then
1036 prefix="/usr/local"
1037 fi
1038 mansuffix="/share/man"
1039 datasuffix="/share/qemu"
1040 docsuffix="/share/doc/qemu"
1041 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +00001042fi
bellard5a671352003-10-01 00:13:48 +00001043
bellard43ce4df2003-06-09 19:53:12 +00001044echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +00001045echo "BIOS directory $prefix$datasuffix"
1046echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +00001047if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +00001048echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +00001049echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +00001050fi
bellard5a671352003-10-01 00:13:48 +00001051echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +00001052echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +00001053echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +00001054echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +00001055echo "make $make"
pbrook6a882642006-04-17 13:57:12 +00001056echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +00001057echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +00001058echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +00001059echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +00001060echo "gprof enabled $gprof"
aliguori03b4fe72008-10-07 19:16:17 +00001061echo "sparse enabled $sparse"
bellard05c2a3e2006-02-08 22:39:17 +00001062echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +00001063echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +00001064echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +00001065if test "$darwin" = "yes" ; then
1066 echo "Cocoa support $cocoa"
1067fi
bellard97a847b2003-08-10 21:36:04 +00001068echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +00001069if test "$sdl" != "no" ; then
1070 echo "SDL static link $sdl_static"
1071fi
balrog4d3b6f62008-02-10 16:33:14 +00001072echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +00001073echo "mingw32 support $mingw32"
malc0c58ac12008-06-25 21:04:05 +00001074echo "Audio drivers $audio_drv_list"
1075echo "Extra audio cards $audio_card_list"
malc8ff9cbf2008-06-23 18:33:30 +00001076echo "Mixer emulation $mixemu"
ths8d5d2d42007-08-25 01:37:51 +00001077echo "VNC TLS support $vnc_tls"
1078if test "$vnc_tls" = "yes" ; then
1079 echo " TLS CFLAGS $vnc_tls_cflags"
1080 echo " TLS LIBS $vnc_tls_libs"
1081fi
blueswir131422552007-04-16 18:27:06 +00001082if test -n "$sparc_cpu"; then
1083 echo "Target Sparc Arch $sparc_cpu"
1084fi
bellard07f4ddb2005-04-23 17:44:28 +00001085echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +00001086echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +00001087echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +00001088[ ! -z "$uname_release" ] && \
1089echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +00001090echo "NPTL support $nptl"
ths8a16d272008-07-19 09:56:24 +00001091echo "vde support $vde"
blueswir1414f0da2008-08-15 18:20:52 +00001092echo "AIO support $aio"
ths77755342008-11-27 15:45:16 +00001093echo "Install blobs $blobs"
aliguori7ba1e612008-11-05 16:04:33 +00001094echo "KVM support $kvm"
bellard67b915a2004-03-31 23:37:16 +00001095
bellard97a847b2003-08-10 21:36:04 +00001096if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +00001097echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +00001098fi
malcd4742de2008-11-29 22:04:31 +00001099if [ -s $TMPSDLLOG ]; then
ths20b40c62007-07-11 23:39:45 +00001100 echo "The error log from compiling the libSDL test is: "
malcd4742de2008-11-29 22:04:31 +00001101 cat $TMPSDLLOG
ths20b40c62007-07-11 23:39:45 +00001102fi
bellard24b55b92005-03-01 22:30:41 +00001103#if test "$sdl_static" = "no"; then
1104# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1105#fi
bellard97a847b2003-08-10 21:36:04 +00001106config_mak="config-host.mak"
1107config_h="config-host.h"
1108
bellard7c1f25b2004-04-22 00:02:08 +00001109#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +00001110
ths15d9ca02007-07-31 23:07:32 +00001111test -f $config_h && mv $config_h ${config_h}~
1112
bellard97a847b2003-08-10 21:36:04 +00001113echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +00001114echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001115echo "/* Automatically generated by configure - do not modify */" > $config_h
1116
1117echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +00001118echo "bindir=\${prefix}$binsuffix" >> $config_mak
1119echo "mandir=\${prefix}$mansuffix" >> $config_mak
1120echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +00001121echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +00001122echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001123echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +00001124echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001125echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001126echo "HOST_CC=$host_cc" >> $config_mak
1127echo "AR=$ar" >> $config_mak
1128echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +00001129# XXX: only use CFLAGS and LDFLAGS ?
1130# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1131# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +00001132echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +00001133echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1134echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1135echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001136echo "CFLAGS=$CFLAGS" >> $config_mak
1137echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +00001138echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +00001139echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001140case "$cpu" in
1141 i386)
1142 echo "ARCH=i386" >> $config_mak
1143 echo "#define HOST_I386 1" >> $config_h
1144 ;;
1145 x86_64)
1146 echo "ARCH=x86_64" >> $config_mak
1147 echo "#define HOST_X86_64 1" >> $config_h
1148 ;;
1149 alpha)
1150 echo "ARCH=alpha" >> $config_mak
1151 echo "#define HOST_ALPHA 1" >> $config_h
1152 ;;
1153 armv4b)
1154 echo "ARCH=arm" >> $config_mak
1155 echo "#define HOST_ARM 1" >> $config_h
1156 ;;
1157 armv4l)
1158 echo "ARCH=arm" >> $config_mak
1159 echo "#define HOST_ARM 1" >> $config_h
1160 ;;
1161 cris)
1162 echo "ARCH=cris" >> $config_mak
1163 echo "#define HOST_CRIS 1" >> $config_h
1164 ;;
1165 hppa)
1166 echo "ARCH=hppa" >> $config_mak
1167 echo "#define HOST_HPPA 1" >> $config_h
1168 ;;
1169 ia64)
1170 echo "ARCH=ia64" >> $config_mak
1171 echo "#define HOST_IA64 1" >> $config_h
1172 ;;
1173 m68k)
1174 echo "ARCH=m68k" >> $config_mak
1175 echo "#define HOST_M68K 1" >> $config_h
1176 ;;
1177 mips)
1178 echo "ARCH=mips" >> $config_mak
1179 echo "#define HOST_MIPS 1" >> $config_h
1180 ;;
1181 mips64)
1182 echo "ARCH=mips64" >> $config_mak
1183 echo "#define HOST_MIPS64 1" >> $config_h
1184 ;;
1185 powerpc)
malc810260a2008-07-23 19:17:46 +00001186 if test "$hostlongbits" = "32"; then
1187 echo "ARCH=ppc" >> $config_mak
1188 echo "#define HOST_PPC 1" >> $config_h
1189 else
1190 echo "ARCH=ppc64" >> $config_mak
1191 echo "#define HOST_PPC64 1" >> $config_h
1192 fi
aurel322408a522008-04-20 20:19:44 +00001193 ;;
1194 s390)
1195 echo "ARCH=s390" >> $config_mak
1196 echo "#define HOST_S390 1" >> $config_h
1197 ;;
1198 sparc)
1199 echo "ARCH=sparc" >> $config_mak
1200 echo "#define HOST_SPARC 1" >> $config_h
1201 ;;
1202 sparc64)
1203 echo "ARCH=sparc64" >> $config_mak
1204 echo "#define HOST_SPARC64 1" >> $config_h
1205 ;;
1206 *)
1207 echo "Unsupported CPU = $cpu"
1208 exit 1
1209 ;;
1210esac
aliguori03b4fe72008-10-07 19:16:17 +00001211if test "$sparse" = "yes" ; then
1212 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1213 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1214 echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1215fi
bellard7d132992003-03-06 23:23:54 +00001216if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001217 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1218 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1219fi
bellardb6853692005-06-05 17:10:39 +00001220echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +00001221if test "$mingw32" = "yes" ; then
1222 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +00001223 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +00001224else
1225 cat > $TMPC << EOF
1226#include <byteswap.h>
1227int main(void) { return bswap_32(0); }
1228EOF
pbrookdb7287e2008-02-03 16:27:13 +00001229 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +00001230 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1231 fi
blueswir113606772008-12-05 17:54:09 +00001232 cat > $TMPC << EOF
1233#include <sys/endian.h>
1234#include <sys/types.h>
1235#include <machine/bswap.h>
1236int main(void) { return bswap32(0); }
1237EOF
1238 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
1239 echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h
1240 fi
bellard67b915a2004-03-31 23:37:16 +00001241fi
blueswir1128ab2f2008-08-15 18:33:42 +00001242
1243if [ "$openbsd" = "yes" ] ; then
1244 echo "#define ENOTSUP 4096" >> $config_h
1245fi
1246
bellard83fb7ad2004-07-05 21:25:26 +00001247if test "$darwin" = "yes" ; then
1248 echo "CONFIG_DARWIN=yes" >> $config_mak
1249 echo "#define CONFIG_DARWIN 1" >> $config_h
1250fi
malcb29fe3e2008-11-18 01:42:22 +00001251
1252if test "$aix" = "yes" ; then
1253 echo "CONFIG_AIX=yes" >> $config_mak
1254 echo "#define CONFIG_AIX 1" >> $config_h
1255fi
1256
bellardec530c82006-04-25 22:36:06 +00001257if test "$solaris" = "yes" ; then
1258 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001259 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001260 if test "$needs_libsunmath" = "yes" ; then
1261 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1262 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1263 fi
bellardec530c82006-04-25 22:36:06 +00001264fi
blueswir131422552007-04-16 18:27:06 +00001265if test -n "$sparc_cpu"; then
1266 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1267 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1268fi
bellard67b915a2004-03-31 23:37:16 +00001269if test "$gdbstub" = "yes" ; then
1270 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1271 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1272fi
bellard97a847b2003-08-10 21:36:04 +00001273if test "$gprof" = "yes" ; then
1274 echo "TARGET_GPROF=yes" >> $config_mak
1275 echo "#define HAVE_GPROF 1" >> $config_h
1276fi
1277if test "$static" = "yes" ; then
1278 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001279 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001280fi
bellard05c2a3e2006-02-08 22:39:17 +00001281if test $profiler = "yes" ; then
1282 echo "#define CONFIG_PROFILER 1" >> $config_h
1283fi
bellardc20709a2004-04-21 23:27:19 +00001284if test "$slirp" = "yes" ; then
1285 echo "CONFIG_SLIRP=yes" >> $config_mak
1286 echo "#define CONFIG_SLIRP 1" >> $config_h
1287fi
ths8a16d272008-07-19 09:56:24 +00001288if test "$vde" = "yes" ; then
1289 echo "CONFIG_VDE=yes" >> $config_mak
1290 echo "#define CONFIG_VDE 1" >> $config_h
1291 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1292fi
malc0c58ac12008-06-25 21:04:05 +00001293for card in $audio_card_list; do
pbrookf6e58892008-06-29 01:00:34 +00001294 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001295 echo "$def=yes" >> $config_mak
1296 echo "#define $def 1" >> $config_h
1297done
1298echo "#define AUDIO_DRIVERS \\" >> $config_h
1299for drv in $audio_drv_list; do
1300 echo " &${drv}_audio_driver, \\" >>$config_h
pbrookf6e58892008-06-29 01:00:34 +00001301 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001302 echo "$def=yes" >> $config_mak
malc923e4522008-07-02 18:13:46 +00001303 if test "$drv" = "fmod"; then
malc0c58ac12008-06-25 21:04:05 +00001304 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1305 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
blueswir12f6a1ab2008-08-21 18:00:53 +00001306 elif test "$drv" = "oss"; then
1307 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
malc0c58ac12008-06-25 21:04:05 +00001308 fi
1309done
1310echo "" >>$config_h
malc8ff9cbf2008-06-23 18:33:30 +00001311if test "$mixemu" = "yes" ; then
1312 echo "CONFIG_MIXEMU=yes" >> $config_mak
1313 echo "#define CONFIG_MIXEMU 1" >> $config_h
1314fi
ths8d5d2d42007-08-25 01:37:51 +00001315if test "$vnc_tls" = "yes" ; then
1316 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1317 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1318 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1319 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1320fi
pbrookb1a550a2006-04-16 13:28:56 +00001321qemu_version=`head $source_path/VERSION`
1322echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001323echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001324
1325echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001326if [ "$source_path_used" = "yes" ]; then
1327 echo "VPATH=$source_path" >> $config_mak
1328fi
bellard97a847b2003-08-10 21:36:04 +00001329echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001330if [ "$build_docs" = "yes" ] ; then
1331 echo "BUILD_DOCS=yes" >> $config_mak
1332fi
bellard49ecc3f2007-11-07 19:25:15 +00001333if test "$static" = "yes"; then
1334 sdl1=$sdl_static
1335else
1336 sdl1=$sdl
1337fi
1338if test "$sdl1" = "yes" ; then
1339 echo "#define CONFIG_SDL 1" >> $config_h
1340 echo "CONFIG_SDL=yes" >> $config_mak
1341 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1342 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1343 else
1344 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1345 fi
1346 if [ "${aa}" = "yes" ] ; then
1347 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1348 else
1349 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1350 fi
1351fi
1352if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001353 echo "#define CONFIG_COCOA 1" >> $config_h
1354 echo "CONFIG_COCOA=yes" >> $config_mak
1355fi
1356if test "$curses" = "yes" ; then
1357 echo "#define CONFIG_CURSES 1" >> $config_h
1358 echo "CONFIG_CURSES=yes" >> $config_mak
1359 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001360fi
aurel322e4d9fb2008-04-08 06:01:02 +00001361if test "$brlapi" = "yes" ; then
1362 echo "CONFIG_BRLAPI=yes" >> $config_mak
1363 echo "#define CONFIG_BRLAPI 1" >> $config_h
1364 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1365fi
balrogfb599c92008-09-28 23:49:55 +00001366if test "$bluez" = "yes" ; then
1367 echo "CONFIG_BLUEZ=yes" >> $config_mak
1368 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1369 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1370 echo "#define CONFIG_BLUEZ 1" >> $config_h
1371fi
blueswir1414f0da2008-08-15 18:20:52 +00001372if test "$aio" = "yes" ; then
1373 echo "#define CONFIG_AIO 1" >> $config_h
aliguoria3392f92008-09-11 18:00:19 +00001374 echo "CONFIG_AIO=yes" >> $config_mak
blueswir1414f0da2008-08-15 18:20:52 +00001375fi
ths77755342008-11-27 15:45:16 +00001376if test "$blobs" = "yes" ; then
1377 echo "INSTALL_BLOBS=yes" >> $config_mak
1378fi
bellard97a847b2003-08-10 21:36:04 +00001379
bellard83fb7ad2004-07-05 21:25:26 +00001380# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001381if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001382 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001383 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001384 echo "#define _BSD 1" >> $config_h
1385fi
1386
pbrookc5937222006-05-14 11:30:38 +00001387echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1388
blueswir168063642008-11-22 21:03:55 +00001389# USB host support
1390case "$usb" in
1391linux)
1392 echo "HOST_USB=linux" >> $config_mak
1393;;
1394bsd)
1395 echo "HOST_USB=bsd" >> $config_mak
1396;;
1397*)
1398 echo "HOST_USB=stub" >> $config_mak
1399;;
1400esac
1401
pbrookc39e3332007-09-22 16:49:14 +00001402tools=
1403if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1404 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001405 if [ "$linux" = "yes" ] ; then
1406 tools="qemu-nbd\$(EXESUF) $tools"
1407 fi
pbrookc39e3332007-09-22 16:49:14 +00001408fi
1409echo "TOOLS=$tools" >> $config_mak
1410
ths15d9ca02007-07-31 23:07:32 +00001411test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1412
bellard1d14ffa2005-10-30 18:58:22 +00001413for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001414target_dir="$target"
1415config_mak=$target_dir/config.mak
1416config_h=$target_dir/config.h
1417target_cpu=`echo $target | cut -d '-' -f 1`
1418target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001419[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001420[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1421[ "$target_cpu" = "mips" ] && target_bigendian=yes
1422[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1423[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001424[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001425[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001426[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001427[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001428[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001429[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1430[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1431[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001432target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001433target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001434target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001435target_darwin_user="no"
blueswir184778502008-10-26 20:33:16 +00001436target_bsd_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001437case "$target" in
1438 ${target_cpu}-softmmu)
1439 target_softmmu="yes"
1440 ;;
1441 ${target_cpu}-linux-user)
1442 target_user_only="yes"
1443 target_linux_user="yes"
1444 ;;
1445 ${target_cpu}-darwin-user)
1446 target_user_only="yes"
1447 target_darwin_user="yes"
1448 ;;
blueswir184778502008-10-26 20:33:16 +00001449 ${target_cpu}-bsd-user)
1450 target_user_only="yes"
1451 target_bsd_user="yes"
1452 ;;
pbrook9e407a82007-05-26 16:38:53 +00001453 *)
1454 echo "ERROR: Target '$target' not recognised"
1455 exit 1
1456 ;;
1457esac
ths831b7822007-01-18 20:06:33 +00001458
bellard97ccc682005-07-02 13:32:17 +00001459if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001460 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001461 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001462 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001463 echo "Note that this will disable all output from the virtual graphics card"
1464 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001465 exit 1;
1466fi
1467
bellard7c1f25b2004-04-22 00:02:08 +00001468#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001469
ths15d9ca02007-07-31 23:07:32 +00001470test -f $config_h && mv $config_h ${config_h}~
1471
bellard97a847b2003-08-10 21:36:04 +00001472mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001473mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001474mkdir -p $target_dir/tcg
blueswir184778502008-10-26 20:33:16 +00001475if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
bellard69de9272004-02-16 21:40:43 +00001476 mkdir -p $target_dir/nwfpe
1477fi
1478
bellardec530c82006-04-25 22:36:06 +00001479#
1480# don't use ln -sf as not all "ln -sf" over write the file/link
1481#
1482rm -f $target_dir/Makefile
1483ln -s $source_path/Makefile.target $target_dir/Makefile
1484
bellard97a847b2003-08-10 21:36:04 +00001485
1486echo "# Automatically generated by configure - do not modify" > $config_mak
1487echo "/* Automatically generated by configure - do not modify */" > $config_h
1488
1489
1490echo "include ../config-host.mak" >> $config_mak
1491echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001492
pbrooke5fe0c52006-06-11 13:32:59 +00001493bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001494elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001495target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001496interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1497echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
pbrook56aebc82008-10-11 17:55:29 +00001498gdb_xml_files=""
bellard97a847b2003-08-10 21:36:04 +00001499
aliguori5985ece2008-11-05 19:59:25 +00001500# Make sure the target and host cpus are compatible
1501if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1502 \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1503 \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
aliguori7ba1e612008-11-05 16:04:33 +00001504 kvm="no"
1505fi
1506# Disable KVM for linux-user
1507if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1508 kvm="no"
1509fi
1510
aurel322408a522008-04-20 20:19:44 +00001511case "$target_cpu" in
1512 i386)
1513 echo "TARGET_ARCH=i386" >> $config_mak
1514 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1515 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001516 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001517 then
1518 echo "#define USE_KQEMU 1" >> $config_h
1519 fi
aliguori7ba1e612008-11-05 16:04:33 +00001520 if test "$kvm" = "yes" ; then
1521 echo "CONFIG_KVM=yes" >> $config_mak
1522 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
aliguori5985ece2008-11-05 19:59:25 +00001523 echo "#define CONFIG_KVM 1" >> $config_h
aliguori7ba1e612008-11-05 16:04:33 +00001524 fi
aurel32f2bf0942008-05-05 06:00:27 +00001525 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001526 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001527 then
1528 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1529 else
1530 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1531 fi
aurel322408a522008-04-20 20:19:44 +00001532 ;;
1533 x86_64)
1534 echo "TARGET_ARCH=x86_64" >> $config_mak
1535 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1536 echo "#define TARGET_I386 1" >> $config_h
1537 echo "#define TARGET_X86_64 1" >> $config_h
1538 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1539 then
1540 echo "#define USE_KQEMU 1" >> $config_h
1541 fi
aliguori7ba1e612008-11-05 16:04:33 +00001542 if test "$kvm" = "yes" ; then
1543 echo "CONFIG_KVM=yes" >> $config_mak
1544 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1545 echo "#define CONFIG_KVM 1" >> $config_h
1546 fi
aurel322408a522008-04-20 20:19:44 +00001547 ;;
1548 alpha)
1549 echo "TARGET_ARCH=alpha" >> $config_mak
1550 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1551 echo "#define TARGET_ALPHA 1" >> $config_h
1552 ;;
1553 arm|armeb)
1554 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001555 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1556 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001557 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001558 target_nptl="yes"
pbrook56aebc82008-10-11 17:55:29 +00001559 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
aurel322408a522008-04-20 20:19:44 +00001560 ;;
1561 cris)
1562 echo "TARGET_ARCH=cris" >> $config_mak
1563 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1564 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001565 ;;
1566 m68k)
1567 echo "TARGET_ARCH=m68k" >> $config_mak
1568 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1569 echo "#define TARGET_M68K 1" >> $config_h
1570 bflt="yes"
pbrook56aebc82008-10-11 17:55:29 +00001571 gdb_xml_files="cf-core.xml cf-fp.xml"
aurel322408a522008-04-20 20:19:44 +00001572 ;;
1573 mips|mipsel)
1574 echo "TARGET_ARCH=mips" >> $config_mak
1575 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1576 echo "#define TARGET_MIPS 1" >> $config_h
1577 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1578 ;;
1579 mipsn32|mipsn32el)
1580 echo "TARGET_ARCH=mipsn32" >> $config_mak
1581 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1582 echo "#define TARGET_MIPS 1" >> $config_h
1583 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1584 ;;
1585 mips64|mips64el)
1586 echo "TARGET_ARCH=mips64" >> $config_mak
1587 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1588 echo "#define TARGET_MIPS 1" >> $config_h
1589 echo "#define TARGET_MIPS64 1" >> $config_h
1590 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1591 ;;
1592 ppc)
1593 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001594 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001595 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1596 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001597 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001598 ;;
1599 ppcemb)
1600 echo "TARGET_ARCH=ppcemb" >> $config_mak
1601 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001602 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001603 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1604 echo "#define TARGET_PPC 1" >> $config_h
1605 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001606 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001607 ;;
1608 ppc64)
1609 echo "TARGET_ARCH=ppc64" >> $config_mak
1610 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001611 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001612 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1613 echo "#define TARGET_PPC 1" >> $config_h
1614 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001615 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001616 ;;
1617 ppc64abi32)
1618 echo "TARGET_ARCH=ppc64" >> $config_mak
1619 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1620 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001621 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001622 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1623 echo "#define TARGET_PPC 1" >> $config_h
1624 echo "#define TARGET_PPC64 1" >> $config_h
1625 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001626 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001627 ;;
1628 sh4|sh4eb)
1629 echo "TARGET_ARCH=sh4" >> $config_mak
1630 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1631 echo "#define TARGET_SH4 1" >> $config_h
1632 bflt="yes"
aurel320b6d3ae2008-09-15 07:43:43 +00001633 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001634 ;;
1635 sparc)
1636 echo "TARGET_ARCH=sparc" >> $config_mak
1637 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1638 echo "#define TARGET_SPARC 1" >> $config_h
1639 ;;
1640 sparc64)
1641 echo "TARGET_ARCH=sparc64" >> $config_mak
1642 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1643 echo "#define TARGET_SPARC 1" >> $config_h
1644 echo "#define TARGET_SPARC64 1" >> $config_h
1645 elfload32="yes"
1646 ;;
1647 sparc32plus)
1648 echo "TARGET_ARCH=sparc64" >> $config_mak
1649 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1650 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1651 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1652 echo "#define TARGET_SPARC 1" >> $config_h
1653 echo "#define TARGET_SPARC64 1" >> $config_h
1654 echo "#define TARGET_ABI32 1" >> $config_h
1655 ;;
1656 *)
1657 echo "Unsupported target CPU"
1658 exit 1
1659 ;;
1660esac
bellardde83cd02003-06-15 20:25:43 +00001661if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001662 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1663 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1664fi
1665if test "$target_softmmu" = "yes" ; then
1666 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1667 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001668fi
bellard997344f2003-10-27 21:10:39 +00001669if test "$target_user_only" = "yes" ; then
1670 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1671 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1672fi
ths831b7822007-01-18 20:06:33 +00001673if test "$target_linux_user" = "yes" ; then
1674 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1675 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1676fi
1677if test "$target_darwin_user" = "yes" ; then
1678 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1679 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1680fi
pbrook56aebc82008-10-11 17:55:29 +00001681list=""
1682if test ! -z "$gdb_xml_files" ; then
1683 for x in $gdb_xml_files; do
1684 list="$list $source_path/gdb-xml/$x"
1685 done
1686fi
1687echo "TARGET_XML_FILES=$list" >> $config_mak
bellardde83cd02003-06-15 20:25:43 +00001688
aurel320938cda2008-04-11 21:36:06 +00001689if test "$target_cpu" = "arm" \
1690 -o "$target_cpu" = "armeb" \
1691 -o "$target_cpu" = "m68k" \
1692 -o "$target_cpu" = "mips" \
1693 -o "$target_cpu" = "mipsel" \
1694 -o "$target_cpu" = "mipsn32" \
1695 -o "$target_cpu" = "mipsn32el" \
1696 -o "$target_cpu" = "mips64" \
1697 -o "$target_cpu" = "mips64el" \
1698 -o "$target_cpu" = "sparc" \
1699 -o "$target_cpu" = "sparc64" \
1700 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001701 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1702 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1703fi
pbrooke5fe0c52006-06-11 13:32:59 +00001704if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1705 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1706 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1707fi
pbrookbd0c5662008-05-29 14:34:11 +00001708if test "$target_user_only" = "yes" \
1709 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1710 echo "#define USE_NPTL 1" >> $config_h
1711fi
blueswir1cb33da52007-10-09 16:34:29 +00001712# 32 bit ELF loader in addition to native 64 bit loader?
1713if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1714 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1715 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1716fi
blueswir184778502008-10-26 20:33:16 +00001717if test "$target_bsd_user" = "yes" ; then
1718 echo "CONFIG_BSD_USER=yes" >> $config_mak
1719 echo "#define CONFIG_BSD_USER 1" >> $config_h
1720fi
bellard5b0753e2005-03-01 21:37:28 +00001721
ths15d9ca02007-07-31 23:07:32 +00001722test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1723
bellard97a847b2003-08-10 21:36:04 +00001724done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001725
1726# build tree in object directory if source path is different from current one
1727if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001728 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001729 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001730 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001731 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001732 for dir in $DIRS ; do
1733 mkdir -p $dir
1734 done
bellardec530c82006-04-25 22:36:06 +00001735 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001736 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001737 rm -f $f
1738 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001739 done
1740fi