blob: f204d048cbfb0b932574d714eaa2e9dbde351b3e [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 ;;
aurel32f54b3f92008-04-12 20:14:54 +000053 parisc|parisc64)
54 cpu="hppa"
55 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000056 ia64)
57 cpu="ia64"
58 ;;
59 m68k)
60 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000061 ;;
62 mips)
63 cpu="mips"
64 ;;
thsfbe4f652007-04-01 11:16:48 +000065 mips64)
66 cpu="mips64"
67 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000068 "Power Macintosh"|ppc|ppc64)
69 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000070 ;;
ths0e7b8a92007-08-01 00:09:31 +000071 s390*)
bellardfb3e5842003-03-29 17:32:36 +000072 cpu="s390"
73 ;;
blueswir131422552007-04-16 18:27:06 +000074 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000075 cpu="sparc"
76 ;;
77 sparc64)
78 cpu="sparc64"
79 ;;
bellard7d132992003-03-06 23:23:54 +000080 *)
81 cpu="unknown"
82 ;;
83esac
84gprof="no"
85bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000086mingw32="no"
87EXESUF=""
88gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000089slirp="yes"
bellardfb065182004-11-09 23:09:44 +000090adlib="no"
balroge5c9a132008-01-14 04:27:55 +000091ac97="no"
balrog423d65f2008-01-14 22:09:11 +000092gus="no"
bellardfb065182004-11-09 23:09:44 +000093oss="no"
bellard1d14ffa2005-10-30 18:58:22 +000094dsound="no"
95coreaudio="no"
96alsa="no"
balrogca9cc282008-01-14 04:24:29 +000097esd="no"
bellard102a52e2004-11-14 19:57:29 +000098fmod="no"
99fmod_lib=""
100fmod_inc=""
ths8d5d2d42007-08-25 01:37:51 +0000101vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +0000102bsd="no"
bellard5327cf42005-01-10 23:18:50 +0000103linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +0000104kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +0000105profiler="no"
bellard5b0753e2005-03-01 21:37:28 +0000106cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000107check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000108check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000109softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000110linux_user="no"
111darwin_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000112build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000113uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000114curses="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000115nptl="yes"
bellard7d132992003-03-06 23:23:54 +0000116
117# OS specific
118targetos=`uname -s`
119case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000120CYGWIN*)
121mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000122OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000123if [ "$cpu" = "i386" ] ; then
124 kqemu="yes"
125fi
bellardc326e0a2005-04-23 18:30:28 +0000126;;
bellard67b915a2004-03-31 23:37:16 +0000127MINGW32*)
128mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000129if [ "$cpu" = "i386" ] ; then
130 kqemu="yes"
131fi
bellard67b915a2004-03-31 23:37:16 +0000132;;
ths5c40d2b2007-06-23 16:03:36 +0000133GNU/kFreeBSD)
134oss="yes"
135if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136 kqemu="yes"
137fi
138;;
bellard7d3505c2004-05-12 19:32:15 +0000139FreeBSD)
140bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000141oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000142if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000143 kqemu="yes"
144fi
bellard7d3505c2004-05-12 19:32:15 +0000145;;
146NetBSD)
147bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000148oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000149;;
150OpenBSD)
151bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000152oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000153;;
bellard83fb7ad2004-07-05 21:25:26 +0000154Darwin)
155bsd="yes"
156darwin="yes"
ths831b7822007-01-18 20:06:33 +0000157darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000158cocoa="yes"
159coreaudio="yes"
ths6f30fa82007-01-05 01:00:47 +0000160OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000161OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
bellard83fb7ad2004-07-05 21:25:26 +0000162;;
bellardec530c82006-04-25 22:36:06 +0000163SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000164 solaris="yes"
165 make="gmake"
166 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000167 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000168 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000169 # have to select again, because `uname -m` returns i86pc
170 # even on an x86_64 box.
171 solariscpu=`isainfo -k`
172 if test "${solariscpu}" = "amd64" ; then
173 cpu="x86_64"
174 fi
thsc2b84fa2007-02-10 23:21:21 +0000175 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000176 if test "$solarisrev" -le 9 ; then
177 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
178 needs_libsunmath="yes"
179 else
180 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
181 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
182 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
183 echo "Studio 11 can be downloaded from www.sun.com."
184 exit 1
185 fi
186 fi
187 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000188 kqemu="yes"
189 fi
ths86b2bd92007-02-11 00:31:33 +0000190 fi
ths6b4d2ba2007-05-13 18:02:43 +0000191 if test -f /usr/include/sys/soundcard.h ; then
192 oss=yes
193 fi
ths86b2bd92007-02-11 00:31:33 +0000194;;
bellard1d14ffa2005-10-30 18:58:22 +0000195*)
bellardfb065182004-11-09 23:09:44 +0000196oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000197linux="yes"
ths831b7822007-01-18 20:06:33 +0000198linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000199if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000200 kqemu="yes"
201fi
bellardfb065182004-11-09 23:09:44 +0000202;;
bellard7d132992003-03-06 23:23:54 +0000203esac
204
bellard7d3505c2004-05-12 19:32:15 +0000205if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000206 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000207 make="gmake"
208 fi
bellard7d3505c2004-05-12 19:32:15 +0000209fi
210
bellard7d132992003-03-06 23:23:54 +0000211# find source path
pbrookad064842006-04-16 12:41:07 +0000212source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000213source_path_used="no"
214workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000215if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000216 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000217else
218 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000219fi
pbrook724db112008-02-03 19:20:13 +0000220[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000221
bellard85aa5182007-11-11 20:17:03 +0000222werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000223# generate compile errors on warnings for development builds
224#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
225#werror="yes";
226#fi
bellard85aa5182007-11-11 20:17:03 +0000227
bellard7d132992003-03-06 23:23:54 +0000228for opt do
pbrooka46e4032006-04-29 23:05:22 +0000229 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000230 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000231 --help|-h) show_help=yes
232 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000233 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000234 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000235 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000236 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000237 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000238 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000239 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000240 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000241 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000242 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000243 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000244 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000245 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000246 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000247 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000248 ;;
pbrook6a882642006-04-17 13:57:12 +0000249 --install=*) install="$optarg"
250 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000251 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000252 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000253 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000254 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000255 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000256 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000257 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000258 ;;
bellard7d132992003-03-06 23:23:54 +0000259 --enable-gprof) gprof="yes"
260 ;;
bellard43ce4df2003-06-09 19:53:12 +0000261 --static) static="yes"
262 ;;
bellard97a847b2003-08-10 21:36:04 +0000263 --disable-sdl) sdl="no"
264 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000265 --enable-coreaudio) coreaudio="yes"
266 ;;
267 --enable-alsa) alsa="yes"
268 ;;
balrogca9cc282008-01-14 04:24:29 +0000269 --enable-esd) esd="yes"
270 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000271 --enable-dsound) dsound="yes"
272 ;;
bellard102a52e2004-11-14 19:57:29 +0000273 --enable-fmod) fmod="yes"
274 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000275 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000276 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000277 --fmod-inc=*) fmod_inc="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000278 ;;
ths8d5d2d42007-08-25 01:37:51 +0000279 --disable-vnc-tls) vnc_tls="no"
280 ;;
bellardb93aebe2007-02-15 22:58:18 +0000281 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
bellard1d14ffa2005-10-30 18:58:22 +0000282 ;;
bellard443f1372004-06-04 11:13:20 +0000283 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000284 ;;
bellardfb065182004-11-09 23:09:44 +0000285 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000286 ;;
balroge5c9a132008-01-14 04:27:55 +0000287 --enable-ac97) ac97="yes"
288 ;;
balrog423d65f2008-01-14 22:09:11 +0000289 --enable-gus) gus="yes"
290 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000291 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000292 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000293 --disable-brlapi) brlapi="no"
294 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000295 --enable-profiler) profiler="yes"
296 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000297 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
298 ;;
bellard97ccc682005-07-02 13:32:17 +0000299 --disable-gfx-check) check_gfx="no"
300 ;;
bellard1aff3812005-11-02 22:30:45 +0000301 --disable-gcc-check) check_gcc="no"
302 ;;
pbrookcad25d62006-03-19 16:31:11 +0000303 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000304 ;;
pbrookcad25d62006-03-19 16:31:11 +0000305 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000306 ;;
ths831b7822007-01-18 20:06:33 +0000307 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000308 ;;
ths831b7822007-01-18 20:06:33 +0000309 --enable-linux-user) linux_user="yes"
310 ;;
311 --disable-darwin-user) darwin_user="no"
312 ;;
313 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000314 ;;
pbrookc5937222006-05-14 11:30:38 +0000315 --enable-uname-release=*) uname_release="$optarg"
316 ;;
blueswir131422552007-04-16 18:27:06 +0000317 --sparc_cpu=*)
318 sparc_cpu="$optarg"
319 case $sparc_cpu in
320 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
321 target_cpu="sparc"; cpu="sparc" ;;
322 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
323 target_cpu="sparc"; cpu="sparc" ;;
324 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
325 target_cpu="sparc64"; cpu="sparc64" ;;
326 *) echo "undefined SPARC architecture. Exiting";exit 1;;
327 esac
328 ;;
bellard85aa5182007-11-11 20:17:03 +0000329 --enable-werror) werror="yes"
330 ;;
331 --disable-werror) werror="no"
332 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000333 --disable-curses) curses="no"
334 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000335 --disable-nptl) nptl="no"
336 ;;
balrog7f1559c2007-11-17 10:24:32 +0000337 *) echo "ERROR: unknown option $opt"; show_help="yes"
338 ;;
bellard7d132992003-03-06 23:23:54 +0000339 esac
340done
341
ths209afb92007-03-25 20:55:00 +0000342if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
343 AIOLIBS=
344else
ths4259e1a2007-11-05 13:27:21 +0000345 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
346 AIOLIBS="-lrt -lpthread"
ths209afb92007-03-25 20:55:00 +0000347fi
348
ths6f30fa82007-01-05 01:00:47 +0000349# default flags for all hosts
350CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
351LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000352if test "$werror" = "yes" ; then
353CFLAGS="$CFLAGS -Werror"
354fi
ths6f30fa82007-01-05 01:00:47 +0000355
blueswir131422552007-04-16 18:27:06 +0000356#
357# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
358# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
359#
bellard40293e52008-01-31 11:32:10 +0000360case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000361 sparc) if test -z "$sparc_cpu" ; then
362 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
363 ARCH_LDFLAGS="-m32"
364 else
365 ARCH_CFLAGS="${SP_CFLAGS}"
366 ARCH_LDFLAGS="${SP_LDFLAGS}"
367 fi
368 ;;
369 sparc64) if test -z "$sparc_cpu" ; then
370 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
371 ARCH_LDFLAGS="-m64"
372 else
373 ARCH_CFLAGS="${SP_CFLAGS}"
374 ARCH_LDFLAGS="${SP_LDFLAGS}"
375 fi
376 ;;
ths76d83bd2007-11-18 21:22:10 +0000377 s390)
378 ARCH_CFLAGS="-march=z900"
379 ;;
bellard40293e52008-01-31 11:32:10 +0000380 i386)
381 ARCH_CFLAGS="-m32"
382 ARCH_LDFLAGS="-m32"
383 ;;
384 x86_64)
385 ARCH_CFLAGS="-m64"
386 ARCH_LDFLAGS="-m64"
387 ;;
blueswir131422552007-04-16 18:27:06 +0000388esac
389
pbrookaf5db582006-04-08 14:26:41 +0000390if test x"$show_help" = x"yes" ; then
391cat << EOF
392
393Usage: configure [options]
394Options: [defaults in brackets after descriptions]
395
396EOF
397echo "Standard options:"
398echo " --help print this message"
399echo " --prefix=PREFIX install in PREFIX [$prefix]"
400echo " --interp-prefix=PREFIX where to find shared libraries, etc."
401echo " use %M for cpu name [$interp_prefix]"
402echo " --target-list=LIST set target list [$target_list]"
403echo ""
404echo "kqemu kernel acceleration support:"
405echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000406echo ""
407echo "Advanced options (experts only):"
408echo " --source-path=PATH path of source code [$source_path]"
409echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
410echo " --cc=CC use C compiler CC [$cc]"
411echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
412echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000413echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000414echo " --static enable static build [$static]"
bellard85aa5182007-11-11 20:17:03 +0000415echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000416echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000417echo " --enable-cocoa enable COCOA (Mac OS X only)"
418echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
419echo " --enable-adlib enable Adlib emulation"
balroge5c9a132008-01-14 04:27:55 +0000420echo " --enable-ac97 enable AC97 emulation"
balrog423d65f2008-01-14 22:09:11 +0000421echo " --enable-gus enable Gravis Ultrasound emulation"
pbrookaf5db582006-04-08 14:26:41 +0000422echo " --enable-coreaudio enable Coreaudio audio driver"
423echo " --enable-alsa enable ALSA audio driver"
balrogca9cc282008-01-14 04:24:29 +0000424echo " --enable-esd enable EsoundD audio driver"
pbrookaf5db582006-04-08 14:26:41 +0000425echo " --enable-fmod enable FMOD audio driver"
thsed5065e2007-03-25 16:15:21 +0000426echo " --enable-dsound enable DirectSound audio driver"
aurel322e4d9fb2008-04-08 06:01:02 +0000427echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000428echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000429echo " --disable-curses disable curses output"
pbrookbd0c5662008-05-29 14:34:11 +0000430echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000431echo " --enable-system enable all system emulation targets"
432echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000433echo " --enable-linux-user enable all linux usermode emulation targets"
434echo " --disable-linux-user disable all linux usermode emulation targets"
435echo " --enable-darwin-user enable all darwin usermode emulation targets"
436echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000437echo " --fmod-lib path to FMOD library"
438echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000439echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000440echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000441echo ""
ths5bf08932006-12-23 00:33:26 +0000442echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000443exit 1
444fi
445
bellard7d132992003-03-06 23:23:54 +0000446cc="${cross_prefix}${cc}"
447ar="${cross_prefix}${ar}"
448strip="${cross_prefix}${strip}"
449
pbrook064aae12006-05-08 00:51:44 +0000450# check that the C compiler works.
451cat > $TMPC <<EOF
452int main(void) {}
453EOF
454
pbrookdb7287e2008-02-03 16:27:13 +0000455if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000456 : C compiler works ok
457else
458 echo "ERROR: \"$cc\" either does not exist or does not work"
459 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000460fi
461
bellard67b915a2004-03-31 23:37:16 +0000462if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000463 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000464 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000465 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000466fi
467
ths5fafdf22007-09-16 21:08:06 +0000468# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000469if test "$check_gcc" = "yes" ; then
470 cat > $TMPC <<EOF
471#if __GNUC__ < 4
472#error gcc3
473#endif
474int main(){return 0;}
475EOF
pbrookdb7287e2008-02-03 16:27:13 +0000476 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000477 echo "WARNING: \"$cc\" looks like gcc 4.x"
478 found_compat_cc="no"
479 if test "$gcc3_search" = "yes" ; then
480 echo "Looking for gcc 3.x"
481 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000482 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000483 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000484 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000485 found_compat_cc="yes"
486 break
487 fi
488 done
489 if test "$found_compat_cc" = "no" ; then
490 echo "gcc 3.x not found!"
491 fi
492 fi
493 if test "$found_compat_cc" = "no" ; then
494 echo "QEMU is known to have problems when compiled with gcc 4.x"
495 echo "It is recommended that you use gcc 3.x to build QEMU"
496 echo "To use this compiler anyway, configure with --disable-gcc-check"
497 exit 1;
498 fi
499 fi
500fi
501
bellardec530c82006-04-25 22:36:06 +0000502#
503# Solaris specific configure tool chain decisions
504#
505if test "$solaris" = "yes" ; then
506 #
507 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
508 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000509 #
bellardec530c82006-04-25 22:36:06 +0000510 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
511 solgcc=`which $cc`
512 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
513 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
514 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
515 echo "or get the latest patch from SunSolve for gcc"
516 exit 1
517 fi
518 fi
519 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
520 if test -z "$solinst" ; then
521 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
522 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
523 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
524 exit 1
525 fi
526 if test "$solinst" = "/usr/sbin/install" ; then
527 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
528 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
529 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
530 exit 1
531 fi
bellardec530c82006-04-25 22:36:06 +0000532 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
533 if test -z "$sol_ar" ; then
534 echo "Error: No path includes ar"
535 if test -f /usr/ccs/bin/ar ; then
536 echo "Add /usr/ccs/bin to your path and rerun configure"
537 fi
538 exit 1
539 fi
ths5fafdf22007-09-16 21:08:06 +0000540fi
bellardec530c82006-04-25 22:36:06 +0000541
542
bellard5327cf42005-01-10 23:18:50 +0000543if test -z "$target_list" ; then
544# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000545 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000546 target_list="\
547i386-softmmu \
548x86_64-softmmu \
549arm-softmmu \
550cris-softmmu \
551m68k-softmmu \
552mips-softmmu \
553mipsel-softmmu \
554mips64-softmmu \
555mips64el-softmmu \
556ppc-softmmu \
557ppcemb-softmmu \
558ppc64-softmmu \
559sh4-softmmu \
560sh4eb-softmmu \
561sparc-softmmu \
562"
pbrook0a8e90f2006-03-19 14:54:16 +0000563 fi
bellard5327cf42005-01-10 23:18:50 +0000564# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000565 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000566 target_list="${target_list}\
567i386-linux-user \
568x86_64-linux-user \
569alpha-linux-user \
570arm-linux-user \
571armeb-linux-user \
572cris-linux-user \
573m68k-linux-user \
574mips-linux-user \
575mipsel-linux-user \
576ppc-linux-user \
577ppc64-linux-user \
578ppc64abi32-linux-user \
579sh4-linux-user \
580sh4eb-linux-user \
581sparc-linux-user \
582sparc64-linux-user \
583sparc32plus-linux-user \
584"
ths831b7822007-01-18 20:06:33 +0000585 fi
586# the following are Darwin specific
587 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000588 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000589 fi
bellard6e20a452005-06-05 15:56:02 +0000590else
pbrookb1a550a2006-04-16 13:28:56 +0000591 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000592fi
pbrook0a8e90f2006-03-19 14:54:16 +0000593if test -z "$target_list" ; then
594 echo "No targets enabled"
595 exit 1
596fi
bellard5327cf42005-01-10 23:18:50 +0000597
bellard7d132992003-03-06 23:23:54 +0000598if test -z "$cross_prefix" ; then
599
600# ---
601# big/little endian test
602cat > $TMPC << EOF
603#include <inttypes.h>
604int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000605 volatile uint32_t i=0x01234567;
606 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000607}
608EOF
609
pbrookdb7287e2008-02-03 16:27:13 +0000610if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000611$TMPE && bigendian="yes"
612else
613echo big/little test failed
614fi
615
616else
617
618# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000619if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000620 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000621 -o "$cpu" = "m68k" \
622 -o "$cpu" = "mips" \
623 -o "$cpu" = "mips64" \
624 -o "$cpu" = "powerpc" \
625 -o "$cpu" = "s390" \
626 -o "$cpu" = "sparc" \
627 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000628 bigendian="yes"
629fi
630
631fi
632
bellardb6853692005-06-05 17:10:39 +0000633# host long bits test
634hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000635if test "$cpu" = "x86_64" \
636 -o "$cpu" = "alpha" \
637 -o "$cpu" = "ia64" \
638 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000639 hostlongbits="64"
640fi
641
bellarde8cd23d2003-06-25 16:08:13 +0000642# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000643cat > $TMPC <<EOF
644int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000645}
646EOF
647
pbrookbd0c5662008-05-29 14:34:11 +0000648# Check host NPTL support
649cat > $TMPC <<EOF
650#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000651#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000652void foo()
653{
654#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
655#error bork
656#endif
657}
658EOF
659
660if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
661 :
662else
663 nptl="no"
664fi
665
bellard11d9f692004-04-02 20:55:59 +0000666##########################################
667# SDL probe
668
669sdl_too_old=no
670
671if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000672 sdl_config="sdl-config"
673 sdl=no
674 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000675
ths069b0bd2007-07-12 00:27:15 +0000676 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
677 # win32 cross compilation case
678 sdl_config="i386-mingw32msvc-sdl-config"
679 sdl=yes
680 else
681 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000682cat > $TMPC << EOF
683#include <SDL.h>
684#undef main /* We don't want SDL to override our main() */
685int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
686EOF
pbrookdb7287e2008-02-03 16:27:13 +0000687 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 +0000688 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
689 if test "$_sdlversion" -lt 121 ; then
690 sdl_too_old=yes
691 else
692 if test "$cocoa" = "no" ; then
693 sdl=yes
694 fi
695 fi
bellard11d9f692004-04-02 20:55:59 +0000696
ths069b0bd2007-07-12 00:27:15 +0000697 # static link with sdl ?
698 if test "$sdl" = "yes" ; then
699 aa="no"
700 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
701 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
702 if [ "$aa" = "yes" ] ; then
703 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
704 fi
705
ths8281db42007-11-18 21:37:07 +0000706 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 +0000707 sdl_static=yes
708 fi
709 fi # static link
710 fi # sdl compile test
711 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000712else
ths069b0bd2007-07-12 00:27:15 +0000713 # Make sure to disable cocoa if sdl was set
714 if test "$sdl" = "yes" ; then
715 cocoa="no"
716 coreaudio="no"
717 fi
bellarda6e022a2004-04-02 21:55:47 +0000718fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000719
ths8f28f3f2007-01-05 21:25:54 +0000720##########################################
ths8d5d2d42007-08-25 01:37:51 +0000721# VNC TLS detection
722if test "$vnc_tls" = "yes" ; then
723 `pkg-config gnutls` || vnc_tls="no"
724fi
725if test "$vnc_tls" = "yes" ; then
726 vnc_tls_cflags=`pkg-config --cflags gnutls`
727 vnc_tls_libs=`pkg-config --libs gnutls`
728fi
729
730##########################################
ths8f28f3f2007-01-05 21:25:54 +0000731# alsa sound support libraries
732
733if test "$alsa" = "yes" ; then
734 cat > $TMPC << EOF
735#include <alsa/asoundlib.h>
736int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
737EOF
pbrookdb7287e2008-02-03 16:27:13 +0000738 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000739 :
740 else
741 echo
742 echo "Error: Could not find alsa"
743 echo "Make sure to have the alsa libs and headers installed."
744 echo
745 exit 1
746 fi
747fi
748
balrog4d3b6f62008-02-10 16:33:14 +0000749##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000750# BrlAPI probe
751
752if test -z "$brlapi" ; then
753 brlapi=no
754cat > $TMPC << EOF
755#include <brlapi.h>
756int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
757EOF
aurel32a40e56d2008-05-04 00:50:25 +0000758 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000759 brlapi=yes
760 fi # brlapi compile test
761fi # -z $brlapi
762
763##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000764# curses probe
765
766if test "$curses" = "yes" ; then
767 curses=no
768 cat > $TMPC << EOF
769#include <curses.h>
770int main(void) { return curses_version(); }
771EOF
pbrookaf896aa2008-03-23 00:47:42 +0000772 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000773 curses=yes
774 fi
775fi # test "$curses"
776
pbrookcc8ae6d2006-04-23 17:57:59 +0000777# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000778if [ -x "`which texi2html 2>/dev/null`" ] && \
779 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000780 build_docs="yes"
781fi
782
bellard11d9f692004-04-02 20:55:59 +0000783if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000784 if test -z "$prefix" ; then
785 prefix="/c/Program Files/Qemu"
786 fi
787 mansuffix=""
788 datasuffix=""
789 docsuffix=""
790 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000791else
pbrook308c3592007-02-27 00:52:01 +0000792 if test -z "$prefix" ; then
793 prefix="/usr/local"
794 fi
795 mansuffix="/share/man"
796 datasuffix="/share/qemu"
797 docsuffix="/share/doc/qemu"
798 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000799fi
bellard5a671352003-10-01 00:13:48 +0000800
bellard43ce4df2003-06-09 19:53:12 +0000801echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000802echo "BIOS directory $prefix$datasuffix"
803echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000804if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000805echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000806echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000807fi
bellard5a671352003-10-01 00:13:48 +0000808echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000809echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000810echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000811echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000812echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000813echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000814echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000815echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000816echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000817echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000818echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000819echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000820echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000821if test "$darwin" = "yes" ; then
822 echo "Cocoa support $cocoa"
823fi
bellard97a847b2003-08-10 21:36:04 +0000824echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000825if test "$sdl" != "no" ; then
826 echo "SDL static link $sdl_static"
827fi
balrog4d3b6f62008-02-10 16:33:14 +0000828echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000829echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000830echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000831echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000832echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000833echo "CoreAudio support $coreaudio"
834echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000835echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000836echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000837if test "$fmod" = "yes"; then
838 if test -z $fmod_lib || test -z $fmod_inc; then
839 echo
840 echo "Error: You must specify path to FMOD library and headers"
841 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
842 echo
843 exit 1
844 fi
pbrookb1a550a2006-04-16 13:28:56 +0000845 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
846else
847 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000848fi
pbrookb1a550a2006-04-16 13:28:56 +0000849echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000850echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000851echo "VNC TLS support $vnc_tls"
852if test "$vnc_tls" = "yes" ; then
853 echo " TLS CFLAGS $vnc_tls_cflags"
854 echo " TLS LIBS $vnc_tls_libs"
855fi
blueswir131422552007-04-16 18:27:06 +0000856if test -n "$sparc_cpu"; then
857 echo "Target Sparc Arch $sparc_cpu"
858fi
bellard07f4ddb2005-04-23 17:44:28 +0000859echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000860echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000861echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000862[ ! -z "$uname_release" ] && \
863echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +0000864echo "NPTL support $nptl"
bellard67b915a2004-03-31 23:37:16 +0000865
bellard97a847b2003-08-10 21:36:04 +0000866if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000867echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000868fi
ths20b40c62007-07-11 23:39:45 +0000869if [ -s /tmp/qemu-$$-sdl-config.log ]; then
870 echo "The error log from compiling the libSDL test is: "
871 cat /tmp/qemu-$$-sdl-config.log
872fi
873rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000874#if test "$sdl_static" = "no"; then
875# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
876#fi
bellard97a847b2003-08-10 21:36:04 +0000877config_mak="config-host.mak"
878config_h="config-host.h"
879
bellard7c1f25b2004-04-22 00:02:08 +0000880#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000881
ths15d9ca02007-07-31 23:07:32 +0000882test -f $config_h && mv $config_h ${config_h}~
883
bellard97a847b2003-08-10 21:36:04 +0000884echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000885echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000886echo "/* Automatically generated by configure - do not modify */" > $config_h
887
888echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000889echo "bindir=\${prefix}$binsuffix" >> $config_mak
890echo "mandir=\${prefix}$mansuffix" >> $config_mak
891echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000892echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000893echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000894echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000895echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000896echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000897echo "HOST_CC=$host_cc" >> $config_mak
898echo "AR=$ar" >> $config_mak
899echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000900# XXX: only use CFLAGS and LDFLAGS ?
901# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
902# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000903echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000904echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
905echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
906echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000907echo "CFLAGS=$CFLAGS" >> $config_mak
908echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000909echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000910echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +0000911case "$cpu" in
912 i386)
913 echo "ARCH=i386" >> $config_mak
914 echo "#define HOST_I386 1" >> $config_h
915 ;;
916 x86_64)
917 echo "ARCH=x86_64" >> $config_mak
918 echo "#define HOST_X86_64 1" >> $config_h
919 ;;
920 alpha)
921 echo "ARCH=alpha" >> $config_mak
922 echo "#define HOST_ALPHA 1" >> $config_h
923 ;;
924 armv4b)
925 echo "ARCH=arm" >> $config_mak
926 echo "#define HOST_ARM 1" >> $config_h
927 ;;
928 armv4l)
929 echo "ARCH=arm" >> $config_mak
930 echo "#define HOST_ARM 1" >> $config_h
931 ;;
932 cris)
933 echo "ARCH=cris" >> $config_mak
934 echo "#define HOST_CRIS 1" >> $config_h
935 ;;
936 hppa)
937 echo "ARCH=hppa" >> $config_mak
938 echo "#define HOST_HPPA 1" >> $config_h
939 ;;
940 ia64)
941 echo "ARCH=ia64" >> $config_mak
942 echo "#define HOST_IA64 1" >> $config_h
943 ;;
944 m68k)
945 echo "ARCH=m68k" >> $config_mak
946 echo "#define HOST_M68K 1" >> $config_h
947 ;;
948 mips)
949 echo "ARCH=mips" >> $config_mak
950 echo "#define HOST_MIPS 1" >> $config_h
951 ;;
952 mips64)
953 echo "ARCH=mips64" >> $config_mak
954 echo "#define HOST_MIPS64 1" >> $config_h
955 ;;
956 powerpc)
957 echo "ARCH=ppc" >> $config_mak
958 echo "#define HOST_PPC 1" >> $config_h
959 ;;
960 s390)
961 echo "ARCH=s390" >> $config_mak
962 echo "#define HOST_S390 1" >> $config_h
963 ;;
964 sparc)
965 echo "ARCH=sparc" >> $config_mak
966 echo "#define HOST_SPARC 1" >> $config_h
967 ;;
968 sparc64)
969 echo "ARCH=sparc64" >> $config_mak
970 echo "#define HOST_SPARC64 1" >> $config_h
971 ;;
972 *)
973 echo "Unsupported CPU = $cpu"
974 exit 1
975 ;;
976esac
bellard7d132992003-03-06 23:23:54 +0000977if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000978 echo "WORDS_BIGENDIAN=yes" >> $config_mak
979 echo "#define WORDS_BIGENDIAN 1" >> $config_h
980fi
bellardb6853692005-06-05 17:10:39 +0000981echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000982if test "$mingw32" = "yes" ; then
983 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000984 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000985else
986 cat > $TMPC << EOF
987#include <byteswap.h>
988int main(void) { return bswap_32(0); }
989EOF
pbrookdb7287e2008-02-03 16:27:13 +0000990 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000991 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
992 fi
bellard67b915a2004-03-31 23:37:16 +0000993fi
bellard83fb7ad2004-07-05 21:25:26 +0000994if test "$darwin" = "yes" ; then
995 echo "CONFIG_DARWIN=yes" >> $config_mak
996 echo "#define CONFIG_DARWIN 1" >> $config_h
997fi
bellardec530c82006-04-25 22:36:06 +0000998if test "$solaris" = "yes" ; then
999 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001000 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001001 if test "$needs_libsunmath" = "yes" ; then
1002 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1003 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1004 fi
bellardec530c82006-04-25 22:36:06 +00001005fi
blueswir131422552007-04-16 18:27:06 +00001006if test -n "$sparc_cpu"; then
1007 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1008 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1009fi
bellard67b915a2004-03-31 23:37:16 +00001010if test "$gdbstub" = "yes" ; then
1011 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1012 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1013fi
bellard97a847b2003-08-10 21:36:04 +00001014if test "$gprof" = "yes" ; then
1015 echo "TARGET_GPROF=yes" >> $config_mak
1016 echo "#define HAVE_GPROF 1" >> $config_h
1017fi
1018if test "$static" = "yes" ; then
1019 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001020 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001021fi
bellard05c2a3e2006-02-08 22:39:17 +00001022if test $profiler = "yes" ; then
1023 echo "#define CONFIG_PROFILER 1" >> $config_h
1024fi
bellardc20709a2004-04-21 23:27:19 +00001025if test "$slirp" = "yes" ; then
1026 echo "CONFIG_SLIRP=yes" >> $config_mak
1027 echo "#define CONFIG_SLIRP 1" >> $config_h
1028fi
bellardfb065182004-11-09 23:09:44 +00001029if test "$adlib" = "yes" ; then
1030 echo "CONFIG_ADLIB=yes" >> $config_mak
1031 echo "#define CONFIG_ADLIB 1" >> $config_h
1032fi
balroge5c9a132008-01-14 04:27:55 +00001033if test "$ac97" = "yes" ; then
1034 echo "CONFIG_AC97=yes" >> $config_mak
1035 echo "#define CONFIG_AC97 1" >> $config_h
1036fi
balrog423d65f2008-01-14 22:09:11 +00001037if test "$gus" = "yes" ; then
1038 echo "CONFIG_GUS=yes" >> $config_mak
1039 echo "#define CONFIG_GUS 1" >> $config_h
1040fi
bellardfb065182004-11-09 23:09:44 +00001041if test "$oss" = "yes" ; then
1042 echo "CONFIG_OSS=yes" >> $config_mak
1043 echo "#define CONFIG_OSS 1" >> $config_h
1044fi
bellard1d14ffa2005-10-30 18:58:22 +00001045if test "$coreaudio" = "yes" ; then
1046 echo "CONFIG_COREAUDIO=yes" >> $config_mak
1047 echo "#define CONFIG_COREAUDIO 1" >> $config_h
1048fi
1049if test "$alsa" = "yes" ; then
1050 echo "CONFIG_ALSA=yes" >> $config_mak
1051 echo "#define CONFIG_ALSA 1" >> $config_h
1052fi
balrogca9cc282008-01-14 04:24:29 +00001053if test "$esd" = "yes" ; then
1054 echo "CONFIG_ESD=yes" >> $config_mak
1055 echo "#define CONFIG_ESD 1" >> $config_h
1056fi
bellard1d14ffa2005-10-30 18:58:22 +00001057if test "$dsound" = "yes" ; then
1058 echo "CONFIG_DSOUND=yes" >> $config_mak
1059 echo "#define CONFIG_DSOUND 1" >> $config_h
1060fi
bellard102a52e2004-11-14 19:57:29 +00001061if test "$fmod" = "yes" ; then
1062 echo "CONFIG_FMOD=yes" >> $config_mak
1063 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1064 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1065 echo "#define CONFIG_FMOD 1" >> $config_h
1066fi
ths8d5d2d42007-08-25 01:37:51 +00001067if test "$vnc_tls" = "yes" ; then
1068 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1069 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1070 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1071 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1072fi
pbrookb1a550a2006-04-16 13:28:56 +00001073qemu_version=`head $source_path/VERSION`
1074echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001075echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001076
1077echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001078if [ "$source_path_used" = "yes" ]; then
1079 echo "VPATH=$source_path" >> $config_mak
1080fi
bellard97a847b2003-08-10 21:36:04 +00001081echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001082if [ "$build_docs" = "yes" ] ; then
1083 echo "BUILD_DOCS=yes" >> $config_mak
1084fi
bellard49ecc3f2007-11-07 19:25:15 +00001085if test "$static" = "yes"; then
1086 sdl1=$sdl_static
1087else
1088 sdl1=$sdl
1089fi
1090if test "$sdl1" = "yes" ; then
1091 echo "#define CONFIG_SDL 1" >> $config_h
1092 echo "CONFIG_SDL=yes" >> $config_mak
1093 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1094 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1095 else
1096 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1097 fi
1098 if [ "${aa}" = "yes" ] ; then
1099 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1100 else
1101 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1102 fi
1103fi
1104if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001105 echo "#define CONFIG_COCOA 1" >> $config_h
1106 echo "CONFIG_COCOA=yes" >> $config_mak
1107fi
1108if test "$curses" = "yes" ; then
1109 echo "#define CONFIG_CURSES 1" >> $config_h
1110 echo "CONFIG_CURSES=yes" >> $config_mak
1111 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001112fi
aurel322e4d9fb2008-04-08 06:01:02 +00001113if test "$brlapi" = "yes" ; then
1114 echo "CONFIG_BRLAPI=yes" >> $config_mak
1115 echo "#define CONFIG_BRLAPI 1" >> $config_h
1116 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1117fi
bellard97a847b2003-08-10 21:36:04 +00001118
bellard83fb7ad2004-07-05 21:25:26 +00001119# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001120if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001121 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001122 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001123 echo "#define _BSD 1" >> $config_h
1124fi
1125
pbrookc5937222006-05-14 11:30:38 +00001126echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1127
pbrookc39e3332007-09-22 16:49:14 +00001128tools=
1129if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1130 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001131 if [ "$linux" = "yes" ] ; then
1132 tools="qemu-nbd\$(EXESUF) $tools"
1133 fi
pbrookc39e3332007-09-22 16:49:14 +00001134fi
1135echo "TOOLS=$tools" >> $config_mak
1136
ths15d9ca02007-07-31 23:07:32 +00001137test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1138
bellard1d14ffa2005-10-30 18:58:22 +00001139for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001140target_dir="$target"
1141config_mak=$target_dir/config.mak
1142config_h=$target_dir/config.h
1143target_cpu=`echo $target | cut -d '-' -f 1`
1144target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001145[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001146[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1147[ "$target_cpu" = "mips" ] && target_bigendian=yes
1148[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1149[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001150[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001151[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001152[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001153[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001154[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001155[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1156[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1157[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001158target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001159target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001160target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001161target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001162case "$target" in
1163 ${target_cpu}-softmmu)
1164 target_softmmu="yes"
1165 ;;
1166 ${target_cpu}-linux-user)
1167 target_user_only="yes"
1168 target_linux_user="yes"
1169 ;;
1170 ${target_cpu}-darwin-user)
1171 target_user_only="yes"
1172 target_darwin_user="yes"
1173 ;;
1174 *)
1175 echo "ERROR: Target '$target' not recognised"
1176 exit 1
1177 ;;
1178esac
ths831b7822007-01-18 20:06:33 +00001179
bellard97ccc682005-07-02 13:32:17 +00001180if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001181 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001182 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001183 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001184 echo "Note that this will disable all output from the virtual graphics card"
1185 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001186 exit 1;
1187fi
1188
bellard7c1f25b2004-04-22 00:02:08 +00001189#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001190
ths15d9ca02007-07-31 23:07:32 +00001191test -f $config_h && mv $config_h ${config_h}~
1192
bellard97a847b2003-08-10 21:36:04 +00001193mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001194mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001195mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001196if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001197 mkdir -p $target_dir/nwfpe
1198fi
1199
bellardec530c82006-04-25 22:36:06 +00001200#
1201# don't use ln -sf as not all "ln -sf" over write the file/link
1202#
1203rm -f $target_dir/Makefile
1204ln -s $source_path/Makefile.target $target_dir/Makefile
1205
bellard97a847b2003-08-10 21:36:04 +00001206
1207echo "# Automatically generated by configure - do not modify" > $config_mak
1208echo "/* Automatically generated by configure - do not modify */" > $config_h
1209
1210
1211echo "include ../config-host.mak" >> $config_mak
1212echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001213
pbrooke5fe0c52006-06-11 13:32:59 +00001214bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001215elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001216target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001217interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1218echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001219
aurel322408a522008-04-20 20:19:44 +00001220case "$target_cpu" in
1221 i386)
1222 echo "TARGET_ARCH=i386" >> $config_mak
1223 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1224 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001225 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001226 then
1227 echo "#define USE_KQEMU 1" >> $config_h
1228 fi
aurel32f2bf0942008-05-05 06:00:27 +00001229 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001230 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001231 then
1232 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1233 else
1234 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1235 fi
aurel322408a522008-04-20 20:19:44 +00001236 ;;
1237 x86_64)
1238 echo "TARGET_ARCH=x86_64" >> $config_mak
1239 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1240 echo "#define TARGET_I386 1" >> $config_h
1241 echo "#define TARGET_X86_64 1" >> $config_h
1242 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1243 then
1244 echo "#define USE_KQEMU 1" >> $config_h
1245 fi
1246 ;;
1247 alpha)
1248 echo "TARGET_ARCH=alpha" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001249 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001250 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1251 echo "#define TARGET_ALPHA 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001252 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001253 ;;
1254 arm|armeb)
1255 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001256 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1257 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001258 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001259 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001260 ;;
1261 cris)
1262 echo "TARGET_ARCH=cris" >> $config_mak
1263 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1264 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001265 ;;
1266 m68k)
1267 echo "TARGET_ARCH=m68k" >> $config_mak
1268 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1269 echo "#define TARGET_M68K 1" >> $config_h
1270 bflt="yes"
1271 ;;
1272 mips|mipsel)
1273 echo "TARGET_ARCH=mips" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001274 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001275 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1276 echo "#define TARGET_MIPS 1" >> $config_h
1277 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001278 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001279 ;;
1280 mipsn32|mipsn32el)
1281 echo "TARGET_ARCH=mipsn32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001282 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001283 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1284 echo "#define TARGET_MIPS 1" >> $config_h
1285 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001286 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001287 ;;
1288 mips64|mips64el)
1289 echo "TARGET_ARCH=mips64" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001290 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001291 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1292 echo "#define TARGET_MIPS 1" >> $config_h
1293 echo "#define TARGET_MIPS64 1" >> $config_h
1294 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001295 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001296 ;;
1297 ppc)
1298 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001299 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001300 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1301 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001302 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001303 ;;
1304 ppcemb)
1305 echo "TARGET_ARCH=ppcemb" >> $config_mak
1306 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001307 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001308 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1309 echo "#define TARGET_PPC 1" >> $config_h
1310 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001311 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001312 ;;
1313 ppc64)
1314 echo "TARGET_ARCH=ppc64" >> $config_mak
1315 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001316 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001317 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1318 echo "#define TARGET_PPC 1" >> $config_h
1319 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001320 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001321 ;;
1322 ppc64abi32)
1323 echo "TARGET_ARCH=ppc64" >> $config_mak
1324 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1325 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001326 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001327 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1328 echo "#define TARGET_PPC 1" >> $config_h
1329 echo "#define TARGET_PPC64 1" >> $config_h
1330 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001331 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001332 ;;
1333 sh4|sh4eb)
1334 echo "TARGET_ARCH=sh4" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001335 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001336 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1337 echo "#define TARGET_SH4 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001338 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001339 bflt="yes"
1340 ;;
1341 sparc)
1342 echo "TARGET_ARCH=sparc" >> $config_mak
1343 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1344 echo "#define TARGET_SPARC 1" >> $config_h
1345 ;;
1346 sparc64)
1347 echo "TARGET_ARCH=sparc64" >> $config_mak
1348 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1349 echo "#define TARGET_SPARC 1" >> $config_h
1350 echo "#define TARGET_SPARC64 1" >> $config_h
1351 elfload32="yes"
1352 ;;
1353 sparc32plus)
1354 echo "TARGET_ARCH=sparc64" >> $config_mak
1355 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1356 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1357 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1358 echo "#define TARGET_SPARC 1" >> $config_h
1359 echo "#define TARGET_SPARC64 1" >> $config_h
1360 echo "#define TARGET_ABI32 1" >> $config_h
1361 ;;
1362 *)
1363 echo "Unsupported target CPU"
1364 exit 1
1365 ;;
1366esac
bellardde83cd02003-06-15 20:25:43 +00001367if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001368 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1369 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1370fi
1371if test "$target_softmmu" = "yes" ; then
1372 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1373 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001374fi
bellard997344f2003-10-27 21:10:39 +00001375if test "$target_user_only" = "yes" ; then
1376 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1377 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1378fi
ths831b7822007-01-18 20:06:33 +00001379if test "$target_linux_user" = "yes" ; then
1380 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1381 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1382fi
1383if test "$target_darwin_user" = "yes" ; then
1384 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1385 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1386fi
bellardde83cd02003-06-15 20:25:43 +00001387
aurel320938cda2008-04-11 21:36:06 +00001388if test "$target_cpu" = "arm" \
1389 -o "$target_cpu" = "armeb" \
1390 -o "$target_cpu" = "m68k" \
1391 -o "$target_cpu" = "mips" \
1392 -o "$target_cpu" = "mipsel" \
1393 -o "$target_cpu" = "mipsn32" \
1394 -o "$target_cpu" = "mipsn32el" \
1395 -o "$target_cpu" = "mips64" \
1396 -o "$target_cpu" = "mips64el" \
1397 -o "$target_cpu" = "sparc" \
1398 -o "$target_cpu" = "sparc64" \
1399 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001400 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1401 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1402fi
pbrooke5fe0c52006-06-11 13:32:59 +00001403if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1404 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1405 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1406fi
pbrookbd0c5662008-05-29 14:34:11 +00001407if test "$target_user_only" = "yes" \
1408 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1409 echo "#define USE_NPTL 1" >> $config_h
1410fi
blueswir1cb33da52007-10-09 16:34:29 +00001411# 32 bit ELF loader in addition to native 64 bit loader?
1412if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1413 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1414 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1415fi
bellard5b0753e2005-03-01 21:37:28 +00001416
ths15d9ca02007-07-31 23:07:32 +00001417test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1418
bellard97a847b2003-08-10 21:36:04 +00001419done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001420
1421# build tree in object directory if source path is different from current one
1422if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001423 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001424 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001425 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001426 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001427 for dir in $DIRS ; do
1428 mkdir -p $dir
1429 done
bellardec530c82006-04-25 22:36:06 +00001430 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001431 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001432 rm -f $f
1433 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001434 done
1435fi
bellard7d132992003-03-06 23:23:54 +00001436
bellard97a847b2003-08-10 21:36:04 +00001437rm -f $TMPO $TMPC $TMPE $TMPS