blob: 356461775912acdebc763130cc413b61d1bc98b2 [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"
bellard7d132992003-03-06 23:23:54 +000018
19# default parameters
bellard11d9f692004-04-02 20:55:59 +000020prefix=""
bellard1e43adf2003-09-30 20:54:24 +000021interp_prefix="/usr/gnemul/qemu-%M"
bellard43ce4df2003-06-09 19:53:12 +000022static="no"
bellard7d132992003-03-06 23:23:54 +000023cross_prefix=""
24cc="gcc"
25host_cc="gcc"
26ar="ar"
27make="make"
pbrook6a882642006-04-17 13:57:12 +000028install="install"
bellard7d132992003-03-06 23:23:54 +000029strip="strip"
30cpu=`uname -m`
bellard5327cf42005-01-10 23:18:50 +000031target_list=""
bellard7d132992003-03-06 23:23:54 +000032case "$cpu" in
33 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000034 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000035 ;;
bellardba680552005-03-13 09:49:52 +000036 armv*b)
bellard808c4952004-12-19 23:33:47 +000037 cpu="armv4b"
38 ;;
bellardba680552005-03-13 09:49:52 +000039 armv*l)
bellard7d132992003-03-06 23:23:54 +000040 cpu="armv4l"
41 ;;
42 alpha)
43 cpu="alpha"
44 ;;
bellard295defa2003-04-07 21:31:29 +000045 "Power Macintosh"|ppc|ppc64)
bellard7d132992003-03-06 23:23:54 +000046 cpu="powerpc"
47 ;;
48 mips)
49 cpu="mips"
50 ;;
bellardfb3e5842003-03-29 17:32:36 +000051 s390)
52 cpu="s390"
53 ;;
bellardae228532003-05-13 18:59:59 +000054 sparc)
55 cpu="sparc"
56 ;;
57 sparc64)
58 cpu="sparc64"
59 ;;
bellarda8baa8c2003-04-29 20:53:31 +000060 ia64)
61 cpu="ia64"
62 ;;
bellard38e584a2003-08-10 22:14:22 +000063 m68k)
64 cpu="m68k"
65 ;;
bellardbc51c5c2004-03-17 23:46:04 +000066 x86_64|amd64)
bellard0b0babc2005-01-03 23:38:40 +000067 cpu="x86_64"
bellardbc51c5c2004-03-17 23:46:04 +000068 ;;
bellard7d132992003-03-06 23:23:54 +000069 *)
70 cpu="unknown"
71 ;;
72esac
73gprof="no"
74bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000075mingw32="no"
76EXESUF=""
77gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000078slirp="yes"
bellardfb065182004-11-09 23:09:44 +000079adlib="no"
80oss="no"
bellard1d14ffa2005-10-30 18:58:22 +000081dsound="no"
82coreaudio="no"
83alsa="no"
bellard102a52e2004-11-14 19:57:29 +000084fmod="no"
85fmod_lib=""
86fmod_inc=""
pbrookb1a550a2006-04-16 13:28:56 +000087bsd="no"
bellard5327cf42005-01-10 23:18:50 +000088linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +000089kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +000090profiler="no"
bellardc9ec1fe2005-02-10 21:55:30 +000091kernel_path=""
bellard5b0753e2005-03-01 21:37:28 +000092cocoa="no"
bellard97ccc682005-07-02 13:32:17 +000093check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +000094check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +000095softmmu="yes"
96user="no"
bellard7d132992003-03-06 23:23:54 +000097
98# OS specific
99targetos=`uname -s`
100case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000101CYGWIN*)
102mingw32="yes"
103CFLAGS="-O2 -mno-cygwin"
104;;
bellard67b915a2004-03-31 23:37:16 +0000105MINGW32*)
106mingw32="yes"
107;;
bellard7d3505c2004-05-12 19:32:15 +0000108FreeBSD)
109bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000110oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000111if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000112 kqemu="yes"
113fi
bellard7d3505c2004-05-12 19:32:15 +0000114;;
115NetBSD)
116bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000117oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000118;;
119OpenBSD)
120bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000121oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000122;;
bellard83fb7ad2004-07-05 21:25:26 +0000123Darwin)
124bsd="yes"
125darwin="yes"
126;;
bellard1d14ffa2005-10-30 18:58:22 +0000127*)
bellardfb065182004-11-09 23:09:44 +0000128oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000129linux="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000130user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000131if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000132 kqemu="yes"
133fi
bellardfb065182004-11-09 23:09:44 +0000134;;
bellard7d132992003-03-06 23:23:54 +0000135esac
136
bellard7d3505c2004-05-12 19:32:15 +0000137if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000138 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000139 make="gmake"
140 fi
bellard7d3505c2004-05-12 19:32:15 +0000141fi
142
bellard7d132992003-03-06 23:23:54 +0000143# find source path
pbrookad064842006-04-16 12:41:07 +0000144source_path=`dirname "$0"`
145if [ -z "$source_path" ]; then
bellard7d132992003-03-06 23:23:54 +0000146 source_path=`pwd`
pbrookad064842006-04-16 12:41:07 +0000147else
148 source_path=`cd "$source_path"; pwd`
149fi
150if test "$source_path" = `pwd` ; then
bellard7d132992003-03-06 23:23:54 +0000151 source_path_used="no"
pbrookad064842006-04-16 12:41:07 +0000152else
153 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000154fi
155
156for opt do
pbrookb1a550a2006-04-16 13:28:56 +0000157 optarg=`expr "$opt" : '[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000158 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000159 --help|-h) show_help=yes
160 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000161 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000162 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000163 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000164 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000165 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000166 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000167 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000168 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000169 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000170 --cc=*) cc="$optarg"
bellard7d132992003-03-06 23:23:54 +0000171 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000172 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000173 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000174 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000175 ;;
pbrook6a882642006-04-17 13:57:12 +0000176 --install=*) install="$optarg"
177 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000178 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000179 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000180 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000181 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000182 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000183 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000184 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000185 ;;
bellard7d132992003-03-06 23:23:54 +0000186 --enable-gprof) gprof="yes"
187 ;;
bellard43ce4df2003-06-09 19:53:12 +0000188 --static) static="yes"
189 ;;
bellard97a847b2003-08-10 21:36:04 +0000190 --disable-sdl) sdl="no"
191 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000192 --enable-coreaudio) coreaudio="yes"
193 ;;
194 --enable-alsa) alsa="yes"
195 ;;
196 --enable-dsound) dsound="yes"
197 ;;
bellard102a52e2004-11-14 19:57:29 +0000198 --enable-fmod) fmod="yes"
199 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000200 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000201 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000202 --fmod-inc=*) fmod_inc="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000203 ;;
bellard67b915a2004-03-31 23:37:16 +0000204 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
bellard1d14ffa2005-10-30 18:58:22 +0000205 ;;
bellard443f1372004-06-04 11:13:20 +0000206 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000207 ;;
bellardfb065182004-11-09 23:09:44 +0000208 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000209 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000210 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000211 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000212 --enable-profiler) profiler="yes"
213 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000214 --kernel-path=*) kernel_path="$optarg"
bellard1d14ffa2005-10-30 18:58:22 +0000215 ;;
216 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
217 ;;
bellard97ccc682005-07-02 13:32:17 +0000218 --disable-gfx-check) check_gfx="no"
219 ;;
bellard1aff3812005-11-02 22:30:45 +0000220 --disable-gcc-check) check_gcc="no"
221 ;;
pbrookcad25d62006-03-19 16:31:11 +0000222 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000223 ;;
pbrookcad25d62006-03-19 16:31:11 +0000224 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000225 ;;
226 --disable-user) user="no"
227 ;;
228 --enable-user) user="yes"
229 ;;
bellard7d132992003-03-06 23:23:54 +0000230 esac
231done
232
233# Checking for CFLAGS
234if test -z "$CFLAGS"; then
235 CFLAGS="-O2"
236fi
237
pbrookaf5db582006-04-08 14:26:41 +0000238if test x"$show_help" = x"yes" ; then
239cat << EOF
240
241Usage: configure [options]
242Options: [defaults in brackets after descriptions]
243
244EOF
245echo "Standard options:"
246echo " --help print this message"
247echo " --prefix=PREFIX install in PREFIX [$prefix]"
248echo " --interp-prefix=PREFIX where to find shared libraries, etc."
249echo " use %M for cpu name [$interp_prefix]"
250echo " --target-list=LIST set target list [$target_list]"
251echo ""
252echo "kqemu kernel acceleration support:"
253echo " --disable-kqemu disable kqemu support"
254echo " --kernel-path=PATH set the kernel path (configure probes it)"
255echo ""
256echo "Advanced options (experts only):"
257echo " --source-path=PATH path of source code [$source_path]"
258echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
259echo " --cc=CC use C compiler CC [$cc]"
260echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
261echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000262echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000263echo " --static enable static build [$static]"
264echo " --enable-cocoa enable COCOA (Mac OS X only)"
265echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
266echo " --enable-adlib enable Adlib emulation"
267echo " --enable-coreaudio enable Coreaudio audio driver"
268echo " --enable-alsa enable ALSA audio driver"
269echo " --enable-fmod enable FMOD audio driver"
270echo " --enabled-dsound enable DirectSound audio driver"
271echo " --enable-system enable all system emulation targets"
272echo " --disable-system disable all system emulation targets"
273echo " --enable-user enable all linux usermode emulation targets"
274echo " --disable-user disable all linux usermode emulation targets"
275echo " --fmod-lib path to FMOD library"
276echo " --fmod-inc path to FMOD includes"
277echo ""
278echo "NOTE: The object files are build at the place where configure is launched"
279exit 1
280fi
281
bellard7d132992003-03-06 23:23:54 +0000282cc="${cross_prefix}${cc}"
283ar="${cross_prefix}${ar}"
284strip="${cross_prefix}${strip}"
285
bellarda7350fa2006-04-23 14:35:23 +0000286if [ -z `which $cc` ] ; then
287 echo "Compiler $cc could not be found"
288 exit
289fi
290
bellard67b915a2004-03-31 23:37:16 +0000291if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000292 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000293 EXESUF=".exe"
294 gdbstub="no"
bellard9f059ec2004-11-14 18:59:52 +0000295 oss="no"
bellard07f4ddb2005-04-23 17:44:28 +0000296 if [ "$cpu" = "i386" ] ; then
297 kqemu="yes"
298 fi
bellard67b915a2004-03-31 23:37:16 +0000299fi
300
bellard5327cf42005-01-10 23:18:50 +0000301if test -z "$target_list" ; then
302# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000303 if [ "$softmmu" = "yes" ] ; then
304 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
305 fi
bellard5327cf42005-01-10 23:18:50 +0000306# the following are Linux specific
pbrook0a8e90f2006-03-19 14:54:16 +0000307 if [ "$user" = "yes" ] ; then
bellardc20eb472005-12-06 21:42:55 +0000308 target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000309 fi
bellard6e20a452005-06-05 15:56:02 +0000310else
pbrookb1a550a2006-04-16 13:28:56 +0000311 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000312fi
pbrook0a8e90f2006-03-19 14:54:16 +0000313if test -z "$target_list" ; then
314 echo "No targets enabled"
315 exit 1
316fi
bellard5327cf42005-01-10 23:18:50 +0000317
bellard7d132992003-03-06 23:23:54 +0000318if test -z "$cross_prefix" ; then
319
320# ---
321# big/little endian test
322cat > $TMPC << EOF
323#include <inttypes.h>
324int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000325 volatile uint32_t i=0x01234567;
326 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000327}
328EOF
329
330if $cc -o $TMPE $TMPC 2>/dev/null ; then
331$TMPE && bigendian="yes"
332else
333echo big/little test failed
334fi
335
336else
337
338# if cross compiling, cannot launch a program, so make a static guess
bellard808c4952004-12-19 23:33:47 +0000339if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
bellard7d132992003-03-06 23:23:54 +0000340 bigendian="yes"
341fi
342
343fi
344
bellardb6853692005-06-05 17:10:39 +0000345# host long bits test
346hostlongbits="32"
347if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
348 hostlongbits="64"
349fi
350
bellarde8cd23d2003-06-25 16:08:13 +0000351# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000352cat > $TMPC <<EOF
353int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000354}
355EOF
356
bellarde8cd23d2003-06-25 16:08:13 +0000357have_gcc3_options="no"
358if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
359 have_gcc3_options="yes"
bellard04369ff2003-03-20 22:33:23 +0000360fi
bellardca735202003-03-18 20:41:34 +0000361
pbrookb1a550a2006-04-16 13:28:56 +0000362# Check for gcc4, error if pre-gcc4
bellard1aff3812005-11-02 22:30:45 +0000363if test "$check_gcc" = "yes" ; then
364 cat > $TMPC <<EOF
pbrookb1a550a2006-04-16 13:28:56 +0000365#if __GNUC__ < 4
366#error gcc3
bellard1aff3812005-11-02 22:30:45 +0000367#endif
368int main(){return 0;}
369EOF
pbrookb1a550a2006-04-16 13:28:56 +0000370 if $cc -o $TMPO $TMPC 2>/dev/null ; then
bellard1aff3812005-11-02 22:30:45 +0000371 echo "ERROR: \"$cc\" looks like gcc 4.x"
372 echo "QEMU is known to have problems when compiled with gcc 4.x"
373 echo "It is recommended that you use gcc 3.x to build QEMU"
374 echo "To use this compiler anyway, configure with --disable-gcc-check"
375 exit 1;
376 fi
377fi
378
bellard11d9f692004-04-02 20:55:59 +0000379##########################################
380# SDL probe
381
382sdl_too_old=no
383
384if test -z "$sdl" ; then
385
bellarda6e022a2004-04-02 21:55:47 +0000386sdl_config="sdl-config"
387sdl=no
bellard7c1f25b2004-04-22 00:02:08 +0000388sdl_static=no
bellarda6e022a2004-04-02 21:55:47 +0000389
390if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
391# win32 cross compilation case
392 sdl_config="i386-mingw32msvc-sdl-config"
393 sdl=yes
394else
395# normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000396cat > $TMPC << EOF
397#include <SDL.h>
398#undef main /* We don't want SDL to override our main() */
399int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
400EOF
401
bellarda6e022a2004-04-02 21:55:47 +0000402if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
403_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
bellard11d9f692004-04-02 20:55:59 +0000404if test "$_sdlversion" -lt 121 ; then
405sdl_too_old=yes
406else
407sdl=yes
408fi
bellard7c1f25b2004-04-22 00:02:08 +0000409
410# static link with sdl ?
411if test "$sdl" = "yes" ; then
412aa="no"
413`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
414sdl_static_libs=`$sdl_config --static-libs`
415if [ "$aa" = "yes" ] ; then
bellardd8d8aa42004-04-29 20:14:07 +0000416 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
bellard11d9f692004-04-02 20:55:59 +0000417fi
418
bellard7c1f25b2004-04-22 00:02:08 +0000419if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
420 sdl_static=yes
421fi
422
423fi # static link
424
425fi # sdl compile test
426
bellarda6e022a2004-04-02 21:55:47 +0000427fi # cross compilation
428fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000429
bellard11d9f692004-04-02 20:55:59 +0000430if test "$mingw32" = "yes" ; then
431if test -z "$prefix" ; then
432 prefix="/c/Program Files/Qemu"
433fi
434mandir="$prefix"
bellard7efa4382004-05-12 18:54:06 +0000435datadir="$prefix"
bellard1f50f8d2004-05-08 14:44:43 +0000436docdir="$prefix"
bellard11d9f692004-04-02 20:55:59 +0000437bindir="$prefix"
438else
439if test -z "$prefix" ; then
440 prefix="/usr/local"
441fi
bellard5a671352003-10-01 00:13:48 +0000442mandir="$prefix/share/man"
bellard7efa4382004-05-12 18:54:06 +0000443datadir="$prefix/share/qemu"
bellard1f50f8d2004-05-08 14:44:43 +0000444docdir="$prefix/share/doc/qemu"
bellard11d9f692004-04-02 20:55:59 +0000445bindir="$prefix/bin"
446fi
bellard5a671352003-10-01 00:13:48 +0000447
bellard43ce4df2003-06-09 19:53:12 +0000448echo "Install prefix $prefix"
bellard7efa4382004-05-12 18:54:06 +0000449echo "BIOS directory $datadir"
bellard11d9f692004-04-02 20:55:59 +0000450echo "binary directory $bindir"
451if test "$mingw32" = "no" ; then
452echo "Manual directory $mandir"
bellard43ce4df2003-06-09 19:53:12 +0000453echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000454fi
bellard5a671352003-10-01 00:13:48 +0000455echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000456echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000457echo "Host C compiler $host_cc"
bellard43ce4df2003-06-09 19:53:12 +0000458echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000459echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000460echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000461echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000462echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000463echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000464echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000465echo "static build $static"
bellard5b0753e2005-03-01 21:37:28 +0000466if test "$darwin" = "yes" ; then
467 echo "Cocoa support $cocoa"
468fi
bellard97a847b2003-08-10 21:36:04 +0000469echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000470if test "$sdl" != "no" ; then
471 echo "SDL static link $sdl_static"
472fi
bellard67b915a2004-03-31 23:37:16 +0000473echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000474echo "Adlib support $adlib"
bellard1d14ffa2005-10-30 18:58:22 +0000475echo "CoreAudio support $coreaudio"
476echo "ALSA support $alsa"
477echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000478if test "$fmod" = "yes"; then
479 if test -z $fmod_lib || test -z $fmod_inc; then
480 echo
481 echo "Error: You must specify path to FMOD library and headers"
482 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
483 echo
484 exit 1
485 fi
pbrookb1a550a2006-04-16 13:28:56 +0000486 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
487else
488 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000489fi
pbrookb1a550a2006-04-16 13:28:56 +0000490echo "FMOD support $fmod $fmod_support"
bellard07f4ddb2005-04-23 17:44:28 +0000491echo "kqemu support $kqemu"
bellard67b915a2004-03-31 23:37:16 +0000492
bellard97a847b2003-08-10 21:36:04 +0000493if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000494echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000495fi
bellard24b55b92005-03-01 22:30:41 +0000496#if test "$sdl_static" = "no"; then
497# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
498#fi
bellard97a847b2003-08-10 21:36:04 +0000499config_mak="config-host.mak"
500config_h="config-host.h"
501
bellard7c1f25b2004-04-22 00:02:08 +0000502#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000503
504echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000505echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000506echo "/* Automatically generated by configure - do not modify */" > $config_h
507
508echo "prefix=$prefix" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000509echo "bindir=$bindir" >> $config_mak
bellard5a671352003-10-01 00:13:48 +0000510echo "mandir=$mandir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000511echo "datadir=$datadir" >> $config_mak
bellard1f50f8d2004-05-08 14:44:43 +0000512echo "docdir=$docdir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000513echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000514echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000515echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000516echo "CC=$cc" >> $config_mak
517if test "$have_gcc3_options" = "yes" ; then
518 echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
519fi
520echo "HOST_CC=$host_cc" >> $config_mak
521echo "AR=$ar" >> $config_mak
522echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
523echo "CFLAGS=$CFLAGS" >> $config_mak
524echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000525echo "EXESUF=$EXESUF" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000526if test "$cpu" = "i386" ; then
527 echo "ARCH=i386" >> $config_mak
528 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000529elif test "$cpu" = "x86_64" ; then
530 echo "ARCH=x86_64" >> $config_mak
531 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000532elif test "$cpu" = "armv4b" ; then
533 echo "ARCH=arm" >> $config_mak
534 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000535elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000536 echo "ARCH=arm" >> $config_mak
537 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000538elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000539 echo "ARCH=ppc" >> $config_mak
540 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000541elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000542 echo "ARCH=mips" >> $config_mak
543 echo "#define HOST_MIPS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000544elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000545 echo "ARCH=s390" >> $config_mak
546 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000547elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000548 echo "ARCH=alpha" >> $config_mak
549 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000550elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000551 echo "ARCH=sparc" >> $config_mak
552 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000553elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000554 echo "ARCH=sparc64" >> $config_mak
555 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000556elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000557 echo "ARCH=ia64" >> $config_mak
558 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000559elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000560 echo "ARCH=m68k" >> $config_mak
561 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000562else
563 echo "Unsupported CPU"
564 exit 1
565fi
566if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000567 echo "WORDS_BIGENDIAN=yes" >> $config_mak
568 echo "#define WORDS_BIGENDIAN 1" >> $config_h
569fi
bellardb6853692005-06-05 17:10:39 +0000570echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000571if test "$mingw32" = "yes" ; then
572 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000573 echo "#define CONFIG_WIN32 1" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000574elif test -f "/usr/include/byteswap.h" ; then
bellard67b915a2004-03-31 23:37:16 +0000575 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
576fi
bellard83fb7ad2004-07-05 21:25:26 +0000577if test "$darwin" = "yes" ; then
578 echo "CONFIG_DARWIN=yes" >> $config_mak
579 echo "#define CONFIG_DARWIN 1" >> $config_h
580fi
bellard67b915a2004-03-31 23:37:16 +0000581if test "$gdbstub" = "yes" ; then
582 echo "CONFIG_GDBSTUB=yes" >> $config_mak
583 echo "#define CONFIG_GDBSTUB 1" >> $config_h
584fi
bellard97a847b2003-08-10 21:36:04 +0000585if test "$gprof" = "yes" ; then
586 echo "TARGET_GPROF=yes" >> $config_mak
587 echo "#define HAVE_GPROF 1" >> $config_h
588fi
589if test "$static" = "yes" ; then
590 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000591 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000592fi
bellard05c2a3e2006-02-08 22:39:17 +0000593if test $profiler = "yes" ; then
594 echo "#define CONFIG_PROFILER 1" >> $config_h
595fi
bellardc20709a2004-04-21 23:27:19 +0000596if test "$slirp" = "yes" ; then
597 echo "CONFIG_SLIRP=yes" >> $config_mak
598 echo "#define CONFIG_SLIRP 1" >> $config_h
599fi
bellardfb065182004-11-09 23:09:44 +0000600if test "$adlib" = "yes" ; then
601 echo "CONFIG_ADLIB=yes" >> $config_mak
602 echo "#define CONFIG_ADLIB 1" >> $config_h
603fi
604if test "$oss" = "yes" ; then
605 echo "CONFIG_OSS=yes" >> $config_mak
606 echo "#define CONFIG_OSS 1" >> $config_h
607fi
bellard1d14ffa2005-10-30 18:58:22 +0000608if test "$coreaudio" = "yes" ; then
609 echo "CONFIG_COREAUDIO=yes" >> $config_mak
610 echo "#define CONFIG_COREAUDIO 1" >> $config_h
611fi
612if test "$alsa" = "yes" ; then
613 echo "CONFIG_ALSA=yes" >> $config_mak
614 echo "#define CONFIG_ALSA 1" >> $config_h
615fi
616if test "$dsound" = "yes" ; then
617 echo "CONFIG_DSOUND=yes" >> $config_mak
618 echo "#define CONFIG_DSOUND 1" >> $config_h
619fi
bellard102a52e2004-11-14 19:57:29 +0000620if test "$fmod" = "yes" ; then
621 echo "CONFIG_FMOD=yes" >> $config_mak
622 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
623 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
624 echo "#define CONFIG_FMOD 1" >> $config_h
625fi
pbrookb1a550a2006-04-16 13:28:56 +0000626qemu_version=`head $source_path/VERSION`
627echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +0000628echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000629
630echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +0000631if [ "$source_path_used" = "yes" ]; then
632 echo "VPATH=$source_path" >> $config_mak
633fi
bellard97a847b2003-08-10 21:36:04 +0000634echo "TARGET_DIRS=$target_list" >> $config_mak
635
bellard83fb7ad2004-07-05 21:25:26 +0000636# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +0000637if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +0000638 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +0000639 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000640 echo "#define _BSD 1" >> $config_h
641fi
642
bellard1d14ffa2005-10-30 18:58:22 +0000643for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +0000644target_dir="$target"
645config_mak=$target_dir/config.mak
646config_h=$target_dir/config.h
647target_cpu=`echo $target | cut -d '-' -f 1`
648target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +0000649[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +0000650[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +0000651[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +0000652[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellarda2458622005-07-23 22:39:53 +0000653[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +0000654[ "$target_cpu" = "mips" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +0000655target_softmmu="no"
656if expr $target : '.*-softmmu' > /dev/null ; then
657 target_softmmu="yes"
bellard7d132992003-03-06 23:23:54 +0000658fi
bellard997344f2003-10-27 21:10:39 +0000659target_user_only="no"
660if expr $target : '.*-user' > /dev/null ; then
661 target_user_only="yes"
662fi
bellardde83cd02003-06-15 20:25:43 +0000663
bellard97ccc682005-07-02 13:32:17 +0000664if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +0000665 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +0000666 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +0000667 echo "To build QEMU without graphical output configure with --disable-gfx-check"
bellard97ccc682005-07-02 13:32:17 +0000668 echo "Note that this will disable all output from the virtual graphics card."
669 exit 1;
670fi
671
bellard7c1f25b2004-04-22 00:02:08 +0000672#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +0000673
674mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +0000675mkdir -p $target_dir/fpu
bellard808c4952004-12-19 23:33:47 +0000676if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard69de9272004-02-16 21:40:43 +0000677 mkdir -p $target_dir/nwfpe
678fi
bellarda7e61ed2004-04-22 21:46:47 +0000679if test "$target_user_only" = "no" ; then
680 mkdir -p $target_dir/slirp
681fi
bellard69de9272004-02-16 21:40:43 +0000682
bellard97a847b2003-08-10 21:36:04 +0000683ln -sf $source_path/Makefile.target $target_dir/Makefile
684
685echo "# Automatically generated by configure - do not modify" > $config_mak
686echo "/* Automatically generated by configure - do not modify */" > $config_h
687
688
689echo "include ../config-host.mak" >> $config_mak
690echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000691
692interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
693echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000694
695if test "$target_cpu" = "i386" ; then
696 echo "TARGET_ARCH=i386" >> $config_mak
697 echo "#define TARGET_ARCH \"i386\"" >> $config_h
698 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000699 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +0000700 echo "#define USE_KQEMU 1" >> $config_h
701 fi
bellard808c4952004-12-19 23:33:47 +0000702elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +0000703 echo "TARGET_ARCH=arm" >> $config_mak
704 echo "#define TARGET_ARCH \"arm\"" >> $config_h
705 echo "#define TARGET_ARM 1" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000706elif test "$target_cpu" = "sparc" ; then
707 echo "TARGET_ARCH=sparc" >> $config_mak
708 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
709 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +0000710elif test "$target_cpu" = "sparc64" ; then
711 echo "TARGET_ARCH=sparc64" >> $config_mak
712 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
713 echo "#define TARGET_SPARC 1" >> $config_h
714 echo "#define TARGET_SPARC64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +0000715elif test "$target_cpu" = "ppc" ; then
716 echo "TARGET_ARCH=ppc" >> $config_mak
717 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
718 echo "#define TARGET_PPC 1" >> $config_h
bellarda2458622005-07-23 22:39:53 +0000719elif test "$target_cpu" = "ppc64" ; then
720 echo "TARGET_ARCH=ppc64" >> $config_mak
721 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
722 echo "#define TARGET_PPC 1" >> $config_h
723 echo "#define TARGET_PPC64 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000724elif test "$target_cpu" = "x86_64" ; then
725 echo "TARGET_ARCH=x86_64" >> $config_mak
726 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
727 echo "#define TARGET_I386 1" >> $config_h
728 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000729 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
730 echo "#define USE_KQEMU 1" >> $config_h
731 fi
bellardc20eb472005-12-06 21:42:55 +0000732elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +0000733 echo "TARGET_ARCH=mips" >> $config_mak
734 echo "#define TARGET_ARCH \"mips\"" >> $config_h
735 echo "#define TARGET_MIPS 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000736else
737 echo "Unsupported target CPU"
738 exit 1
739fi
740if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000741 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
742 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
743fi
744if test "$target_softmmu" = "yes" ; then
745 echo "CONFIG_SOFTMMU=yes" >> $config_mak
746 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000747fi
bellard997344f2003-10-27 21:10:39 +0000748if test "$target_user_only" = "yes" ; then
749 echo "CONFIG_USER_ONLY=yes" >> $config_mak
750 echo "#define CONFIG_USER_ONLY 1" >> $config_h
751fi
bellardde83cd02003-06-15 20:25:43 +0000752
bellard158142c2005-03-13 16:54:06 +0000753if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
754 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
755 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
756fi
bellard7c1f25b2004-04-22 00:02:08 +0000757# sdl defines
758
759if test "$target_user_only" = "no"; then
760 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
bellarddbb2c922004-10-24 22:17:47 +0000761 sdl1=$sdl_static
bellard7c1f25b2004-04-22 00:02:08 +0000762 else
bellarddbb2c922004-10-24 22:17:47 +0000763 sdl1=$sdl
764 fi
765 if test "$sdl1" = "yes" ; then
766 echo "#define CONFIG_SDL 1" >> $config_h
767 echo "CONFIG_SDL=yes" >> $config_mak
768 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
769 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
770 else
bellard7c1f25b2004-04-22 00:02:08 +0000771 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
772 fi
bellarddbb2c922004-10-24 22:17:47 +0000773 if [ "${aa}" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000774 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
775 else
776 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
bellarddbb2c922004-10-24 22:17:47 +0000777 fi
bellard7c1f25b2004-04-22 00:02:08 +0000778 fi
bellard7c1f25b2004-04-22 00:02:08 +0000779fi
780
bellard5b0753e2005-03-01 21:37:28 +0000781if test "$cocoa" = "yes" ; then
782 echo "#define CONFIG_COCOA 1" >> $config_h
783 echo "CONFIG_COCOA=yes" >> $config_mak
784fi
785
bellard97a847b2003-08-10 21:36:04 +0000786done # for target in $targets
bellard7d132992003-03-06 23:23:54 +0000787
788# build tree in object directory if source path is different from current one
789if test "$source_path_used" = "yes" ; then
790 DIRS="tests"
791 FILES="Makefile tests/Makefile"
792 for dir in $DIRS ; do
793 mkdir -p $dir
794 done
795 for f in $FILES ; do
796 ln -sf $source_path/$f $f
797 done
798fi
bellard7d132992003-03-06 23:23:54 +0000799
bellard97a847b2003-08-10 21:36:04 +0000800rm -f $TMPO $TMPC $TMPE $TMPS