blob: ccc4ae0c4f6c68b95dfee4534d14cd43e94bea4a [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
20# default parameters
bellard11d9f692004-04-02 20:55:59 +000021prefix=""
bellard1e43adf2003-09-30 20:54:24 +000022interp_prefix="/usr/gnemul/qemu-%M"
bellard43ce4df2003-06-09 19:53:12 +000023static="no"
bellard7d132992003-03-06 23:23:54 +000024cross_prefix=""
25cc="gcc"
pbrook328a4242006-12-19 03:31:34 +000026gcc3_search="yes"
balrogfe8f78e2007-10-31 01:03:28 +000027gcc3_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 +000028audio_drv_list=""
29audio_card_list=""
bellard7d132992003-03-06 23:23:54 +000030host_cc="gcc"
31ar="ar"
32make="make"
pbrook6a882642006-04-17 13:57:12 +000033install="install"
bellard7d132992003-03-06 23:23:54 +000034strip="strip"
35cpu=`uname -m`
bellard5327cf42005-01-10 23:18:50 +000036target_list=""
bellard7d132992003-03-06 23:23:54 +000037case "$cpu" in
38 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000039 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000040 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000041 x86_64|amd64)
42 cpu="x86_64"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
bellardba680552005-03-13 09:49:52 +000047 armv*b)
bellard808c4952004-12-19 23:33:47 +000048 cpu="armv4b"
49 ;;
bellardba680552005-03-13 09:49:52 +000050 armv*l)
bellard7d132992003-03-06 23:23:54 +000051 cpu="armv4l"
52 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000053 cris)
54 cpu="cris"
bellard7d132992003-03-06 23:23:54 +000055 ;;
aurel32f54b3f92008-04-12 20:14:54 +000056 parisc|parisc64)
57 cpu="hppa"
58 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000059 ia64)
60 cpu="ia64"
61 ;;
62 m68k)
63 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000064 ;;
65 mips)
66 cpu="mips"
67 ;;
thsfbe4f652007-04-01 11:16:48 +000068 mips64)
69 cpu="mips64"
70 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000071 "Power Macintosh"|ppc|ppc64)
72 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000073 ;;
ths0e7b8a92007-08-01 00:09:31 +000074 s390*)
bellardfb3e5842003-03-29 17:32:36 +000075 cpu="s390"
76 ;;
blueswir131422552007-04-16 18:27:06 +000077 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000078 cpu="sparc"
79 ;;
80 sparc64)
81 cpu="sparc64"
82 ;;
bellard7d132992003-03-06 23:23:54 +000083 *)
84 cpu="unknown"
85 ;;
86esac
87gprof="no"
aliguori03b4fe72008-10-07 19:16:17 +000088sparse="no"
bellard7d132992003-03-06 23:23:54 +000089bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000090mingw32="no"
91EXESUF=""
92gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000093slirp="yes"
aliguorie0e6c8c02008-07-23 18:14:33 +000094vde="yes"
bellard102a52e2004-11-14 19:57:29 +000095fmod_lib=""
96fmod_inc=""
blueswir12f6a1ab2008-08-21 18:00:53 +000097oss_lib=""
ths8d5d2d42007-08-25 01:37:51 +000098vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +000099bsd="no"
bellard5327cf42005-01-10 23:18:50 +0000100linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +0000101kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +0000102profiler="no"
bellard5b0753e2005-03-01 21:37:28 +0000103cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000104check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000105check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000106softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000107linux_user="no"
108darwin_user="no"
blueswir184778502008-10-26 20:33:16 +0000109bsd_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000110build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000111uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000112curses="yes"
blueswir1414f0da2008-08-15 18:20:52 +0000113aio="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000114nptl="yes"
malc8ff9cbf2008-06-23 18:33:30 +0000115mixemu="no"
balrogfb599c92008-09-28 23:49:55 +0000116bluez="yes"
bellard7d132992003-03-06 23:23:54 +0000117
118# OS specific
119targetos=`uname -s`
120case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000121CYGWIN*)
122mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000123OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000124if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
126fi
malcc2de5c92008-06-28 19:13:06 +0000127audio_possible_drivers="sdl"
bellardc326e0a2005-04-23 18:30:28 +0000128;;
bellard67b915a2004-03-31 23:37:16 +0000129MINGW32*)
130mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000131if [ "$cpu" = "i386" ] ; then
132 kqemu="yes"
133fi
malcc2de5c92008-06-28 19:13:06 +0000134audio_possible_drivers="dsound sdl fmod"
bellard67b915a2004-03-31 23:37:16 +0000135;;
ths5c40d2b2007-06-23 16:03:36 +0000136GNU/kFreeBSD)
malc0c58ac12008-06-25 21:04:05 +0000137audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000138audio_possible_drivers="oss sdl esd pa"
ths5c40d2b2007-06-23 16:03:36 +0000139if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
140 kqemu="yes"
141fi
142;;
bellard7d3505c2004-05-12 19:32:15 +0000143FreeBSD)
144bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000145audio_drv_list="oss"
aurel32f34af522008-08-21 23:03:15 +0000146audio_possible_drivers="oss sdl esd pa"
bellarde99f9062005-07-28 21:45:38 +0000147if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000148 kqemu="yes"
149fi
bellard7d3505c2004-05-12 19:32:15 +0000150;;
151NetBSD)
152bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000153audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000154audio_possible_drivers="oss sdl esd"
bellard7d3505c2004-05-12 19:32:15 +0000155;;
156OpenBSD)
157bsd="yes"
blueswir1128ab2f2008-08-15 18:33:42 +0000158openbsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000159audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000160audio_possible_drivers="oss sdl esd"
blueswir12f6a1ab2008-08-21 18:00:53 +0000161oss_lib="-lossaudio"
bellard7d3505c2004-05-12 19:32:15 +0000162;;
bellard83fb7ad2004-07-05 21:25:26 +0000163Darwin)
164bsd="yes"
165darwin="yes"
ths831b7822007-01-18 20:06:33 +0000166darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000167cocoa="yes"
malc0c58ac12008-06-25 21:04:05 +0000168audio_drv_list="coreaudio"
malcc2de5c92008-06-28 19:13:06 +0000169audio_possible_drivers="coreaudio sdl fmod"
ths6f30fa82007-01-05 01:00:47 +0000170OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000171OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
bellard83fb7ad2004-07-05 21:25:26 +0000172;;
bellardec530c82006-04-25 22:36:06 +0000173SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000174 solaris="yes"
175 make="gmake"
176 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000177 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000178 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000179 # have to select again, because `uname -m` returns i86pc
180 # even on an x86_64 box.
181 solariscpu=`isainfo -k`
182 if test "${solariscpu}" = "amd64" ; then
183 cpu="x86_64"
184 fi
thsc2b84fa2007-02-10 23:21:21 +0000185 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000186 if test "$solarisrev" -le 9 ; then
187 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
188 needs_libsunmath="yes"
189 else
190 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
191 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
192 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
193 echo "Studio 11 can be downloaded from www.sun.com."
194 exit 1
195 fi
196 fi
197 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000198 kqemu="yes"
199 fi
ths86b2bd92007-02-11 00:31:33 +0000200 fi
ths6b4d2ba2007-05-13 18:02:43 +0000201 if test -f /usr/include/sys/soundcard.h ; then
malc0c58ac12008-06-25 21:04:05 +0000202 audio_drv_list="oss"
ths6b4d2ba2007-05-13 18:02:43 +0000203 fi
malcc2de5c92008-06-28 19:13:06 +0000204 audio_possible_drivers="oss sdl"
ths86b2bd92007-02-11 00:31:33 +0000205;;
bellard1d14ffa2005-10-30 18:58:22 +0000206*)
malc0c58ac12008-06-25 21:04:05 +0000207audio_drv_list="oss"
malcb8e59f12008-07-02 21:03:08 +0000208audio_possible_drivers="oss alsa sdl esd pa"
bellard5327cf42005-01-10 23:18:50 +0000209linux="yes"
ths831b7822007-01-18 20:06:33 +0000210linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000211if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000212 kqemu="yes"
malcc2de5c92008-06-28 19:13:06 +0000213 audio_possible_drivers="$audio_possible_drivers fmod"
bellardc9ec1fe2005-02-10 21:55:30 +0000214fi
bellardfb065182004-11-09 23:09:44 +0000215;;
bellard7d132992003-03-06 23:23:54 +0000216esac
217
bellard7d3505c2004-05-12 19:32:15 +0000218if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000219 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000220 make="gmake"
221 fi
blueswir184778502008-10-26 20:33:16 +0000222 bsd_user="yes"
bellard7d3505c2004-05-12 19:32:15 +0000223fi
224
bellard7d132992003-03-06 23:23:54 +0000225# find source path
pbrookad064842006-04-16 12:41:07 +0000226source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000227source_path_used="no"
228workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000229if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000230 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000231else
232 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000233fi
pbrook724db112008-02-03 19:20:13 +0000234[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000235
bellard85aa5182007-11-11 20:17:03 +0000236werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000237# generate compile errors on warnings for development builds
238#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
239#werror="yes";
240#fi
bellard85aa5182007-11-11 20:17:03 +0000241
bellard7d132992003-03-06 23:23:54 +0000242for opt do
pbrooka46e4032006-04-29 23:05:22 +0000243 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000244 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000245 --help|-h) show_help=yes
246 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000247 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000248 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000249 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000250 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000251 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000252 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000253 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000254 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000255 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000256 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000257 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000258 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000259 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000260 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000261 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000262 ;;
pbrook6a882642006-04-17 13:57:12 +0000263 --install=*) install="$optarg"
264 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000265 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000266 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000267 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000268 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000269 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000270 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000271 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000272 ;;
bellard7d132992003-03-06 23:23:54 +0000273 --enable-gprof) gprof="yes"
274 ;;
bellard43ce4df2003-06-09 19:53:12 +0000275 --static) static="yes"
276 ;;
bellard97a847b2003-08-10 21:36:04 +0000277 --disable-sdl) sdl="no"
278 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000279 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000280 ;;
malcc2de5c92008-06-28 19:13:06 +0000281 --fmod-inc=*) fmod_inc="$optarg"
282 ;;
blueswir12f6a1ab2008-08-21 18:00:53 +0000283 --oss-lib=*) oss_lib="$optarg"
284 ;;
malc2fa7d3b2008-07-29 12:58:44 +0000285 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
malc0c58ac12008-06-25 21:04:05 +0000286 ;;
287 --audio-drv-list=*) audio_drv_list="$optarg"
288 ;;
aliguori03b4fe72008-10-07 19:16:17 +0000289 --enable-sparse) sparse="yes"
290 ;;
291 --disable-sparse) sparse="no"
292 ;;
ths8d5d2d42007-08-25 01:37:51 +0000293 --disable-vnc-tls) vnc_tls="no"
294 ;;
bellard443f1372004-06-04 11:13:20 +0000295 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000296 ;;
aliguorie0e6c8c02008-07-23 18:14:33 +0000297 --disable-vde) vde="no"
ths8a16d272008-07-19 09:56:24 +0000298 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000299 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000300 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000301 --disable-brlapi) brlapi="no"
302 ;;
balrogfb599c92008-09-28 23:49:55 +0000303 --disable-bluez) bluez="no"
304 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000305 --enable-profiler) profiler="yes"
306 ;;
malcc2de5c92008-06-28 19:13:06 +0000307 --enable-cocoa)
308 cocoa="yes" ;
309 sdl="no" ;
310 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
bellard1d14ffa2005-10-30 18:58:22 +0000311 ;;
bellard97ccc682005-07-02 13:32:17 +0000312 --disable-gfx-check) check_gfx="no"
313 ;;
bellard1aff3812005-11-02 22:30:45 +0000314 --disable-gcc-check) check_gcc="no"
315 ;;
pbrookcad25d62006-03-19 16:31:11 +0000316 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000317 ;;
pbrookcad25d62006-03-19 16:31:11 +0000318 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000319 ;;
ths831b7822007-01-18 20:06:33 +0000320 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000321 ;;
ths831b7822007-01-18 20:06:33 +0000322 --enable-linux-user) linux_user="yes"
323 ;;
324 --disable-darwin-user) darwin_user="no"
325 ;;
326 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000327 ;;
blueswir184778502008-10-26 20:33:16 +0000328 --disable-bsd-user) bsd_user="no"
329 ;;
330 --enable-bsd-user) bsd_user="yes"
331 ;;
pbrookc5937222006-05-14 11:30:38 +0000332 --enable-uname-release=*) uname_release="$optarg"
333 ;;
blueswir131422552007-04-16 18:27:06 +0000334 --sparc_cpu=*)
335 sparc_cpu="$optarg"
336 case $sparc_cpu in
337 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
338 target_cpu="sparc"; cpu="sparc" ;;
339 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
340 target_cpu="sparc"; cpu="sparc" ;;
341 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
342 target_cpu="sparc64"; cpu="sparc64" ;;
343 *) echo "undefined SPARC architecture. Exiting";exit 1;;
344 esac
345 ;;
bellard85aa5182007-11-11 20:17:03 +0000346 --enable-werror) werror="yes"
347 ;;
348 --disable-werror) werror="no"
349 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000350 --disable-curses) curses="no"
351 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000352 --disable-nptl) nptl="no"
353 ;;
malc8ff9cbf2008-06-23 18:33:30 +0000354 --enable-mixemu) mixemu="yes"
355 ;;
blueswir1414f0da2008-08-15 18:20:52 +0000356 --disable-aio) aio="no"
357 ;;
balrog7f1559c2007-11-17 10:24:32 +0000358 *) echo "ERROR: unknown option $opt"; show_help="yes"
359 ;;
bellard7d132992003-03-06 23:23:54 +0000360 esac
361done
362
ths6f30fa82007-01-05 01:00:47 +0000363# default flags for all hosts
blueswir1ac41a622008-09-14 06:46:31 +0000364CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
365CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
ths6f30fa82007-01-05 01:00:47 +0000366LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000367if test "$werror" = "yes" ; then
368CFLAGS="$CFLAGS -Werror"
369fi
ths6f30fa82007-01-05 01:00:47 +0000370
blueswir149237ac2008-09-17 19:05:19 +0000371if ld --version 2>/dev/null | grep -q "GNU ld" ; then
372 LDFLAGS="$LDFLAGS -Wl,--warn-common"
373fi
374
blueswir131422552007-04-16 18:27:06 +0000375#
376# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
377# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
378#
bellard40293e52008-01-31 11:32:10 +0000379case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000380 sparc) if test -z "$sparc_cpu" ; then
381 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
382 ARCH_LDFLAGS="-m32"
383 else
384 ARCH_CFLAGS="${SP_CFLAGS}"
385 ARCH_LDFLAGS="${SP_LDFLAGS}"
386 fi
387 ;;
388 sparc64) if test -z "$sparc_cpu" ; then
389 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
390 ARCH_LDFLAGS="-m64"
391 else
392 ARCH_CFLAGS="${SP_CFLAGS}"
393 ARCH_LDFLAGS="${SP_LDFLAGS}"
394 fi
395 ;;
ths76d83bd2007-11-18 21:22:10 +0000396 s390)
397 ARCH_CFLAGS="-march=z900"
398 ;;
bellard40293e52008-01-31 11:32:10 +0000399 i386)
400 ARCH_CFLAGS="-m32"
401 ARCH_LDFLAGS="-m32"
402 ;;
403 x86_64)
404 ARCH_CFLAGS="-m64"
405 ARCH_LDFLAGS="-m64"
406 ;;
blueswir131422552007-04-16 18:27:06 +0000407esac
408
pbrookaf5db582006-04-08 14:26:41 +0000409if test x"$show_help" = x"yes" ; then
410cat << EOF
411
412Usage: configure [options]
413Options: [defaults in brackets after descriptions]
414
415EOF
416echo "Standard options:"
417echo " --help print this message"
418echo " --prefix=PREFIX install in PREFIX [$prefix]"
419echo " --interp-prefix=PREFIX where to find shared libraries, etc."
420echo " use %M for cpu name [$interp_prefix]"
421echo " --target-list=LIST set target list [$target_list]"
422echo ""
423echo "kqemu kernel acceleration support:"
424echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000425echo ""
426echo "Advanced options (experts only):"
427echo " --source-path=PATH path of source code [$source_path]"
428echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
429echo " --cc=CC use C compiler CC [$cc]"
430echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
431echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000432echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000433echo " --static enable static build [$static]"
aliguori890b1652008-10-07 21:22:41 +0000434echo " --enable-sparse enable sparse checker"
435echo " --disable-sparse disable sparse checker (default)"
bellard85aa5182007-11-11 20:17:03 +0000436echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000437echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000438echo " --enable-cocoa enable COCOA (Mac OS X only)"
malcc2de5c92008-06-28 19:13:06 +0000439echo " --audio-drv-list=LIST set audio drivers list:"
440echo " Available drivers: $audio_possible_drivers"
441echo " --audio-card-list=LIST set list of additional emulated audio cards"
442echo " Available cards: ac97 adlib cs4231a gus"
malc8ff9cbf2008-06-23 18:33:30 +0000443echo " --enable-mixemu enable mixer emulation"
aurel322e4d9fb2008-04-08 06:01:02 +0000444echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000445echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000446echo " --disable-curses disable curses output"
balrogfb599c92008-09-28 23:49:55 +0000447echo " --disable-bluez disable bluez stack connectivity"
pbrookbd0c5662008-05-29 14:34:11 +0000448echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000449echo " --enable-system enable all system emulation targets"
450echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000451echo " --enable-linux-user enable all linux usermode emulation targets"
452echo " --disable-linux-user disable all linux usermode emulation targets"
453echo " --enable-darwin-user enable all darwin usermode emulation targets"
454echo " --disable-darwin-user disable all darwin usermode emulation targets"
blueswir184778502008-10-26 20:33:16 +0000455echo " --enable-bsd-user enable all BSD usermode emulation targets"
456echo " --disable-bsd-user disable all BSD usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000457echo " --fmod-lib path to FMOD library"
458echo " --fmod-inc path to FMOD includes"
blueswir12f6a1ab2008-08-21 18:00:53 +0000459echo " --oss-lib path to OSS library"
pbrookc5937222006-05-14 11:30:38 +0000460echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000461echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
aliguorie0e6c8c02008-07-23 18:14:33 +0000462echo " --disable-vde disable support for vde network"
blueswir1414f0da2008-08-15 18:20:52 +0000463echo " --disable-aio disable AIO support"
pbrookaf5db582006-04-08 14:26:41 +0000464echo ""
ths5bf08932006-12-23 00:33:26 +0000465echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000466exit 1
467fi
468
bellard7d132992003-03-06 23:23:54 +0000469cc="${cross_prefix}${cc}"
470ar="${cross_prefix}${ar}"
471strip="${cross_prefix}${strip}"
472
pbrook064aae12006-05-08 00:51:44 +0000473# check that the C compiler works.
474cat > $TMPC <<EOF
475int main(void) {}
476EOF
477
pbrookdb7287e2008-02-03 16:27:13 +0000478if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000479 : C compiler works ok
480else
481 echo "ERROR: \"$cc\" either does not exist or does not work"
482 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000483fi
484
aliguoricd01b4a2008-08-21 19:25:45 +0000485# check compiler to see if we're on mingw32
486cat > $TMPC <<EOF
487#include <windows.h>
488#ifndef _WIN32
489#error not windows
490#endif
491int main(void) {}
492EOF
493
494if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
495 mingw32="yes"
496fi
497
bellard67b915a2004-03-31 23:37:16 +0000498if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000499 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000500 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000501 oss="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000502 linux_user="no"
blueswir184778502008-10-26 20:33:16 +0000503 bsd_user="no"
aliguoricd01b4a2008-08-21 19:25:45 +0000504fi
505
aliguori997306f2008-09-26 15:52:17 +0000506if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
aliguoricd01b4a2008-08-21 19:25:45 +0000507 AIOLIBS=
aliguori997306f2008-09-26 15:52:17 +0000508elif [ "$bsd" = "yes" ]; then
509 AIOLIBS="-lpthread"
aliguoricd01b4a2008-08-21 19:25:45 +0000510else
511 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
512 AIOLIBS="-lrt -lpthread"
bellard67b915a2004-03-31 23:37:16 +0000513fi
514
ths5fafdf22007-09-16 21:08:06 +0000515# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000516if test "$check_gcc" = "yes" ; then
517 cat > $TMPC <<EOF
518#if __GNUC__ < 4
519#error gcc3
520#endif
521int main(){return 0;}
522EOF
pbrookdb7287e2008-02-03 16:27:13 +0000523 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000524 echo "WARNING: \"$cc\" looks like gcc 4.x"
525 found_compat_cc="no"
526 if test "$gcc3_search" = "yes" ; then
527 echo "Looking for gcc 3.x"
528 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000529 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000530 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000531 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000532 found_compat_cc="yes"
533 break
534 fi
535 done
536 if test "$found_compat_cc" = "no" ; then
537 echo "gcc 3.x not found!"
538 fi
539 fi
540 if test "$found_compat_cc" = "no" ; then
541 echo "QEMU is known to have problems when compiled with gcc 4.x"
542 echo "It is recommended that you use gcc 3.x to build QEMU"
543 echo "To use this compiler anyway, configure with --disable-gcc-check"
544 exit 1;
545 fi
546 fi
547fi
548
aliguori03b4fe72008-10-07 19:16:17 +0000549if test ! -x "$(which cgcc 2>/dev/null)"; then
550 sparse="no"
551fi
552
bellardec530c82006-04-25 22:36:06 +0000553#
554# Solaris specific configure tool chain decisions
555#
556if test "$solaris" = "yes" ; then
557 #
558 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
559 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000560 #
bellardec530c82006-04-25 22:36:06 +0000561 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
562 solgcc=`which $cc`
563 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
564 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
565 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
566 echo "or get the latest patch from SunSolve for gcc"
567 exit 1
568 fi
569 fi
570 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
571 if test -z "$solinst" ; then
572 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
573 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
574 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
575 exit 1
576 fi
577 if test "$solinst" = "/usr/sbin/install" ; then
578 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
579 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
580 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
581 exit 1
582 fi
bellardec530c82006-04-25 22:36:06 +0000583 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
584 if test -z "$sol_ar" ; then
585 echo "Error: No path includes ar"
586 if test -f /usr/ccs/bin/ar ; then
587 echo "Add /usr/ccs/bin to your path and rerun configure"
588 fi
589 exit 1
590 fi
ths5fafdf22007-09-16 21:08:06 +0000591fi
bellardec530c82006-04-25 22:36:06 +0000592
593
bellard5327cf42005-01-10 23:18:50 +0000594if test -z "$target_list" ; then
595# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000596 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000597 target_list="\
598i386-softmmu \
599x86_64-softmmu \
600arm-softmmu \
601cris-softmmu \
602m68k-softmmu \
603mips-softmmu \
604mipsel-softmmu \
605mips64-softmmu \
606mips64el-softmmu \
607ppc-softmmu \
608ppcemb-softmmu \
609ppc64-softmmu \
610sh4-softmmu \
611sh4eb-softmmu \
612sparc-softmmu \
613"
pbrook0a8e90f2006-03-19 14:54:16 +0000614 fi
bellard5327cf42005-01-10 23:18:50 +0000615# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000616 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000617 target_list="${target_list}\
618i386-linux-user \
619x86_64-linux-user \
620alpha-linux-user \
621arm-linux-user \
622armeb-linux-user \
623cris-linux-user \
624m68k-linux-user \
625mips-linux-user \
626mipsel-linux-user \
627ppc-linux-user \
628ppc64-linux-user \
629ppc64abi32-linux-user \
630sh4-linux-user \
631sh4eb-linux-user \
632sparc-linux-user \
633sparc64-linux-user \
634sparc32plus-linux-user \
635"
ths831b7822007-01-18 20:06:33 +0000636 fi
637# the following are Darwin specific
638 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000639 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000640 fi
blueswir184778502008-10-26 20:33:16 +0000641# the following are BSD specific
642 if [ "$bsd_user" = "yes" ] ; then
643 target_list="${target_list}\
644sparc64-bsd-user \
645"
646 fi
bellard6e20a452005-06-05 15:56:02 +0000647else
pbrookb1a550a2006-04-16 13:28:56 +0000648 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000649fi
pbrook0a8e90f2006-03-19 14:54:16 +0000650if test -z "$target_list" ; then
651 echo "No targets enabled"
652 exit 1
653fi
bellard5327cf42005-01-10 23:18:50 +0000654
bellard7d132992003-03-06 23:23:54 +0000655if test -z "$cross_prefix" ; then
656
657# ---
658# big/little endian test
659cat > $TMPC << EOF
660#include <inttypes.h>
661int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000662 volatile uint32_t i=0x01234567;
663 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000664}
665EOF
666
pbrookdb7287e2008-02-03 16:27:13 +0000667if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000668$TMPE && bigendian="yes"
669else
670echo big/little test failed
671fi
672
673else
674
675# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000676if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000677 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000678 -o "$cpu" = "m68k" \
679 -o "$cpu" = "mips" \
680 -o "$cpu" = "mips64" \
681 -o "$cpu" = "powerpc" \
682 -o "$cpu" = "s390" \
683 -o "$cpu" = "sparc" \
684 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000685 bigendian="yes"
686fi
687
688fi
689
bellardb6853692005-06-05 17:10:39 +0000690# host long bits test
691hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000692if test "$cpu" = "x86_64" \
693 -o "$cpu" = "alpha" \
694 -o "$cpu" = "ia64" \
695 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000696 hostlongbits="64"
697fi
698
malc810260a2008-07-23 19:17:46 +0000699# ppc specific hostlongbits selection
700if test "$cpu" = "powerpc" ; then
malc9d56d2d2008-09-30 19:44:32 +0000701 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
702 grep -q __powerpc64__ $TMPI && hostlongbits=64
malc810260a2008-07-23 19:17:46 +0000703 else
704 echo hostlongbits test failed
malcba69a082008-07-24 17:51:36 +0000705 exit 1
malc810260a2008-07-23 19:17:46 +0000706 fi
707fi
708
bellarde8cd23d2003-06-25 16:08:13 +0000709# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000710cat > $TMPC <<EOF
711int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000712}
713EOF
714
pbrookbd0c5662008-05-29 14:34:11 +0000715# Check host NPTL support
716cat > $TMPC <<EOF
717#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000718#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000719void foo()
720{
721#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
722#error bork
723#endif
724}
725EOF
726
727if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
728 :
729else
730 nptl="no"
731fi
732
bellard11d9f692004-04-02 20:55:59 +0000733##########################################
balrogac629222008-10-11 09:56:04 +0000734# zlib check
735
736cat > $TMPC << EOF
737#include <zlib.h>
738int main(void) { zlibVersion(); return 0; }
739EOF
balrog17e15922008-10-11 12:00:42 +0000740if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
balrogac629222008-10-11 09:56:04 +0000741 :
742else
743 echo
744 echo "Error: zlib check failed"
745 echo "Make sure to have the zlib libs and headers installed."
746 echo
747 exit 1
748fi
749
750##########################################
bellard11d9f692004-04-02 20:55:59 +0000751# SDL probe
752
753sdl_too_old=no
754
755if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000756 sdl_config="sdl-config"
757 sdl=no
758 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000759
760cat > $TMPC << EOF
761#include <SDL.h>
762#undef main /* We don't want SDL to override our main() */
763int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
764EOF
aliguoricd01b4a2008-08-21 19:25:45 +0000765 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
766 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
767 if test "$_sdlversion" -lt 121 ; then
768 sdl_too_old=yes
769 else
770 if test "$cocoa" = "no" ; then
771 sdl=yes
772 fi
773 fi
774
775 # static link with sdl ?
776 if test "$sdl" = "yes" ; then
777 aa="no"
778 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
779 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
780 if [ "$aa" = "yes" ] ; then
781 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
ths069b0bd2007-07-12 00:27:15 +0000782 fi
bellard11d9f692004-04-02 20:55:59 +0000783
aliguoricd01b4a2008-08-21 19:25:45 +0000784 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
785 sdl_static=yes
786 fi
787 fi # static link
788 fi # sdl compile test
bellard11d9f692004-04-02 20:55:59 +0000789else
ths069b0bd2007-07-12 00:27:15 +0000790 # Make sure to disable cocoa if sdl was set
791 if test "$sdl" = "yes" ; then
792 cocoa="no"
malcc2de5c92008-06-28 19:13:06 +0000793 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
ths069b0bd2007-07-12 00:27:15 +0000794 fi
bellarda6e022a2004-04-02 21:55:47 +0000795fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000796
ths8f28f3f2007-01-05 21:25:54 +0000797##########################################
ths8d5d2d42007-08-25 01:37:51 +0000798# VNC TLS detection
799if test "$vnc_tls" = "yes" ; then
aliguoriae6b5e52008-08-06 16:55:50 +0000800cat > $TMPC <<EOF
801#include <gnutls/gnutls.h>
802int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
803EOF
804 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
805 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
806 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
807 $vnc_tls_libs 2> /dev/null ; then
808 :
809 else
810 vnc_tls="no"
811 fi
ths8d5d2d42007-08-25 01:37:51 +0000812fi
813
814##########################################
ths8a16d272008-07-19 09:56:24 +0000815# vde libraries probe
816if test "$vde" = "yes" ; then
817 cat > $TMPC << EOF
818#include <libvdeplug.h>
pbrook4a7f0e02008-09-07 16:42:53 +0000819int main(void)
820{
821 struct vde_open_args a = {0, 0, 0};
822 vde_open("", "", &a);
823 return 0;
824}
ths8a16d272008-07-19 09:56:24 +0000825EOF
pbrook4a7f0e02008-09-07 16:42:53 +0000826 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
ths8a16d272008-07-19 09:56:24 +0000827 :
828 else
aliguorie0e6c8c02008-07-23 18:14:33 +0000829 vde="no"
ths8a16d272008-07-19 09:56:24 +0000830 fi
831fi
832
833##########################################
malcc2de5c92008-06-28 19:13:06 +0000834# Sound support libraries probe
ths8f28f3f2007-01-05 21:25:54 +0000835
malcc2de5c92008-06-28 19:13:06 +0000836audio_drv_probe()
837{
838 drv=$1
839 hdr=$2
840 lib=$3
841 exp=$4
842 cfl=$5
843 cat > $TMPC << EOF
844#include <$hdr>
845int main(void) { $exp }
ths8f28f3f2007-01-05 21:25:54 +0000846EOF
malcc2de5c92008-06-28 19:13:06 +0000847 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
848 :
849 else
850 echo
851 echo "Error: $drv check failed"
852 echo "Make sure to have the $drv libs and headers installed."
853 echo
854 exit 1
855 fi
856}
857
malc2fa7d3b2008-07-29 12:58:44 +0000858audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
malcc2de5c92008-06-28 19:13:06 +0000859for drv in $audio_drv_list; do
860 case $drv in
861 alsa)
862 audio_drv_probe $drv alsa/asoundlib.h -lasound \
863 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
864 ;;
865
866 fmod)
867 if test -z $fmod_lib || test -z $fmod_inc; then
868 echo
869 echo "Error: You must specify path to FMOD library and headers"
870 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
871 echo
872 exit 1
873 fi
874 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
875 ;;
876
877 esd)
878 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
879 ;;
malcb8e59f12008-07-02 21:03:08 +0000880
881 pa)
882 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
883 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
884 ;;
885
blueswir12f6a1ab2008-08-21 18:00:53 +0000886 oss|sdl|core|wav|dsound)
887 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
888 ;;
889
malce4c63a62008-07-19 16:15:16 +0000890 *)
malc1c9b2a52008-07-19 16:57:30 +0000891 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
malce4c63a62008-07-19 16:15:16 +0000892 echo
893 echo "Error: Unknown driver '$drv' selected"
894 echo "Possible drivers are: $audio_possible_drivers"
895 echo
896 exit 1
897 }
898 ;;
malcc2de5c92008-06-28 19:13:06 +0000899 esac
900done
ths8f28f3f2007-01-05 21:25:54 +0000901
balrog4d3b6f62008-02-10 16:33:14 +0000902##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000903# BrlAPI probe
904
905if test -z "$brlapi" ; then
906 brlapi=no
907cat > $TMPC << EOF
908#include <brlapi.h>
909int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
910EOF
aurel32a40e56d2008-05-04 00:50:25 +0000911 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000912 brlapi=yes
913 fi # brlapi compile test
914fi # -z $brlapi
915
916##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000917# curses probe
918
919if test "$curses" = "yes" ; then
920 curses=no
921 cat > $TMPC << EOF
922#include <curses.h>
923int main(void) { return curses_version(); }
924EOF
pbrookaf896aa2008-03-23 00:47:42 +0000925 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000926 curses=yes
927 fi
928fi # test "$curses"
929
blueswir1414f0da2008-08-15 18:20:52 +0000930##########################################
balrogfb599c92008-09-28 23:49:55 +0000931# bluez support probe
932if test "$bluez" = "yes" ; then
933 `pkg-config bluez` || bluez="no"
934fi
935if test "$bluez" = "yes" ; then
balroge820e3f2008-09-30 02:27:44 +0000936 cat > $TMPC << EOF
937#include <bluetooth/bluetooth.h>
938int main(void) { return bt_error(0); }
939EOF
balrogfb599c92008-09-28 23:49:55 +0000940 bluez_cflags=`pkg-config --cflags bluez`
941 bluez_libs=`pkg-config --libs bluez`
balrog17e15922008-10-11 12:00:42 +0000942 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
balroge820e3f2008-09-30 02:27:44 +0000943 $bluez_libs 2> /dev/null ; then
944 :
945 else
946 bluez="no"
947 fi
balrogfb599c92008-09-28 23:49:55 +0000948fi
949
950##########################################
blueswir1414f0da2008-08-15 18:20:52 +0000951# AIO probe
952if test "$aio" = "yes" ; then
953 aio=no
954 cat > $TMPC << EOF
955#include <aio.h>
956int main(void) { return aio_write(NULL); }
957EOF
958 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
959 aio=yes
960 fi
961fi
962
pbrookcc8ae6d2006-04-23 17:57:59 +0000963# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000964if [ -x "`which texi2html 2>/dev/null`" ] && \
965 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000966 build_docs="yes"
967fi
968
bellard11d9f692004-04-02 20:55:59 +0000969if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000970 if test -z "$prefix" ; then
aliguori17e90972008-10-24 14:11:41 +0000971 prefix="c:\\\\Program Files\\\\Qemu"
pbrook308c3592007-02-27 00:52:01 +0000972 fi
973 mansuffix=""
974 datasuffix=""
975 docsuffix=""
976 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000977else
pbrook308c3592007-02-27 00:52:01 +0000978 if test -z "$prefix" ; then
979 prefix="/usr/local"
980 fi
981 mansuffix="/share/man"
982 datasuffix="/share/qemu"
983 docsuffix="/share/doc/qemu"
984 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000985fi
bellard5a671352003-10-01 00:13:48 +0000986
bellard43ce4df2003-06-09 19:53:12 +0000987echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000988echo "BIOS directory $prefix$datasuffix"
989echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000990if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000991echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000992echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000993fi
bellard5a671352003-10-01 00:13:48 +0000994echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000995echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000996echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000997echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000998echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000999echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +00001000echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +00001001echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +00001002echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +00001003echo "gprof enabled $gprof"
aliguori03b4fe72008-10-07 19:16:17 +00001004echo "sparse enabled $sparse"
bellard05c2a3e2006-02-08 22:39:17 +00001005echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +00001006echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +00001007echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +00001008if test "$darwin" = "yes" ; then
1009 echo "Cocoa support $cocoa"
1010fi
bellard97a847b2003-08-10 21:36:04 +00001011echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +00001012if test "$sdl" != "no" ; then
1013 echo "SDL static link $sdl_static"
1014fi
balrog4d3b6f62008-02-10 16:33:14 +00001015echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +00001016echo "mingw32 support $mingw32"
malc0c58ac12008-06-25 21:04:05 +00001017echo "Audio drivers $audio_drv_list"
1018echo "Extra audio cards $audio_card_list"
malc8ff9cbf2008-06-23 18:33:30 +00001019echo "Mixer emulation $mixemu"
ths8d5d2d42007-08-25 01:37:51 +00001020echo "VNC TLS support $vnc_tls"
1021if test "$vnc_tls" = "yes" ; then
1022 echo " TLS CFLAGS $vnc_tls_cflags"
1023 echo " TLS LIBS $vnc_tls_libs"
1024fi
blueswir131422552007-04-16 18:27:06 +00001025if test -n "$sparc_cpu"; then
1026 echo "Target Sparc Arch $sparc_cpu"
1027fi
bellard07f4ddb2005-04-23 17:44:28 +00001028echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +00001029echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +00001030echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +00001031[ ! -z "$uname_release" ] && \
1032echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +00001033echo "NPTL support $nptl"
ths8a16d272008-07-19 09:56:24 +00001034echo "vde support $vde"
blueswir1414f0da2008-08-15 18:20:52 +00001035echo "AIO support $aio"
bellard67b915a2004-03-31 23:37:16 +00001036
bellard97a847b2003-08-10 21:36:04 +00001037if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +00001038echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +00001039fi
ths20b40c62007-07-11 23:39:45 +00001040if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1041 echo "The error log from compiling the libSDL test is: "
1042 cat /tmp/qemu-$$-sdl-config.log
1043fi
1044rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +00001045#if test "$sdl_static" = "no"; then
1046# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1047#fi
bellard97a847b2003-08-10 21:36:04 +00001048config_mak="config-host.mak"
1049config_h="config-host.h"
1050
bellard7c1f25b2004-04-22 00:02:08 +00001051#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +00001052
ths15d9ca02007-07-31 23:07:32 +00001053test -f $config_h && mv $config_h ${config_h}~
1054
bellard97a847b2003-08-10 21:36:04 +00001055echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +00001056echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001057echo "/* Automatically generated by configure - do not modify */" > $config_h
1058
1059echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +00001060echo "bindir=\${prefix}$binsuffix" >> $config_mak
1061echo "mandir=\${prefix}$mansuffix" >> $config_mak
1062echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +00001063echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +00001064echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001065echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +00001066echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001067echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001068echo "HOST_CC=$host_cc" >> $config_mak
1069echo "AR=$ar" >> $config_mak
1070echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +00001071# XXX: only use CFLAGS and LDFLAGS ?
1072# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1073# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +00001074echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +00001075echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1076echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1077echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001078echo "CFLAGS=$CFLAGS" >> $config_mak
1079echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +00001080echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +00001081echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001082case "$cpu" in
1083 i386)
1084 echo "ARCH=i386" >> $config_mak
1085 echo "#define HOST_I386 1" >> $config_h
1086 ;;
1087 x86_64)
1088 echo "ARCH=x86_64" >> $config_mak
1089 echo "#define HOST_X86_64 1" >> $config_h
1090 ;;
1091 alpha)
1092 echo "ARCH=alpha" >> $config_mak
1093 echo "#define HOST_ALPHA 1" >> $config_h
1094 ;;
1095 armv4b)
1096 echo "ARCH=arm" >> $config_mak
1097 echo "#define HOST_ARM 1" >> $config_h
1098 ;;
1099 armv4l)
1100 echo "ARCH=arm" >> $config_mak
1101 echo "#define HOST_ARM 1" >> $config_h
1102 ;;
1103 cris)
1104 echo "ARCH=cris" >> $config_mak
1105 echo "#define HOST_CRIS 1" >> $config_h
1106 ;;
1107 hppa)
1108 echo "ARCH=hppa" >> $config_mak
1109 echo "#define HOST_HPPA 1" >> $config_h
1110 ;;
1111 ia64)
1112 echo "ARCH=ia64" >> $config_mak
1113 echo "#define HOST_IA64 1" >> $config_h
1114 ;;
1115 m68k)
1116 echo "ARCH=m68k" >> $config_mak
1117 echo "#define HOST_M68K 1" >> $config_h
1118 ;;
1119 mips)
1120 echo "ARCH=mips" >> $config_mak
1121 echo "#define HOST_MIPS 1" >> $config_h
1122 ;;
1123 mips64)
1124 echo "ARCH=mips64" >> $config_mak
1125 echo "#define HOST_MIPS64 1" >> $config_h
1126 ;;
1127 powerpc)
malc810260a2008-07-23 19:17:46 +00001128 if test "$hostlongbits" = "32"; then
1129 echo "ARCH=ppc" >> $config_mak
1130 echo "#define HOST_PPC 1" >> $config_h
1131 else
1132 echo "ARCH=ppc64" >> $config_mak
1133 echo "#define HOST_PPC64 1" >> $config_h
1134 fi
aurel322408a522008-04-20 20:19:44 +00001135 ;;
1136 s390)
1137 echo "ARCH=s390" >> $config_mak
1138 echo "#define HOST_S390 1" >> $config_h
1139 ;;
1140 sparc)
1141 echo "ARCH=sparc" >> $config_mak
1142 echo "#define HOST_SPARC 1" >> $config_h
1143 ;;
1144 sparc64)
1145 echo "ARCH=sparc64" >> $config_mak
1146 echo "#define HOST_SPARC64 1" >> $config_h
1147 ;;
1148 *)
1149 echo "Unsupported CPU = $cpu"
1150 exit 1
1151 ;;
1152esac
aliguori03b4fe72008-10-07 19:16:17 +00001153if test "$sparse" = "yes" ; then
1154 echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
1155 echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
1156 echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
1157fi
bellard7d132992003-03-06 23:23:54 +00001158if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001159 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1160 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1161fi
bellardb6853692005-06-05 17:10:39 +00001162echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +00001163if test "$mingw32" = "yes" ; then
1164 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +00001165 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +00001166else
1167 cat > $TMPC << EOF
1168#include <byteswap.h>
1169int main(void) { return bswap_32(0); }
1170EOF
pbrookdb7287e2008-02-03 16:27:13 +00001171 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +00001172 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1173 fi
bellard67b915a2004-03-31 23:37:16 +00001174fi
blueswir1128ab2f2008-08-15 18:33:42 +00001175
1176if [ "$openbsd" = "yes" ] ; then
1177 echo "#define ENOTSUP 4096" >> $config_h
1178fi
1179
bellard83fb7ad2004-07-05 21:25:26 +00001180if test "$darwin" = "yes" ; then
1181 echo "CONFIG_DARWIN=yes" >> $config_mak
1182 echo "#define CONFIG_DARWIN 1" >> $config_h
1183fi
bellardec530c82006-04-25 22:36:06 +00001184if test "$solaris" = "yes" ; then
1185 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001186 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001187 if test "$needs_libsunmath" = "yes" ; then
1188 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1189 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1190 fi
bellardec530c82006-04-25 22:36:06 +00001191fi
blueswir131422552007-04-16 18:27:06 +00001192if test -n "$sparc_cpu"; then
1193 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1194 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1195fi
bellard67b915a2004-03-31 23:37:16 +00001196if test "$gdbstub" = "yes" ; then
1197 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1198 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1199fi
bellard97a847b2003-08-10 21:36:04 +00001200if test "$gprof" = "yes" ; then
1201 echo "TARGET_GPROF=yes" >> $config_mak
1202 echo "#define HAVE_GPROF 1" >> $config_h
1203fi
1204if test "$static" = "yes" ; then
1205 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001206 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001207fi
bellard05c2a3e2006-02-08 22:39:17 +00001208if test $profiler = "yes" ; then
1209 echo "#define CONFIG_PROFILER 1" >> $config_h
1210fi
bellardc20709a2004-04-21 23:27:19 +00001211if test "$slirp" = "yes" ; then
1212 echo "CONFIG_SLIRP=yes" >> $config_mak
1213 echo "#define CONFIG_SLIRP 1" >> $config_h
1214fi
ths8a16d272008-07-19 09:56:24 +00001215if test "$vde" = "yes" ; then
1216 echo "CONFIG_VDE=yes" >> $config_mak
1217 echo "#define CONFIG_VDE 1" >> $config_h
1218 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1219fi
malc0c58ac12008-06-25 21:04:05 +00001220for card in $audio_card_list; do
pbrookf6e58892008-06-29 01:00:34 +00001221 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001222 echo "$def=yes" >> $config_mak
1223 echo "#define $def 1" >> $config_h
1224done
1225echo "#define AUDIO_DRIVERS \\" >> $config_h
1226for drv in $audio_drv_list; do
1227 echo " &${drv}_audio_driver, \\" >>$config_h
pbrookf6e58892008-06-29 01:00:34 +00001228 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001229 echo "$def=yes" >> $config_mak
malc923e4522008-07-02 18:13:46 +00001230 if test "$drv" = "fmod"; then
malc0c58ac12008-06-25 21:04:05 +00001231 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1232 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
blueswir12f6a1ab2008-08-21 18:00:53 +00001233 elif test "$drv" = "oss"; then
1234 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
malc0c58ac12008-06-25 21:04:05 +00001235 fi
1236done
1237echo "" >>$config_h
malc8ff9cbf2008-06-23 18:33:30 +00001238if test "$mixemu" = "yes" ; then
1239 echo "CONFIG_MIXEMU=yes" >> $config_mak
1240 echo "#define CONFIG_MIXEMU 1" >> $config_h
1241fi
ths8d5d2d42007-08-25 01:37:51 +00001242if test "$vnc_tls" = "yes" ; then
1243 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1244 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1245 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1246 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1247fi
pbrookb1a550a2006-04-16 13:28:56 +00001248qemu_version=`head $source_path/VERSION`
1249echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001250echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001251
1252echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001253if [ "$source_path_used" = "yes" ]; then
1254 echo "VPATH=$source_path" >> $config_mak
1255fi
bellard97a847b2003-08-10 21:36:04 +00001256echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001257if [ "$build_docs" = "yes" ] ; then
1258 echo "BUILD_DOCS=yes" >> $config_mak
1259fi
bellard49ecc3f2007-11-07 19:25:15 +00001260if test "$static" = "yes"; then
1261 sdl1=$sdl_static
1262else
1263 sdl1=$sdl
1264fi
1265if test "$sdl1" = "yes" ; then
1266 echo "#define CONFIG_SDL 1" >> $config_h
1267 echo "CONFIG_SDL=yes" >> $config_mak
1268 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1269 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1270 else
1271 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1272 fi
1273 if [ "${aa}" = "yes" ] ; then
1274 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1275 else
1276 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1277 fi
1278fi
1279if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001280 echo "#define CONFIG_COCOA 1" >> $config_h
1281 echo "CONFIG_COCOA=yes" >> $config_mak
1282fi
1283if test "$curses" = "yes" ; then
1284 echo "#define CONFIG_CURSES 1" >> $config_h
1285 echo "CONFIG_CURSES=yes" >> $config_mak
1286 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001287fi
aurel322e4d9fb2008-04-08 06:01:02 +00001288if test "$brlapi" = "yes" ; then
1289 echo "CONFIG_BRLAPI=yes" >> $config_mak
1290 echo "#define CONFIG_BRLAPI 1" >> $config_h
1291 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1292fi
balrogfb599c92008-09-28 23:49:55 +00001293if test "$bluez" = "yes" ; then
1294 echo "CONFIG_BLUEZ=yes" >> $config_mak
1295 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1296 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1297 echo "#define CONFIG_BLUEZ 1" >> $config_h
1298fi
blueswir1414f0da2008-08-15 18:20:52 +00001299if test "$aio" = "yes" ; then
1300 echo "#define CONFIG_AIO 1" >> $config_h
aliguoria3392f92008-09-11 18:00:19 +00001301 echo "CONFIG_AIO=yes" >> $config_mak
blueswir1414f0da2008-08-15 18:20:52 +00001302fi
bellard97a847b2003-08-10 21:36:04 +00001303
bellard83fb7ad2004-07-05 21:25:26 +00001304# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001305if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001306 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001307 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001308 echo "#define _BSD 1" >> $config_h
1309fi
1310
pbrookc5937222006-05-14 11:30:38 +00001311echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1312
pbrookc39e3332007-09-22 16:49:14 +00001313tools=
1314if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1315 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001316 if [ "$linux" = "yes" ] ; then
1317 tools="qemu-nbd\$(EXESUF) $tools"
1318 fi
pbrookc39e3332007-09-22 16:49:14 +00001319fi
1320echo "TOOLS=$tools" >> $config_mak
1321
ths15d9ca02007-07-31 23:07:32 +00001322test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1323
bellard1d14ffa2005-10-30 18:58:22 +00001324for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001325target_dir="$target"
1326config_mak=$target_dir/config.mak
1327config_h=$target_dir/config.h
1328target_cpu=`echo $target | cut -d '-' -f 1`
1329target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001330[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001331[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1332[ "$target_cpu" = "mips" ] && target_bigendian=yes
1333[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1334[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001335[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001336[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001337[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001338[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001339[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001340[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1341[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1342[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001343target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001344target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001345target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001346target_darwin_user="no"
blueswir184778502008-10-26 20:33:16 +00001347target_bsd_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001348case "$target" in
1349 ${target_cpu}-softmmu)
1350 target_softmmu="yes"
1351 ;;
1352 ${target_cpu}-linux-user)
1353 target_user_only="yes"
1354 target_linux_user="yes"
1355 ;;
1356 ${target_cpu}-darwin-user)
1357 target_user_only="yes"
1358 target_darwin_user="yes"
1359 ;;
blueswir184778502008-10-26 20:33:16 +00001360 ${target_cpu}-bsd-user)
1361 target_user_only="yes"
1362 target_bsd_user="yes"
1363 ;;
pbrook9e407a82007-05-26 16:38:53 +00001364 *)
1365 echo "ERROR: Target '$target' not recognised"
1366 exit 1
1367 ;;
1368esac
ths831b7822007-01-18 20:06:33 +00001369
bellard97ccc682005-07-02 13:32:17 +00001370if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001371 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001372 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001373 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001374 echo "Note that this will disable all output from the virtual graphics card"
1375 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001376 exit 1;
1377fi
1378
bellard7c1f25b2004-04-22 00:02:08 +00001379#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001380
ths15d9ca02007-07-31 23:07:32 +00001381test -f $config_h && mv $config_h ${config_h}~
1382
bellard97a847b2003-08-10 21:36:04 +00001383mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001384mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001385mkdir -p $target_dir/tcg
blueswir184778502008-10-26 20:33:16 +00001386if 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 +00001387 mkdir -p $target_dir/nwfpe
1388fi
1389
bellardec530c82006-04-25 22:36:06 +00001390#
1391# don't use ln -sf as not all "ln -sf" over write the file/link
1392#
1393rm -f $target_dir/Makefile
1394ln -s $source_path/Makefile.target $target_dir/Makefile
1395
bellard97a847b2003-08-10 21:36:04 +00001396
1397echo "# Automatically generated by configure - do not modify" > $config_mak
1398echo "/* Automatically generated by configure - do not modify */" > $config_h
1399
1400
1401echo "include ../config-host.mak" >> $config_mak
1402echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001403
pbrooke5fe0c52006-06-11 13:32:59 +00001404bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001405elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001406target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001407interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1408echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
pbrook56aebc82008-10-11 17:55:29 +00001409gdb_xml_files=""
bellard97a847b2003-08-10 21:36:04 +00001410
aurel322408a522008-04-20 20:19:44 +00001411case "$target_cpu" in
1412 i386)
1413 echo "TARGET_ARCH=i386" >> $config_mak
1414 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1415 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001416 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001417 then
1418 echo "#define USE_KQEMU 1" >> $config_h
1419 fi
aurel32f2bf0942008-05-05 06:00:27 +00001420 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001421 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001422 then
1423 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1424 else
1425 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1426 fi
aurel322408a522008-04-20 20:19:44 +00001427 ;;
1428 x86_64)
1429 echo "TARGET_ARCH=x86_64" >> $config_mak
1430 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1431 echo "#define TARGET_I386 1" >> $config_h
1432 echo "#define TARGET_X86_64 1" >> $config_h
1433 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1434 then
1435 echo "#define USE_KQEMU 1" >> $config_h
1436 fi
1437 ;;
1438 alpha)
1439 echo "TARGET_ARCH=alpha" >> $config_mak
1440 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1441 echo "#define TARGET_ALPHA 1" >> $config_h
1442 ;;
1443 arm|armeb)
1444 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001445 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1446 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001447 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001448 target_nptl="yes"
pbrook56aebc82008-10-11 17:55:29 +00001449 gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
aurel322408a522008-04-20 20:19:44 +00001450 ;;
1451 cris)
1452 echo "TARGET_ARCH=cris" >> $config_mak
1453 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1454 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001455 ;;
1456 m68k)
1457 echo "TARGET_ARCH=m68k" >> $config_mak
1458 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1459 echo "#define TARGET_M68K 1" >> $config_h
1460 bflt="yes"
pbrook56aebc82008-10-11 17:55:29 +00001461 gdb_xml_files="cf-core.xml cf-fp.xml"
aurel322408a522008-04-20 20:19:44 +00001462 ;;
1463 mips|mipsel)
1464 echo "TARGET_ARCH=mips" >> $config_mak
1465 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1466 echo "#define TARGET_MIPS 1" >> $config_h
1467 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1468 ;;
1469 mipsn32|mipsn32el)
1470 echo "TARGET_ARCH=mipsn32" >> $config_mak
1471 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1472 echo "#define TARGET_MIPS 1" >> $config_h
1473 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1474 ;;
1475 mips64|mips64el)
1476 echo "TARGET_ARCH=mips64" >> $config_mak
1477 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1478 echo "#define TARGET_MIPS 1" >> $config_h
1479 echo "#define TARGET_MIPS64 1" >> $config_h
1480 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1481 ;;
1482 ppc)
1483 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001484 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001485 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1486 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001487 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001488 ;;
1489 ppcemb)
1490 echo "TARGET_ARCH=ppcemb" >> $config_mak
1491 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001492 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001493 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1494 echo "#define TARGET_PPC 1" >> $config_h
1495 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001496 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001497 ;;
1498 ppc64)
1499 echo "TARGET_ARCH=ppc64" >> $config_mak
1500 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001501 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001502 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1503 echo "#define TARGET_PPC 1" >> $config_h
1504 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001505 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001506 ;;
1507 ppc64abi32)
1508 echo "TARGET_ARCH=ppc64" >> $config_mak
1509 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1510 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001511 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001512 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1513 echo "#define TARGET_PPC 1" >> $config_h
1514 echo "#define TARGET_PPC64 1" >> $config_h
1515 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001516 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001517 ;;
1518 sh4|sh4eb)
1519 echo "TARGET_ARCH=sh4" >> $config_mak
1520 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1521 echo "#define TARGET_SH4 1" >> $config_h
1522 bflt="yes"
aurel320b6d3ae2008-09-15 07:43:43 +00001523 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001524 ;;
1525 sparc)
1526 echo "TARGET_ARCH=sparc" >> $config_mak
1527 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1528 echo "#define TARGET_SPARC 1" >> $config_h
1529 ;;
1530 sparc64)
1531 echo "TARGET_ARCH=sparc64" >> $config_mak
1532 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1533 echo "#define TARGET_SPARC 1" >> $config_h
1534 echo "#define TARGET_SPARC64 1" >> $config_h
1535 elfload32="yes"
1536 ;;
1537 sparc32plus)
1538 echo "TARGET_ARCH=sparc64" >> $config_mak
1539 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1540 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1541 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1542 echo "#define TARGET_SPARC 1" >> $config_h
1543 echo "#define TARGET_SPARC64 1" >> $config_h
1544 echo "#define TARGET_ABI32 1" >> $config_h
1545 ;;
1546 *)
1547 echo "Unsupported target CPU"
1548 exit 1
1549 ;;
1550esac
bellardde83cd02003-06-15 20:25:43 +00001551if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001552 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1553 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1554fi
1555if test "$target_softmmu" = "yes" ; then
1556 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1557 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001558fi
bellard997344f2003-10-27 21:10:39 +00001559if test "$target_user_only" = "yes" ; then
1560 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1561 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1562fi
ths831b7822007-01-18 20:06:33 +00001563if test "$target_linux_user" = "yes" ; then
1564 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1565 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1566fi
1567if test "$target_darwin_user" = "yes" ; then
1568 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1569 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1570fi
pbrook56aebc82008-10-11 17:55:29 +00001571list=""
1572if test ! -z "$gdb_xml_files" ; then
1573 for x in $gdb_xml_files; do
1574 list="$list $source_path/gdb-xml/$x"
1575 done
1576fi
1577echo "TARGET_XML_FILES=$list" >> $config_mak
bellardde83cd02003-06-15 20:25:43 +00001578
aurel320938cda2008-04-11 21:36:06 +00001579if test "$target_cpu" = "arm" \
1580 -o "$target_cpu" = "armeb" \
1581 -o "$target_cpu" = "m68k" \
1582 -o "$target_cpu" = "mips" \
1583 -o "$target_cpu" = "mipsel" \
1584 -o "$target_cpu" = "mipsn32" \
1585 -o "$target_cpu" = "mipsn32el" \
1586 -o "$target_cpu" = "mips64" \
1587 -o "$target_cpu" = "mips64el" \
1588 -o "$target_cpu" = "sparc" \
1589 -o "$target_cpu" = "sparc64" \
1590 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001591 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1592 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1593fi
pbrooke5fe0c52006-06-11 13:32:59 +00001594if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1595 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1596 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1597fi
pbrookbd0c5662008-05-29 14:34:11 +00001598if test "$target_user_only" = "yes" \
1599 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1600 echo "#define USE_NPTL 1" >> $config_h
1601fi
blueswir1cb33da52007-10-09 16:34:29 +00001602# 32 bit ELF loader in addition to native 64 bit loader?
1603if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1604 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1605 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1606fi
blueswir184778502008-10-26 20:33:16 +00001607if test "$target_bsd_user" = "yes" ; then
1608 echo "CONFIG_BSD_USER=yes" >> $config_mak
1609 echo "#define CONFIG_BSD_USER 1" >> $config_h
1610fi
bellard5b0753e2005-03-01 21:37:28 +00001611
ths15d9ca02007-07-31 23:07:32 +00001612test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1613
bellard97a847b2003-08-10 21:36:04 +00001614done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001615
1616# build tree in object directory if source path is different from current one
1617if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001618 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001619 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001620 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001621 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001622 for dir in $DIRS ; do
1623 mkdir -p $dir
1624 done
bellardec530c82006-04-25 22:36:06 +00001625 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001626 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001627 rm -f $f
1628 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001629 done
1630fi
bellard7d132992003-03-06 23:23:54 +00001631
malc9d56d2d2008-09-30 19:44:32 +00001632rm -f $TMPO $TMPC $TMPE $TMPS $TMPI