blob: eaf24e51ab67d92d596a439c3fa6d4ea3c68f41d [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 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000038 x86_64|amd64)
39 cpu="x86_64"
40 ;;
41 alpha)
42 cpu="alpha"
43 ;;
bellardba680552005-03-13 09:49:52 +000044 armv*b)
bellard808c4952004-12-19 23:33:47 +000045 cpu="armv4b"
46 ;;
bellardba680552005-03-13 09:49:52 +000047 armv*l)
bellard7d132992003-03-06 23:23:54 +000048 cpu="armv4l"
49 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000050 cris)
51 cpu="cris"
bellard7d132992003-03-06 23:23:54 +000052 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000053 ia64)
54 cpu="ia64"
55 ;;
56 m68k)
57 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000058 ;;
59 mips)
60 cpu="mips"
61 ;;
thsfbe4f652007-04-01 11:16:48 +000062 mips64)
63 cpu="mips64"
64 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000065 "Power Macintosh"|ppc|ppc64)
66 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000067 ;;
ths0e7b8a92007-08-01 00:09:31 +000068 s390*)
bellardfb3e5842003-03-29 17:32:36 +000069 cpu="s390"
70 ;;
blueswir131422552007-04-16 18:27:06 +000071 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000072 cpu="sparc"
73 ;;
74 sparc64)
75 cpu="sparc64"
76 ;;
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 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000289 --disable-brlapi) brlapi="no"
290 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000291 --enable-profiler) profiler="yes"
292 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000293 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
294 ;;
bellard97ccc682005-07-02 13:32:17 +0000295 --disable-gfx-check) check_gfx="no"
296 ;;
bellard1aff3812005-11-02 22:30:45 +0000297 --disable-gcc-check) check_gcc="no"
298 ;;
pbrookcad25d62006-03-19 16:31:11 +0000299 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000300 ;;
pbrookcad25d62006-03-19 16:31:11 +0000301 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000302 ;;
ths831b7822007-01-18 20:06:33 +0000303 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000304 ;;
ths831b7822007-01-18 20:06:33 +0000305 --enable-linux-user) linux_user="yes"
306 ;;
307 --disable-darwin-user) darwin_user="no"
308 ;;
309 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000310 ;;
pbrookc5937222006-05-14 11:30:38 +0000311 --enable-uname-release=*) uname_release="$optarg"
312 ;;
blueswir131422552007-04-16 18:27:06 +0000313 --sparc_cpu=*)
314 sparc_cpu="$optarg"
315 case $sparc_cpu in
316 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
317 target_cpu="sparc"; cpu="sparc" ;;
318 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
319 target_cpu="sparc"; cpu="sparc" ;;
320 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
321 target_cpu="sparc64"; cpu="sparc64" ;;
322 *) echo "undefined SPARC architecture. Exiting";exit 1;;
323 esac
324 ;;
bellard85aa5182007-11-11 20:17:03 +0000325 --enable-werror) werror="yes"
326 ;;
327 --disable-werror) werror="no"
328 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000329 --disable-curses) curses="no"
330 ;;
balrog7f1559c2007-11-17 10:24:32 +0000331 *) echo "ERROR: unknown option $opt"; show_help="yes"
332 ;;
bellard7d132992003-03-06 23:23:54 +0000333 esac
334done
335
ths209afb92007-03-25 20:55:00 +0000336if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
337 AIOLIBS=
338else
ths4259e1a2007-11-05 13:27:21 +0000339 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
340 AIOLIBS="-lrt -lpthread"
ths209afb92007-03-25 20:55:00 +0000341fi
342
ths6f30fa82007-01-05 01:00:47 +0000343# default flags for all hosts
344CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
345LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000346if test "$werror" = "yes" ; then
347CFLAGS="$CFLAGS -Werror"
348fi
ths6f30fa82007-01-05 01:00:47 +0000349
blueswir131422552007-04-16 18:27:06 +0000350#
351# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
352# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
353#
bellard40293e52008-01-31 11:32:10 +0000354case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000355 sparc) if test -z "$sparc_cpu" ; then
356 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
357 ARCH_LDFLAGS="-m32"
358 else
359 ARCH_CFLAGS="${SP_CFLAGS}"
360 ARCH_LDFLAGS="${SP_LDFLAGS}"
361 fi
362 ;;
363 sparc64) if test -z "$sparc_cpu" ; then
364 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
365 ARCH_LDFLAGS="-m64"
366 else
367 ARCH_CFLAGS="${SP_CFLAGS}"
368 ARCH_LDFLAGS="${SP_LDFLAGS}"
369 fi
370 ;;
ths76d83bd2007-11-18 21:22:10 +0000371 s390)
372 ARCH_CFLAGS="-march=z900"
373 ;;
bellard40293e52008-01-31 11:32:10 +0000374 i386)
375 ARCH_CFLAGS="-m32"
376 ARCH_LDFLAGS="-m32"
377 ;;
378 x86_64)
379 ARCH_CFLAGS="-m64"
380 ARCH_LDFLAGS="-m64"
381 ;;
blueswir131422552007-04-16 18:27:06 +0000382esac
383
pbrookaf5db582006-04-08 14:26:41 +0000384if test x"$show_help" = x"yes" ; then
385cat << EOF
386
387Usage: configure [options]
388Options: [defaults in brackets after descriptions]
389
390EOF
391echo "Standard options:"
392echo " --help print this message"
393echo " --prefix=PREFIX install in PREFIX [$prefix]"
394echo " --interp-prefix=PREFIX where to find shared libraries, etc."
395echo " use %M for cpu name [$interp_prefix]"
396echo " --target-list=LIST set target list [$target_list]"
397echo ""
398echo "kqemu kernel acceleration support:"
399echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000400echo ""
401echo "Advanced options (experts only):"
402echo " --source-path=PATH path of source code [$source_path]"
403echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
404echo " --cc=CC use C compiler CC [$cc]"
405echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
406echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000407echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000408echo " --static enable static build [$static]"
bellard85aa5182007-11-11 20:17:03 +0000409echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000410echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000411echo " --enable-cocoa enable COCOA (Mac OS X only)"
412echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
413echo " --enable-adlib enable Adlib emulation"
balroge5c9a132008-01-14 04:27:55 +0000414echo " --enable-ac97 enable AC97 emulation"
balrog423d65f2008-01-14 22:09:11 +0000415echo " --enable-gus enable Gravis Ultrasound emulation"
pbrookaf5db582006-04-08 14:26:41 +0000416echo " --enable-coreaudio enable Coreaudio audio driver"
417echo " --enable-alsa enable ALSA audio driver"
balrogca9cc282008-01-14 04:24:29 +0000418echo " --enable-esd enable EsoundD audio driver"
pbrookaf5db582006-04-08 14:26:41 +0000419echo " --enable-fmod enable FMOD audio driver"
thsed5065e2007-03-25 16:15:21 +0000420echo " --enable-dsound enable DirectSound audio driver"
aurel322e4d9fb2008-04-08 06:01:02 +0000421echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000422echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000423echo " --disable-curses disable curses output"
pbrookaf5db582006-04-08 14:26:41 +0000424echo " --enable-system enable all system emulation targets"
425echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000426echo " --enable-linux-user enable all linux usermode emulation targets"
427echo " --disable-linux-user disable all linux usermode emulation targets"
428echo " --enable-darwin-user enable all darwin usermode emulation targets"
429echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000430echo " --fmod-lib path to FMOD library"
431echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000432echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000433echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000434echo ""
ths5bf08932006-12-23 00:33:26 +0000435echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000436exit 1
437fi
438
bellard7d132992003-03-06 23:23:54 +0000439cc="${cross_prefix}${cc}"
440ar="${cross_prefix}${ar}"
441strip="${cross_prefix}${strip}"
442
pbrook064aae12006-05-08 00:51:44 +0000443# check that the C compiler works.
444cat > $TMPC <<EOF
445int main(void) {}
446EOF
447
pbrookdb7287e2008-02-03 16:27:13 +0000448if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000449 : C compiler works ok
450else
451 echo "ERROR: \"$cc\" either does not exist or does not work"
452 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000453fi
454
bellard67b915a2004-03-31 23:37:16 +0000455if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000456 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000457 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000458 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000459fi
460
ths5fafdf22007-09-16 21:08:06 +0000461# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000462if test "$check_gcc" = "yes" ; then
463 cat > $TMPC <<EOF
464#if __GNUC__ < 4
465#error gcc3
466#endif
467int main(){return 0;}
468EOF
pbrookdb7287e2008-02-03 16:27:13 +0000469 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000470 echo "WARNING: \"$cc\" looks like gcc 4.x"
471 found_compat_cc="no"
472 if test "$gcc3_search" = "yes" ; then
473 echo "Looking for gcc 3.x"
474 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000475 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000476 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000477 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000478 found_compat_cc="yes"
479 break
480 fi
481 done
482 if test "$found_compat_cc" = "no" ; then
483 echo "gcc 3.x not found!"
484 fi
485 fi
486 if test "$found_compat_cc" = "no" ; then
487 echo "QEMU is known to have problems when compiled with gcc 4.x"
488 echo "It is recommended that you use gcc 3.x to build QEMU"
489 echo "To use this compiler anyway, configure with --disable-gcc-check"
490 exit 1;
491 fi
492 fi
493fi
494
bellardec530c82006-04-25 22:36:06 +0000495#
496# Solaris specific configure tool chain decisions
497#
498if test "$solaris" = "yes" ; then
499 #
500 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
501 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000502 #
bellardec530c82006-04-25 22:36:06 +0000503 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
504 solgcc=`which $cc`
505 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
506 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
507 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
508 echo "or get the latest patch from SunSolve for gcc"
509 exit 1
510 fi
511 fi
512 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
513 if test -z "$solinst" ; then
514 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
515 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
516 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
517 exit 1
518 fi
519 if test "$solinst" = "/usr/sbin/install" ; then
520 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
521 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
522 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
523 exit 1
524 fi
bellardec530c82006-04-25 22:36:06 +0000525 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
526 if test -z "$sol_ar" ; then
527 echo "Error: No path includes ar"
528 if test -f /usr/ccs/bin/ar ; then
529 echo "Add /usr/ccs/bin to your path and rerun configure"
530 fi
531 exit 1
532 fi
ths5fafdf22007-09-16 21:08:06 +0000533fi
bellardec530c82006-04-25 22:36:06 +0000534
535
bellard5327cf42005-01-10 23:18:50 +0000536if test -z "$target_list" ; then
537# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000538 if [ "$softmmu" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000539 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 +0000540 fi
bellard5327cf42005-01-10 23:18:50 +0000541# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000542 if [ "$linux_user" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000543 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 +0000544 fi
545# the following are Darwin specific
546 if [ "$darwin_user" = "yes" ] ; then
547 target_list="i386-darwin-user ppc-darwin-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000548 fi
bellard6e20a452005-06-05 15:56:02 +0000549else
pbrookb1a550a2006-04-16 13:28:56 +0000550 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000551fi
pbrook0a8e90f2006-03-19 14:54:16 +0000552if test -z "$target_list" ; then
553 echo "No targets enabled"
554 exit 1
555fi
bellard5327cf42005-01-10 23:18:50 +0000556
bellard7d132992003-03-06 23:23:54 +0000557if test -z "$cross_prefix" ; then
558
559# ---
560# big/little endian test
561cat > $TMPC << EOF
562#include <inttypes.h>
563int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000564 volatile uint32_t i=0x01234567;
565 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000566}
567EOF
568
pbrookdb7287e2008-02-03 16:27:13 +0000569if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000570$TMPE && bigendian="yes"
571else
572echo big/little test failed
573fi
574
575else
576
577# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000578if test "$cpu" = "armv4b" \
579 -o "$cpu" = "m68k" \
580 -o "$cpu" = "mips" \
581 -o "$cpu" = "mips64" \
582 -o "$cpu" = "powerpc" \
583 -o "$cpu" = "s390" \
584 -o "$cpu" = "sparc" \
585 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000586 bigendian="yes"
587fi
588
589fi
590
bellardb6853692005-06-05 17:10:39 +0000591# host long bits test
592hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000593if test "$cpu" = "x86_64" \
594 -o "$cpu" = "alpha" \
595 -o "$cpu" = "ia64" \
596 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000597 hostlongbits="64"
598fi
599
bellarde8cd23d2003-06-25 16:08:13 +0000600# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000601cat > $TMPC <<EOF
602int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000603}
604EOF
605
bellard11d9f692004-04-02 20:55:59 +0000606##########################################
607# SDL probe
608
609sdl_too_old=no
610
611if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000612 sdl_config="sdl-config"
613 sdl=no
614 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000615
ths069b0bd2007-07-12 00:27:15 +0000616 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
617 # win32 cross compilation case
618 sdl_config="i386-mingw32msvc-sdl-config"
619 sdl=yes
620 else
621 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000622cat > $TMPC << EOF
623#include <SDL.h>
624#undef main /* We don't want SDL to override our main() */
625int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
626EOF
pbrookdb7287e2008-02-03 16:27:13 +0000627 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 +0000628 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
629 if test "$_sdlversion" -lt 121 ; then
630 sdl_too_old=yes
631 else
632 if test "$cocoa" = "no" ; then
633 sdl=yes
634 fi
635 fi
bellard11d9f692004-04-02 20:55:59 +0000636
ths069b0bd2007-07-12 00:27:15 +0000637 # static link with sdl ?
638 if test "$sdl" = "yes" ; then
639 aa="no"
640 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
641 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
642 if [ "$aa" = "yes" ] ; then
643 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
644 fi
645
ths8281db42007-11-18 21:37:07 +0000646 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 +0000647 sdl_static=yes
648 fi
649 fi # static link
650 fi # sdl compile test
651 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000652else
ths069b0bd2007-07-12 00:27:15 +0000653 # Make sure to disable cocoa if sdl was set
654 if test "$sdl" = "yes" ; then
655 cocoa="no"
656 coreaudio="no"
657 fi
bellarda6e022a2004-04-02 21:55:47 +0000658fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000659
ths8f28f3f2007-01-05 21:25:54 +0000660##########################################
ths8d5d2d42007-08-25 01:37:51 +0000661# VNC TLS detection
662if test "$vnc_tls" = "yes" ; then
663 `pkg-config gnutls` || vnc_tls="no"
664fi
665if test "$vnc_tls" = "yes" ; then
666 vnc_tls_cflags=`pkg-config --cflags gnutls`
667 vnc_tls_libs=`pkg-config --libs gnutls`
668fi
669
670##########################################
ths8f28f3f2007-01-05 21:25:54 +0000671# alsa sound support libraries
672
673if test "$alsa" = "yes" ; then
674 cat > $TMPC << EOF
675#include <alsa/asoundlib.h>
676int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
677EOF
pbrookdb7287e2008-02-03 16:27:13 +0000678 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000679 :
680 else
681 echo
682 echo "Error: Could not find alsa"
683 echo "Make sure to have the alsa libs and headers installed."
684 echo
685 exit 1
686 fi
687fi
688
balrog4d3b6f62008-02-10 16:33:14 +0000689##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000690# BrlAPI probe
691
692if test -z "$brlapi" ; then
693 brlapi=no
694cat > $TMPC << EOF
695#include <brlapi.h>
696int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
697EOF
698 if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then
699 brlapi=yes
700 fi # brlapi compile test
701fi # -z $brlapi
702
703##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000704# curses probe
705
706if test "$curses" = "yes" ; then
707 curses=no
708 cat > $TMPC << EOF
709#include <curses.h>
710int main(void) { return curses_version(); }
711EOF
pbrookaf896aa2008-03-23 00:47:42 +0000712 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000713 curses=yes
714 fi
715fi # test "$curses"
716
pbrookcc8ae6d2006-04-23 17:57:59 +0000717# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000718if [ -x "`which texi2html 2>/dev/null`" ] && \
719 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000720 build_docs="yes"
721fi
722
bellard11d9f692004-04-02 20:55:59 +0000723if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000724 if test -z "$prefix" ; then
725 prefix="/c/Program Files/Qemu"
726 fi
727 mansuffix=""
728 datasuffix=""
729 docsuffix=""
730 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000731else
pbrook308c3592007-02-27 00:52:01 +0000732 if test -z "$prefix" ; then
733 prefix="/usr/local"
734 fi
735 mansuffix="/share/man"
736 datasuffix="/share/qemu"
737 docsuffix="/share/doc/qemu"
738 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000739fi
bellard5a671352003-10-01 00:13:48 +0000740
bellard43ce4df2003-06-09 19:53:12 +0000741echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000742echo "BIOS directory $prefix$datasuffix"
743echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000744if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000745echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000746echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000747fi
bellard5a671352003-10-01 00:13:48 +0000748echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000749echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000750echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000751echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000752echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000753echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000754echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000755echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000756echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000757echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000758echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000759echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000760echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000761if test "$darwin" = "yes" ; then
762 echo "Cocoa support $cocoa"
763fi
bellard97a847b2003-08-10 21:36:04 +0000764echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000765if test "$sdl" != "no" ; then
766 echo "SDL static link $sdl_static"
767fi
balrog4d3b6f62008-02-10 16:33:14 +0000768echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000769echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000770echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000771echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000772echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000773echo "CoreAudio support $coreaudio"
774echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000775echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000776echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000777if test "$fmod" = "yes"; then
778 if test -z $fmod_lib || test -z $fmod_inc; then
779 echo
780 echo "Error: You must specify path to FMOD library and headers"
781 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
782 echo
783 exit 1
784 fi
pbrookb1a550a2006-04-16 13:28:56 +0000785 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
786else
787 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000788fi
pbrookb1a550a2006-04-16 13:28:56 +0000789echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000790echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000791echo "VNC TLS support $vnc_tls"
792if test "$vnc_tls" = "yes" ; then
793 echo " TLS CFLAGS $vnc_tls_cflags"
794 echo " TLS LIBS $vnc_tls_libs"
795fi
blueswir131422552007-04-16 18:27:06 +0000796if test -n "$sparc_cpu"; then
797 echo "Target Sparc Arch $sparc_cpu"
798fi
bellard07f4ddb2005-04-23 17:44:28 +0000799echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000800echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000801echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000802[ ! -z "$uname_release" ] && \
803echo "uname -r $uname_release"
bellard67b915a2004-03-31 23:37:16 +0000804
bellard97a847b2003-08-10 21:36:04 +0000805if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000806echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000807fi
ths20b40c62007-07-11 23:39:45 +0000808if [ -s /tmp/qemu-$$-sdl-config.log ]; then
809 echo "The error log from compiling the libSDL test is: "
810 cat /tmp/qemu-$$-sdl-config.log
811fi
812rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000813#if test "$sdl_static" = "no"; then
814# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
815#fi
bellard97a847b2003-08-10 21:36:04 +0000816config_mak="config-host.mak"
817config_h="config-host.h"
818
bellard7c1f25b2004-04-22 00:02:08 +0000819#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000820
ths15d9ca02007-07-31 23:07:32 +0000821test -f $config_h && mv $config_h ${config_h}~
822
bellard97a847b2003-08-10 21:36:04 +0000823echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000824echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000825echo "/* Automatically generated by configure - do not modify */" > $config_h
826
827echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000828echo "bindir=\${prefix}$binsuffix" >> $config_mak
829echo "mandir=\${prefix}$mansuffix" >> $config_mak
830echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000831echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000832echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000833echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000834echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000835echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000836echo "HOST_CC=$host_cc" >> $config_mak
837echo "AR=$ar" >> $config_mak
838echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000839# XXX: only use CFLAGS and LDFLAGS ?
840# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
841# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000842echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000843echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
844echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
845echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000846echo "CFLAGS=$CFLAGS" >> $config_mak
847echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000848echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000849echo "AIOLIBS=$AIOLIBS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000850if test "$cpu" = "i386" ; then
851 echo "ARCH=i386" >> $config_mak
852 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000853elif test "$cpu" = "x86_64" ; then
854 echo "ARCH=x86_64" >> $config_mak
855 echo "#define HOST_X86_64 1" >> $config_h
aurel320938cda2008-04-11 21:36:06 +0000856elif test "$cpu" = "alpha" ; then
857 echo "ARCH=alpha" >> $config_mak
858 echo "#define HOST_ALPHA 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000859elif test "$cpu" = "armv4b" ; then
860 echo "ARCH=arm" >> $config_mak
861 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000862elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000863 echo "ARCH=arm" >> $config_mak
864 echo "#define HOST_ARM 1" >> $config_h
thse7daa602007-10-08 13:38:27 +0000865elif test "$cpu" = "cris" ; then
866 echo "ARCH=cris" >> $config_mak
867 echo "#define HOST_CRIS 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000868elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000869 echo "ARCH=ia64" >> $config_mak
870 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000871elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000872 echo "ARCH=m68k" >> $config_mak
873 echo "#define HOST_M68K 1" >> $config_h
aurel320938cda2008-04-11 21:36:06 +0000874elif test "$cpu" = "mips" ; then
875 echo "ARCH=mips" >> $config_mak
876 echo "#define HOST_MIPS 1" >> $config_h
877elif test "$cpu" = "mips64" ; then
878 echo "ARCH=mips64" >> $config_mak
879 echo "#define HOST_MIPS64 1" >> $config_h
880elif test "$cpu" = "powerpc" ; then
881 echo "ARCH=ppc" >> $config_mak
882 echo "#define HOST_PPC 1" >> $config_h
883elif test "$cpu" = "s390" ; then
884 echo "ARCH=s390" >> $config_mak
885 echo "#define HOST_S390 1" >> $config_h
886elif test "$cpu" = "sparc" ; then
887 echo "ARCH=sparc" >> $config_mak
888 echo "#define HOST_SPARC 1" >> $config_h
889elif test "$cpu" = "sparc64" ; then
890 echo "ARCH=sparc64" >> $config_mak
891 echo "#define HOST_SPARC64 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000892else
blueswir131422552007-04-16 18:27:06 +0000893 echo "Unsupported CPU = $cpu"
bellard7d132992003-03-06 23:23:54 +0000894 exit 1
895fi
896if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000897 echo "WORDS_BIGENDIAN=yes" >> $config_mak
898 echo "#define WORDS_BIGENDIAN 1" >> $config_h
899fi
bellardb6853692005-06-05 17:10:39 +0000900echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000901if test "$mingw32" = "yes" ; then
902 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000903 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000904else
905 cat > $TMPC << EOF
906#include <byteswap.h>
907int main(void) { return bswap_32(0); }
908EOF
pbrookdb7287e2008-02-03 16:27:13 +0000909 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000910 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
911 fi
bellard67b915a2004-03-31 23:37:16 +0000912fi
bellard83fb7ad2004-07-05 21:25:26 +0000913if test "$darwin" = "yes" ; then
914 echo "CONFIG_DARWIN=yes" >> $config_mak
915 echo "#define CONFIG_DARWIN 1" >> $config_h
916fi
bellardec530c82006-04-25 22:36:06 +0000917if test "$solaris" = "yes" ; then
918 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +0000919 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +0000920 if test "$needs_libsunmath" = "yes" ; then
921 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
922 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
923 fi
bellardec530c82006-04-25 22:36:06 +0000924fi
blueswir131422552007-04-16 18:27:06 +0000925if test -n "$sparc_cpu"; then
926 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
927 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
928fi
bellard67b915a2004-03-31 23:37:16 +0000929if test "$gdbstub" = "yes" ; then
930 echo "CONFIG_GDBSTUB=yes" >> $config_mak
931 echo "#define CONFIG_GDBSTUB 1" >> $config_h
932fi
bellard97a847b2003-08-10 21:36:04 +0000933if test "$gprof" = "yes" ; then
934 echo "TARGET_GPROF=yes" >> $config_mak
935 echo "#define HAVE_GPROF 1" >> $config_h
936fi
937if test "$static" = "yes" ; then
938 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000939 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000940fi
bellard05c2a3e2006-02-08 22:39:17 +0000941if test $profiler = "yes" ; then
942 echo "#define CONFIG_PROFILER 1" >> $config_h
943fi
bellardc20709a2004-04-21 23:27:19 +0000944if test "$slirp" = "yes" ; then
945 echo "CONFIG_SLIRP=yes" >> $config_mak
946 echo "#define CONFIG_SLIRP 1" >> $config_h
947fi
bellardfb065182004-11-09 23:09:44 +0000948if test "$adlib" = "yes" ; then
949 echo "CONFIG_ADLIB=yes" >> $config_mak
950 echo "#define CONFIG_ADLIB 1" >> $config_h
951fi
balroge5c9a132008-01-14 04:27:55 +0000952if test "$ac97" = "yes" ; then
953 echo "CONFIG_AC97=yes" >> $config_mak
954 echo "#define CONFIG_AC97 1" >> $config_h
955fi
balrog423d65f2008-01-14 22:09:11 +0000956if test "$gus" = "yes" ; then
957 echo "CONFIG_GUS=yes" >> $config_mak
958 echo "#define CONFIG_GUS 1" >> $config_h
959fi
bellardfb065182004-11-09 23:09:44 +0000960if test "$oss" = "yes" ; then
961 echo "CONFIG_OSS=yes" >> $config_mak
962 echo "#define CONFIG_OSS 1" >> $config_h
963fi
bellard1d14ffa2005-10-30 18:58:22 +0000964if test "$coreaudio" = "yes" ; then
965 echo "CONFIG_COREAUDIO=yes" >> $config_mak
966 echo "#define CONFIG_COREAUDIO 1" >> $config_h
967fi
968if test "$alsa" = "yes" ; then
969 echo "CONFIG_ALSA=yes" >> $config_mak
970 echo "#define CONFIG_ALSA 1" >> $config_h
971fi
balrogca9cc282008-01-14 04:24:29 +0000972if test "$esd" = "yes" ; then
973 echo "CONFIG_ESD=yes" >> $config_mak
974 echo "#define CONFIG_ESD 1" >> $config_h
975fi
bellard1d14ffa2005-10-30 18:58:22 +0000976if test "$dsound" = "yes" ; then
977 echo "CONFIG_DSOUND=yes" >> $config_mak
978 echo "#define CONFIG_DSOUND 1" >> $config_h
979fi
bellard102a52e2004-11-14 19:57:29 +0000980if test "$fmod" = "yes" ; then
981 echo "CONFIG_FMOD=yes" >> $config_mak
982 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
983 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
984 echo "#define CONFIG_FMOD 1" >> $config_h
985fi
ths8d5d2d42007-08-25 01:37:51 +0000986if test "$vnc_tls" = "yes" ; then
987 echo "CONFIG_VNC_TLS=yes" >> $config_mak
988 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
989 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
990 echo "#define CONFIG_VNC_TLS 1" >> $config_h
991fi
pbrookb1a550a2006-04-16 13:28:56 +0000992qemu_version=`head $source_path/VERSION`
993echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +0000994echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000995
996echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +0000997if [ "$source_path_used" = "yes" ]; then
998 echo "VPATH=$source_path" >> $config_mak
999fi
bellard97a847b2003-08-10 21:36:04 +00001000echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001001if [ "$build_docs" = "yes" ] ; then
1002 echo "BUILD_DOCS=yes" >> $config_mak
1003fi
bellard49ecc3f2007-11-07 19:25:15 +00001004if test "$static" = "yes"; then
1005 sdl1=$sdl_static
1006else
1007 sdl1=$sdl
1008fi
1009if test "$sdl1" = "yes" ; then
1010 echo "#define CONFIG_SDL 1" >> $config_h
1011 echo "CONFIG_SDL=yes" >> $config_mak
1012 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1013 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1014 else
1015 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1016 fi
1017 if [ "${aa}" = "yes" ] ; then
1018 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1019 else
1020 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1021 fi
1022fi
1023if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001024 echo "#define CONFIG_COCOA 1" >> $config_h
1025 echo "CONFIG_COCOA=yes" >> $config_mak
1026fi
1027if test "$curses" = "yes" ; then
1028 echo "#define CONFIG_CURSES 1" >> $config_h
1029 echo "CONFIG_CURSES=yes" >> $config_mak
1030 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001031fi
aurel322e4d9fb2008-04-08 06:01:02 +00001032if test "$brlapi" = "yes" ; then
1033 echo "CONFIG_BRLAPI=yes" >> $config_mak
1034 echo "#define CONFIG_BRLAPI 1" >> $config_h
1035 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1036fi
bellard97a847b2003-08-10 21:36:04 +00001037
bellard83fb7ad2004-07-05 21:25:26 +00001038# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001039if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001040 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001041 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001042 echo "#define _BSD 1" >> $config_h
1043fi
1044
pbrookc5937222006-05-14 11:30:38 +00001045echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1046
pbrookc39e3332007-09-22 16:49:14 +00001047tools=
1048if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1049 tools="qemu-img\$(EXESUF) $tools"
1050fi
1051echo "TOOLS=$tools" >> $config_mak
1052
ths15d9ca02007-07-31 23:07:32 +00001053test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1054
bellard1d14ffa2005-10-30 18:58:22 +00001055for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001056target_dir="$target"
1057config_mak=$target_dir/config.mak
1058config_h=$target_dir/config.h
1059target_cpu=`echo $target | cut -d '-' -f 1`
1060target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001061[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001062[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1063[ "$target_cpu" = "mips" ] && target_bigendian=yes
1064[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1065[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001066[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001067[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001068[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001069[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001070[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001071[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1072[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1073[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001074target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001075target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001076target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001077target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001078case "$target" in
1079 ${target_cpu}-softmmu)
1080 target_softmmu="yes"
1081 ;;
1082 ${target_cpu}-linux-user)
1083 target_user_only="yes"
1084 target_linux_user="yes"
1085 ;;
1086 ${target_cpu}-darwin-user)
1087 target_user_only="yes"
1088 target_darwin_user="yes"
1089 ;;
1090 *)
1091 echo "ERROR: Target '$target' not recognised"
1092 exit 1
1093 ;;
1094esac
ths831b7822007-01-18 20:06:33 +00001095
bellard97ccc682005-07-02 13:32:17 +00001096if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001097 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001098 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001099 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001100 echo "Note that this will disable all output from the virtual graphics card"
1101 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001102 exit 1;
1103fi
1104
bellard7c1f25b2004-04-22 00:02:08 +00001105#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001106
ths15d9ca02007-07-31 23:07:32 +00001107test -f $config_h && mv $config_h ${config_h}~
1108
bellard97a847b2003-08-10 21:36:04 +00001109mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001110mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001111mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001112if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001113 mkdir -p $target_dir/nwfpe
1114fi
1115
bellardec530c82006-04-25 22:36:06 +00001116#
1117# don't use ln -sf as not all "ln -sf" over write the file/link
1118#
1119rm -f $target_dir/Makefile
1120ln -s $source_path/Makefile.target $target_dir/Makefile
1121
bellard97a847b2003-08-10 21:36:04 +00001122
1123echo "# Automatically generated by configure - do not modify" > $config_mak
1124echo "/* Automatically generated by configure - do not modify */" > $config_h
1125
1126
1127echo "include ../config-host.mak" >> $config_mak
1128echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001129
pbrooke5fe0c52006-06-11 13:32:59 +00001130bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001131elfload32="no"
bellard1e43adf2003-09-30 20:54:24 +00001132interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1133echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001134
1135if test "$target_cpu" = "i386" ; then
1136 echo "TARGET_ARCH=i386" >> $config_mak
1137 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1138 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001139 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +00001140 echo "#define USE_KQEMU 1" >> $config_h
1141 fi
aurel320938cda2008-04-11 21:36:06 +00001142elif test "$target_cpu" = "x86_64" ; then
1143 echo "TARGET_ARCH=x86_64" >> $config_mak
1144 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1145 echo "#define TARGET_I386 1" >> $config_h
1146 echo "#define TARGET_X86_64 1" >> $config_h
1147 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1148 echo "#define USE_KQEMU 1" >> $config_h
1149 fi
1150elif test "$target_cpu" = "alpha" ; then
1151 echo "TARGET_ARCH=alpha" >> $config_mak
1152 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1153 echo "#define TARGET_ALPHA 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +00001154elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +00001155 echo "TARGET_ARCH=arm" >> $config_mak
pbrook663715f2008-03-31 03:49:36 +00001156 echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001157 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1158 echo "#define TARGET_ARM 1" >> $config_h
pbrook663715f2008-03-31 03:49:36 +00001159 echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h
pbrooke5fe0c52006-06-11 13:32:59 +00001160 bflt="yes"
aurel320938cda2008-04-11 21:36:06 +00001161elif test "$target_cpu" = "cris" ; then
1162 echo "TARGET_ARCH=cris" >> $config_mak
1163 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1164 echo "#define TARGET_CRIS 1" >> $config_h
1165 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1166 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1167elif test "$target_cpu" = "m68k" ; then
1168 echo "TARGET_ARCH=m68k" >> $config_mak
1169 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1170 echo "#define TARGET_M68K 1" >> $config_h
1171 bflt="yes"
1172elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1173 echo "TARGET_ARCH=mips" >> $config_mak
1174 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1175 echo "#define TARGET_MIPS 1" >> $config_h
1176 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1177elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1178 echo "TARGET_ARCH=mipsn32" >> $config_mak
1179 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1180 echo "#define TARGET_MIPS 1" >> $config_h
1181 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1182elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1183 echo "TARGET_ARCH=mips64" >> $config_mak
1184 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1185 echo "#define TARGET_MIPS 1" >> $config_h
1186 echo "#define TARGET_MIPS64 1" >> $config_h
1187 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +00001188elif test "$target_cpu" = "ppc" ; then
1189 echo "TARGET_ARCH=ppc" >> $config_mak
1190 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1191 echo "#define TARGET_PPC 1" >> $config_h
j_mayerd4082e92007-04-24 07:34:03 +00001192elif test "$target_cpu" = "ppcemb" ; then
1193 echo "TARGET_ARCH=ppcemb" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001194 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayerd4082e92007-04-24 07:34:03 +00001195 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1196 echo "#define TARGET_PPC 1" >> $config_h
1197 echo "#define TARGET_PPCEMB 1" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001198elif test "$target_cpu" = "ppc64" ; then
1199 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayerf85e9a62007-10-18 20:51:49 +00001200 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001201 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001202 echo "#define TARGET_PPC 1" >> $config_h
1203 echo "#define TARGET_PPC64 1" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001204elif test "$target_cpu" = "ppc64abi32" ; then
1205 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001206 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001207 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001208 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001209 echo "#define TARGET_PPC 1" >> $config_h
1210 echo "#define TARGET_PPC64 1" >> $config_h
1211 echo "#define TARGET_ABI32 1" >> $config_h
pbrook908f52b2006-06-18 19:16:53 +00001212elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
bellardfdf9b3e2006-04-27 21:07:38 +00001213 echo "TARGET_ARCH=sh4" >> $config_mak
1214 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1215 echo "#define TARGET_SH4 1" >> $config_h
pbrook4dbed892006-06-17 20:01:14 +00001216 bflt="yes"
aurel320938cda2008-04-11 21:36:06 +00001217elif test "$target_cpu" = "sparc" ; then
1218 echo "TARGET_ARCH=sparc" >> $config_mak
1219 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1220 echo "#define TARGET_SPARC 1" >> $config_h
1221elif test "$target_cpu" = "sparc64" ; then
1222 echo "TARGET_ARCH=sparc64" >> $config_mak
1223 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1224 echo "#define TARGET_SPARC 1" >> $config_h
1225 echo "#define TARGET_SPARC64 1" >> $config_h
1226 elfload32="yes"
1227elif test "$target_cpu" = "sparc32plus" ; then
1228 echo "TARGET_ARCH=sparc64" >> $config_mak
1229 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1230 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1231 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1232 echo "#define TARGET_SPARC 1" >> $config_h
1233 echo "#define TARGET_SPARC64 1" >> $config_h
1234 echo "#define TARGET_ABI32 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001235else
1236 echo "Unsupported target CPU"
1237 exit 1
1238fi
1239if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001240 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1241 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1242fi
1243if test "$target_softmmu" = "yes" ; then
1244 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1245 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001246fi
bellard997344f2003-10-27 21:10:39 +00001247if test "$target_user_only" = "yes" ; then
1248 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1249 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1250fi
ths831b7822007-01-18 20:06:33 +00001251if test "$target_linux_user" = "yes" ; then
1252 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1253 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1254fi
1255if test "$target_darwin_user" = "yes" ; then
1256 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1257 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1258fi
bellardde83cd02003-06-15 20:25:43 +00001259
aurel320938cda2008-04-11 21:36:06 +00001260if test "$target_cpu" = "arm" \
1261 -o "$target_cpu" = "armeb" \
1262 -o "$target_cpu" = "m68k" \
1263 -o "$target_cpu" = "mips" \
1264 -o "$target_cpu" = "mipsel" \
1265 -o "$target_cpu" = "mipsn32" \
1266 -o "$target_cpu" = "mipsn32el" \
1267 -o "$target_cpu" = "mips64" \
1268 -o "$target_cpu" = "mips64el" \
1269 -o "$target_cpu" = "sparc" \
1270 -o "$target_cpu" = "sparc64" \
1271 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001272 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1273 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1274fi
pbrooke5fe0c52006-06-11 13:32:59 +00001275if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1276 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1277 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1278fi
blueswir1cb33da52007-10-09 16:34:29 +00001279# 32 bit ELF loader in addition to native 64 bit loader?
1280if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1281 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1282 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1283fi
bellard5b0753e2005-03-01 21:37:28 +00001284
ths15d9ca02007-07-31 23:07:32 +00001285test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1286
bellard97a847b2003-08-10 21:36:04 +00001287done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001288
1289# build tree in object directory if source path is different from current one
1290if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001291 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001292 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001293 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001294 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001295 for dir in $DIRS ; do
1296 mkdir -p $dir
1297 done
bellardec530c82006-04-25 22:36:06 +00001298 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001299 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001300 rm -f $f
1301 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001302 done
1303fi
bellard7d132992003-03-06 23:23:54 +00001304
bellard97a847b2003-08-10 21:36:04 +00001305rm -f $TMPO $TMPC $TMPE $TMPS