blob: 179c645d3f9728e25d1498a75fabc644670465c2 [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"
bellard7d132992003-03-06 23:23:54 +000019
malc9ac81bb2008-11-29 20:09:56 +000020trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI; exit" 0 2 3 15
21
bellard7d132992003-03-06 23:23:54 +000022# default parameters
bellard11d9f692004-04-02 20:55:59 +000023prefix=""
bellard1e43adf2003-09-30 20:54:24 +000024interp_prefix="/usr/gnemul/qemu-%M"
bellard43ce4df2003-06-09 19:53:12 +000025static="no"
bellard7d132992003-03-06 23:23:54 +000026cross_prefix=""
27cc="gcc"
pbrook328a4242006-12-19 03:31:34 +000028gcc3_search="yes"
balrogfe8f78e2007-10-31 01:03:28 +000029gcc3_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 +000030audio_drv_list=""
31audio_card_list=""
bellard7d132992003-03-06 23:23:54 +000032host_cc="gcc"
33ar="ar"
34make="make"
pbrook6a882642006-04-17 13:57:12 +000035install="install"
bellard7d132992003-03-06 23:23:54 +000036strip="strip"
malcb29fe3e2008-11-18 01:42:22 +000037cpu=`test $(uname -s) = AIX && uname -p || uname -m`
bellard5327cf42005-01-10 23:18:50 +000038target_list=""
bellard7d132992003-03-06 23:23:54 +000039case "$cpu" in
40 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000041 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000042 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000043 x86_64|amd64)
44 cpu="x86_64"
45 ;;
46 alpha)
47 cpu="alpha"
48 ;;
bellardba680552005-03-13 09:49:52 +000049 armv*b)
bellard808c4952004-12-19 23:33:47 +000050 cpu="armv4b"
51 ;;
bellardba680552005-03-13 09:49:52 +000052 armv*l)
bellard7d132992003-03-06 23:23:54 +000053 cpu="armv4l"
54 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000055 cris)
56 cpu="cris"
bellard7d132992003-03-06 23:23:54 +000057 ;;
aurel32f54b3f92008-04-12 20:14:54 +000058 parisc|parisc64)
59 cpu="hppa"
60 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000061 ia64)
62 cpu="ia64"
63 ;;
64 m68k)
65 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000066 ;;
67 mips)
68 cpu="mips"
69 ;;
thsfbe4f652007-04-01 11:16:48 +000070 mips64)
71 cpu="mips64"
72 ;;
malcb29fe3e2008-11-18 01:42:22 +000073 "Power Macintosh"|ppc|ppc64|powerpc)
aurel32aaa5fa12008-04-11 22:04:22 +000074 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000075 ;;
ths0e7b8a92007-08-01 00:09:31 +000076 s390*)
bellardfb3e5842003-03-29 17:32:36 +000077 cpu="s390"
78 ;;
blueswir131422552007-04-16 18:27:06 +000079 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000080 cpu="sparc"
81 ;;
82 sparc64)
83 cpu="sparc64"
84 ;;
bellard7d132992003-03-06 23:23:54 +000085 *)
86 cpu="unknown"
87 ;;
88esac
89gprof="no"
aliguori03b4fe72008-10-07 19:16:17 +000090sparse="no"
bellard7d132992003-03-06 23:23:54 +000091bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000092mingw32="no"
93EXESUF=""
94gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000095slirp="yes"
aliguorie0e6c8c02008-07-23 18:14:33 +000096vde="yes"
bellard102a52e2004-11-14 19:57:29 +000097fmod_lib=""
98fmod_inc=""
blueswir12f6a1ab2008-08-21 18:00:53 +000099oss_lib=""
ths8d5d2d42007-08-25 01:37:51 +0000100vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +0000101bsd="no"
bellard5327cf42005-01-10 23:18:50 +0000102linux="no"
blueswir1d2c7c9b2008-11-01 14:50:20 +0000103solaris="no"
bellardc9ec1fe2005-02-10 21:55:30 +0000104kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +0000105profiler="no"
bellard5b0753e2005-03-01 21:37:28 +0000106cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000107check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000108check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000109softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000110linux_user="no"
111darwin_user="no"
blueswir184778502008-10-26 20:33:16 +0000112bsd_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000113build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000114uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000115curses="yes"
blueswir1414f0da2008-08-15 18:20:52 +0000116aio="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000117nptl="yes"
malc8ff9cbf2008-06-23 18:33:30 +0000118mixemu="no"
balrogfb599c92008-09-28 23:49:55 +0000119bluez="yes"
aliguori7ba1e612008-11-05 16:04:33 +0000120kvm="yes"
aliguorieac30262008-11-05 16:28:56 +0000121kerneldir=""
malcb29fe3e2008-11-18 01:42:22 +0000122aix="no"
ths77755342008-11-27 15:45:16 +0000123blobs="yes"
bellard7d132992003-03-06 23:23:54 +0000124
125# OS specific
126targetos=`uname -s`
127case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000128CYGWIN*)
129mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000130OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000131if [ "$cpu" = "i386" ] ; then
132 kqemu="yes"
133fi
malcc2de5c92008-06-28 19:13:06 +0000134audio_possible_drivers="sdl"
bellardc326e0a2005-04-23 18:30:28 +0000135;;
bellard67b915a2004-03-31 23:37:16 +0000136MINGW32*)
137mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000138if [ "$cpu" = "i386" ] ; then
139 kqemu="yes"
140fi
malcc2de5c92008-06-28 19:13:06 +0000141audio_possible_drivers="dsound sdl fmod"
bellard67b915a2004-03-31 23:37:16 +0000142;;
ths5c40d2b2007-06-23 16:03:36 +0000143GNU/kFreeBSD)
malc0c58ac12008-06-25 21:04:05 +0000144audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000145audio_possible_drivers="oss sdl esd pa"
ths5c40d2b2007-06-23 16:03:36 +0000146if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
147 kqemu="yes"
148fi
149;;
bellard7d3505c2004-05-12 19:32:15 +0000150FreeBSD)
151bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000152audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000153audio_possible_drivers="oss sdl esd pa"
blueswir1f4887912008-11-23 07:27:59 +0000154aio_lib="-lpthread"
bellarde99f9062005-07-28 21:45:38 +0000155if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000156 kqemu="yes"
157fi
bellard7d3505c2004-05-12 19:32:15 +0000158;;
159NetBSD)
160bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000161audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000162audio_possible_drivers="oss sdl esd"
blueswir18ef92a82008-11-22 20:24:29 +0000163oss_lib="-lossaudio"
164aio_lib="-lrt -lpthread"
bellard7d3505c2004-05-12 19:32:15 +0000165;;
166OpenBSD)
167bsd="yes"
blueswir1128ab2f2008-08-15 18:33:42 +0000168openbsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000169audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000170audio_possible_drivers="oss sdl esd"
blueswir12f6a1ab2008-08-21 18:00:53 +0000171oss_lib="-lossaudio"
blueswir18ef92a82008-11-22 20:24:29 +0000172aio_lib="-lpthread"
bellard7d3505c2004-05-12 19:32:15 +0000173;;
bellard83fb7ad2004-07-05 21:25:26 +0000174Darwin)
175bsd="yes"
176darwin="yes"
ths831b7822007-01-18 20:06:33 +0000177darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000178cocoa="yes"
malc0c58ac12008-06-25 21:04:05 +0000179audio_drv_list="coreaudio"
malcc2de5c92008-06-28 19:13:06 +0000180audio_possible_drivers="coreaudio sdl fmod"
ths6f30fa82007-01-05 01:00:47 +0000181OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000182OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
blueswir18ef92a82008-11-22 20:24:29 +0000183aio_lib="-lpthread"
bellard83fb7ad2004-07-05 21:25:26 +0000184;;
bellardec530c82006-04-25 22:36:06 +0000185SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000186 solaris="yes"
187 make="gmake"
188 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000189 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000190 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000191 # have to select again, because `uname -m` returns i86pc
192 # even on an x86_64 box.
193 solariscpu=`isainfo -k`
194 if test "${solariscpu}" = "amd64" ; then
195 cpu="x86_64"
196 fi
thsc2b84fa2007-02-10 23:21:21 +0000197 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000198 if test "$solarisrev" -le 9 ; then
199 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
200 needs_libsunmath="yes"
201 else
202 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
203 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
204 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
205 echo "Studio 11 can be downloaded from www.sun.com."
206 exit 1
207 fi
208 fi
209 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000210 kqemu="yes"
211 fi
ths86b2bd92007-02-11 00:31:33 +0000212 fi
ths6b4d2ba2007-05-13 18:02:43 +0000213 if test -f /usr/include/sys/soundcard.h ; then
malc0c58ac12008-06-25 21:04:05 +0000214 audio_drv_list="oss"
ths6b4d2ba2007-05-13 18:02:43 +0000215 fi
malcc2de5c92008-06-28 19:13:06 +0000216 audio_possible_drivers="oss sdl"
ths86b2bd92007-02-11 00:31:33 +0000217;;
malcb29fe3e2008-11-18 01:42:22 +0000218AIX)
219aix="yes"
220make="gmake"
221;;
bellard1d14ffa2005-10-30 18:58:22 +0000222*)
malc0c58ac12008-06-25 21:04:05 +0000223audio_drv_list="oss"
malcb8e59f12008-07-02 21:03:08 +0000224audio_possible_drivers="oss alsa sdl esd pa"
bellard5327cf42005-01-10 23:18:50 +0000225linux="yes"
ths831b7822007-01-18 20:06:33 +0000226linux_user="yes"
blueswir168063642008-11-22 21:03:55 +0000227usb="linux"
bellard07f4ddb2005-04-23 17:44:28 +0000228if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000229 kqemu="yes"
malcc2de5c92008-06-28 19:13:06 +0000230 audio_possible_drivers="$audio_possible_drivers fmod"
bellardc9ec1fe2005-02-10 21:55:30 +0000231fi
bellardfb065182004-11-09 23:09:44 +0000232;;
bellard7d132992003-03-06 23:23:54 +0000233esac
234
bellard7d3505c2004-05-12 19:32:15 +0000235if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000236 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000237 make="gmake"
blueswir168063642008-11-22 21:03:55 +0000238 usb="bsd"
bellard83fb7ad2004-07-05 21:25:26 +0000239 fi
blueswir184778502008-10-26 20:33:16 +0000240 bsd_user="yes"
bellard7d3505c2004-05-12 19:32:15 +0000241fi
242
bellard7d132992003-03-06 23:23:54 +0000243# find source path
pbrookad064842006-04-16 12:41:07 +0000244source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000245source_path_used="no"
246workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000247if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000248 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000249else
250 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000251fi
pbrook724db112008-02-03 19:20:13 +0000252[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000253
bellard85aa5182007-11-11 20:17:03 +0000254werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000255# generate compile errors on warnings for development builds
256#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
257#werror="yes";
258#fi
bellard85aa5182007-11-11 20:17:03 +0000259
bellard7d132992003-03-06 23:23:54 +0000260for opt do
pbrooka46e4032006-04-29 23:05:22 +0000261 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000262 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000263 --help|-h) show_help=yes
264 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000265 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000266 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000267 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000268 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000269 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000270 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000271 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000272 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000273 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000274 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000275 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000276 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000277 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000278 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000279 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000280 ;;
pbrook6a882642006-04-17 13:57:12 +0000281 --install=*) install="$optarg"
282 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000283 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000284 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000285 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000286 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000287 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000288 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000289 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000290 ;;
bellard7d132992003-03-06 23:23:54 +0000291 --enable-gprof) gprof="yes"
292 ;;
bellard43ce4df2003-06-09 19:53:12 +0000293 --static) static="yes"
294 ;;
bellard97a847b2003-08-10 21:36:04 +0000295 --disable-sdl) sdl="no"
296 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000297 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000298 ;;
malcc2de5c92008-06-28 19:13:06 +0000299 --fmod-inc=*) fmod_inc="$optarg"
300 ;;
blueswir12f6a1ab2008-08-21 18:00:53 +0000301 --oss-lib=*) oss_lib="$optarg"
302 ;;
malc2fa7d3b2008-07-29 12:58:44 +0000303 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
malc0c58ac12008-06-25 21:04:05 +0000304 ;;
305 --audio-drv-list=*) audio_drv_list="$optarg"
306 ;;
aliguori03b4fe72008-10-07 19:16:17 +0000307 --enable-sparse) sparse="yes"
308 ;;
309 --disable-sparse) sparse="no"
310 ;;
ths8d5d2d42007-08-25 01:37:51 +0000311 --disable-vnc-tls) vnc_tls="no"
312 ;;
bellard443f1372004-06-04 11:13:20 +0000313 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000314 ;;
aliguorie0e6c8c02008-07-23 18:14:33 +0000315 --disable-vde) vde="no"
ths8a16d272008-07-19 09:56:24 +0000316 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000317 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000318 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000319 --disable-brlapi) brlapi="no"
320 ;;
balrogfb599c92008-09-28 23:49:55 +0000321 --disable-bluez) bluez="no"
322 ;;
aliguori7ba1e612008-11-05 16:04:33 +0000323 --disable-kvm) kvm="no"
324 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000325 --enable-profiler) profiler="yes"
326 ;;
malcc2de5c92008-06-28 19:13:06 +0000327 --enable-cocoa)
328 cocoa="yes" ;
329 sdl="no" ;
330 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
bellard1d14ffa2005-10-30 18:58:22 +0000331 ;;
bellard97ccc682005-07-02 13:32:17 +0000332 --disable-gfx-check) check_gfx="no"
333 ;;
bellard1aff3812005-11-02 22:30:45 +0000334 --disable-gcc-check) check_gcc="no"
335 ;;
pbrookcad25d62006-03-19 16:31:11 +0000336 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000337 ;;
pbrookcad25d62006-03-19 16:31:11 +0000338 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000339 ;;
ths831b7822007-01-18 20:06:33 +0000340 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000341 ;;
ths831b7822007-01-18 20:06:33 +0000342 --enable-linux-user) linux_user="yes"
343 ;;
344 --disable-darwin-user) darwin_user="no"
345 ;;
346 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000347 ;;
blueswir184778502008-10-26 20:33:16 +0000348 --disable-bsd-user) bsd_user="no"
349 ;;
350 --enable-bsd-user) bsd_user="yes"
351 ;;
pbrookc5937222006-05-14 11:30:38 +0000352 --enable-uname-release=*) uname_release="$optarg"
353 ;;
blueswir131422552007-04-16 18:27:06 +0000354 --sparc_cpu=*)
355 sparc_cpu="$optarg"
356 case $sparc_cpu in
357 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
358 target_cpu="sparc"; cpu="sparc" ;;
359 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
360 target_cpu="sparc"; cpu="sparc" ;;
361 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
362 target_cpu="sparc64"; cpu="sparc64" ;;
363 *) echo "undefined SPARC architecture. Exiting";exit 1;;
364 esac
365 ;;
bellard85aa5182007-11-11 20:17:03 +0000366 --enable-werror) werror="yes"
367 ;;
368 --disable-werror) werror="no"
369 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000370 --disable-curses) curses="no"
371 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000372 --disable-nptl) nptl="no"
373 ;;
malc8ff9cbf2008-06-23 18:33:30 +0000374 --enable-mixemu) mixemu="yes"
375 ;;
blueswir1414f0da2008-08-15 18:20:52 +0000376 --disable-aio) aio="no"
377 ;;
ths77755342008-11-27 15:45:16 +0000378 --disable-blobs) blobs="no"
379 ;;
aliguorieac30262008-11-05 16:28:56 +0000380 --kerneldir=*) kerneldir="$optarg"
381 ;;
balrog7f1559c2007-11-17 10:24:32 +0000382 *) echo "ERROR: unknown option $opt"; show_help="yes"
383 ;;
bellard7d132992003-03-06 23:23:54 +0000384 esac
385done
386
ths6f30fa82007-01-05 01:00:47 +0000387# default flags for all hosts
blueswir1ac41a622008-09-14 06:46:31 +0000388CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
389CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
ths6f30fa82007-01-05 01:00:47 +0000390LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000391if test "$werror" = "yes" ; then
392CFLAGS="$CFLAGS -Werror"
393fi
ths6f30fa82007-01-05 01:00:47 +0000394
blueswir1d2c7c9b2008-11-01 14:50:20 +0000395if test "$solaris" = "no" ; then
396 if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
397 LDFLAGS="$LDFLAGS -Wl,--warn-common"
398 fi
blueswir149237ac2008-09-17 19:05:19 +0000399fi
400
blueswir131422552007-04-16 18:27:06 +0000401#
402# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
403# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
404#
bellard40293e52008-01-31 11:32:10 +0000405case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000406 sparc) if test -z "$sparc_cpu" ; then
407 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
408 ARCH_LDFLAGS="-m32"
409 else
410 ARCH_CFLAGS="${SP_CFLAGS}"
411 ARCH_LDFLAGS="${SP_LDFLAGS}"
412 fi
413 ;;
414 sparc64) if test -z "$sparc_cpu" ; then
415 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
416 ARCH_LDFLAGS="-m64"
417 else
418 ARCH_CFLAGS="${SP_CFLAGS}"
419 ARCH_LDFLAGS="${SP_LDFLAGS}"
420 fi
421 ;;
ths76d83bd2007-11-18 21:22:10 +0000422 s390)
423 ARCH_CFLAGS="-march=z900"
424 ;;
bellard40293e52008-01-31 11:32:10 +0000425 i386)
426 ARCH_CFLAGS="-m32"
427 ARCH_LDFLAGS="-m32"
428 ;;
429 x86_64)
430 ARCH_CFLAGS="-m64"
431 ARCH_LDFLAGS="-m64"
432 ;;
blueswir131422552007-04-16 18:27:06 +0000433esac
434
pbrookaf5db582006-04-08 14:26:41 +0000435if test x"$show_help" = x"yes" ; then
436cat << EOF
437
438Usage: configure [options]
439Options: [defaults in brackets after descriptions]
440
441EOF
442echo "Standard options:"
443echo " --help print this message"
444echo " --prefix=PREFIX install in PREFIX [$prefix]"
445echo " --interp-prefix=PREFIX where to find shared libraries, etc."
446echo " use %M for cpu name [$interp_prefix]"
447echo " --target-list=LIST set target list [$target_list]"
448echo ""
449echo "kqemu kernel acceleration support:"
450echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000451echo ""
452echo "Advanced options (experts only):"
453echo " --source-path=PATH path of source code [$source_path]"
454echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
455echo " --cc=CC use C compiler CC [$cc]"
456echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
457echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000458echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000459echo " --static enable static build [$static]"
aliguori890b1652008-10-07 21:22:41 +0000460echo " --enable-sparse enable sparse checker"
461echo " --disable-sparse disable sparse checker (default)"
bellard85aa5182007-11-11 20:17:03 +0000462echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000463echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000464echo " --enable-cocoa enable COCOA (Mac OS X only)"
malcc2de5c92008-06-28 19:13:06 +0000465echo " --audio-drv-list=LIST set audio drivers list:"
466echo " Available drivers: $audio_possible_drivers"
467echo " --audio-card-list=LIST set list of additional emulated audio cards"
468echo " Available cards: ac97 adlib cs4231a gus"
malc8ff9cbf2008-06-23 18:33:30 +0000469echo " --enable-mixemu enable mixer emulation"
aurel322e4d9fb2008-04-08 06:01:02 +0000470echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000471echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000472echo " --disable-curses disable curses output"
balrogfb599c92008-09-28 23:49:55 +0000473echo " --disable-bluez disable bluez stack connectivity"
aliguori7ba1e612008-11-05 16:04:33 +0000474echo " --disable-kvm disable KVM acceleration support"
pbrookbd0c5662008-05-29 14:34:11 +0000475echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000476echo " --enable-system enable all system emulation targets"
477echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000478echo " --enable-linux-user enable all linux usermode emulation targets"
479echo " --disable-linux-user disable all linux usermode emulation targets"
480echo " --enable-darwin-user enable all darwin usermode emulation targets"
481echo " --disable-darwin-user disable all darwin usermode emulation targets"
blueswir184778502008-10-26 20:33:16 +0000482echo " --enable-bsd-user enable all BSD usermode emulation targets"
483echo " --disable-bsd-user disable all BSD usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000484echo " --fmod-lib path to FMOD library"
485echo " --fmod-inc path to FMOD includes"
blueswir12f6a1ab2008-08-21 18:00:53 +0000486echo " --oss-lib path to OSS library"
pbrookc5937222006-05-14 11:30:38 +0000487echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000488echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
aliguorie0e6c8c02008-07-23 18:14:33 +0000489echo " --disable-vde disable support for vde network"
blueswir1414f0da2008-08-15 18:20:52 +0000490echo " --disable-aio disable AIO support"
ths77755342008-11-27 15:45:16 +0000491echo " --disable-blobs disable installing provided firmware blobs"
aliguorieac30262008-11-05 16:28:56 +0000492echo " --kerneldir=PATH look for kernel includes in PATH"
pbrookaf5db582006-04-08 14:26:41 +0000493echo ""
ths5bf08932006-12-23 00:33:26 +0000494echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000495exit 1
496fi
497
bellard7d132992003-03-06 23:23:54 +0000498cc="${cross_prefix}${cc}"
499ar="${cross_prefix}${ar}"
500strip="${cross_prefix}${strip}"
501
pbrook064aae12006-05-08 00:51:44 +0000502# check that the C compiler works.
503cat > $TMPC <<EOF
504int main(void) {}
505EOF
506
pbrookdb7287e2008-02-03 16:27:13 +0000507if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000508 : C compiler works ok
509else
510 echo "ERROR: \"$cc\" either does not exist or does not work"
511 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000512fi
513
aliguoricd01b4a2008-08-21 19:25:45 +0000514# check compiler to see if we're on mingw32
515cat > $TMPC <<EOF
516#include <windows.h>
517#ifndef _WIN32
518#error not windows
519#endif
520int main(void) {}
521EOF
522
523if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
524 mingw32="yes"
525fi
526
bellard67b915a2004-03-31 23:37:16 +0000527if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000528 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000529 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000530 oss="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000531 linux_user="no"
blueswir184778502008-10-26 20:33:16 +0000532 bsd_user="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000533fi
534
aliguori997306f2008-09-26 15:52:17 +0000535if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
aliguoricd01b4a2008-08-21 19:25:45 +0000536 AIOLIBS=
aliguori997306f2008-09-26 15:52:17 +0000537elif [ "$bsd" = "yes" ]; then
blueswir18ef92a82008-11-22 20:24:29 +0000538 AIOLIBS="$aio_lib"
aliguoricd01b4a2008-08-21 19:25:45 +0000539else
540 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
541 AIOLIBS="-lrt -lpthread"
bellard67b915a2004-03-31 23:37:16 +0000542fi
543
ths5fafdf22007-09-16 21:08:06 +0000544# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000545if test "$check_gcc" = "yes" ; then
546 cat > $TMPC <<EOF
547#if __GNUC__ < 4
548#error gcc3
549#endif
550int main(){return 0;}
551EOF
pbrookdb7287e2008-02-03 16:27:13 +0000552 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000553 echo "WARNING: \"$cc\" looks like gcc 4.x"
554 found_compat_cc="no"
555 if test "$gcc3_search" = "yes" ; then
556 echo "Looking for gcc 3.x"
557 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000558 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000559 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000560 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000561 found_compat_cc="yes"
562 break
563 fi
564 done
565 if test "$found_compat_cc" = "no" ; then
566 echo "gcc 3.x not found!"
567 fi
568 fi
569 if test "$found_compat_cc" = "no" ; then
570 echo "QEMU is known to have problems when compiled with gcc 4.x"
571 echo "It is recommended that you use gcc 3.x to build QEMU"
572 echo "To use this compiler anyway, configure with --disable-gcc-check"
573 exit 1;
574 fi
575 fi
576fi
577
aliguori03b4fe72008-10-07 19:16:17 +0000578if test ! -x "$(which cgcc 2>/dev/null)"; then
579 sparse="no"
580fi
581
bellardec530c82006-04-25 22:36:06 +0000582#
583# Solaris specific configure tool chain decisions
584#
585if test "$solaris" = "yes" ; then
586 #
587 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
588 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000589 #
bellardec530c82006-04-25 22:36:06 +0000590 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
591 solgcc=`which $cc`
592 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
593 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
594 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
595 echo "or get the latest patch from SunSolve for gcc"
596 exit 1
597 fi
598 fi
599 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
600 if test -z "$solinst" ; then
601 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
602 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
603 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
604 exit 1
605 fi
606 if test "$solinst" = "/usr/sbin/install" ; then
607 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
608 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
609 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
610 exit 1
611 fi
bellardec530c82006-04-25 22:36:06 +0000612 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
613 if test -z "$sol_ar" ; then
614 echo "Error: No path includes ar"
615 if test -f /usr/ccs/bin/ar ; then
616 echo "Add /usr/ccs/bin to your path and rerun configure"
617 fi
618 exit 1
619 fi
ths5fafdf22007-09-16 21:08:06 +0000620fi
bellardec530c82006-04-25 22:36:06 +0000621
622
bellard5327cf42005-01-10 23:18:50 +0000623if test -z "$target_list" ; then
624# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000625 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000626 target_list="\
627i386-softmmu \
628x86_64-softmmu \
629arm-softmmu \
630cris-softmmu \
631m68k-softmmu \
632mips-softmmu \
633mipsel-softmmu \
634mips64-softmmu \
635mips64el-softmmu \
636ppc-softmmu \
637ppcemb-softmmu \
638ppc64-softmmu \
639sh4-softmmu \
640sh4eb-softmmu \
641sparc-softmmu \
642"
pbrook0a8e90f2006-03-19 14:54:16 +0000643 fi
bellard5327cf42005-01-10 23:18:50 +0000644# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000645 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000646 target_list="${target_list}\
647i386-linux-user \
648x86_64-linux-user \
649alpha-linux-user \
650arm-linux-user \
651armeb-linux-user \
652cris-linux-user \
653m68k-linux-user \
654mips-linux-user \
655mipsel-linux-user \
656ppc-linux-user \
657ppc64-linux-user \
658ppc64abi32-linux-user \
659sh4-linux-user \
660sh4eb-linux-user \
661sparc-linux-user \
662sparc64-linux-user \
663sparc32plus-linux-user \
664"
ths831b7822007-01-18 20:06:33 +0000665 fi
666# the following are Darwin specific
667 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000668 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000669 fi
blueswir184778502008-10-26 20:33:16 +0000670# the following are BSD specific
671 if [ "$bsd_user" = "yes" ] ; then
672 target_list="${target_list}\
673sparc64-bsd-user \
674"
675 fi
bellard6e20a452005-06-05 15:56:02 +0000676else
pbrookb1a550a2006-04-16 13:28:56 +0000677 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000678fi
pbrook0a8e90f2006-03-19 14:54:16 +0000679if test -z "$target_list" ; then
680 echo "No targets enabled"
681 exit 1
682fi
bellard5327cf42005-01-10 23:18:50 +0000683
bellard7d132992003-03-06 23:23:54 +0000684if test -z "$cross_prefix" ; then
685
686# ---
687# big/little endian test
688cat > $TMPC << EOF
689#include <inttypes.h>
690int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000691 volatile uint32_t i=0x01234567;
692 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000693}
694EOF
695
pbrookdb7287e2008-02-03 16:27:13 +0000696if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000697$TMPE && bigendian="yes"
698else
699echo big/little test failed
700fi
701
702else
703
704# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000705if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000706 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000707 -o "$cpu" = "m68k" \
708 -o "$cpu" = "mips" \
709 -o "$cpu" = "mips64" \
710 -o "$cpu" = "powerpc" \
711 -o "$cpu" = "s390" \
712 -o "$cpu" = "sparc" \
713 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000714 bigendian="yes"
715fi
716
717fi
718
bellardb6853692005-06-05 17:10:39 +0000719# host long bits test
720hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000721if test "$cpu" = "x86_64" \
722 -o "$cpu" = "alpha" \
723 -o "$cpu" = "ia64" \
724 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000725 hostlongbits="64"
726fi
727
malc810260a2008-07-23 19:17:46 +0000728# ppc specific hostlongbits selection
729if test "$cpu" = "powerpc" ; then
malc9d56d2d2008-09-30 19:44:32 +0000730 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
731 grep -q __powerpc64__ $TMPI && hostlongbits=64
malc810260a2008-07-23 19:17:46 +0000732 else
733 echo hostlongbits test failed
malcba69a082008-07-24 17:51:36 +0000734 exit 1
malc810260a2008-07-23 19:17:46 +0000735 fi
736fi
737
bellarde8cd23d2003-06-25 16:08:13 +0000738# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000739cat > $TMPC <<EOF
740int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000741}
742EOF
743
pbrookbd0c5662008-05-29 14:34:11 +0000744# Check host NPTL support
745cat > $TMPC <<EOF
746#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000747#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000748void foo()
749{
750#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
751#error bork
752#endif
753}
754EOF
755
756if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
757 :
758else
759 nptl="no"
760fi
761
bellard11d9f692004-04-02 20:55:59 +0000762##########################################
balrogac629222008-10-11 09:56:04 +0000763# zlib check
764
765cat > $TMPC << EOF
766#include <zlib.h>
767int main(void) { zlibVersion(); return 0; }
768EOF
balrog17e15922008-10-11 12:00:42 +0000769if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
balrogac629222008-10-11 09:56:04 +0000770 :
771else
772 echo
773 echo "Error: zlib check failed"
774 echo "Make sure to have the zlib libs and headers installed."
775 echo
776 exit 1
777fi
778
779##########################################
bellard11d9f692004-04-02 20:55:59 +0000780# SDL probe
781
782sdl_too_old=no
783
784if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000785 sdl_config="sdl-config"
786 sdl=no
787 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000788
789cat > $TMPC << EOF
790#include <SDL.h>
791#undef main /* We don't want SDL to override our main() */
792int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
793EOF
aliguoricd01b4a2008-08-21 19:25:45 +0000794 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
795 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
796 if test "$_sdlversion" -lt 121 ; then
797 sdl_too_old=yes
798 else
799 if test "$cocoa" = "no" ; then
800 sdl=yes
801 fi
802 fi
803
804 # static link with sdl ?
805 if test "$sdl" = "yes" ; then
806 aa="no"
807 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
808 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
809 if [ "$aa" = "yes" ] ; then
810 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
ths069b0bd2007-07-12 00:27:15 +0000811 fi
bellard11d9f692004-04-02 20:55:59 +0000812
aliguoricd01b4a2008-08-21 19:25:45 +0000813 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
814 sdl_static=yes
815 fi
816 fi # static link
817 fi # sdl compile test
bellard11d9f692004-04-02 20:55:59 +0000818else
ths069b0bd2007-07-12 00:27:15 +0000819 # Make sure to disable cocoa if sdl was set
820 if test "$sdl" = "yes" ; then
821 cocoa="no"
malcc2de5c92008-06-28 19:13:06 +0000822 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
ths069b0bd2007-07-12 00:27:15 +0000823 fi
bellarda6e022a2004-04-02 21:55:47 +0000824fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000825
ths8f28f3f2007-01-05 21:25:54 +0000826##########################################
ths8d5d2d42007-08-25 01:37:51 +0000827# VNC TLS detection
828if test "$vnc_tls" = "yes" ; then
aliguoriae6b5e52008-08-06 16:55:50 +0000829cat > $TMPC <<EOF
830#include <gnutls/gnutls.h>
831int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
832EOF
833 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
834 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
835 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
836 $vnc_tls_libs 2> /dev/null ; then
837 :
838 else
839 vnc_tls="no"
840 fi
ths8d5d2d42007-08-25 01:37:51 +0000841fi
842
843##########################################
ths8a16d272008-07-19 09:56:24 +0000844# vde libraries probe
845if test "$vde" = "yes" ; then
846 cat > $TMPC << EOF
847#include <libvdeplug.h>
pbrook4a7f0e02008-09-07 16:42:53 +0000848int main(void)
849{
850 struct vde_open_args a = {0, 0, 0};
851 vde_open("", "", &a);
852 return 0;
853}
ths8a16d272008-07-19 09:56:24 +0000854EOF
pbrook4a7f0e02008-09-07 16:42:53 +0000855 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
ths8a16d272008-07-19 09:56:24 +0000856 :
857 else
aliguorie0e6c8c02008-07-23 18:14:33 +0000858 vde="no"
ths8a16d272008-07-19 09:56:24 +0000859 fi
860fi
861
862##########################################
malcc2de5c92008-06-28 19:13:06 +0000863# Sound support libraries probe
ths8f28f3f2007-01-05 21:25:54 +0000864
malcc2de5c92008-06-28 19:13:06 +0000865audio_drv_probe()
866{
867 drv=$1
868 hdr=$2
869 lib=$3
870 exp=$4
871 cfl=$5
872 cat > $TMPC << EOF
873#include <$hdr>
874int main(void) { $exp }
ths8f28f3f2007-01-05 21:25:54 +0000875EOF
malcc2de5c92008-06-28 19:13:06 +0000876 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
877 :
878 else
879 echo
880 echo "Error: $drv check failed"
881 echo "Make sure to have the $drv libs and headers installed."
882 echo
883 exit 1
884 fi
885}
886
malc2fa7d3b2008-07-29 12:58:44 +0000887audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
malcc2de5c92008-06-28 19:13:06 +0000888for drv in $audio_drv_list; do
889 case $drv in
890 alsa)
891 audio_drv_probe $drv alsa/asoundlib.h -lasound \
892 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
893 ;;
894
895 fmod)
896 if test -z $fmod_lib || test -z $fmod_inc; then
897 echo
898 echo "Error: You must specify path to FMOD library and headers"
899 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
900 echo
901 exit 1
902 fi
903 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
904 ;;
905
906 esd)
907 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
908 ;;
malcb8e59f12008-07-02 21:03:08 +0000909
910 pa)
911 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
912 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
913 ;;
914
blueswir12f6a1ab2008-08-21 18:00:53 +0000915 oss|sdl|core|wav|dsound)
916 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
917 ;;
918
malce4c63a62008-07-19 16:15:16 +0000919 *)
malc1c9b2a52008-07-19 16:57:30 +0000920 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
malce4c63a62008-07-19 16:15:16 +0000921 echo
922 echo "Error: Unknown driver '$drv' selected"
923 echo "Possible drivers are: $audio_possible_drivers"
924 echo
925 exit 1
926 }
927 ;;
malcc2de5c92008-06-28 19:13:06 +0000928 esac
929done
ths8f28f3f2007-01-05 21:25:54 +0000930
balrog4d3b6f62008-02-10 16:33:14 +0000931##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000932# BrlAPI probe
933
934if test -z "$brlapi" ; then
935 brlapi=no
936cat > $TMPC << EOF
937#include <brlapi.h>
938int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
939EOF
aurel32a40e56d2008-05-04 00:50:25 +0000940 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000941 brlapi=yes
942 fi # brlapi compile test
943fi # -z $brlapi
944
945##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000946# curses probe
947
948if test "$curses" = "yes" ; then
949 curses=no
950 cat > $TMPC << EOF
951#include <curses.h>
952int main(void) { return curses_version(); }
953EOF
pbrookaf896aa2008-03-23 00:47:42 +0000954 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000955 curses=yes
956 fi
957fi # test "$curses"
958
blueswir1414f0da2008-08-15 18:20:52 +0000959##########################################
balrogfb599c92008-09-28 23:49:55 +0000960# bluez support probe
961if test "$bluez" = "yes" ; then
962 `pkg-config bluez` || bluez="no"
963fi
964if test "$bluez" = "yes" ; then
balroge820e3f2008-09-30 02:27:44 +0000965 cat > $TMPC << EOF
966#include <bluetooth/bluetooth.h>
967int main(void) { return bt_error(0); }
968EOF
balrogfb599c92008-09-28 23:49:55 +0000969 bluez_cflags=`pkg-config --cflags bluez`
970 bluez_libs=`pkg-config --libs bluez`
balrog17e15922008-10-11 12:00:42 +0000971 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
balroge820e3f2008-09-30 02:27:44 +0000972 $bluez_libs 2> /dev/null ; then
973 :
974 else
975 bluez="no"
976 fi
balrogfb599c92008-09-28 23:49:55 +0000977fi
978
979##########################################
aliguori7ba1e612008-11-05 16:04:33 +0000980# kvm probe
981if test "$kvm" = "yes" ; then
982 cat > $TMPC <<EOF
983#include <linux/kvm.h>
984#if !defined(KVM_API_VERSION) || \
985 KVM_API_VERSION < 12 || \
986 KVM_API_VERSION > 12 || \
987 !defined(KVM_CAP_USER_MEMORY) || \
988 !defined(KVM_CAP_SET_TSS_ADDR)
989#error Invalid KVM version
990#endif
991int main(void) { return 0; }
992EOF
aliguorieac30262008-11-05 16:28:56 +0000993 if test "$kerneldir" != "" ; then
994 kvm_cflags=-I"$kerneldir"/include
995 else
996 kvm_cflags=""
997 fi
aliguori7ba1e612008-11-05 16:04:33 +0000998 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
999 2>/dev/null ; then
1000 :
1001 else
1002 kvm="no"
1003 fi
1004fi
1005
1006##########################################
blueswir1414f0da2008-08-15 18:20:52 +00001007# AIO probe
1008if test "$aio" = "yes" ; then
1009 aio=no
1010 cat > $TMPC << EOF
1011#include <aio.h>
1012int main(void) { return aio_write(NULL); }
1013EOF
1014 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
1015 aio=yes
1016 fi
1017fi
1018
pbrookcc8ae6d2006-04-23 17:57:59 +00001019# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +00001020if [ -x "`which texi2html 2>/dev/null`" ] && \
1021 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +00001022 build_docs="yes"
1023fi
1024
bellard11d9f692004-04-02 20:55:59 +00001025if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +00001026 if test -z "$prefix" ; then
aliguori17e90972008-10-24 14:11:41 +00001027 prefix="c:\\\\Program Files\\\\Qemu"
pbrook308c3592007-02-27 00:52:01 +00001028 fi
1029 mansuffix=""
1030 datasuffix=""
1031 docsuffix=""
1032 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +00001033else
pbrook308c3592007-02-27 00:52:01 +00001034 if test -z "$prefix" ; then
1035 prefix="/usr/local"
1036 fi
1037 mansuffix="/share/man"
1038 datasuffix="/share/qemu"
1039 docsuffix="/share/doc/qemu"
1040 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +00001041fi
bellard5a671352003-10-01 00:13:48 +00001042
bellard43ce4df2003-06-09 19:53:12 +00001043echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +00001044echo "BIOS directory $prefix$datasuffix"
1045echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +00001046if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +00001047echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +00001048echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +00001049fi
bellard5a671352003-10-01 00:13:48 +00001050echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +00001051echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +00001052echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +00001053echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +00001054echo "make $make"
pbrook6a882642006-04-17 13:57:12 +00001055echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +00001056echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +00001057echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +00001058echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +00001059echo "gprof enabled $gprof"
aliguori03b4fe72008-10-07 19:16:17 +00001060echo "sparse enabled $sparse"
bellard05c2a3e2006-02-08 22:39:17 +00001061echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +00001062echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +00001063echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +00001064if test "$darwin" = "yes" ; then
1065 echo "Cocoa support $cocoa"
1066fi
bellard97a847b2003-08-10 21:36:04 +00001067echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +00001068if test "$sdl" != "no" ; then
1069 echo "SDL static link $sdl_static"
1070fi
balrog4d3b6f62008-02-10 16:33:14 +00001071echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +00001072echo "mingw32 support $mingw32"
malc0c58ac12008-06-25 21:04:05 +00001073echo "Audio drivers $audio_drv_list"
1074echo "Extra audio cards $audio_card_list"
malc8ff9cbf2008-06-23 18:33:30 +00001075echo "Mixer emulation $mixemu"
ths8d5d2d42007-08-25 01:37:51 +00001076echo "VNC TLS support $vnc_tls"
1077if test "$vnc_tls" = "yes" ; then
1078 echo " TLS CFLAGS $vnc_tls_cflags"
1079 echo " TLS LIBS $vnc_tls_libs"
1080fi
blueswir131422552007-04-16 18:27:06 +00001081if test -n "$sparc_cpu"; then
1082 echo "Target Sparc Arch $sparc_cpu"
1083fi
bellard07f4ddb2005-04-23 17:44:28 +00001084echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +00001085echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +00001086echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +00001087[ ! -z "$uname_release" ] && \
1088echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +00001089echo "NPTL support $nptl"
ths8a16d272008-07-19 09:56:24 +00001090echo "vde support $vde"
blueswir1414f0da2008-08-15 18:20:52 +00001091echo "AIO support $aio"
ths77755342008-11-27 15:45:16 +00001092echo "Install blobs $blobs"
aliguori7ba1e612008-11-05 16:04:33 +00001093echo "KVM support $kvm"
bellard67b915a2004-03-31 23:37:16 +00001094
bellard97a847b2003-08-10 21:36:04 +00001095if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +00001096echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +00001097fi
ths20b40c62007-07-11 23:39:45 +00001098if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1099 echo "The error log from compiling the libSDL test is: "
1100 cat /tmp/qemu-$$-sdl-config.log
1101fi
1102rm -f /tmp/qemu-$$-sdl-config.log
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
bellard67b915a2004-03-31 23:37:16 +00001232fi
blueswir1128ab2f2008-08-15 18:33:42 +00001233
1234if [ "$openbsd" = "yes" ] ; then
1235 echo "#define ENOTSUP 4096" >> $config_h
1236fi
1237
bellard83fb7ad2004-07-05 21:25:26 +00001238if test "$darwin" = "yes" ; then
1239 echo "CONFIG_DARWIN=yes" >> $config_mak
1240 echo "#define CONFIG_DARWIN 1" >> $config_h
1241fi
malcb29fe3e2008-11-18 01:42:22 +00001242
1243if test "$aix" = "yes" ; then
1244 echo "CONFIG_AIX=yes" >> $config_mak
1245 echo "#define CONFIG_AIX 1" >> $config_h
1246fi
1247
bellardec530c82006-04-25 22:36:06 +00001248if test "$solaris" = "yes" ; then
1249 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001250 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001251 if test "$needs_libsunmath" = "yes" ; then
1252 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1253 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1254 fi
bellardec530c82006-04-25 22:36:06 +00001255fi
blueswir131422552007-04-16 18:27:06 +00001256if test -n "$sparc_cpu"; then
1257 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1258 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1259fi
bellard67b915a2004-03-31 23:37:16 +00001260if test "$gdbstub" = "yes" ; then
1261 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1262 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1263fi
bellard97a847b2003-08-10 21:36:04 +00001264if test "$gprof" = "yes" ; then
1265 echo "TARGET_GPROF=yes" >> $config_mak
1266 echo "#define HAVE_GPROF 1" >> $config_h
1267fi
1268if test "$static" = "yes" ; then
1269 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001270 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001271fi
bellard05c2a3e2006-02-08 22:39:17 +00001272if test $profiler = "yes" ; then
1273 echo "#define CONFIG_PROFILER 1" >> $config_h
1274fi
bellardc20709a2004-04-21 23:27:19 +00001275if test "$slirp" = "yes" ; then
1276 echo "CONFIG_SLIRP=yes" >> $config_mak
1277 echo "#define CONFIG_SLIRP 1" >> $config_h
1278fi
ths8a16d272008-07-19 09:56:24 +00001279if test "$vde" = "yes" ; then
1280 echo "CONFIG_VDE=yes" >> $config_mak
1281 echo "#define CONFIG_VDE 1" >> $config_h
1282 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1283fi
malc0c58ac12008-06-25 21:04:05 +00001284for card in $audio_card_list; do
pbrookf6e58892008-06-29 01:00:34 +00001285 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001286 echo "$def=yes" >> $config_mak
1287 echo "#define $def 1" >> $config_h
1288done
1289echo "#define AUDIO_DRIVERS \\" >> $config_h
1290for drv in $audio_drv_list; do
1291 echo " &${drv}_audio_driver, \\" >>$config_h
pbrookf6e58892008-06-29 01:00:34 +00001292 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001293 echo "$def=yes" >> $config_mak
malc923e4522008-07-02 18:13:46 +00001294 if test "$drv" = "fmod"; then
malc0c58ac12008-06-25 21:04:05 +00001295 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1296 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
blueswir12f6a1ab2008-08-21 18:00:53 +00001297 elif test "$drv" = "oss"; then
1298 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
malc0c58ac12008-06-25 21:04:05 +00001299 fi
1300done
1301echo "" >>$config_h
malc8ff9cbf2008-06-23 18:33:30 +00001302if test "$mixemu" = "yes" ; then
1303 echo "CONFIG_MIXEMU=yes" >> $config_mak
1304 echo "#define CONFIG_MIXEMU 1" >> $config_h
1305fi
ths8d5d2d42007-08-25 01:37:51 +00001306if test "$vnc_tls" = "yes" ; then
1307 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1308 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1309 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1310 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1311fi
pbrookb1a550a2006-04-16 13:28:56 +00001312qemu_version=`head $source_path/VERSION`
1313echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001314echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001315
1316echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001317if [ "$source_path_used" = "yes" ]; then
1318 echo "VPATH=$source_path" >> $config_mak
1319fi
bellard97a847b2003-08-10 21:36:04 +00001320echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001321if [ "$build_docs" = "yes" ] ; then
1322 echo "BUILD_DOCS=yes" >> $config_mak
1323fi
bellard49ecc3f2007-11-07 19:25:15 +00001324if test "$static" = "yes"; then
1325 sdl1=$sdl_static
1326else
1327 sdl1=$sdl
1328fi
1329if test "$sdl1" = "yes" ; then
1330 echo "#define CONFIG_SDL 1" >> $config_h
1331 echo "CONFIG_SDL=yes" >> $config_mak
1332 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1333 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1334 else
1335 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1336 fi
1337 if [ "${aa}" = "yes" ] ; then
1338 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1339 else
1340 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1341 fi
1342fi
1343if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001344 echo "#define CONFIG_COCOA 1" >> $config_h
1345 echo "CONFIG_COCOA=yes" >> $config_mak
1346fi
1347if test "$curses" = "yes" ; then
1348 echo "#define CONFIG_CURSES 1" >> $config_h
1349 echo "CONFIG_CURSES=yes" >> $config_mak
1350 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001351fi
aurel322e4d9fb2008-04-08 06:01:02 +00001352if test "$brlapi" = "yes" ; then
1353 echo "CONFIG_BRLAPI=yes" >> $config_mak
1354 echo "#define CONFIG_BRLAPI 1" >> $config_h
1355 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1356fi
balrogfb599c92008-09-28 23:49:55 +00001357if test "$bluez" = "yes" ; then
1358 echo "CONFIG_BLUEZ=yes" >> $config_mak
1359 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1360 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1361 echo "#define CONFIG_BLUEZ 1" >> $config_h
1362fi
blueswir1414f0da2008-08-15 18:20:52 +00001363if test "$aio" = "yes" ; then
1364 echo "#define CONFIG_AIO 1" >> $config_h
aliguoria3392f92008-09-11 18:00:19 +00001365 echo "CONFIG_AIO=yes" >> $config_mak
blueswir1414f0da2008-08-15 18:20:52 +00001366fi
ths77755342008-11-27 15:45:16 +00001367if test "$blobs" = "yes" ; then
1368 echo "INSTALL_BLOBS=yes" >> $config_mak
1369fi
bellard97a847b2003-08-10 21:36:04 +00001370
bellard83fb7ad2004-07-05 21:25:26 +00001371# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001372if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001373 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001374 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001375 echo "#define _BSD 1" >> $config_h
1376fi
1377
pbrookc5937222006-05-14 11:30:38 +00001378echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1379
blueswir168063642008-11-22 21:03:55 +00001380# USB host support
1381case "$usb" in
1382linux)
1383 echo "HOST_USB=linux" >> $config_mak
1384;;
1385bsd)
1386 echo "HOST_USB=bsd" >> $config_mak
1387;;
1388*)
1389 echo "HOST_USB=stub" >> $config_mak
1390;;
1391esac
1392
pbrookc39e3332007-09-22 16:49:14 +00001393tools=
1394if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1395 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001396 if [ "$linux" = "yes" ] ; then
1397 tools="qemu-nbd\$(EXESUF) $tools"
1398 fi
pbrookc39e3332007-09-22 16:49:14 +00001399fi
1400echo "TOOLS=$tools" >> $config_mak
1401
ths15d9ca02007-07-31 23:07:32 +00001402test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1403
bellard1d14ffa2005-10-30 18:58:22 +00001404for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001405target_dir="$target"
1406config_mak=$target_dir/config.mak
1407config_h=$target_dir/config.h
1408target_cpu=`echo $target | cut -d '-' -f 1`
1409target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001410[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001411[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1412[ "$target_cpu" = "mips" ] && target_bigendian=yes
1413[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1414[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001415[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001416[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001417[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001418[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001419[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001420[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1421[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1422[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001423target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001424target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001425target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001426target_darwin_user="no"
blueswir184778502008-10-26 20:33:16 +00001427target_bsd_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001428case "$target" in
1429 ${target_cpu}-softmmu)
1430 target_softmmu="yes"
1431 ;;
1432 ${target_cpu}-linux-user)
1433 target_user_only="yes"
1434 target_linux_user="yes"
1435 ;;
1436 ${target_cpu}-darwin-user)
1437 target_user_only="yes"
1438 target_darwin_user="yes"
1439 ;;
blueswir184778502008-10-26 20:33:16 +00001440 ${target_cpu}-bsd-user)
1441 target_user_only="yes"
1442 target_bsd_user="yes"
1443 ;;
pbrook9e407a82007-05-26 16:38:53 +00001444 *)
1445 echo "ERROR: Target '$target' not recognised"
1446 exit 1
1447 ;;
1448esac
ths831b7822007-01-18 20:06:33 +00001449
bellard97ccc682005-07-02 13:32:17 +00001450if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001451 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001452 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001453 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001454 echo "Note that this will disable all output from the virtual graphics card"
1455 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001456 exit 1;
1457fi
1458
bellard7c1f25b2004-04-22 00:02:08 +00001459#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001460
ths15d9ca02007-07-31 23:07:32 +00001461test -f $config_h && mv $config_h ${config_h}~
1462
bellard97a847b2003-08-10 21:36:04 +00001463mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001464mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001465mkdir -p $target_dir/tcg
blueswir184778502008-10-26 20:33:16 +00001466if 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 +00001467 mkdir -p $target_dir/nwfpe
1468fi
1469
bellardec530c82006-04-25 22:36:06 +00001470#
1471# don't use ln -sf as not all "ln -sf" over write the file/link
1472#
1473rm -f $target_dir/Makefile
1474ln -s $source_path/Makefile.target $target_dir/Makefile
1475
bellard97a847b2003-08-10 21:36:04 +00001476
1477echo "# Automatically generated by configure - do not modify" > $config_mak
1478echo "/* Automatically generated by configure - do not modify */" > $config_h
1479
1480
1481echo "include ../config-host.mak" >> $config_mak
1482echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001483
pbrooke5fe0c52006-06-11 13:32:59 +00001484bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001485elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001486target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001487interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1488echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
pbrook56aebc82008-10-11 17:55:29 +00001489gdb_xml_files=""
bellard97a847b2003-08-10 21:36:04 +00001490
aliguori5985ece2008-11-05 19:59:25 +00001491# Make sure the target and host cpus are compatible
1492if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
1493 \( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
1494 \( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
aliguori7ba1e612008-11-05 16:04:33 +00001495 kvm="no"
1496fi
1497# Disable KVM for linux-user
1498if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
1499 kvm="no"
1500fi
1501
aurel322408a522008-04-20 20:19:44 +00001502case "$target_cpu" in
1503 i386)
1504 echo "TARGET_ARCH=i386" >> $config_mak
1505 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1506 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001507 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001508 then
1509 echo "#define USE_KQEMU 1" >> $config_h
1510 fi
aliguori7ba1e612008-11-05 16:04:33 +00001511 if test "$kvm" = "yes" ; then
1512 echo "CONFIG_KVM=yes" >> $config_mak
1513 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
aliguori5985ece2008-11-05 19:59:25 +00001514 echo "#define CONFIG_KVM 1" >> $config_h
aliguori7ba1e612008-11-05 16:04:33 +00001515 fi
aurel32f2bf0942008-05-05 06:00:27 +00001516 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001517 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001518 then
1519 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1520 else
1521 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1522 fi
aurel322408a522008-04-20 20:19:44 +00001523 ;;
1524 x86_64)
1525 echo "TARGET_ARCH=x86_64" >> $config_mak
1526 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1527 echo "#define TARGET_I386 1" >> $config_h
1528 echo "#define TARGET_X86_64 1" >> $config_h
1529 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1530 then
1531 echo "#define USE_KQEMU 1" >> $config_h
1532 fi
aliguori7ba1e612008-11-05 16:04:33 +00001533 if test "$kvm" = "yes" ; then
1534 echo "CONFIG_KVM=yes" >> $config_mak
1535 echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1536 echo "#define CONFIG_KVM 1" >> $config_h
1537 fi
aurel322408a522008-04-20 20:19:44 +00001538 ;;
1539 alpha)
1540 echo "TARGET_ARCH=alpha" >> $config_mak
1541 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1542 echo "#define TARGET_ALPHA 1" >> $config_h
1543 ;;
1544 arm|armeb)
1545 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001546 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1547 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001548 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001549 target_nptl="yes"
pbrook56aebc82008-10-11 17:55:29 +00001550 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
aurel322408a522008-04-20 20:19:44 +00001551 ;;
1552 cris)
1553 echo "TARGET_ARCH=cris" >> $config_mak
1554 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1555 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001556 ;;
1557 m68k)
1558 echo "TARGET_ARCH=m68k" >> $config_mak
1559 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1560 echo "#define TARGET_M68K 1" >> $config_h
1561 bflt="yes"
pbrook56aebc82008-10-11 17:55:29 +00001562 gdb_xml_files="cf-core.xml cf-fp.xml"
aurel322408a522008-04-20 20:19:44 +00001563 ;;
1564 mips|mipsel)
1565 echo "TARGET_ARCH=mips" >> $config_mak
1566 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1567 echo "#define TARGET_MIPS 1" >> $config_h
1568 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1569 ;;
1570 mipsn32|mipsn32el)
1571 echo "TARGET_ARCH=mipsn32" >> $config_mak
1572 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1573 echo "#define TARGET_MIPS 1" >> $config_h
1574 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1575 ;;
1576 mips64|mips64el)
1577 echo "TARGET_ARCH=mips64" >> $config_mak
1578 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1579 echo "#define TARGET_MIPS 1" >> $config_h
1580 echo "#define TARGET_MIPS64 1" >> $config_h
1581 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1582 ;;
1583 ppc)
1584 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001585 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001586 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1587 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001588 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001589 ;;
1590 ppcemb)
1591 echo "TARGET_ARCH=ppcemb" >> $config_mak
1592 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001593 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001594 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1595 echo "#define TARGET_PPC 1" >> $config_h
1596 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001597 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001598 ;;
1599 ppc64)
1600 echo "TARGET_ARCH=ppc64" >> $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 \"ppc64\"" >> $config_h
1604 echo "#define TARGET_PPC 1" >> $config_h
1605 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001606 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001607 ;;
1608 ppc64abi32)
1609 echo "TARGET_ARCH=ppc64" >> $config_mak
1610 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1611 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001612 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001613 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1614 echo "#define TARGET_PPC 1" >> $config_h
1615 echo "#define TARGET_PPC64 1" >> $config_h
1616 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001617 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001618 ;;
1619 sh4|sh4eb)
1620 echo "TARGET_ARCH=sh4" >> $config_mak
1621 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1622 echo "#define TARGET_SH4 1" >> $config_h
1623 bflt="yes"
aurel320b6d3ae2008-09-15 07:43:43 +00001624 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001625 ;;
1626 sparc)
1627 echo "TARGET_ARCH=sparc" >> $config_mak
1628 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1629 echo "#define TARGET_SPARC 1" >> $config_h
1630 ;;
1631 sparc64)
1632 echo "TARGET_ARCH=sparc64" >> $config_mak
1633 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1634 echo "#define TARGET_SPARC 1" >> $config_h
1635 echo "#define TARGET_SPARC64 1" >> $config_h
1636 elfload32="yes"
1637 ;;
1638 sparc32plus)
1639 echo "TARGET_ARCH=sparc64" >> $config_mak
1640 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1641 echo "TARGET_ARCH2=sparc32plus" >> $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 echo "#define TARGET_ABI32 1" >> $config_h
1646 ;;
1647 *)
1648 echo "Unsupported target CPU"
1649 exit 1
1650 ;;
1651esac
bellardde83cd02003-06-15 20:25:43 +00001652if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001653 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1654 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1655fi
1656if test "$target_softmmu" = "yes" ; then
1657 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1658 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001659fi
bellard997344f2003-10-27 21:10:39 +00001660if test "$target_user_only" = "yes" ; then
1661 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1662 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1663fi
ths831b7822007-01-18 20:06:33 +00001664if test "$target_linux_user" = "yes" ; then
1665 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1666 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1667fi
1668if test "$target_darwin_user" = "yes" ; then
1669 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1670 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1671fi
pbrook56aebc82008-10-11 17:55:29 +00001672list=""
1673if test ! -z "$gdb_xml_files" ; then
1674 for x in $gdb_xml_files; do
1675 list="$list $source_path/gdb-xml/$x"
1676 done
1677fi
1678echo "TARGET_XML_FILES=$list" >> $config_mak
bellardde83cd02003-06-15 20:25:43 +00001679
aurel320938cda2008-04-11 21:36:06 +00001680if test "$target_cpu" = "arm" \
1681 -o "$target_cpu" = "armeb" \
1682 -o "$target_cpu" = "m68k" \
1683 -o "$target_cpu" = "mips" \
1684 -o "$target_cpu" = "mipsel" \
1685 -o "$target_cpu" = "mipsn32" \
1686 -o "$target_cpu" = "mipsn32el" \
1687 -o "$target_cpu" = "mips64" \
1688 -o "$target_cpu" = "mips64el" \
1689 -o "$target_cpu" = "sparc" \
1690 -o "$target_cpu" = "sparc64" \
1691 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001692 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1693 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1694fi
pbrooke5fe0c52006-06-11 13:32:59 +00001695if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1696 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1697 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1698fi
pbrookbd0c5662008-05-29 14:34:11 +00001699if test "$target_user_only" = "yes" \
1700 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1701 echo "#define USE_NPTL 1" >> $config_h
1702fi
blueswir1cb33da52007-10-09 16:34:29 +00001703# 32 bit ELF loader in addition to native 64 bit loader?
1704if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1705 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1706 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1707fi
blueswir184778502008-10-26 20:33:16 +00001708if test "$target_bsd_user" = "yes" ; then
1709 echo "CONFIG_BSD_USER=yes" >> $config_mak
1710 echo "#define CONFIG_BSD_USER 1" >> $config_h
1711fi
bellard5b0753e2005-03-01 21:37:28 +00001712
ths15d9ca02007-07-31 23:07:32 +00001713test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1714
bellard97a847b2003-08-10 21:36:04 +00001715done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001716
1717# build tree in object directory if source path is different from current one
1718if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001719 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001720 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001721 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001722 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001723 for dir in $DIRS ; do
1724 mkdir -p $dir
1725 done
bellardec530c82006-04-25 22:36:06 +00001726 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001727 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001728 rm -f $f
1729 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001730 done
1731fi