blob: eaa52ffcd29774fef021d10c6191cd1c6d788a8d [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 ;;
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
thsfbe4f652007-04-01 11:16:48 +0000578if 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 +0000579 bigendian="yes"
580fi
581
582fi
583
bellardb6853692005-06-05 17:10:39 +0000584# host long bits test
585hostlongbits="32"
586if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
587 hostlongbits="64"
588fi
589
bellarde8cd23d2003-06-25 16:08:13 +0000590# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000591cat > $TMPC <<EOF
592int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000593}
594EOF
595
bellard11d9f692004-04-02 20:55:59 +0000596##########################################
597# SDL probe
598
599sdl_too_old=no
600
601if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000602 sdl_config="sdl-config"
603 sdl=no
604 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000605
ths069b0bd2007-07-12 00:27:15 +0000606 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
607 # win32 cross compilation case
608 sdl_config="i386-mingw32msvc-sdl-config"
609 sdl=yes
610 else
611 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000612cat > $TMPC << EOF
613#include <SDL.h>
614#undef main /* We don't want SDL to override our main() */
615int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
616EOF
pbrookdb7287e2008-02-03 16:27:13 +0000617 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 +0000618 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
619 if test "$_sdlversion" -lt 121 ; then
620 sdl_too_old=yes
621 else
622 if test "$cocoa" = "no" ; then
623 sdl=yes
624 fi
625 fi
bellard11d9f692004-04-02 20:55:59 +0000626
ths069b0bd2007-07-12 00:27:15 +0000627 # static link with sdl ?
628 if test "$sdl" = "yes" ; then
629 aa="no"
630 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
631 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
632 if [ "$aa" = "yes" ] ; then
633 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
634 fi
635
ths8281db42007-11-18 21:37:07 +0000636 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 +0000637 sdl_static=yes
638 fi
639 fi # static link
640 fi # sdl compile test
641 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000642else
ths069b0bd2007-07-12 00:27:15 +0000643 # Make sure to disable cocoa if sdl was set
644 if test "$sdl" = "yes" ; then
645 cocoa="no"
646 coreaudio="no"
647 fi
bellarda6e022a2004-04-02 21:55:47 +0000648fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000649
ths8f28f3f2007-01-05 21:25:54 +0000650##########################################
ths8d5d2d42007-08-25 01:37:51 +0000651# VNC TLS detection
652if test "$vnc_tls" = "yes" ; then
653 `pkg-config gnutls` || vnc_tls="no"
654fi
655if test "$vnc_tls" = "yes" ; then
656 vnc_tls_cflags=`pkg-config --cflags gnutls`
657 vnc_tls_libs=`pkg-config --libs gnutls`
658fi
659
660##########################################
ths8f28f3f2007-01-05 21:25:54 +0000661# alsa sound support libraries
662
663if test "$alsa" = "yes" ; then
664 cat > $TMPC << EOF
665#include <alsa/asoundlib.h>
666int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
667EOF
pbrookdb7287e2008-02-03 16:27:13 +0000668 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000669 :
670 else
671 echo
672 echo "Error: Could not find alsa"
673 echo "Make sure to have the alsa libs and headers installed."
674 echo
675 exit 1
676 fi
677fi
678
balrog4d3b6f62008-02-10 16:33:14 +0000679##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000680# BrlAPI probe
681
682if test -z "$brlapi" ; then
683 brlapi=no
684cat > $TMPC << EOF
685#include <brlapi.h>
686int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
687EOF
688 if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then
689 brlapi=yes
690 fi # brlapi compile test
691fi # -z $brlapi
692
693##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000694# curses probe
695
696if test "$curses" = "yes" ; then
697 curses=no
698 cat > $TMPC << EOF
699#include <curses.h>
700int main(void) { return curses_version(); }
701EOF
pbrookaf896aa2008-03-23 00:47:42 +0000702 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000703 curses=yes
704 fi
705fi # test "$curses"
706
pbrookcc8ae6d2006-04-23 17:57:59 +0000707# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000708if [ -x "`which texi2html 2>/dev/null`" ] && \
709 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000710 build_docs="yes"
711fi
712
bellard11d9f692004-04-02 20:55:59 +0000713if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000714 if test -z "$prefix" ; then
715 prefix="/c/Program Files/Qemu"
716 fi
717 mansuffix=""
718 datasuffix=""
719 docsuffix=""
720 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000721else
pbrook308c3592007-02-27 00:52:01 +0000722 if test -z "$prefix" ; then
723 prefix="/usr/local"
724 fi
725 mansuffix="/share/man"
726 datasuffix="/share/qemu"
727 docsuffix="/share/doc/qemu"
728 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000729fi
bellard5a671352003-10-01 00:13:48 +0000730
bellard43ce4df2003-06-09 19:53:12 +0000731echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000732echo "BIOS directory $prefix$datasuffix"
733echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000734if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000735echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000736echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000737fi
bellard5a671352003-10-01 00:13:48 +0000738echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000739echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000740echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000741echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000742echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000743echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000744echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000745echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000746echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000747echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000748echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000749echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000750echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000751if test "$darwin" = "yes" ; then
752 echo "Cocoa support $cocoa"
753fi
bellard97a847b2003-08-10 21:36:04 +0000754echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000755if test "$sdl" != "no" ; then
756 echo "SDL static link $sdl_static"
757fi
balrog4d3b6f62008-02-10 16:33:14 +0000758echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000759echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000760echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000761echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000762echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000763echo "CoreAudio support $coreaudio"
764echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000765echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000766echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000767if test "$fmod" = "yes"; then
768 if test -z $fmod_lib || test -z $fmod_inc; then
769 echo
770 echo "Error: You must specify path to FMOD library and headers"
771 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
772 echo
773 exit 1
774 fi
pbrookb1a550a2006-04-16 13:28:56 +0000775 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
776else
777 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000778fi
pbrookb1a550a2006-04-16 13:28:56 +0000779echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000780echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000781echo "VNC TLS support $vnc_tls"
782if test "$vnc_tls" = "yes" ; then
783 echo " TLS CFLAGS $vnc_tls_cflags"
784 echo " TLS LIBS $vnc_tls_libs"
785fi
blueswir131422552007-04-16 18:27:06 +0000786if test -n "$sparc_cpu"; then
787 echo "Target Sparc Arch $sparc_cpu"
788fi
bellard07f4ddb2005-04-23 17:44:28 +0000789echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000790echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000791echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000792[ ! -z "$uname_release" ] && \
793echo "uname -r $uname_release"
bellard67b915a2004-03-31 23:37:16 +0000794
bellard97a847b2003-08-10 21:36:04 +0000795if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000796echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000797fi
ths20b40c62007-07-11 23:39:45 +0000798if [ -s /tmp/qemu-$$-sdl-config.log ]; then
799 echo "The error log from compiling the libSDL test is: "
800 cat /tmp/qemu-$$-sdl-config.log
801fi
802rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000803#if test "$sdl_static" = "no"; then
804# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
805#fi
bellard97a847b2003-08-10 21:36:04 +0000806config_mak="config-host.mak"
807config_h="config-host.h"
808
bellard7c1f25b2004-04-22 00:02:08 +0000809#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000810
ths15d9ca02007-07-31 23:07:32 +0000811test -f $config_h && mv $config_h ${config_h}~
812
bellard97a847b2003-08-10 21:36:04 +0000813echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000814echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000815echo "/* Automatically generated by configure - do not modify */" > $config_h
816
817echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000818echo "bindir=\${prefix}$binsuffix" >> $config_mak
819echo "mandir=\${prefix}$mansuffix" >> $config_mak
820echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000821echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000822echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000823echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000824echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000825echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000826echo "HOST_CC=$host_cc" >> $config_mak
827echo "AR=$ar" >> $config_mak
828echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000829# XXX: only use CFLAGS and LDFLAGS ?
830# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
831# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000832echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000833echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
834echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
835echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000836echo "CFLAGS=$CFLAGS" >> $config_mak
837echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000838echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000839echo "AIOLIBS=$AIOLIBS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000840if test "$cpu" = "i386" ; then
841 echo "ARCH=i386" >> $config_mak
842 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000843elif test "$cpu" = "x86_64" ; then
844 echo "ARCH=x86_64" >> $config_mak
845 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000846elif test "$cpu" = "armv4b" ; then
847 echo "ARCH=arm" >> $config_mak
848 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000849elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000850 echo "ARCH=arm" >> $config_mak
851 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000852elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000853 echo "ARCH=ppc" >> $config_mak
854 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000855elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000856 echo "ARCH=mips" >> $config_mak
857 echo "#define HOST_MIPS 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +0000858elif test "$cpu" = "mips64" ; then
859 echo "ARCH=mips64" >> $config_mak
860 echo "#define HOST_MIPS64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +0000861elif test "$cpu" = "cris" ; then
862 echo "ARCH=cris" >> $config_mak
863 echo "#define HOST_CRIS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000864elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000865 echo "ARCH=s390" >> $config_mak
866 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000867elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000868 echo "ARCH=alpha" >> $config_mak
869 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000870elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000871 echo "ARCH=sparc" >> $config_mak
872 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000873elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000874 echo "ARCH=sparc64" >> $config_mak
875 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000876elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000877 echo "ARCH=ia64" >> $config_mak
878 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000879elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000880 echo "ARCH=m68k" >> $config_mak
881 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000882else
blueswir131422552007-04-16 18:27:06 +0000883 echo "Unsupported CPU = $cpu"
bellard7d132992003-03-06 23:23:54 +0000884 exit 1
885fi
886if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000887 echo "WORDS_BIGENDIAN=yes" >> $config_mak
888 echo "#define WORDS_BIGENDIAN 1" >> $config_h
889fi
bellardb6853692005-06-05 17:10:39 +0000890echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000891if test "$mingw32" = "yes" ; then
892 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000893 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000894else
895 cat > $TMPC << EOF
896#include <byteswap.h>
897int main(void) { return bswap_32(0); }
898EOF
pbrookdb7287e2008-02-03 16:27:13 +0000899 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000900 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
901 fi
bellard67b915a2004-03-31 23:37:16 +0000902fi
bellard83fb7ad2004-07-05 21:25:26 +0000903if test "$darwin" = "yes" ; then
904 echo "CONFIG_DARWIN=yes" >> $config_mak
905 echo "#define CONFIG_DARWIN 1" >> $config_h
906fi
bellardec530c82006-04-25 22:36:06 +0000907if test "$solaris" = "yes" ; then
908 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +0000909 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +0000910 if test "$needs_libsunmath" = "yes" ; then
911 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
912 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
913 fi
bellardec530c82006-04-25 22:36:06 +0000914fi
blueswir131422552007-04-16 18:27:06 +0000915if test -n "$sparc_cpu"; then
916 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
917 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
918fi
bellard67b915a2004-03-31 23:37:16 +0000919if test "$gdbstub" = "yes" ; then
920 echo "CONFIG_GDBSTUB=yes" >> $config_mak
921 echo "#define CONFIG_GDBSTUB 1" >> $config_h
922fi
bellard97a847b2003-08-10 21:36:04 +0000923if test "$gprof" = "yes" ; then
924 echo "TARGET_GPROF=yes" >> $config_mak
925 echo "#define HAVE_GPROF 1" >> $config_h
926fi
927if test "$static" = "yes" ; then
928 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000929 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000930fi
bellard05c2a3e2006-02-08 22:39:17 +0000931if test $profiler = "yes" ; then
932 echo "#define CONFIG_PROFILER 1" >> $config_h
933fi
bellardc20709a2004-04-21 23:27:19 +0000934if test "$slirp" = "yes" ; then
935 echo "CONFIG_SLIRP=yes" >> $config_mak
936 echo "#define CONFIG_SLIRP 1" >> $config_h
937fi
bellardfb065182004-11-09 23:09:44 +0000938if test "$adlib" = "yes" ; then
939 echo "CONFIG_ADLIB=yes" >> $config_mak
940 echo "#define CONFIG_ADLIB 1" >> $config_h
941fi
balroge5c9a132008-01-14 04:27:55 +0000942if test "$ac97" = "yes" ; then
943 echo "CONFIG_AC97=yes" >> $config_mak
944 echo "#define CONFIG_AC97 1" >> $config_h
945fi
balrog423d65f2008-01-14 22:09:11 +0000946if test "$gus" = "yes" ; then
947 echo "CONFIG_GUS=yes" >> $config_mak
948 echo "#define CONFIG_GUS 1" >> $config_h
949fi
bellardfb065182004-11-09 23:09:44 +0000950if test "$oss" = "yes" ; then
951 echo "CONFIG_OSS=yes" >> $config_mak
952 echo "#define CONFIG_OSS 1" >> $config_h
953fi
bellard1d14ffa2005-10-30 18:58:22 +0000954if test "$coreaudio" = "yes" ; then
955 echo "CONFIG_COREAUDIO=yes" >> $config_mak
956 echo "#define CONFIG_COREAUDIO 1" >> $config_h
957fi
958if test "$alsa" = "yes" ; then
959 echo "CONFIG_ALSA=yes" >> $config_mak
960 echo "#define CONFIG_ALSA 1" >> $config_h
961fi
balrogca9cc282008-01-14 04:24:29 +0000962if test "$esd" = "yes" ; then
963 echo "CONFIG_ESD=yes" >> $config_mak
964 echo "#define CONFIG_ESD 1" >> $config_h
965fi
bellard1d14ffa2005-10-30 18:58:22 +0000966if test "$dsound" = "yes" ; then
967 echo "CONFIG_DSOUND=yes" >> $config_mak
968 echo "#define CONFIG_DSOUND 1" >> $config_h
969fi
bellard102a52e2004-11-14 19:57:29 +0000970if test "$fmod" = "yes" ; then
971 echo "CONFIG_FMOD=yes" >> $config_mak
972 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
973 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
974 echo "#define CONFIG_FMOD 1" >> $config_h
975fi
ths8d5d2d42007-08-25 01:37:51 +0000976if test "$vnc_tls" = "yes" ; then
977 echo "CONFIG_VNC_TLS=yes" >> $config_mak
978 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
979 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
980 echo "#define CONFIG_VNC_TLS 1" >> $config_h
981fi
pbrookb1a550a2006-04-16 13:28:56 +0000982qemu_version=`head $source_path/VERSION`
983echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +0000984echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000985
986echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +0000987if [ "$source_path_used" = "yes" ]; then
988 echo "VPATH=$source_path" >> $config_mak
989fi
bellard97a847b2003-08-10 21:36:04 +0000990echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +0000991if [ "$build_docs" = "yes" ] ; then
992 echo "BUILD_DOCS=yes" >> $config_mak
993fi
bellard49ecc3f2007-11-07 19:25:15 +0000994if test "$static" = "yes"; then
995 sdl1=$sdl_static
996else
997 sdl1=$sdl
998fi
999if test "$sdl1" = "yes" ; then
1000 echo "#define CONFIG_SDL 1" >> $config_h
1001 echo "CONFIG_SDL=yes" >> $config_mak
1002 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1003 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1004 else
1005 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1006 fi
1007 if [ "${aa}" = "yes" ] ; then
1008 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1009 else
1010 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1011 fi
1012fi
1013if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001014 echo "#define CONFIG_COCOA 1" >> $config_h
1015 echo "CONFIG_COCOA=yes" >> $config_mak
1016fi
1017if test "$curses" = "yes" ; then
1018 echo "#define CONFIG_CURSES 1" >> $config_h
1019 echo "CONFIG_CURSES=yes" >> $config_mak
1020 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001021fi
aurel322e4d9fb2008-04-08 06:01:02 +00001022if test "$brlapi" = "yes" ; then
1023 echo "CONFIG_BRLAPI=yes" >> $config_mak
1024 echo "#define CONFIG_BRLAPI 1" >> $config_h
1025 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1026fi
bellard97a847b2003-08-10 21:36:04 +00001027
bellard83fb7ad2004-07-05 21:25:26 +00001028# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001029if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001030 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001031 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001032 echo "#define _BSD 1" >> $config_h
1033fi
1034
pbrookc5937222006-05-14 11:30:38 +00001035echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1036
pbrookc39e3332007-09-22 16:49:14 +00001037tools=
1038if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1039 tools="qemu-img\$(EXESUF) $tools"
1040fi
1041echo "TOOLS=$tools" >> $config_mak
1042
ths15d9ca02007-07-31 23:07:32 +00001043test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1044
bellard1d14ffa2005-10-30 18:58:22 +00001045for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001046target_dir="$target"
1047config_mak=$target_dir/config.mak
1048config_h=$target_dir/config.h
1049target_cpu=`echo $target | cut -d '-' -f 1`
1050target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001051[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +00001052[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +00001053[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
blueswir1992f48a2007-10-14 16:27:31 +00001054[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001055[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001056[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001057[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001058[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +00001059[ "$target_cpu" = "mips" ] && target_bigendian=yes
ths540635b2007-09-30 01:58:33 +00001060[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
thsfbe4f652007-04-01 11:16:48 +00001061[ "$target_cpu" = "mips64" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001062[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
pbrooke6e59062006-10-22 00:18:54 +00001063[ "$target_cpu" = "m68k" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001064target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001065target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001066target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001067target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001068case "$target" in
1069 ${target_cpu}-softmmu)
1070 target_softmmu="yes"
1071 ;;
1072 ${target_cpu}-linux-user)
1073 target_user_only="yes"
1074 target_linux_user="yes"
1075 ;;
1076 ${target_cpu}-darwin-user)
1077 target_user_only="yes"
1078 target_darwin_user="yes"
1079 ;;
1080 *)
1081 echo "ERROR: Target '$target' not recognised"
1082 exit 1
1083 ;;
1084esac
ths831b7822007-01-18 20:06:33 +00001085
bellard97ccc682005-07-02 13:32:17 +00001086if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001087 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001088 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001089 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001090 echo "Note that this will disable all output from the virtual graphics card"
1091 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001092 exit 1;
1093fi
1094
bellard7c1f25b2004-04-22 00:02:08 +00001095#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001096
ths15d9ca02007-07-31 23:07:32 +00001097test -f $config_h && mv $config_h ${config_h}~
1098
bellard97a847b2003-08-10 21:36:04 +00001099mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001100mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001101mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001102if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001103 mkdir -p $target_dir/nwfpe
1104fi
1105
bellardec530c82006-04-25 22:36:06 +00001106#
1107# don't use ln -sf as not all "ln -sf" over write the file/link
1108#
1109rm -f $target_dir/Makefile
1110ln -s $source_path/Makefile.target $target_dir/Makefile
1111
bellard97a847b2003-08-10 21:36:04 +00001112
1113echo "# Automatically generated by configure - do not modify" > $config_mak
1114echo "/* Automatically generated by configure - do not modify */" > $config_h
1115
1116
1117echo "include ../config-host.mak" >> $config_mak
1118echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001119
pbrooke5fe0c52006-06-11 13:32:59 +00001120bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001121elfload32="no"
bellard1e43adf2003-09-30 20:54:24 +00001122interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1123echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001124
1125if test "$target_cpu" = "i386" ; then
1126 echo "TARGET_ARCH=i386" >> $config_mak
1127 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1128 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001129 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +00001130 echo "#define USE_KQEMU 1" >> $config_h
1131 fi
bellard808c4952004-12-19 23:33:47 +00001132elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +00001133 echo "TARGET_ARCH=arm" >> $config_mak
pbrook663715f2008-03-31 03:49:36 +00001134 echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001135 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1136 echo "#define TARGET_ARM 1" >> $config_h
pbrook663715f2008-03-31 03:49:36 +00001137 echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h
pbrooke5fe0c52006-06-11 13:32:59 +00001138 bflt="yes"
bellard1e43adf2003-09-30 20:54:24 +00001139elif test "$target_cpu" = "sparc" ; then
1140 echo "TARGET_ARCH=sparc" >> $config_mak
1141 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1142 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +00001143elif test "$target_cpu" = "sparc64" ; then
1144 echo "TARGET_ARCH=sparc64" >> $config_mak
1145 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1146 echo "#define TARGET_SPARC 1" >> $config_h
1147 echo "#define TARGET_SPARC64 1" >> $config_h
blueswir1cb33da52007-10-09 16:34:29 +00001148 elfload32="yes"
blueswir1992f48a2007-10-14 16:27:31 +00001149elif test "$target_cpu" = "sparc32plus" ; then
1150 echo "TARGET_ARCH=sparc64" >> $config_mak
1151 echo "TARGET_ABI_DIR=sparc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001152 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
blueswir1992f48a2007-10-14 16:27:31 +00001153 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1154 echo "#define TARGET_SPARC 1" >> $config_h
1155 echo "#define TARGET_SPARC64 1" >> $config_h
1156 echo "#define TARGET_ABI32 1" >> $config_h
bellard67867302003-11-23 17:05:30 +00001157elif test "$target_cpu" = "ppc" ; then
1158 echo "TARGET_ARCH=ppc" >> $config_mak
1159 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1160 echo "#define TARGET_PPC 1" >> $config_h
j_mayerd4082e92007-04-24 07:34:03 +00001161elif test "$target_cpu" = "ppcemb" ; then
1162 echo "TARGET_ARCH=ppcemb" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001163 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayerd4082e92007-04-24 07:34:03 +00001164 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1165 echo "#define TARGET_PPC 1" >> $config_h
1166 echo "#define TARGET_PPCEMB 1" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001167elif test "$target_cpu" = "ppc64" ; then
1168 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayerf85e9a62007-10-18 20:51:49 +00001169 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001170 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001171 echo "#define TARGET_PPC 1" >> $config_h
1172 echo "#define TARGET_PPC64 1" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001173elif test "$target_cpu" = "ppc64abi32" ; then
1174 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001175 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001176 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001177 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001178 echo "#define TARGET_PPC 1" >> $config_h
1179 echo "#define TARGET_PPC64 1" >> $config_h
1180 echo "#define TARGET_ABI32 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +00001181elif test "$target_cpu" = "x86_64" ; then
1182 echo "TARGET_ARCH=x86_64" >> $config_mak
1183 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1184 echo "#define TARGET_I386 1" >> $config_h
1185 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001186 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1187 echo "#define USE_KQEMU 1" >> $config_h
1188 fi
bellardc20eb472005-12-06 21:42:55 +00001189elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +00001190 echo "TARGET_ARCH=mips" >> $config_mak
1191 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1192 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001193 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
ths540635b2007-09-30 01:58:33 +00001194elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1195 echo "TARGET_ARCH=mipsn32" >> $config_mak
1196 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1197 echo "#define TARGET_MIPS 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001198 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
thsfbe4f652007-04-01 11:16:48 +00001199elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1200 echo "TARGET_ARCH=mips64" >> $config_mak
1201 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1202 echo "#define TARGET_MIPS 1" >> $config_h
1203 echo "#define TARGET_MIPS64 1" >> $config_h
thsd26bc212007-11-08 18:05:37 +00001204 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
thse7daa602007-10-08 13:38:27 +00001205elif test "$target_cpu" = "cris" ; then
1206 echo "TARGET_ARCH=cris" >> $config_mak
1207 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1208 echo "#define TARGET_CRIS 1" >> $config_h
1209 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1210 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
pbrook908f52b2006-06-18 19:16:53 +00001211elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
bellardfdf9b3e2006-04-27 21:07:38 +00001212 echo "TARGET_ARCH=sh4" >> $config_mak
1213 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1214 echo "#define TARGET_SH4 1" >> $config_h
pbrook4dbed892006-06-17 20:01:14 +00001215 bflt="yes"
pbrooke6e59062006-10-22 00:18:54 +00001216elif test "$target_cpu" = "m68k" ; then
1217 echo "TARGET_ARCH=m68k" >> $config_mak
1218 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1219 echo "#define TARGET_M68K 1" >> $config_h
1220 bflt="yes"
j_mayercf6c1b12007-04-05 20:46:02 +00001221elif test "$target_cpu" = "alpha" ; then
1222 echo "TARGET_ARCH=alpha" >> $config_mak
1223 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1224 echo "#define TARGET_ALPHA 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001225else
1226 echo "Unsupported target CPU"
1227 exit 1
1228fi
1229if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001230 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1231 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1232fi
1233if test "$target_softmmu" = "yes" ; then
1234 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1235 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001236fi
bellard997344f2003-10-27 21:10:39 +00001237if test "$target_user_only" = "yes" ; then
1238 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1239 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1240fi
ths831b7822007-01-18 20:06:33 +00001241if test "$target_linux_user" = "yes" ; then
1242 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1243 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1244fi
1245if test "$target_darwin_user" = "yes" ; then
1246 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1247 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1248fi
bellardde83cd02003-06-15 20:25:43 +00001249
aurel321cdb9c32008-04-07 21:24:25 +00001250if 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 +00001251 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1252 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1253fi
pbrooke5fe0c52006-06-11 13:32:59 +00001254if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1255 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1256 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1257fi
blueswir1cb33da52007-10-09 16:34:29 +00001258# 32 bit ELF loader in addition to native 64 bit loader?
1259if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1260 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1261 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1262fi
bellard5b0753e2005-03-01 21:37:28 +00001263
ths15d9ca02007-07-31 23:07:32 +00001264test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1265
bellard97a847b2003-08-10 21:36:04 +00001266done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001267
1268# build tree in object directory if source path is different from current one
1269if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001270 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001271 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001272 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001273 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001274 for dir in $DIRS ; do
1275 mkdir -p $dir
1276 done
bellardec530c82006-04-25 22:36:06 +00001277 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001278 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001279 rm -f $f
1280 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001281 done
1282fi
bellard7d132992003-03-06 23:23:54 +00001283
bellard97a847b2003-08-10 21:36:04 +00001284rm -f $TMPO $TMPC $TMPE $TMPS