blob: 470d4358842b93a461e73e10495754a74bc03567 [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"
pbrookaf896aa2008-03-23 00:47:42 +0000420echo " --disable-curses disable curses output"
pbrookaf5db582006-04-08 14:26:41 +0000421echo " --enable-system enable all system emulation targets"
422echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000423echo " --enable-linux-user enable all linux usermode emulation targets"
424echo " --disable-linux-user disable all linux usermode emulation targets"
425echo " --enable-darwin-user enable all darwin usermode emulation targets"
426echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000427echo " --fmod-lib path to FMOD library"
428echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000429echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000430echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000431echo ""
ths5bf08932006-12-23 00:33:26 +0000432echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000433exit 1
434fi
435
bellard7d132992003-03-06 23:23:54 +0000436cc="${cross_prefix}${cc}"
437ar="${cross_prefix}${ar}"
438strip="${cross_prefix}${strip}"
439
pbrook064aae12006-05-08 00:51:44 +0000440# check that the C compiler works.
441cat > $TMPC <<EOF
442int main(void) {}
443EOF
444
pbrookdb7287e2008-02-03 16:27:13 +0000445if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000446 : C compiler works ok
447else
448 echo "ERROR: \"$cc\" either does not exist or does not work"
449 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000450fi
451
bellard67b915a2004-03-31 23:37:16 +0000452if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000453 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000454 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000455 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000456fi
457
ths5fafdf22007-09-16 21:08:06 +0000458# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000459if test "$check_gcc" = "yes" ; then
460 cat > $TMPC <<EOF
461#if __GNUC__ < 4
462#error gcc3
463#endif
464int main(){return 0;}
465EOF
pbrookdb7287e2008-02-03 16:27:13 +0000466 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000467 echo "WARNING: \"$cc\" looks like gcc 4.x"
468 found_compat_cc="no"
469 if test "$gcc3_search" = "yes" ; then
470 echo "Looking for gcc 3.x"
471 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000472 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000473 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000474 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000475 found_compat_cc="yes"
476 break
477 fi
478 done
479 if test "$found_compat_cc" = "no" ; then
480 echo "gcc 3.x not found!"
481 fi
482 fi
483 if test "$found_compat_cc" = "no" ; then
484 echo "QEMU is known to have problems when compiled with gcc 4.x"
485 echo "It is recommended that you use gcc 3.x to build QEMU"
486 echo "To use this compiler anyway, configure with --disable-gcc-check"
487 exit 1;
488 fi
489 fi
490fi
491
bellardec530c82006-04-25 22:36:06 +0000492#
493# Solaris specific configure tool chain decisions
494#
495if test "$solaris" = "yes" ; then
496 #
497 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
498 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000499 #
bellardec530c82006-04-25 22:36:06 +0000500 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
501 solgcc=`which $cc`
502 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
503 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
504 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
505 echo "or get the latest patch from SunSolve for gcc"
506 exit 1
507 fi
508 fi
509 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
510 if test -z "$solinst" ; then
511 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
512 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
513 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
514 exit 1
515 fi
516 if test "$solinst" = "/usr/sbin/install" ; then
517 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
518 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
519 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
520 exit 1
521 fi
bellardec530c82006-04-25 22:36:06 +0000522 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
523 if test -z "$sol_ar" ; then
524 echo "Error: No path includes ar"
525 if test -f /usr/ccs/bin/ar ; then
526 echo "Add /usr/ccs/bin to your path and rerun configure"
527 fi
528 exit 1
529 fi
ths5fafdf22007-09-16 21:08:06 +0000530fi
bellardec530c82006-04-25 22:36:06 +0000531
532
bellard5327cf42005-01-10 23:18:50 +0000533if test -z "$target_list" ; then
534# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000535 if [ "$softmmu" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000536 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 +0000537 fi
bellard5327cf42005-01-10 23:18:50 +0000538# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000539 if [ "$linux_user" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000540 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 +0000541 fi
542# the following are Darwin specific
543 if [ "$darwin_user" = "yes" ] ; then
544 target_list="i386-darwin-user ppc-darwin-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000545 fi
bellard6e20a452005-06-05 15:56:02 +0000546else
pbrookb1a550a2006-04-16 13:28:56 +0000547 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000548fi
pbrook0a8e90f2006-03-19 14:54:16 +0000549if test -z "$target_list" ; then
550 echo "No targets enabled"
551 exit 1
552fi
bellard5327cf42005-01-10 23:18:50 +0000553
bellard7d132992003-03-06 23:23:54 +0000554if test -z "$cross_prefix" ; then
555
556# ---
557# big/little endian test
558cat > $TMPC << EOF
559#include <inttypes.h>
560int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000561 volatile uint32_t i=0x01234567;
562 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000563}
564EOF
565
pbrookdb7287e2008-02-03 16:27:13 +0000566if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000567$TMPE && bigendian="yes"
568else
569echo big/little test failed
570fi
571
572else
573
574# if cross compiling, cannot launch a program, so make a static guess
thsfbe4f652007-04-01 11:16:48 +0000575if 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 +0000576 bigendian="yes"
577fi
578
579fi
580
bellardb6853692005-06-05 17:10:39 +0000581# host long bits test
582hostlongbits="32"
583if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
584 hostlongbits="64"
585fi
586
bellarde8cd23d2003-06-25 16:08:13 +0000587# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000588cat > $TMPC <<EOF
589int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000590}
591EOF
592
bellard11d9f692004-04-02 20:55:59 +0000593##########################################
594# SDL probe
595
596sdl_too_old=no
597
598if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000599 sdl_config="sdl-config"
600 sdl=no
601 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000602
ths069b0bd2007-07-12 00:27:15 +0000603 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
604 # win32 cross compilation case
605 sdl_config="i386-mingw32msvc-sdl-config"
606 sdl=yes
607 else
608 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000609cat > $TMPC << EOF
610#include <SDL.h>
611#undef main /* We don't want SDL to override our main() */
612int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
613EOF
pbrookdb7287e2008-02-03 16:27:13 +0000614 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 +0000615 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
616 if test "$_sdlversion" -lt 121 ; then
617 sdl_too_old=yes
618 else
619 if test "$cocoa" = "no" ; then
620 sdl=yes
621 fi
622 fi
bellard11d9f692004-04-02 20:55:59 +0000623
ths069b0bd2007-07-12 00:27:15 +0000624 # static link with sdl ?
625 if test "$sdl" = "yes" ; then
626 aa="no"
627 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
628 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
629 if [ "$aa" = "yes" ] ; then
630 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
631 fi
632
ths8281db42007-11-18 21:37:07 +0000633 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 +0000634 sdl_static=yes
635 fi
636 fi # static link
637 fi # sdl compile test
638 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000639else
ths069b0bd2007-07-12 00:27:15 +0000640 # Make sure to disable cocoa if sdl was set
641 if test "$sdl" = "yes" ; then
642 cocoa="no"
643 coreaudio="no"
644 fi
bellarda6e022a2004-04-02 21:55:47 +0000645fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000646
ths8f28f3f2007-01-05 21:25:54 +0000647##########################################
ths8d5d2d42007-08-25 01:37:51 +0000648# VNC TLS detection
649if test "$vnc_tls" = "yes" ; then
650 `pkg-config gnutls` || vnc_tls="no"
651fi
652if test "$vnc_tls" = "yes" ; then
653 vnc_tls_cflags=`pkg-config --cflags gnutls`
654 vnc_tls_libs=`pkg-config --libs gnutls`
655fi
656
657##########################################
ths8f28f3f2007-01-05 21:25:54 +0000658# alsa sound support libraries
659
660if test "$alsa" = "yes" ; then
661 cat > $TMPC << EOF
662#include <alsa/asoundlib.h>
663int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
664EOF
pbrookdb7287e2008-02-03 16:27:13 +0000665 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000666 :
667 else
668 echo
669 echo "Error: Could not find alsa"
670 echo "Make sure to have the alsa libs and headers installed."
671 echo
672 exit 1
673 fi
674fi
675
balrog4d3b6f62008-02-10 16:33:14 +0000676##########################################
677# curses probe
678
679if test "$curses" = "yes" ; then
680 curses=no
681 cat > $TMPC << EOF
682#include <curses.h>
683int main(void) { return curses_version(); }
684EOF
pbrookaf896aa2008-03-23 00:47:42 +0000685 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000686 curses=yes
687 fi
688fi # test "$curses"
689
pbrookcc8ae6d2006-04-23 17:57:59 +0000690# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000691if [ -x "`which texi2html 2>/dev/null`" ] && \
692 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000693 build_docs="yes"
694fi
695
bellard11d9f692004-04-02 20:55:59 +0000696if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000697 if test -z "$prefix" ; then
698 prefix="/c/Program Files/Qemu"
699 fi
700 mansuffix=""
701 datasuffix=""
702 docsuffix=""
703 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000704else
pbrook308c3592007-02-27 00:52:01 +0000705 if test -z "$prefix" ; then
706 prefix="/usr/local"
707 fi
708 mansuffix="/share/man"
709 datasuffix="/share/qemu"
710 docsuffix="/share/doc/qemu"
711 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000712fi
bellard5a671352003-10-01 00:13:48 +0000713
bellard43ce4df2003-06-09 19:53:12 +0000714echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000715echo "BIOS directory $prefix$datasuffix"
716echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000717if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000718echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000719echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000720fi
bellard5a671352003-10-01 00:13:48 +0000721echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000722echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000723echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000724echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000725echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000726echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000727echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000728echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000729echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000730echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000731echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000732echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000733echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000734if test "$darwin" = "yes" ; then
735 echo "Cocoa support $cocoa"
736fi
bellard97a847b2003-08-10 21:36:04 +0000737echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000738if test "$sdl" != "no" ; then
739 echo "SDL static link $sdl_static"
740fi
balrog4d3b6f62008-02-10 16:33:14 +0000741echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000742echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000743echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000744echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000745echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000746echo "CoreAudio support $coreaudio"
747echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000748echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000749echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000750if test "$fmod" = "yes"; then
751 if test -z $fmod_lib || test -z $fmod_inc; then
752 echo
753 echo "Error: You must specify path to FMOD library and headers"
754 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
755 echo
756 exit 1
757 fi
pbrookb1a550a2006-04-16 13:28:56 +0000758 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
759else
760 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000761fi
pbrookb1a550a2006-04-16 13:28:56 +0000762echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000763echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000764echo "VNC TLS support $vnc_tls"
765if test "$vnc_tls" = "yes" ; then
766 echo " TLS CFLAGS $vnc_tls_cflags"
767 echo " TLS LIBS $vnc_tls_libs"
768fi
blueswir131422552007-04-16 18:27:06 +0000769if test -n "$sparc_cpu"; then
770 echo "Target Sparc Arch $sparc_cpu"
771fi
bellard07f4ddb2005-04-23 17:44:28 +0000772echo "kqemu support $kqemu"
pbrookcc8ae6d2006-04-23 17:57:59 +0000773echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000774[ ! -z "$uname_release" ] && \
775echo "uname -r $uname_release"
bellard67b915a2004-03-31 23:37:16 +0000776
bellard97a847b2003-08-10 21:36:04 +0000777if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000778echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000779fi
ths20b40c62007-07-11 23:39:45 +0000780if [ -s /tmp/qemu-$$-sdl-config.log ]; then
781 echo "The error log from compiling the libSDL test is: "
782 cat /tmp/qemu-$$-sdl-config.log
783fi
784rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000785#if test "$sdl_static" = "no"; then
786# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
787#fi
bellard97a847b2003-08-10 21:36:04 +0000788config_mak="config-host.mak"
789config_h="config-host.h"
790
bellard7c1f25b2004-04-22 00:02:08 +0000791#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000792
ths15d9ca02007-07-31 23:07:32 +0000793test -f $config_h && mv $config_h ${config_h}~
794
bellard97a847b2003-08-10 21:36:04 +0000795echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000796echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000797echo "/* Automatically generated by configure - do not modify */" > $config_h
798
799echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000800echo "bindir=\${prefix}$binsuffix" >> $config_mak
801echo "mandir=\${prefix}$mansuffix" >> $config_mak
802echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000803echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000804echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000805echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000806echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000807echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000808echo "HOST_CC=$host_cc" >> $config_mak
809echo "AR=$ar" >> $config_mak
810echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000811# XXX: only use CFLAGS and LDFLAGS ?
812# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
813# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000814echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000815echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
816echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
817echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000818echo "CFLAGS=$CFLAGS" >> $config_mak
819echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000820echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000821echo "AIOLIBS=$AIOLIBS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000822if test "$cpu" = "i386" ; then
823 echo "ARCH=i386" >> $config_mak
824 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000825elif test "$cpu" = "x86_64" ; then
826 echo "ARCH=x86_64" >> $config_mak
827 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000828elif test "$cpu" = "armv4b" ; then
829 echo "ARCH=arm" >> $config_mak
830 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000831elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000832 echo "ARCH=arm" >> $config_mak
833 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000834elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000835 echo "ARCH=ppc" >> $config_mak
836 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000837elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000838 echo "ARCH=mips" >> $config_mak
839 echo "#define HOST_MIPS 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +0000840elif test "$cpu" = "mips64" ; then
841 echo "ARCH=mips64" >> $config_mak
842 echo "#define HOST_MIPS64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +0000843elif test "$cpu" = "cris" ; then
844 echo "ARCH=cris" >> $config_mak
845 echo "#define HOST_CRIS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000846elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000847 echo "ARCH=s390" >> $config_mak
848 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000849elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000850 echo "ARCH=alpha" >> $config_mak
851 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000852elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000853 echo "ARCH=sparc" >> $config_mak
854 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000855elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000856 echo "ARCH=sparc64" >> $config_mak
857 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000858elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000859 echo "ARCH=ia64" >> $config_mak
860 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000861elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000862 echo "ARCH=m68k" >> $config_mak
863 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000864else
blueswir131422552007-04-16 18:27:06 +0000865 echo "Unsupported CPU = $cpu"
bellard7d132992003-03-06 23:23:54 +0000866 exit 1
867fi
868if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000869 echo "WORDS_BIGENDIAN=yes" >> $config_mak
870 echo "#define WORDS_BIGENDIAN 1" >> $config_h
871fi
bellardb6853692005-06-05 17:10:39 +0000872echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000873if test "$mingw32" = "yes" ; then
874 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000875 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000876else
877 cat > $TMPC << EOF
878#include <byteswap.h>
879int main(void) { return bswap_32(0); }
880EOF
pbrookdb7287e2008-02-03 16:27:13 +0000881 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000882 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
883 fi
bellard67b915a2004-03-31 23:37:16 +0000884fi
bellard83fb7ad2004-07-05 21:25:26 +0000885if test "$darwin" = "yes" ; then
886 echo "CONFIG_DARWIN=yes" >> $config_mak
887 echo "#define CONFIG_DARWIN 1" >> $config_h
888fi
bellardec530c82006-04-25 22:36:06 +0000889if test "$solaris" = "yes" ; then
890 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +0000891 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +0000892 if test "$needs_libsunmath" = "yes" ; then
893 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
894 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
895 fi
bellardec530c82006-04-25 22:36:06 +0000896fi
blueswir131422552007-04-16 18:27:06 +0000897if test -n "$sparc_cpu"; then
898 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
899 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
900fi
bellard67b915a2004-03-31 23:37:16 +0000901if test "$gdbstub" = "yes" ; then
902 echo "CONFIG_GDBSTUB=yes" >> $config_mak
903 echo "#define CONFIG_GDBSTUB 1" >> $config_h
904fi
bellard97a847b2003-08-10 21:36:04 +0000905if test "$gprof" = "yes" ; then
906 echo "TARGET_GPROF=yes" >> $config_mak
907 echo "#define HAVE_GPROF 1" >> $config_h
908fi
909if test "$static" = "yes" ; then
910 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000911 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000912fi
bellard05c2a3e2006-02-08 22:39:17 +0000913if test $profiler = "yes" ; then
914 echo "#define CONFIG_PROFILER 1" >> $config_h
915fi
bellardc20709a2004-04-21 23:27:19 +0000916if test "$slirp" = "yes" ; then
917 echo "CONFIG_SLIRP=yes" >> $config_mak
918 echo "#define CONFIG_SLIRP 1" >> $config_h
919fi
bellardfb065182004-11-09 23:09:44 +0000920if test "$adlib" = "yes" ; then
921 echo "CONFIG_ADLIB=yes" >> $config_mak
922 echo "#define CONFIG_ADLIB 1" >> $config_h
923fi
balroge5c9a132008-01-14 04:27:55 +0000924if test "$ac97" = "yes" ; then
925 echo "CONFIG_AC97=yes" >> $config_mak
926 echo "#define CONFIG_AC97 1" >> $config_h
927fi
balrog423d65f2008-01-14 22:09:11 +0000928if test "$gus" = "yes" ; then
929 echo "CONFIG_GUS=yes" >> $config_mak
930 echo "#define CONFIG_GUS 1" >> $config_h
931fi
bellardfb065182004-11-09 23:09:44 +0000932if test "$oss" = "yes" ; then
933 echo "CONFIG_OSS=yes" >> $config_mak
934 echo "#define CONFIG_OSS 1" >> $config_h
935fi
bellard1d14ffa2005-10-30 18:58:22 +0000936if test "$coreaudio" = "yes" ; then
937 echo "CONFIG_COREAUDIO=yes" >> $config_mak
938 echo "#define CONFIG_COREAUDIO 1" >> $config_h
939fi
940if test "$alsa" = "yes" ; then
941 echo "CONFIG_ALSA=yes" >> $config_mak
942 echo "#define CONFIG_ALSA 1" >> $config_h
943fi
balrogca9cc282008-01-14 04:24:29 +0000944if test "$esd" = "yes" ; then
945 echo "CONFIG_ESD=yes" >> $config_mak
946 echo "#define CONFIG_ESD 1" >> $config_h
947fi
bellard1d14ffa2005-10-30 18:58:22 +0000948if test "$dsound" = "yes" ; then
949 echo "CONFIG_DSOUND=yes" >> $config_mak
950 echo "#define CONFIG_DSOUND 1" >> $config_h
951fi
bellard102a52e2004-11-14 19:57:29 +0000952if test "$fmod" = "yes" ; then
953 echo "CONFIG_FMOD=yes" >> $config_mak
954 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
955 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
956 echo "#define CONFIG_FMOD 1" >> $config_h
957fi
ths8d5d2d42007-08-25 01:37:51 +0000958if test "$vnc_tls" = "yes" ; then
959 echo "CONFIG_VNC_TLS=yes" >> $config_mak
960 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
961 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
962 echo "#define CONFIG_VNC_TLS 1" >> $config_h
963fi
pbrookb1a550a2006-04-16 13:28:56 +0000964qemu_version=`head $source_path/VERSION`
965echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +0000966echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000967
968echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +0000969if [ "$source_path_used" = "yes" ]; then
970 echo "VPATH=$source_path" >> $config_mak
971fi
bellard97a847b2003-08-10 21:36:04 +0000972echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +0000973if [ "$build_docs" = "yes" ] ; then
974 echo "BUILD_DOCS=yes" >> $config_mak
975fi
bellard49ecc3f2007-11-07 19:25:15 +0000976if test "$static" = "yes"; then
977 sdl1=$sdl_static
978else
979 sdl1=$sdl
980fi
981if test "$sdl1" = "yes" ; then
982 echo "#define CONFIG_SDL 1" >> $config_h
983 echo "CONFIG_SDL=yes" >> $config_mak
984 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
985 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
986 else
987 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
988 fi
989 if [ "${aa}" = "yes" ] ; then
990 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
991 else
992 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
993 fi
994fi
995if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +0000996 echo "#define CONFIG_COCOA 1" >> $config_h
997 echo "CONFIG_COCOA=yes" >> $config_mak
998fi
999if test "$curses" = "yes" ; then
1000 echo "#define CONFIG_CURSES 1" >> $config_h
1001 echo "CONFIG_CURSES=yes" >> $config_mak
1002 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001003fi
bellard97a847b2003-08-10 21:36:04 +00001004
bellard83fb7ad2004-07-05 21:25:26 +00001005# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001006if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001007 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001008 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001009 echo "#define _BSD 1" >> $config_h
1010fi
1011
pbrookc5937222006-05-14 11:30:38 +00001012echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1013
pbrookc39e3332007-09-22 16:49:14 +00001014tools=
1015if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1016 tools="qemu-img\$(EXESUF) $tools"
1017fi
1018echo "TOOLS=$tools" >> $config_mak
1019
ths15d9ca02007-07-31 23:07:32 +00001020test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1021
bellard1d14ffa2005-10-30 18:58:22 +00001022for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001023target_dir="$target"
1024config_mak=$target_dir/config.mak
1025config_h=$target_dir/config.h
1026target_cpu=`echo $target | cut -d '-' -f 1`
1027target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001028[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +00001029[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +00001030[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
blueswir1992f48a2007-10-14 16:27:31 +00001031[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001032[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001033[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001034[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001035[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +00001036[ "$target_cpu" = "mips" ] && target_bigendian=yes
ths540635b2007-09-30 01:58:33 +00001037[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
thsfbe4f652007-04-01 11:16:48 +00001038[ "$target_cpu" = "mips64" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001039[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
pbrooke6e59062006-10-22 00:18:54 +00001040[ "$target_cpu" = "m68k" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001041target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001042target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001043target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001044target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001045case "$target" in
1046 ${target_cpu}-softmmu)
1047 target_softmmu="yes"
1048 ;;
1049 ${target_cpu}-linux-user)
1050 target_user_only="yes"
1051 target_linux_user="yes"
1052 ;;
1053 ${target_cpu}-darwin-user)
1054 target_user_only="yes"
1055 target_darwin_user="yes"
1056 ;;
1057 *)
1058 echo "ERROR: Target '$target' not recognised"
1059 exit 1
1060 ;;
1061esac
ths831b7822007-01-18 20:06:33 +00001062
bellard97ccc682005-07-02 13:32:17 +00001063if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001064 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001065 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001066 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001067 echo "Note that this will disable all output from the virtual graphics card"
1068 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001069 exit 1;
1070fi
1071
bellard7c1f25b2004-04-22 00:02:08 +00001072#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001073
ths15d9ca02007-07-31 23:07:32 +00001074test -f $config_h && mv $config_h ${config_h}~
1075
bellard97a847b2003-08-10 21:36:04 +00001076mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001077mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001078mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001079if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001080 mkdir -p $target_dir/nwfpe
1081fi
1082
bellardec530c82006-04-25 22:36:06 +00001083#
1084# don't use ln -sf as not all "ln -sf" over write the file/link
1085#
1086rm -f $target_dir/Makefile
1087ln -s $source_path/Makefile.target $target_dir/Makefile
1088
bellard97a847b2003-08-10 21:36:04 +00001089
1090echo "# Automatically generated by configure - do not modify" > $config_mak
1091echo "/* Automatically generated by configure - do not modify */" > $config_h
1092
1093
1094echo "include ../config-host.mak" >> $config_mak
1095echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001096
pbrooke5fe0c52006-06-11 13:32:59 +00001097bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001098elfload32="no"
bellard1e43adf2003-09-30 20:54:24 +00001099interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1100echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001101
1102if test "$target_cpu" = "i386" ; then
1103 echo "TARGET_ARCH=i386" >> $config_mak
1104 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1105 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001106 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +00001107 echo "#define USE_KQEMU 1" >> $config_h
1108 fi
bellard808c4952004-12-19 23:33:47 +00001109elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +00001110 echo "TARGET_ARCH=arm" >> $config_mak
1111 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1112 echo "#define TARGET_ARM 1" >> $config_h
pbrooke5fe0c52006-06-11 13:32:59 +00001113 bflt="yes"
bellard1e43adf2003-09-30 20:54:24 +00001114elif test "$target_cpu" = "sparc" ; then
1115 echo "TARGET_ARCH=sparc" >> $config_mak
1116 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1117 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +00001118elif test "$target_cpu" = "sparc64" ; then
1119 echo "TARGET_ARCH=sparc64" >> $config_mak
1120 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1121 echo "#define TARGET_SPARC 1" >> $config_h
1122 echo "#define TARGET_SPARC64 1" >> $config_h
blueswir1cb33da52007-10-09 16:34:29 +00001123 elfload32="yes"
blueswir1992f48a2007-10-14 16:27:31 +00001124elif test "$target_cpu" = "sparc32plus" ; then
1125 echo "TARGET_ARCH=sparc64" >> $config_mak
1126 echo "TARGET_ABI_DIR=sparc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001127 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
blueswir1992f48a2007-10-14 16:27:31 +00001128 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1129 echo "#define TARGET_SPARC 1" >> $config_h
1130 echo "#define TARGET_SPARC64 1" >> $config_h
1131 echo "#define TARGET_ABI32 1" >> $config_h
bellard67867302003-11-23 17:05:30 +00001132elif test "$target_cpu" = "ppc" ; then
1133 echo "TARGET_ARCH=ppc" >> $config_mak
1134 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1135 echo "#define TARGET_PPC 1" >> $config_h
j_mayerd4082e92007-04-24 07:34:03 +00001136elif test "$target_cpu" = "ppcemb" ; then
1137 echo "TARGET_ARCH=ppcemb" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001138 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayerd4082e92007-04-24 07:34:03 +00001139 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1140 echo "#define TARGET_PPC 1" >> $config_h
1141 echo "#define TARGET_PPCEMB 1" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001142elif test "$target_cpu" = "ppc64" ; then
1143 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayerf85e9a62007-10-18 20:51:49 +00001144 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001145 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001146 echo "#define TARGET_PPC 1" >> $config_h
1147 echo "#define TARGET_PPC64 1" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001148elif test "$target_cpu" = "ppc64abi32" ; then
1149 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001150 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001151 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001152 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001153 echo "#define TARGET_PPC 1" >> $config_h
1154 echo "#define TARGET_PPC64 1" >> $config_h
1155 echo "#define TARGET_ABI32 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +00001156elif test "$target_cpu" = "x86_64" ; then
1157 echo "TARGET_ARCH=x86_64" >> $config_mak
1158 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1159 echo "#define TARGET_I386 1" >> $config_h
1160 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001161 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1162 echo "#define USE_KQEMU 1" >> $config_h
1163 fi
bellardc20eb472005-12-06 21:42:55 +00001164elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +00001165 echo "TARGET_ARCH=mips" >> $config_mak
1166 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1167 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001168 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
ths540635b2007-09-30 01:58:33 +00001169elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1170 echo "TARGET_ARCH=mipsn32" >> $config_mak
1171 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1172 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001173 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +00001174elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1175 echo "TARGET_ARCH=mips64" >> $config_mak
1176 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1177 echo "#define TARGET_MIPS 1" >> $config_h
1178 echo "#define TARGET_MIPS64 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001179 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +00001180elif test "$target_cpu" = "cris" ; then
1181 echo "TARGET_ARCH=cris" >> $config_mak
1182 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1183 echo "#define TARGET_CRIS 1" >> $config_h
1184 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1185 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
pbrook908f52b2006-06-18 19:16:53 +00001186elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
bellardfdf9b3e2006-04-27 21:07:38 +00001187 echo "TARGET_ARCH=sh4" >> $config_mak
1188 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1189 echo "#define TARGET_SH4 1" >> $config_h
pbrook4dbed892006-06-17 20:01:14 +00001190 bflt="yes"
pbrooke6e59062006-10-22 00:18:54 +00001191elif test "$target_cpu" = "m68k" ; then
1192 echo "TARGET_ARCH=m68k" >> $config_mak
1193 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1194 echo "#define TARGET_M68K 1" >> $config_h
1195 bflt="yes"
j_mayercf6c1b12007-04-05 20:46:02 +00001196elif test "$target_cpu" = "alpha" ; then
1197 echo "TARGET_ARCH=alpha" >> $config_mak
1198 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1199 echo "#define TARGET_ALPHA 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001200else
1201 echo "Unsupported target CPU"
1202 exit 1
1203fi
1204if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001205 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1206 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1207fi
1208if test "$target_softmmu" = "yes" ; then
1209 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1210 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001211fi
bellard997344f2003-10-27 21:10:39 +00001212if test "$target_user_only" = "yes" ; then
1213 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1214 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1215fi
ths831b7822007-01-18 20:06:33 +00001216if test "$target_linux_user" = "yes" ; then
1217 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1218 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1219fi
1220if test "$target_darwin_user" = "yes" ; then
1221 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1222 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1223fi
bellardde83cd02003-06-15 20:25:43 +00001224
blueswir1992f48a2007-10-14 16:27:31 +00001225if 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 +00001226 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1227 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1228fi
pbrooke5fe0c52006-06-11 13:32:59 +00001229if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1230 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1231 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1232fi
blueswir1cb33da52007-10-09 16:34:29 +00001233# 32 bit ELF loader in addition to native 64 bit loader?
1234if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1235 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1236 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1237fi
bellard5b0753e2005-03-01 21:37:28 +00001238
ths15d9ca02007-07-31 23:07:32 +00001239test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1240
bellard97a847b2003-08-10 21:36:04 +00001241done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001242
1243# build tree in object directory if source path is different from current one
1244if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001245 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001246 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001247 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001248 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001249 for dir in $DIRS ; do
1250 mkdir -p $dir
1251 done
bellardec530c82006-04-25 22:36:06 +00001252 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001253 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001254 rm -f $f
1255 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001256 done
1257fi
bellard7d132992003-03-06 23:23:54 +00001258
bellard97a847b2003-08-10 21:36:04 +00001259rm -f $TMPO $TMPC $TMPE $TMPS