blob: bbda3f70f03f5886dc6d697df8798a76c24aee91 [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"
pbrook328a4242006-12-19 03:31:34 +000025gcc3_search="yes"
balrogfe8f78e2007-10-31 01:03:28 +000026gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
bellard7d132992003-03-06 23:23:54 +000027host_cc="gcc"
28ar="ar"
29make="make"
pbrook6a882642006-04-17 13:57:12 +000030install="install"
bellard7d132992003-03-06 23:23:54 +000031strip="strip"
32cpu=`uname -m`
bellard5327cf42005-01-10 23:18:50 +000033target_list=""
bellard7d132992003-03-06 23:23:54 +000034case "$cpu" in
35 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000036 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000037 ;;
bellardba680552005-03-13 09:49:52 +000038 armv*b)
bellard808c4952004-12-19 23:33:47 +000039 cpu="armv4b"
40 ;;
bellardba680552005-03-13 09:49:52 +000041 armv*l)
bellard7d132992003-03-06 23:23:54 +000042 cpu="armv4l"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
bellard295defa2003-04-07 21:31:29 +000047 "Power Macintosh"|ppc|ppc64)
bellard7d132992003-03-06 23:23:54 +000048 cpu="powerpc"
49 ;;
50 mips)
51 cpu="mips"
52 ;;
thsfbe4f652007-04-01 11:16:48 +000053 mips64)
54 cpu="mips64"
55 ;;
thse7daa602007-10-08 13:38:27 +000056 cris)
57 cpu="cris"
58 ;;
ths0e7b8a92007-08-01 00:09:31 +000059 s390*)
bellardfb3e5842003-03-29 17:32:36 +000060 cpu="s390"
61 ;;
blueswir131422552007-04-16 18:27:06 +000062 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000063 cpu="sparc"
64 ;;
65 sparc64)
66 cpu="sparc64"
67 ;;
bellarda8baa8c2003-04-29 20:53:31 +000068 ia64)
69 cpu="ia64"
70 ;;
bellard38e584a2003-08-10 22:14:22 +000071 m68k)
72 cpu="m68k"
73 ;;
bellardbc51c5c2004-03-17 23:46:04 +000074 x86_64|amd64)
bellard0b0babc2005-01-03 23:38:40 +000075 cpu="x86_64"
bellardbc51c5c2004-03-17 23:46:04 +000076 ;;
bellard7d132992003-03-06 23:23:54 +000077 *)
78 cpu="unknown"
79 ;;
80esac
81gprof="no"
82bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000083mingw32="no"
84EXESUF=""
85gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000086slirp="yes"
bellardfb065182004-11-09 23:09:44 +000087adlib="no"
balroge5c9a132008-01-14 04:27:55 +000088ac97="no"
balrog423d65f2008-01-14 22:09:11 +000089gus="no"
bellardfb065182004-11-09 23:09:44 +000090oss="no"
bellard1d14ffa2005-10-30 18:58:22 +000091dsound="no"
92coreaudio="no"
93alsa="no"
balrogca9cc282008-01-14 04:24:29 +000094esd="no"
bellard102a52e2004-11-14 19:57:29 +000095fmod="no"
96fmod_lib=""
97fmod_inc=""
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"
pbrookcc8ae6d2006-04-23 17:57:59 +0000109build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000110uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000111curses="yes"
bellard7d132992003-03-06 23:23:54 +0000112
113# OS specific
114targetos=`uname -s`
115case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000116CYGWIN*)
117mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000118OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000119if [ "$cpu" = "i386" ] ; then
120 kqemu="yes"
121fi
bellardc326e0a2005-04-23 18:30:28 +0000122;;
bellard67b915a2004-03-31 23:37:16 +0000123MINGW32*)
124mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000125if [ "$cpu" = "i386" ] ; then
126 kqemu="yes"
127fi
bellard67b915a2004-03-31 23:37:16 +0000128;;
ths5c40d2b2007-06-23 16:03:36 +0000129GNU/kFreeBSD)
130oss="yes"
131if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
132 kqemu="yes"
133fi
134;;
bellard7d3505c2004-05-12 19:32:15 +0000135FreeBSD)
136bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000137oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000138if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000139 kqemu="yes"
140fi
bellard7d3505c2004-05-12 19:32:15 +0000141;;
142NetBSD)
143bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000144oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000145;;
146OpenBSD)
147bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000148oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000149;;
bellard83fb7ad2004-07-05 21:25:26 +0000150Darwin)
151bsd="yes"
152darwin="yes"
ths831b7822007-01-18 20:06:33 +0000153darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000154cocoa="yes"
155coreaudio="yes"
ths6f30fa82007-01-05 01:00:47 +0000156OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000157OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
bellard83fb7ad2004-07-05 21:25:26 +0000158;;
bellardec530c82006-04-25 22:36:06 +0000159SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000160 solaris="yes"
161 make="gmake"
162 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000163 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000164 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000165 # have to select again, because `uname -m` returns i86pc
166 # even on an x86_64 box.
167 solariscpu=`isainfo -k`
168 if test "${solariscpu}" = "amd64" ; then
169 cpu="x86_64"
170 fi
thsc2b84fa2007-02-10 23:21:21 +0000171 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000172 if test "$solarisrev" -le 9 ; then
173 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
174 needs_libsunmath="yes"
175 else
176 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
177 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
178 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
179 echo "Studio 11 can be downloaded from www.sun.com."
180 exit 1
181 fi
182 fi
183 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000184 kqemu="yes"
185 fi
ths86b2bd92007-02-11 00:31:33 +0000186 fi
ths6b4d2ba2007-05-13 18:02:43 +0000187 if test -f /usr/include/sys/soundcard.h ; then
188 oss=yes
189 fi
ths86b2bd92007-02-11 00:31:33 +0000190;;
bellard1d14ffa2005-10-30 18:58:22 +0000191*)
bellardfb065182004-11-09 23:09:44 +0000192oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000193linux="yes"
ths831b7822007-01-18 20:06:33 +0000194linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000195if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000196 kqemu="yes"
197fi
bellardfb065182004-11-09 23:09:44 +0000198;;
bellard7d132992003-03-06 23:23:54 +0000199esac
200
bellard7d3505c2004-05-12 19:32:15 +0000201if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000202 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000203 make="gmake"
204 fi
bellard7d3505c2004-05-12 19:32:15 +0000205fi
206
bellard7d132992003-03-06 23:23:54 +0000207# find source path
pbrookad064842006-04-16 12:41:07 +0000208source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000209source_path_used="no"
210workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000211if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000212 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000213else
214 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000215fi
pbrook724db112008-02-03 19:20:13 +0000216[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000217
bellard85aa5182007-11-11 20:17:03 +0000218werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000219# generate compile errors on warnings for development builds
220#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
221#werror="yes";
222#fi
bellard85aa5182007-11-11 20:17:03 +0000223
bellard7d132992003-03-06 23:23:54 +0000224for opt do
pbrooka46e4032006-04-29 23:05:22 +0000225 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000226 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000227 --help|-h) show_help=yes
228 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000229 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000230 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000231 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000232 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000233 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000234 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000235 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000236 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000237 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000238 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000239 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000240 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000241 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000242 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000243 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000244 ;;
pbrook6a882642006-04-17 13:57:12 +0000245 --install=*) install="$optarg"
246 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000247 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000248 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000249 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000250 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000251 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000252 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000253 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000254 ;;
bellard7d132992003-03-06 23:23:54 +0000255 --enable-gprof) gprof="yes"
256 ;;
bellard43ce4df2003-06-09 19:53:12 +0000257 --static) static="yes"
258 ;;
bellard97a847b2003-08-10 21:36:04 +0000259 --disable-sdl) sdl="no"
260 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000261 --enable-coreaudio) coreaudio="yes"
262 ;;
263 --enable-alsa) alsa="yes"
264 ;;
balrogca9cc282008-01-14 04:24:29 +0000265 --enable-esd) esd="yes"
266 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000267 --enable-dsound) dsound="yes"
268 ;;
bellard102a52e2004-11-14 19:57:29 +0000269 --enable-fmod) fmod="yes"
270 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000271 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000272 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000273 --fmod-inc=*) fmod_inc="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000274 ;;
ths8d5d2d42007-08-25 01:37:51 +0000275 --disable-vnc-tls) vnc_tls="no"
276 ;;
bellardb93aebe2007-02-15 22:58:18 +0000277 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
bellard1d14ffa2005-10-30 18:58:22 +0000278 ;;
bellard443f1372004-06-04 11:13:20 +0000279 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000280 ;;
bellardfb065182004-11-09 23:09:44 +0000281 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000282 ;;
balroge5c9a132008-01-14 04:27:55 +0000283 --enable-ac97) ac97="yes"
284 ;;
balrog423d65f2008-01-14 22:09:11 +0000285 --enable-gus) gus="yes"
286 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000287 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000288 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000289 --enable-profiler) profiler="yes"
290 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000291 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
292 ;;
bellard97ccc682005-07-02 13:32:17 +0000293 --disable-gfx-check) check_gfx="no"
294 ;;
bellard1aff3812005-11-02 22:30:45 +0000295 --disable-gcc-check) check_gcc="no"
296 ;;
pbrookcad25d62006-03-19 16:31:11 +0000297 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000298 ;;
pbrookcad25d62006-03-19 16:31:11 +0000299 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000300 ;;
ths831b7822007-01-18 20:06:33 +0000301 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000302 ;;
ths831b7822007-01-18 20:06:33 +0000303 --enable-linux-user) linux_user="yes"
304 ;;
305 --disable-darwin-user) darwin_user="no"
306 ;;
307 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000308 ;;
pbrookc5937222006-05-14 11:30:38 +0000309 --enable-uname-release=*) uname_release="$optarg"
310 ;;
blueswir131422552007-04-16 18:27:06 +0000311 --sparc_cpu=*)
312 sparc_cpu="$optarg"
313 case $sparc_cpu in
314 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
315 target_cpu="sparc"; cpu="sparc" ;;
316 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
317 target_cpu="sparc"; cpu="sparc" ;;
318 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
319 target_cpu="sparc64"; cpu="sparc64" ;;
320 *) echo "undefined SPARC architecture. Exiting";exit 1;;
321 esac
322 ;;
bellard85aa5182007-11-11 20:17:03 +0000323 --enable-werror) werror="yes"
324 ;;
325 --disable-werror) werror="no"
326 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000327 --disable-curses) curses="no"
328 ;;
balrog7f1559c2007-11-17 10:24:32 +0000329 *) echo "ERROR: unknown option $opt"; show_help="yes"
330 ;;
bellard7d132992003-03-06 23:23:54 +0000331 esac
332done
333
ths209afb92007-03-25 20:55:00 +0000334if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
335 AIOLIBS=
336else
ths4259e1a2007-11-05 13:27:21 +0000337 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
338 AIOLIBS="-lrt -lpthread"
ths209afb92007-03-25 20:55:00 +0000339fi
340
ths6f30fa82007-01-05 01:00:47 +0000341# default flags for all hosts
342CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
343LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000344if test "$werror" = "yes" ; then
345CFLAGS="$CFLAGS -Werror"
346fi
ths6f30fa82007-01-05 01:00:47 +0000347
blueswir131422552007-04-16 18:27:06 +0000348#
349# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
350# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
351#
bellard40293e52008-01-31 11:32:10 +0000352case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000353 sparc) if test -z "$sparc_cpu" ; then
354 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
355 ARCH_LDFLAGS="-m32"
356 else
357 ARCH_CFLAGS="${SP_CFLAGS}"
358 ARCH_LDFLAGS="${SP_LDFLAGS}"
359 fi
360 ;;
361 sparc64) if test -z "$sparc_cpu" ; then
362 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
363 ARCH_LDFLAGS="-m64"
364 else
365 ARCH_CFLAGS="${SP_CFLAGS}"
366 ARCH_LDFLAGS="${SP_LDFLAGS}"
367 fi
368 ;;
ths76d83bd2007-11-18 21:22:10 +0000369 s390)
370 ARCH_CFLAGS="-march=z900"
371 ;;
bellard40293e52008-01-31 11:32:10 +0000372 i386)
373 ARCH_CFLAGS="-m32"
374 ARCH_LDFLAGS="-m32"
375 ;;
376 x86_64)
377 ARCH_CFLAGS="-m64"
378 ARCH_LDFLAGS="-m64"
379 ;;
blueswir131422552007-04-16 18:27:06 +0000380esac
381
pbrookaf5db582006-04-08 14:26:41 +0000382if test x"$show_help" = x"yes" ; then
383cat << EOF
384
385Usage: configure [options]
386Options: [defaults in brackets after descriptions]
387
388EOF
389echo "Standard options:"
390echo " --help print this message"
391echo " --prefix=PREFIX install in PREFIX [$prefix]"
392echo " --interp-prefix=PREFIX where to find shared libraries, etc."
393echo " use %M for cpu name [$interp_prefix]"
394echo " --target-list=LIST set target list [$target_list]"
395echo ""
396echo "kqemu kernel acceleration support:"
397echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000398echo ""
399echo "Advanced options (experts only):"
400echo " --source-path=PATH path of source code [$source_path]"
401echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
402echo " --cc=CC use C compiler CC [$cc]"
403echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
404echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000405echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000406echo " --static enable static build [$static]"
bellard85aa5182007-11-11 20:17:03 +0000407echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000408echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000409echo " --enable-cocoa enable COCOA (Mac OS X only)"
410echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
411echo " --enable-adlib enable Adlib emulation"
balroge5c9a132008-01-14 04:27:55 +0000412echo " --enable-ac97 enable AC97 emulation"
balrog423d65f2008-01-14 22:09:11 +0000413echo " --enable-gus enable Gravis Ultrasound emulation"
pbrookaf5db582006-04-08 14:26:41 +0000414echo " --enable-coreaudio enable Coreaudio audio driver"
415echo " --enable-alsa enable ALSA audio driver"
balrogca9cc282008-01-14 04:24:29 +0000416echo " --enable-esd enable EsoundD audio driver"
pbrookaf5db582006-04-08 14:26:41 +0000417echo " --enable-fmod enable FMOD audio driver"
thsed5065e2007-03-25 16:15:21 +0000418echo " --enable-dsound enable DirectSound audio driver"
ths8d5d2d42007-08-25 01:37:51 +0000419echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf5db582006-04-08 14:26:41 +0000420echo " --enable-system enable all system emulation targets"
421echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000422echo " --enable-linux-user enable all linux usermode emulation targets"
423echo " --disable-linux-user disable all linux usermode emulation targets"
424echo " --enable-darwin-user enable all darwin usermode emulation targets"
425echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000426echo " --fmod-lib path to FMOD library"
427echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000428echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000429echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000430echo ""
ths5bf08932006-12-23 00:33:26 +0000431echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000432exit 1
433fi
434
bellard7d132992003-03-06 23:23:54 +0000435cc="${cross_prefix}${cc}"
436ar="${cross_prefix}${ar}"
437strip="${cross_prefix}${strip}"
438
pbrook064aae12006-05-08 00:51:44 +0000439# check that the C compiler works.
440cat > $TMPC <<EOF
441int main(void) {}
442EOF
443
pbrookdb7287e2008-02-03 16:27:13 +0000444if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000445 : C compiler works ok
446else
447 echo "ERROR: \"$cc\" either does not exist or does not work"
448 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000449fi
450
bellard67b915a2004-03-31 23:37:16 +0000451if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000452 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000453 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000454 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000455fi
456
ths5fafdf22007-09-16 21:08:06 +0000457# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000458if test "$check_gcc" = "yes" ; then
459 cat > $TMPC <<EOF
460#if __GNUC__ < 4
461#error gcc3
462#endif
463int main(){return 0;}
464EOF
pbrookdb7287e2008-02-03 16:27:13 +0000465 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000466 echo "WARNING: \"$cc\" looks like gcc 4.x"
467 found_compat_cc="no"
468 if test "$gcc3_search" = "yes" ; then
469 echo "Looking for gcc 3.x"
470 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000471 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000472 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000473 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000474 found_compat_cc="yes"
475 break
476 fi
477 done
478 if test "$found_compat_cc" = "no" ; then
479 echo "gcc 3.x not found!"
480 fi
481 fi
482 if test "$found_compat_cc" = "no" ; then
483 echo "QEMU is known to have problems when compiled with gcc 4.x"
484 echo "It is recommended that you use gcc 3.x to build QEMU"
485 echo "To use this compiler anyway, configure with --disable-gcc-check"
486 exit 1;
487 fi
488 fi
489fi
490
bellardec530c82006-04-25 22:36:06 +0000491#
492# Solaris specific configure tool chain decisions
493#
494if test "$solaris" = "yes" ; then
495 #
496 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
497 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000498 #
bellardec530c82006-04-25 22:36:06 +0000499 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
500 solgcc=`which $cc`
501 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
502 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
503 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
504 echo "or get the latest patch from SunSolve for gcc"
505 exit 1
506 fi
507 fi
508 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
509 if test -z "$solinst" ; then
510 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
511 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
512 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
513 exit 1
514 fi
515 if test "$solinst" = "/usr/sbin/install" ; then
516 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
517 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
518 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
519 exit 1
520 fi
bellardec530c82006-04-25 22:36:06 +0000521 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
522 if test -z "$sol_ar" ; then
523 echo "Error: No path includes ar"
524 if test -f /usr/ccs/bin/ar ; then
525 echo "Add /usr/ccs/bin to your path and rerun configure"
526 fi
527 exit 1
528 fi
ths5fafdf22007-09-16 21:08:06 +0000529fi
bellardec530c82006-04-25 22:36:06 +0000530
531
bellard5327cf42005-01-10 23:18:50 +0000532if test -z "$target_list" ; then
533# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000534 if [ "$softmmu" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000535 target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu"
pbrook0a8e90f2006-03-19 14:54:16 +0000536 fi
bellard5327cf42005-01-10 23:18:50 +0000537# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000538 if [ "$linux_user" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000539 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
ths831b7822007-01-18 20:06:33 +0000540 fi
541# the following are Darwin specific
542 if [ "$darwin_user" = "yes" ] ; then
543 target_list="i386-darwin-user ppc-darwin-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000544 fi
bellard6e20a452005-06-05 15:56:02 +0000545else
pbrookb1a550a2006-04-16 13:28:56 +0000546 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000547fi
pbrook0a8e90f2006-03-19 14:54:16 +0000548if test -z "$target_list" ; then
549 echo "No targets enabled"
550 exit 1
551fi
bellard5327cf42005-01-10 23:18:50 +0000552
bellard7d132992003-03-06 23:23:54 +0000553if test -z "$cross_prefix" ; then
554
555# ---
556# big/little endian test
557cat > $TMPC << EOF
558#include <inttypes.h>
559int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000560 volatile uint32_t i=0x01234567;
561 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000562}
563EOF
564
pbrookdb7287e2008-02-03 16:27:13 +0000565if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000566$TMPE && bigendian="yes"
567else
568echo big/little test failed
569fi
570
571else
572
573# if cross compiling, cannot launch a program, so make a static guess
thsfbe4f652007-04-01 11:16:48 +0000574if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
bellard7d132992003-03-06 23:23:54 +0000575 bigendian="yes"
576fi
577
578fi
579
bellardb6853692005-06-05 17:10:39 +0000580# host long bits test
581hostlongbits="32"
582if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
583 hostlongbits="64"
584fi
585
bellarde8cd23d2003-06-25 16:08:13 +0000586# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000587cat > $TMPC <<EOF
588int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000589}
590EOF
591
bellard11d9f692004-04-02 20:55:59 +0000592##########################################
593# SDL probe
594
595sdl_too_old=no
596
597if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000598 sdl_config="sdl-config"
599 sdl=no
600 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000601
ths069b0bd2007-07-12 00:27:15 +0000602 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
603 # win32 cross compilation case
604 sdl_config="i386-mingw32msvc-sdl-config"
605 sdl=yes
606 else
607 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000608cat > $TMPC << EOF
609#include <SDL.h>
610#undef main /* We don't want SDL to override our main() */
611int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
612EOF
pbrookdb7287e2008-02-03 16:27:13 +0000613 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
ths069b0bd2007-07-12 00:27:15 +0000614 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
615 if test "$_sdlversion" -lt 121 ; then
616 sdl_too_old=yes
617 else
618 if test "$cocoa" = "no" ; then
619 sdl=yes
620 fi
621 fi
bellard11d9f692004-04-02 20:55:59 +0000622
ths069b0bd2007-07-12 00:27:15 +0000623 # static link with sdl ?
624 if test "$sdl" = "yes" ; then
625 aa="no"
626 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
627 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
628 if [ "$aa" = "yes" ] ; then
629 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
630 fi
631
ths8281db42007-11-18 21:37:07 +0000632 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
ths069b0bd2007-07-12 00:27:15 +0000633 sdl_static=yes
634 fi
635 fi # static link
636 fi # sdl compile test
637 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000638else
ths069b0bd2007-07-12 00:27:15 +0000639 # Make sure to disable cocoa if sdl was set
640 if test "$sdl" = "yes" ; then
641 cocoa="no"
642 coreaudio="no"
643 fi
bellarda6e022a2004-04-02 21:55:47 +0000644fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000645
ths8f28f3f2007-01-05 21:25:54 +0000646##########################################
ths8d5d2d42007-08-25 01:37:51 +0000647# VNC TLS detection
648if test "$vnc_tls" = "yes" ; then
649 `pkg-config gnutls` || vnc_tls="no"
650fi
651if test "$vnc_tls" = "yes" ; then
652 vnc_tls_cflags=`pkg-config --cflags gnutls`
653 vnc_tls_libs=`pkg-config --libs gnutls`
654fi
655
656##########################################
ths8f28f3f2007-01-05 21:25:54 +0000657# alsa sound support libraries
658
659if test "$alsa" = "yes" ; then
660 cat > $TMPC << EOF
661#include <alsa/asoundlib.h>
662int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
663EOF
pbrookdb7287e2008-02-03 16:27:13 +0000664 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000665 :
666 else
667 echo
668 echo "Error: Could not find alsa"
669 echo "Make sure to have the alsa libs and headers installed."
670 echo
671 exit 1
672 fi
673fi
674
balrog4d3b6f62008-02-10 16:33:14 +0000675##########################################
676# curses probe
677
678if test "$curses" = "yes" ; then
679 curses=no
680 cat > $TMPC << EOF
681#include <curses.h>
682int main(void) { return curses_version(); }
683EOF
684 if $cc -o $TMPE $TMPC -lcurses 2> /dev/null ; then
685 curses=yes
686 fi
687fi # test "$curses"
688
pbrookcc8ae6d2006-04-23 17:57:59 +0000689# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000690if [ -x "`which texi2html 2>/dev/null`" ] && \
691 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000692 build_docs="yes"
693fi
694
bellard11d9f692004-04-02 20:55:59 +0000695if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000696 if test -z "$prefix" ; then
697 prefix="/c/Program Files/Qemu"
698 fi
699 mansuffix=""
700 datasuffix=""
701 docsuffix=""
702 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000703else
pbrook308c3592007-02-27 00:52:01 +0000704 if test -z "$prefix" ; then
705 prefix="/usr/local"
706 fi
707 mansuffix="/share/man"
708 datasuffix="/share/qemu"
709 docsuffix="/share/doc/qemu"
710 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000711fi
bellard5a671352003-10-01 00:13:48 +0000712
bellard43ce4df2003-06-09 19:53:12 +0000713echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000714echo "BIOS directory $prefix$datasuffix"
715echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000716if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000717echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000718echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000719fi
bellard5a671352003-10-01 00:13:48 +0000720echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000721echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000722echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000723echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000724echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000725echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000726echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000727echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000728echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000729echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000730echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000731echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000732echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000733if test "$darwin" = "yes" ; then
734 echo "Cocoa support $cocoa"
735fi
bellard97a847b2003-08-10 21:36:04 +0000736echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000737if test "$sdl" != "no" ; then
738 echo "SDL static link $sdl_static"
739fi
balrog4d3b6f62008-02-10 16:33:14 +0000740echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000741echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000742echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000743echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000744echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000745echo "CoreAudio support $coreaudio"
746echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000747echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000748echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000749if test "$fmod" = "yes"; then
750 if test -z $fmod_lib || test -z $fmod_inc; then
751 echo
752 echo "Error: You must specify path to FMOD library and headers"
753 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
754 echo
755 exit 1
756 fi
pbrookb1a550a2006-04-16 13:28:56 +0000757 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
758else
759 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000760fi
pbrookb1a550a2006-04-16 13:28:56 +0000761echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000762echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000763echo "VNC TLS support $vnc_tls"
764if test "$vnc_tls" = "yes" ; then
765 echo " TLS CFLAGS $vnc_tls_cflags"
766 echo " TLS LIBS $vnc_tls_libs"
767fi
blueswir131422552007-04-16 18:27:06 +0000768if test -n "$sparc_cpu"; then
769 echo "Target Sparc Arch $sparc_cpu"
770fi
bellard07f4ddb2005-04-23 17:44:28 +0000771echo "kqemu support $kqemu"
pbrookcc8ae6d2006-04-23 17:57:59 +0000772echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000773[ ! -z "$uname_release" ] && \
774echo "uname -r $uname_release"
bellard67b915a2004-03-31 23:37:16 +0000775
bellard97a847b2003-08-10 21:36:04 +0000776if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000777echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000778fi
ths20b40c62007-07-11 23:39:45 +0000779if [ -s /tmp/qemu-$$-sdl-config.log ]; then
780 echo "The error log from compiling the libSDL test is: "
781 cat /tmp/qemu-$$-sdl-config.log
782fi
783rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000784#if test "$sdl_static" = "no"; then
785# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
786#fi
bellard97a847b2003-08-10 21:36:04 +0000787config_mak="config-host.mak"
788config_h="config-host.h"
789
bellard7c1f25b2004-04-22 00:02:08 +0000790#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000791
ths15d9ca02007-07-31 23:07:32 +0000792test -f $config_h && mv $config_h ${config_h}~
793
bellard97a847b2003-08-10 21:36:04 +0000794echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000795echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000796echo "/* Automatically generated by configure - do not modify */" > $config_h
797
798echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000799echo "bindir=\${prefix}$binsuffix" >> $config_mak
800echo "mandir=\${prefix}$mansuffix" >> $config_mak
801echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000802echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000803echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000804echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000805echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000806echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000807echo "HOST_CC=$host_cc" >> $config_mak
808echo "AR=$ar" >> $config_mak
809echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000810# XXX: only use CFLAGS and LDFLAGS ?
811# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
812# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000813echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000814echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
815echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
816echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000817echo "CFLAGS=$CFLAGS" >> $config_mak
818echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000819echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000820echo "AIOLIBS=$AIOLIBS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000821if test "$cpu" = "i386" ; then
822 echo "ARCH=i386" >> $config_mak
823 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000824elif test "$cpu" = "x86_64" ; then
825 echo "ARCH=x86_64" >> $config_mak
826 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000827elif test "$cpu" = "armv4b" ; then
828 echo "ARCH=arm" >> $config_mak
829 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000830elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000831 echo "ARCH=arm" >> $config_mak
832 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000833elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000834 echo "ARCH=ppc" >> $config_mak
835 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000836elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000837 echo "ARCH=mips" >> $config_mak
838 echo "#define HOST_MIPS 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +0000839elif test "$cpu" = "mips64" ; then
840 echo "ARCH=mips64" >> $config_mak
841 echo "#define HOST_MIPS64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +0000842elif test "$cpu" = "cris" ; then
843 echo "ARCH=cris" >> $config_mak
844 echo "#define HOST_CRIS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000845elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000846 echo "ARCH=s390" >> $config_mak
847 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000848elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000849 echo "ARCH=alpha" >> $config_mak
850 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000851elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000852 echo "ARCH=sparc" >> $config_mak
853 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000854elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000855 echo "ARCH=sparc64" >> $config_mak
856 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000857elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000858 echo "ARCH=ia64" >> $config_mak
859 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000860elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000861 echo "ARCH=m68k" >> $config_mak
862 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000863else
blueswir131422552007-04-16 18:27:06 +0000864 echo "Unsupported CPU = $cpu"
bellard7d132992003-03-06 23:23:54 +0000865 exit 1
866fi
867if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000868 echo "WORDS_BIGENDIAN=yes" >> $config_mak
869 echo "#define WORDS_BIGENDIAN 1" >> $config_h
870fi
bellardb6853692005-06-05 17:10:39 +0000871echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000872if test "$mingw32" = "yes" ; then
873 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000874 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000875else
876 cat > $TMPC << EOF
877#include <byteswap.h>
878int main(void) { return bswap_32(0); }
879EOF
pbrookdb7287e2008-02-03 16:27:13 +0000880 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000881 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
882 fi
bellard67b915a2004-03-31 23:37:16 +0000883fi
bellard83fb7ad2004-07-05 21:25:26 +0000884if test "$darwin" = "yes" ; then
885 echo "CONFIG_DARWIN=yes" >> $config_mak
886 echo "#define CONFIG_DARWIN 1" >> $config_h
887fi
bellardec530c82006-04-25 22:36:06 +0000888if test "$solaris" = "yes" ; then
889 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +0000890 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +0000891 if test "$needs_libsunmath" = "yes" ; then
892 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
893 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
894 fi
bellardec530c82006-04-25 22:36:06 +0000895fi
blueswir131422552007-04-16 18:27:06 +0000896if test -n "$sparc_cpu"; then
897 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
898 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
899fi
bellard67b915a2004-03-31 23:37:16 +0000900if test "$gdbstub" = "yes" ; then
901 echo "CONFIG_GDBSTUB=yes" >> $config_mak
902 echo "#define CONFIG_GDBSTUB 1" >> $config_h
903fi
bellard97a847b2003-08-10 21:36:04 +0000904if test "$gprof" = "yes" ; then
905 echo "TARGET_GPROF=yes" >> $config_mak
906 echo "#define HAVE_GPROF 1" >> $config_h
907fi
908if test "$static" = "yes" ; then
909 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000910 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000911fi
bellard05c2a3e2006-02-08 22:39:17 +0000912if test $profiler = "yes" ; then
913 echo "#define CONFIG_PROFILER 1" >> $config_h
914fi
bellardc20709a2004-04-21 23:27:19 +0000915if test "$slirp" = "yes" ; then
916 echo "CONFIG_SLIRP=yes" >> $config_mak
917 echo "#define CONFIG_SLIRP 1" >> $config_h
918fi
bellardfb065182004-11-09 23:09:44 +0000919if test "$adlib" = "yes" ; then
920 echo "CONFIG_ADLIB=yes" >> $config_mak
921 echo "#define CONFIG_ADLIB 1" >> $config_h
922fi
balroge5c9a132008-01-14 04:27:55 +0000923if test "$ac97" = "yes" ; then
924 echo "CONFIG_AC97=yes" >> $config_mak
925 echo "#define CONFIG_AC97 1" >> $config_h
926fi
balrog423d65f2008-01-14 22:09:11 +0000927if test "$gus" = "yes" ; then
928 echo "CONFIG_GUS=yes" >> $config_mak
929 echo "#define CONFIG_GUS 1" >> $config_h
930fi
bellardfb065182004-11-09 23:09:44 +0000931if test "$oss" = "yes" ; then
932 echo "CONFIG_OSS=yes" >> $config_mak
933 echo "#define CONFIG_OSS 1" >> $config_h
934fi
bellard1d14ffa2005-10-30 18:58:22 +0000935if test "$coreaudio" = "yes" ; then
936 echo "CONFIG_COREAUDIO=yes" >> $config_mak
937 echo "#define CONFIG_COREAUDIO 1" >> $config_h
938fi
939if test "$alsa" = "yes" ; then
940 echo "CONFIG_ALSA=yes" >> $config_mak
941 echo "#define CONFIG_ALSA 1" >> $config_h
942fi
balrogca9cc282008-01-14 04:24:29 +0000943if test "$esd" = "yes" ; then
944 echo "CONFIG_ESD=yes" >> $config_mak
945 echo "#define CONFIG_ESD 1" >> $config_h
946fi
bellard1d14ffa2005-10-30 18:58:22 +0000947if test "$dsound" = "yes" ; then
948 echo "CONFIG_DSOUND=yes" >> $config_mak
949 echo "#define CONFIG_DSOUND 1" >> $config_h
950fi
bellard102a52e2004-11-14 19:57:29 +0000951if test "$fmod" = "yes" ; then
952 echo "CONFIG_FMOD=yes" >> $config_mak
953 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
954 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
955 echo "#define CONFIG_FMOD 1" >> $config_h
956fi
ths8d5d2d42007-08-25 01:37:51 +0000957if test "$vnc_tls" = "yes" ; then
958 echo "CONFIG_VNC_TLS=yes" >> $config_mak
959 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
960 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
961 echo "#define CONFIG_VNC_TLS 1" >> $config_h
962fi
pbrookb1a550a2006-04-16 13:28:56 +0000963qemu_version=`head $source_path/VERSION`
964echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +0000965echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000966
967echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +0000968if [ "$source_path_used" = "yes" ]; then
969 echo "VPATH=$source_path" >> $config_mak
970fi
bellard97a847b2003-08-10 21:36:04 +0000971echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +0000972if [ "$build_docs" = "yes" ] ; then
973 echo "BUILD_DOCS=yes" >> $config_mak
974fi
bellard49ecc3f2007-11-07 19:25:15 +0000975if test "$static" = "yes"; then
976 sdl1=$sdl_static
977else
978 sdl1=$sdl
979fi
980if test "$sdl1" = "yes" ; then
981 echo "#define CONFIG_SDL 1" >> $config_h
982 echo "CONFIG_SDL=yes" >> $config_mak
983 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
984 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
985 else
986 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
987 fi
988 if [ "${aa}" = "yes" ] ; then
989 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
990 else
991 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
992 fi
993fi
994if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +0000995 echo "#define CONFIG_COCOA 1" >> $config_h
996 echo "CONFIG_COCOA=yes" >> $config_mak
997fi
998if test "$curses" = "yes" ; then
999 echo "#define CONFIG_CURSES 1" >> $config_h
1000 echo "CONFIG_CURSES=yes" >> $config_mak
1001 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001002fi
bellard97a847b2003-08-10 21:36:04 +00001003
bellard83fb7ad2004-07-05 21:25:26 +00001004# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001005if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001006 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001007 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001008 echo "#define _BSD 1" >> $config_h
1009fi
1010
pbrookc5937222006-05-14 11:30:38 +00001011echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1012
pbrookc39e3332007-09-22 16:49:14 +00001013tools=
1014if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1015 tools="qemu-img\$(EXESUF) $tools"
1016fi
1017echo "TOOLS=$tools" >> $config_mak
1018
ths15d9ca02007-07-31 23:07:32 +00001019test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1020
bellard1d14ffa2005-10-30 18:58:22 +00001021for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001022target_dir="$target"
1023config_mak=$target_dir/config.mak
1024config_h=$target_dir/config.h
1025target_cpu=`echo $target | cut -d '-' -f 1`
1026target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001027[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +00001028[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +00001029[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
blueswir1992f48a2007-10-14 16:27:31 +00001030[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001031[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001032[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001033[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001034[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +00001035[ "$target_cpu" = "mips" ] && target_bigendian=yes
ths540635b2007-09-30 01:58:33 +00001036[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
thsfbe4f652007-04-01 11:16:48 +00001037[ "$target_cpu" = "mips64" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001038[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
pbrooke6e59062006-10-22 00:18:54 +00001039[ "$target_cpu" = "m68k" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001040target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001041target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001042target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001043target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001044case "$target" in
1045 ${target_cpu}-softmmu)
1046 target_softmmu="yes"
1047 ;;
1048 ${target_cpu}-linux-user)
1049 target_user_only="yes"
1050 target_linux_user="yes"
1051 ;;
1052 ${target_cpu}-darwin-user)
1053 target_user_only="yes"
1054 target_darwin_user="yes"
1055 ;;
1056 *)
1057 echo "ERROR: Target '$target' not recognised"
1058 exit 1
1059 ;;
1060esac
ths831b7822007-01-18 20:06:33 +00001061
bellard97ccc682005-07-02 13:32:17 +00001062if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001063 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001064 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001065 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001066 echo "Note that this will disable all output from the virtual graphics card"
1067 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001068 exit 1;
1069fi
1070
bellard7c1f25b2004-04-22 00:02:08 +00001071#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001072
ths15d9ca02007-07-31 23:07:32 +00001073test -f $config_h && mv $config_h ${config_h}~
1074
bellard97a847b2003-08-10 21:36:04 +00001075mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001076mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001077mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001078if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001079 mkdir -p $target_dir/nwfpe
1080fi
1081
bellardec530c82006-04-25 22:36:06 +00001082#
1083# don't use ln -sf as not all "ln -sf" over write the file/link
1084#
1085rm -f $target_dir/Makefile
1086ln -s $source_path/Makefile.target $target_dir/Makefile
1087
bellard97a847b2003-08-10 21:36:04 +00001088
1089echo "# Automatically generated by configure - do not modify" > $config_mak
1090echo "/* Automatically generated by configure - do not modify */" > $config_h
1091
1092
1093echo "include ../config-host.mak" >> $config_mak
1094echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001095
pbrooke5fe0c52006-06-11 13:32:59 +00001096bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001097elfload32="no"
bellard1e43adf2003-09-30 20:54:24 +00001098interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1099echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001100
1101if test "$target_cpu" = "i386" ; then
1102 echo "TARGET_ARCH=i386" >> $config_mak
1103 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1104 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001105 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +00001106 echo "#define USE_KQEMU 1" >> $config_h
1107 fi
bellard808c4952004-12-19 23:33:47 +00001108elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +00001109 echo "TARGET_ARCH=arm" >> $config_mak
1110 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1111 echo "#define TARGET_ARM 1" >> $config_h
pbrooke5fe0c52006-06-11 13:32:59 +00001112 bflt="yes"
bellard1e43adf2003-09-30 20:54:24 +00001113elif test "$target_cpu" = "sparc" ; then
1114 echo "TARGET_ARCH=sparc" >> $config_mak
1115 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1116 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +00001117elif test "$target_cpu" = "sparc64" ; then
1118 echo "TARGET_ARCH=sparc64" >> $config_mak
1119 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1120 echo "#define TARGET_SPARC 1" >> $config_h
1121 echo "#define TARGET_SPARC64 1" >> $config_h
blueswir1cb33da52007-10-09 16:34:29 +00001122 elfload32="yes"
blueswir1992f48a2007-10-14 16:27:31 +00001123elif test "$target_cpu" = "sparc32plus" ; then
1124 echo "TARGET_ARCH=sparc64" >> $config_mak
1125 echo "TARGET_ABI_DIR=sparc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001126 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
blueswir1992f48a2007-10-14 16:27:31 +00001127 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1128 echo "#define TARGET_SPARC 1" >> $config_h
1129 echo "#define TARGET_SPARC64 1" >> $config_h
1130 echo "#define TARGET_ABI32 1" >> $config_h
bellard67867302003-11-23 17:05:30 +00001131elif test "$target_cpu" = "ppc" ; then
1132 echo "TARGET_ARCH=ppc" >> $config_mak
1133 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1134 echo "#define TARGET_PPC 1" >> $config_h
j_mayerd4082e92007-04-24 07:34:03 +00001135elif test "$target_cpu" = "ppcemb" ; then
1136 echo "TARGET_ARCH=ppcemb" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001137 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayerd4082e92007-04-24 07:34:03 +00001138 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1139 echo "#define TARGET_PPC 1" >> $config_h
1140 echo "#define TARGET_PPCEMB 1" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001141elif test "$target_cpu" = "ppc64" ; then
1142 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayerf85e9a62007-10-18 20:51:49 +00001143 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001144 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001145 echo "#define TARGET_PPC 1" >> $config_h
1146 echo "#define TARGET_PPC64 1" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001147elif test "$target_cpu" = "ppc64abi32" ; then
1148 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001149 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001150 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001151 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001152 echo "#define TARGET_PPC 1" >> $config_h
1153 echo "#define TARGET_PPC64 1" >> $config_h
1154 echo "#define TARGET_ABI32 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +00001155elif test "$target_cpu" = "x86_64" ; then
1156 echo "TARGET_ARCH=x86_64" >> $config_mak
1157 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1158 echo "#define TARGET_I386 1" >> $config_h
1159 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001160 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1161 echo "#define USE_KQEMU 1" >> $config_h
1162 fi
bellardc20eb472005-12-06 21:42:55 +00001163elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +00001164 echo "TARGET_ARCH=mips" >> $config_mak
1165 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1166 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001167 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
ths540635b2007-09-30 01:58:33 +00001168elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1169 echo "TARGET_ARCH=mipsn32" >> $config_mak
1170 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1171 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001172 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +00001173elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1174 echo "TARGET_ARCH=mips64" >> $config_mak
1175 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1176 echo "#define TARGET_MIPS 1" >> $config_h
1177 echo "#define TARGET_MIPS64 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001178 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +00001179elif test "$target_cpu" = "cris" ; then
1180 echo "TARGET_ARCH=cris" >> $config_mak
1181 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1182 echo "#define TARGET_CRIS 1" >> $config_h
1183 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1184 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
pbrook908f52b2006-06-18 19:16:53 +00001185elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
bellardfdf9b3e2006-04-27 21:07:38 +00001186 echo "TARGET_ARCH=sh4" >> $config_mak
1187 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1188 echo "#define TARGET_SH4 1" >> $config_h
pbrook4dbed892006-06-17 20:01:14 +00001189 bflt="yes"
pbrooke6e59062006-10-22 00:18:54 +00001190elif test "$target_cpu" = "m68k" ; then
1191 echo "TARGET_ARCH=m68k" >> $config_mak
1192 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1193 echo "#define TARGET_M68K 1" >> $config_h
1194 bflt="yes"
j_mayercf6c1b12007-04-05 20:46:02 +00001195elif test "$target_cpu" = "alpha" ; then
1196 echo "TARGET_ARCH=alpha" >> $config_mak
1197 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1198 echo "#define TARGET_ALPHA 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001199else
1200 echo "Unsupported target CPU"
1201 exit 1
1202fi
1203if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001204 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1205 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1206fi
1207if test "$target_softmmu" = "yes" ; then
1208 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1209 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001210fi
bellard997344f2003-10-27 21:10:39 +00001211if test "$target_user_only" = "yes" ; then
1212 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1213 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1214fi
ths831b7822007-01-18 20:06:33 +00001215if test "$target_linux_user" = "yes" ; then
1216 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1217 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1218fi
1219if test "$target_darwin_user" = "yes" ; then
1220 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1221 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1222fi
bellardde83cd02003-06-15 20:25:43 +00001223
blueswir1992f48a2007-10-14 16:27:31 +00001224if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
bellard158142c2005-03-13 16:54:06 +00001225 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1226 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1227fi
pbrooke5fe0c52006-06-11 13:32:59 +00001228if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1229 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1230 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1231fi
blueswir1cb33da52007-10-09 16:34:29 +00001232# 32 bit ELF loader in addition to native 64 bit loader?
1233if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1234 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1235 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1236fi
bellard5b0753e2005-03-01 21:37:28 +00001237
ths15d9ca02007-07-31 23:07:32 +00001238test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1239
bellard97a847b2003-08-10 21:36:04 +00001240done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001241
1242# build tree in object directory if source path is different from current one
1243if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001244 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001245 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001246 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
bellard7d132992003-03-06 23:23:54 +00001247 for dir in $DIRS ; do
1248 mkdir -p $dir
1249 done
bellardec530c82006-04-25 22:36:06 +00001250 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001251 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001252 rm -f $f
1253 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001254 done
1255fi
bellard7d132992003-03-06 23:23:54 +00001256
bellard97a847b2003-08-10 21:36:04 +00001257rm -f $TMPO $TMPC $TMPE $TMPS