blob: a2f54b83c22dc2d15eb199e96d880c39d2ecb744 [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"
bellard7d132992003-03-06 23:23:54 +0000115
116# OS specific
117targetos=`uname -s`
118case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000119CYGWIN*)
120mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000121OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000122if [ "$cpu" = "i386" ] ; then
123 kqemu="yes"
124fi
bellardc326e0a2005-04-23 18:30:28 +0000125;;
bellard67b915a2004-03-31 23:37:16 +0000126MINGW32*)
127mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000128if [ "$cpu" = "i386" ] ; then
129 kqemu="yes"
130fi
bellard67b915a2004-03-31 23:37:16 +0000131;;
ths5c40d2b2007-06-23 16:03:36 +0000132GNU/kFreeBSD)
133oss="yes"
134if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
135 kqemu="yes"
136fi
137;;
bellard7d3505c2004-05-12 19:32:15 +0000138FreeBSD)
139bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000140oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000141if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000142 kqemu="yes"
143fi
bellard7d3505c2004-05-12 19:32:15 +0000144;;
145NetBSD)
146bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000147oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000148;;
149OpenBSD)
150bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000151oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000152;;
bellard83fb7ad2004-07-05 21:25:26 +0000153Darwin)
154bsd="yes"
155darwin="yes"
ths831b7822007-01-18 20:06:33 +0000156darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000157cocoa="yes"
158coreaudio="yes"
ths6f30fa82007-01-05 01:00:47 +0000159OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000160OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
bellard83fb7ad2004-07-05 21:25:26 +0000161;;
bellardec530c82006-04-25 22:36:06 +0000162SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000163 solaris="yes"
164 make="gmake"
165 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000166 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000167 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000168 # have to select again, because `uname -m` returns i86pc
169 # even on an x86_64 box.
170 solariscpu=`isainfo -k`
171 if test "${solariscpu}" = "amd64" ; then
172 cpu="x86_64"
173 fi
thsc2b84fa2007-02-10 23:21:21 +0000174 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000175 if test "$solarisrev" -le 9 ; then
176 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
177 needs_libsunmath="yes"
178 else
179 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
180 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
181 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
182 echo "Studio 11 can be downloaded from www.sun.com."
183 exit 1
184 fi
185 fi
186 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000187 kqemu="yes"
188 fi
ths86b2bd92007-02-11 00:31:33 +0000189 fi
ths6b4d2ba2007-05-13 18:02:43 +0000190 if test -f /usr/include/sys/soundcard.h ; then
191 oss=yes
192 fi
ths86b2bd92007-02-11 00:31:33 +0000193;;
bellard1d14ffa2005-10-30 18:58:22 +0000194*)
bellardfb065182004-11-09 23:09:44 +0000195oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000196linux="yes"
ths831b7822007-01-18 20:06:33 +0000197linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000198if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000199 kqemu="yes"
200fi
bellardfb065182004-11-09 23:09:44 +0000201;;
bellard7d132992003-03-06 23:23:54 +0000202esac
203
bellard7d3505c2004-05-12 19:32:15 +0000204if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000205 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000206 make="gmake"
207 fi
bellard7d3505c2004-05-12 19:32:15 +0000208fi
209
bellard7d132992003-03-06 23:23:54 +0000210# find source path
pbrookad064842006-04-16 12:41:07 +0000211source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000212source_path_used="no"
213workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000214if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000215 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000216else
217 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000218fi
pbrook724db112008-02-03 19:20:13 +0000219[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000220
bellard85aa5182007-11-11 20:17:03 +0000221werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000222# generate compile errors on warnings for development builds
223#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
224#werror="yes";
225#fi
bellard85aa5182007-11-11 20:17:03 +0000226
bellard7d132992003-03-06 23:23:54 +0000227for opt do
pbrooka46e4032006-04-29 23:05:22 +0000228 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000229 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000230 --help|-h) show_help=yes
231 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000232 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000233 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000234 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000235 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000236 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000237 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000238 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000239 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000240 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000241 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000242 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000243 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000244 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000245 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000246 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000247 ;;
pbrook6a882642006-04-17 13:57:12 +0000248 --install=*) install="$optarg"
249 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000250 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000251 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000252 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000253 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000254 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000255 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000256 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000257 ;;
bellard7d132992003-03-06 23:23:54 +0000258 --enable-gprof) gprof="yes"
259 ;;
bellard43ce4df2003-06-09 19:53:12 +0000260 --static) static="yes"
261 ;;
bellard97a847b2003-08-10 21:36:04 +0000262 --disable-sdl) sdl="no"
263 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000264 --enable-coreaudio) coreaudio="yes"
265 ;;
266 --enable-alsa) alsa="yes"
267 ;;
balrogca9cc282008-01-14 04:24:29 +0000268 --enable-esd) esd="yes"
269 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000270 --enable-dsound) dsound="yes"
271 ;;
bellard102a52e2004-11-14 19:57:29 +0000272 --enable-fmod) fmod="yes"
273 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000274 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000275 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000276 --fmod-inc=*) fmod_inc="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000277 ;;
ths8d5d2d42007-08-25 01:37:51 +0000278 --disable-vnc-tls) vnc_tls="no"
279 ;;
bellardb93aebe2007-02-15 22:58:18 +0000280 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
bellard1d14ffa2005-10-30 18:58:22 +0000281 ;;
bellard443f1372004-06-04 11:13:20 +0000282 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000283 ;;
bellardfb065182004-11-09 23:09:44 +0000284 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000285 ;;
balroge5c9a132008-01-14 04:27:55 +0000286 --enable-ac97) ac97="yes"
287 ;;
balrog423d65f2008-01-14 22:09:11 +0000288 --enable-gus) gus="yes"
289 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000290 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000291 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000292 --disable-brlapi) brlapi="no"
293 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000294 --enable-profiler) profiler="yes"
295 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000296 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
297 ;;
bellard97ccc682005-07-02 13:32:17 +0000298 --disable-gfx-check) check_gfx="no"
299 ;;
bellard1aff3812005-11-02 22:30:45 +0000300 --disable-gcc-check) check_gcc="no"
301 ;;
pbrookcad25d62006-03-19 16:31:11 +0000302 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000303 ;;
pbrookcad25d62006-03-19 16:31:11 +0000304 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000305 ;;
ths831b7822007-01-18 20:06:33 +0000306 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000307 ;;
ths831b7822007-01-18 20:06:33 +0000308 --enable-linux-user) linux_user="yes"
309 ;;
310 --disable-darwin-user) darwin_user="no"
311 ;;
312 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000313 ;;
pbrookc5937222006-05-14 11:30:38 +0000314 --enable-uname-release=*) uname_release="$optarg"
315 ;;
blueswir131422552007-04-16 18:27:06 +0000316 --sparc_cpu=*)
317 sparc_cpu="$optarg"
318 case $sparc_cpu in
319 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
320 target_cpu="sparc"; cpu="sparc" ;;
321 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
322 target_cpu="sparc"; cpu="sparc" ;;
323 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
324 target_cpu="sparc64"; cpu="sparc64" ;;
325 *) echo "undefined SPARC architecture. Exiting";exit 1;;
326 esac
327 ;;
bellard85aa5182007-11-11 20:17:03 +0000328 --enable-werror) werror="yes"
329 ;;
330 --disable-werror) werror="no"
331 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000332 --disable-curses) curses="no"
333 ;;
balrog7f1559c2007-11-17 10:24:32 +0000334 *) echo "ERROR: unknown option $opt"; show_help="yes"
335 ;;
bellard7d132992003-03-06 23:23:54 +0000336 esac
337done
338
ths209afb92007-03-25 20:55:00 +0000339if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
340 AIOLIBS=
341else
ths4259e1a2007-11-05 13:27:21 +0000342 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
343 AIOLIBS="-lrt -lpthread"
ths209afb92007-03-25 20:55:00 +0000344fi
345
ths6f30fa82007-01-05 01:00:47 +0000346# default flags for all hosts
347CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
348LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000349if test "$werror" = "yes" ; then
350CFLAGS="$CFLAGS -Werror"
351fi
ths6f30fa82007-01-05 01:00:47 +0000352
blueswir131422552007-04-16 18:27:06 +0000353#
354# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
355# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
356#
bellard40293e52008-01-31 11:32:10 +0000357case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000358 sparc) if test -z "$sparc_cpu" ; then
359 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
360 ARCH_LDFLAGS="-m32"
361 else
362 ARCH_CFLAGS="${SP_CFLAGS}"
363 ARCH_LDFLAGS="${SP_LDFLAGS}"
364 fi
365 ;;
366 sparc64) if test -z "$sparc_cpu" ; then
367 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
368 ARCH_LDFLAGS="-m64"
369 else
370 ARCH_CFLAGS="${SP_CFLAGS}"
371 ARCH_LDFLAGS="${SP_LDFLAGS}"
372 fi
373 ;;
ths76d83bd2007-11-18 21:22:10 +0000374 s390)
375 ARCH_CFLAGS="-march=z900"
376 ;;
bellard40293e52008-01-31 11:32:10 +0000377 i386)
378 ARCH_CFLAGS="-m32"
379 ARCH_LDFLAGS="-m32"
380 ;;
381 x86_64)
382 ARCH_CFLAGS="-m64"
383 ARCH_LDFLAGS="-m64"
384 ;;
blueswir131422552007-04-16 18:27:06 +0000385esac
386
pbrookaf5db582006-04-08 14:26:41 +0000387if test x"$show_help" = x"yes" ; then
388cat << EOF
389
390Usage: configure [options]
391Options: [defaults in brackets after descriptions]
392
393EOF
394echo "Standard options:"
395echo " --help print this message"
396echo " --prefix=PREFIX install in PREFIX [$prefix]"
397echo " --interp-prefix=PREFIX where to find shared libraries, etc."
398echo " use %M for cpu name [$interp_prefix]"
399echo " --target-list=LIST set target list [$target_list]"
400echo ""
401echo "kqemu kernel acceleration support:"
402echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000403echo ""
404echo "Advanced options (experts only):"
405echo " --source-path=PATH path of source code [$source_path]"
406echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
407echo " --cc=CC use C compiler CC [$cc]"
408echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
409echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000410echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000411echo " --static enable static build [$static]"
bellard85aa5182007-11-11 20:17:03 +0000412echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000413echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000414echo " --enable-cocoa enable COCOA (Mac OS X only)"
415echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
416echo " --enable-adlib enable Adlib emulation"
balroge5c9a132008-01-14 04:27:55 +0000417echo " --enable-ac97 enable AC97 emulation"
balrog423d65f2008-01-14 22:09:11 +0000418echo " --enable-gus enable Gravis Ultrasound emulation"
pbrookaf5db582006-04-08 14:26:41 +0000419echo " --enable-coreaudio enable Coreaudio audio driver"
420echo " --enable-alsa enable ALSA audio driver"
balrogca9cc282008-01-14 04:24:29 +0000421echo " --enable-esd enable EsoundD audio driver"
pbrookaf5db582006-04-08 14:26:41 +0000422echo " --enable-fmod enable FMOD audio driver"
thsed5065e2007-03-25 16:15:21 +0000423echo " --enable-dsound enable DirectSound audio driver"
aurel322e4d9fb2008-04-08 06:01:02 +0000424echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000425echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000426echo " --disable-curses disable curses output"
pbrookaf5db582006-04-08 14:26:41 +0000427echo " --enable-system enable all system emulation targets"
428echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000429echo " --enable-linux-user enable all linux usermode emulation targets"
430echo " --disable-linux-user disable all linux usermode emulation targets"
431echo " --enable-darwin-user enable all darwin usermode emulation targets"
432echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000433echo " --fmod-lib path to FMOD library"
434echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000435echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000436echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000437echo ""
ths5bf08932006-12-23 00:33:26 +0000438echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000439exit 1
440fi
441
bellard7d132992003-03-06 23:23:54 +0000442cc="${cross_prefix}${cc}"
443ar="${cross_prefix}${ar}"
444strip="${cross_prefix}${strip}"
445
pbrook064aae12006-05-08 00:51:44 +0000446# check that the C compiler works.
447cat > $TMPC <<EOF
448int main(void) {}
449EOF
450
pbrookdb7287e2008-02-03 16:27:13 +0000451if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000452 : C compiler works ok
453else
454 echo "ERROR: \"$cc\" either does not exist or does not work"
455 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000456fi
457
bellard67b915a2004-03-31 23:37:16 +0000458if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000459 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000460 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000461 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000462fi
463
ths5fafdf22007-09-16 21:08:06 +0000464# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000465if test "$check_gcc" = "yes" ; then
466 cat > $TMPC <<EOF
467#if __GNUC__ < 4
468#error gcc3
469#endif
470int main(){return 0;}
471EOF
pbrookdb7287e2008-02-03 16:27:13 +0000472 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000473 echo "WARNING: \"$cc\" looks like gcc 4.x"
474 found_compat_cc="no"
475 if test "$gcc3_search" = "yes" ; then
476 echo "Looking for gcc 3.x"
477 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000478 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000479 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000480 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000481 found_compat_cc="yes"
482 break
483 fi
484 done
485 if test "$found_compat_cc" = "no" ; then
486 echo "gcc 3.x not found!"
487 fi
488 fi
489 if test "$found_compat_cc" = "no" ; then
490 echo "QEMU is known to have problems when compiled with gcc 4.x"
491 echo "It is recommended that you use gcc 3.x to build QEMU"
492 echo "To use this compiler anyway, configure with --disable-gcc-check"
493 exit 1;
494 fi
495 fi
496fi
497
bellardec530c82006-04-25 22:36:06 +0000498#
499# Solaris specific configure tool chain decisions
500#
501if test "$solaris" = "yes" ; then
502 #
503 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
504 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000505 #
bellardec530c82006-04-25 22:36:06 +0000506 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
507 solgcc=`which $cc`
508 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
509 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
510 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
511 echo "or get the latest patch from SunSolve for gcc"
512 exit 1
513 fi
514 fi
515 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
516 if test -z "$solinst" ; then
517 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
518 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
519 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
520 exit 1
521 fi
522 if test "$solinst" = "/usr/sbin/install" ; then
523 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
524 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
525 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
526 exit 1
527 fi
bellardec530c82006-04-25 22:36:06 +0000528 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
529 if test -z "$sol_ar" ; then
530 echo "Error: No path includes ar"
531 if test -f /usr/ccs/bin/ar ; then
532 echo "Add /usr/ccs/bin to your path and rerun configure"
533 fi
534 exit 1
535 fi
ths5fafdf22007-09-16 21:08:06 +0000536fi
bellardec530c82006-04-25 22:36:06 +0000537
538
bellard5327cf42005-01-10 23:18:50 +0000539if test -z "$target_list" ; then
540# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000541 if [ "$softmmu" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000542 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 +0000543 fi
bellard5327cf42005-01-10 23:18:50 +0000544# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000545 if [ "$linux_user" = "yes" ] ; then
ths85ffbdf2007-12-09 05:10:03 +0000546 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 +0000547 fi
548# the following are Darwin specific
549 if [ "$darwin_user" = "yes" ] ; then
550 target_list="i386-darwin-user ppc-darwin-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000551 fi
bellard6e20a452005-06-05 15:56:02 +0000552else
pbrookb1a550a2006-04-16 13:28:56 +0000553 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000554fi
pbrook0a8e90f2006-03-19 14:54:16 +0000555if test -z "$target_list" ; then
556 echo "No targets enabled"
557 exit 1
558fi
bellard5327cf42005-01-10 23:18:50 +0000559
bellard7d132992003-03-06 23:23:54 +0000560if test -z "$cross_prefix" ; then
561
562# ---
563# big/little endian test
564cat > $TMPC << EOF
565#include <inttypes.h>
566int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000567 volatile uint32_t i=0x01234567;
568 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000569}
570EOF
571
pbrookdb7287e2008-02-03 16:27:13 +0000572if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000573$TMPE && bigendian="yes"
574else
575echo big/little test failed
576fi
577
578else
579
580# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000581if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000582 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000583 -o "$cpu" = "m68k" \
584 -o "$cpu" = "mips" \
585 -o "$cpu" = "mips64" \
586 -o "$cpu" = "powerpc" \
587 -o "$cpu" = "s390" \
588 -o "$cpu" = "sparc" \
589 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000590 bigendian="yes"
591fi
592
593fi
594
bellardb6853692005-06-05 17:10:39 +0000595# host long bits test
596hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000597if test "$cpu" = "x86_64" \
598 -o "$cpu" = "alpha" \
599 -o "$cpu" = "ia64" \
600 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000601 hostlongbits="64"
602fi
603
bellarde8cd23d2003-06-25 16:08:13 +0000604# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000605cat > $TMPC <<EOF
606int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000607}
608EOF
609
bellard11d9f692004-04-02 20:55:59 +0000610##########################################
611# SDL probe
612
613sdl_too_old=no
614
615if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000616 sdl_config="sdl-config"
617 sdl=no
618 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000619
ths069b0bd2007-07-12 00:27:15 +0000620 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
621 # win32 cross compilation case
622 sdl_config="i386-mingw32msvc-sdl-config"
623 sdl=yes
624 else
625 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000626cat > $TMPC << EOF
627#include <SDL.h>
628#undef main /* We don't want SDL to override our main() */
629int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
630EOF
pbrookdb7287e2008-02-03 16:27:13 +0000631 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 +0000632 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
633 if test "$_sdlversion" -lt 121 ; then
634 sdl_too_old=yes
635 else
636 if test "$cocoa" = "no" ; then
637 sdl=yes
638 fi
639 fi
bellard11d9f692004-04-02 20:55:59 +0000640
ths069b0bd2007-07-12 00:27:15 +0000641 # static link with sdl ?
642 if test "$sdl" = "yes" ; then
643 aa="no"
644 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
645 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
646 if [ "$aa" = "yes" ] ; then
647 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
648 fi
649
ths8281db42007-11-18 21:37:07 +0000650 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 +0000651 sdl_static=yes
652 fi
653 fi # static link
654 fi # sdl compile test
655 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000656else
ths069b0bd2007-07-12 00:27:15 +0000657 # Make sure to disable cocoa if sdl was set
658 if test "$sdl" = "yes" ; then
659 cocoa="no"
660 coreaudio="no"
661 fi
bellarda6e022a2004-04-02 21:55:47 +0000662fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000663
ths8f28f3f2007-01-05 21:25:54 +0000664##########################################
ths8d5d2d42007-08-25 01:37:51 +0000665# VNC TLS detection
666if test "$vnc_tls" = "yes" ; then
667 `pkg-config gnutls` || vnc_tls="no"
668fi
669if test "$vnc_tls" = "yes" ; then
670 vnc_tls_cflags=`pkg-config --cflags gnutls`
671 vnc_tls_libs=`pkg-config --libs gnutls`
672fi
673
674##########################################
ths8f28f3f2007-01-05 21:25:54 +0000675# alsa sound support libraries
676
677if test "$alsa" = "yes" ; then
678 cat > $TMPC << EOF
679#include <alsa/asoundlib.h>
680int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
681EOF
pbrookdb7287e2008-02-03 16:27:13 +0000682 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000683 :
684 else
685 echo
686 echo "Error: Could not find alsa"
687 echo "Make sure to have the alsa libs and headers installed."
688 echo
689 exit 1
690 fi
691fi
692
balrog4d3b6f62008-02-10 16:33:14 +0000693##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000694# BrlAPI probe
695
696if test -z "$brlapi" ; then
697 brlapi=no
698cat > $TMPC << EOF
699#include <brlapi.h>
700int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
701EOF
702 if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then
703 brlapi=yes
704 fi # brlapi compile test
705fi # -z $brlapi
706
707##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000708# curses probe
709
710if test "$curses" = "yes" ; then
711 curses=no
712 cat > $TMPC << EOF
713#include <curses.h>
714int main(void) { return curses_version(); }
715EOF
pbrookaf896aa2008-03-23 00:47:42 +0000716 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000717 curses=yes
718 fi
719fi # test "$curses"
720
pbrookcc8ae6d2006-04-23 17:57:59 +0000721# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000722if [ -x "`which texi2html 2>/dev/null`" ] && \
723 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000724 build_docs="yes"
725fi
726
bellard11d9f692004-04-02 20:55:59 +0000727if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000728 if test -z "$prefix" ; then
729 prefix="/c/Program Files/Qemu"
730 fi
731 mansuffix=""
732 datasuffix=""
733 docsuffix=""
734 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000735else
pbrook308c3592007-02-27 00:52:01 +0000736 if test -z "$prefix" ; then
737 prefix="/usr/local"
738 fi
739 mansuffix="/share/man"
740 datasuffix="/share/qemu"
741 docsuffix="/share/doc/qemu"
742 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000743fi
bellard5a671352003-10-01 00:13:48 +0000744
bellard43ce4df2003-06-09 19:53:12 +0000745echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000746echo "BIOS directory $prefix$datasuffix"
747echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000748if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000749echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000750echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000751fi
bellard5a671352003-10-01 00:13:48 +0000752echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000753echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000754echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000755echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000756echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000757echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000758echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000759echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000760echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000761echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000762echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000763echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000764echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000765if test "$darwin" = "yes" ; then
766 echo "Cocoa support $cocoa"
767fi
bellard97a847b2003-08-10 21:36:04 +0000768echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000769if test "$sdl" != "no" ; then
770 echo "SDL static link $sdl_static"
771fi
balrog4d3b6f62008-02-10 16:33:14 +0000772echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000773echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000774echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000775echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000776echo "GUS support $gus"
bellard1d14ffa2005-10-30 18:58:22 +0000777echo "CoreAudio support $coreaudio"
778echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000779echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000780echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000781if test "$fmod" = "yes"; then
782 if test -z $fmod_lib || test -z $fmod_inc; then
783 echo
784 echo "Error: You must specify path to FMOD library and headers"
785 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
786 echo
787 exit 1
788 fi
pbrookb1a550a2006-04-16 13:28:56 +0000789 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
790else
791 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000792fi
pbrookb1a550a2006-04-16 13:28:56 +0000793echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000794echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000795echo "VNC TLS support $vnc_tls"
796if test "$vnc_tls" = "yes" ; then
797 echo " TLS CFLAGS $vnc_tls_cflags"
798 echo " TLS LIBS $vnc_tls_libs"
799fi
blueswir131422552007-04-16 18:27:06 +0000800if test -n "$sparc_cpu"; then
801 echo "Target Sparc Arch $sparc_cpu"
802fi
bellard07f4ddb2005-04-23 17:44:28 +0000803echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000804echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000805echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000806[ ! -z "$uname_release" ] && \
807echo "uname -r $uname_release"
bellard67b915a2004-03-31 23:37:16 +0000808
bellard97a847b2003-08-10 21:36:04 +0000809if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000810echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000811fi
ths20b40c62007-07-11 23:39:45 +0000812if [ -s /tmp/qemu-$$-sdl-config.log ]; then
813 echo "The error log from compiling the libSDL test is: "
814 cat /tmp/qemu-$$-sdl-config.log
815fi
816rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000817#if test "$sdl_static" = "no"; then
818# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
819#fi
bellard97a847b2003-08-10 21:36:04 +0000820config_mak="config-host.mak"
821config_h="config-host.h"
822
bellard7c1f25b2004-04-22 00:02:08 +0000823#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000824
ths15d9ca02007-07-31 23:07:32 +0000825test -f $config_h && mv $config_h ${config_h}~
826
bellard97a847b2003-08-10 21:36:04 +0000827echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000828echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000829echo "/* Automatically generated by configure - do not modify */" > $config_h
830
831echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000832echo "bindir=\${prefix}$binsuffix" >> $config_mak
833echo "mandir=\${prefix}$mansuffix" >> $config_mak
834echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000835echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000836echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000837echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000838echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000839echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000840echo "HOST_CC=$host_cc" >> $config_mak
841echo "AR=$ar" >> $config_mak
842echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000843# XXX: only use CFLAGS and LDFLAGS ?
844# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
845# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000846echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000847echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
848echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
849echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000850echo "CFLAGS=$CFLAGS" >> $config_mak
851echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000852echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000853echo "AIOLIBS=$AIOLIBS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000854if test "$cpu" = "i386" ; then
855 echo "ARCH=i386" >> $config_mak
856 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000857elif test "$cpu" = "x86_64" ; then
858 echo "ARCH=x86_64" >> $config_mak
859 echo "#define HOST_X86_64 1" >> $config_h
aurel320938cda2008-04-11 21:36:06 +0000860elif test "$cpu" = "alpha" ; then
861 echo "ARCH=alpha" >> $config_mak
862 echo "#define HOST_ALPHA 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000863elif test "$cpu" = "armv4b" ; then
864 echo "ARCH=arm" >> $config_mak
865 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000866elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000867 echo "ARCH=arm" >> $config_mak
868 echo "#define HOST_ARM 1" >> $config_h
thse7daa602007-10-08 13:38:27 +0000869elif test "$cpu" = "cris" ; then
870 echo "ARCH=cris" >> $config_mak
871 echo "#define HOST_CRIS 1" >> $config_h
aurel32f54b3f92008-04-12 20:14:54 +0000872elif test "$cpu" = "hppa" ; then
873 echo "ARCH=hppa" >> $config_mak
874 echo "#define HOST_HPPA 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000875elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000876 echo "ARCH=ia64" >> $config_mak
877 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000878elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000879 echo "ARCH=m68k" >> $config_mak
880 echo "#define HOST_M68K 1" >> $config_h
aurel320938cda2008-04-11 21:36:06 +0000881elif test "$cpu" = "mips" ; then
882 echo "ARCH=mips" >> $config_mak
883 echo "#define HOST_MIPS 1" >> $config_h
884elif test "$cpu" = "mips64" ; then
885 echo "ARCH=mips64" >> $config_mak
886 echo "#define HOST_MIPS64 1" >> $config_h
887elif test "$cpu" = "powerpc" ; then
888 echo "ARCH=ppc" >> $config_mak
889 echo "#define HOST_PPC 1" >> $config_h
890elif test "$cpu" = "s390" ; then
891 echo "ARCH=s390" >> $config_mak
892 echo "#define HOST_S390 1" >> $config_h
893elif test "$cpu" = "sparc" ; then
894 echo "ARCH=sparc" >> $config_mak
895 echo "#define HOST_SPARC 1" >> $config_h
896elif test "$cpu" = "sparc64" ; then
897 echo "ARCH=sparc64" >> $config_mak
898 echo "#define HOST_SPARC64 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000899else
blueswir131422552007-04-16 18:27:06 +0000900 echo "Unsupported CPU = $cpu"
bellard7d132992003-03-06 23:23:54 +0000901 exit 1
902fi
903if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000904 echo "WORDS_BIGENDIAN=yes" >> $config_mak
905 echo "#define WORDS_BIGENDIAN 1" >> $config_h
906fi
bellardb6853692005-06-05 17:10:39 +0000907echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000908if test "$mingw32" = "yes" ; then
909 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000910 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000911else
912 cat > $TMPC << EOF
913#include <byteswap.h>
914int main(void) { return bswap_32(0); }
915EOF
pbrookdb7287e2008-02-03 16:27:13 +0000916 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000917 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
918 fi
bellard67b915a2004-03-31 23:37:16 +0000919fi
bellard83fb7ad2004-07-05 21:25:26 +0000920if test "$darwin" = "yes" ; then
921 echo "CONFIG_DARWIN=yes" >> $config_mak
922 echo "#define CONFIG_DARWIN 1" >> $config_h
923fi
bellardec530c82006-04-25 22:36:06 +0000924if test "$solaris" = "yes" ; then
925 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +0000926 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +0000927 if test "$needs_libsunmath" = "yes" ; then
928 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
929 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
930 fi
bellardec530c82006-04-25 22:36:06 +0000931fi
blueswir131422552007-04-16 18:27:06 +0000932if test -n "$sparc_cpu"; then
933 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
934 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
935fi
bellard67b915a2004-03-31 23:37:16 +0000936if test "$gdbstub" = "yes" ; then
937 echo "CONFIG_GDBSTUB=yes" >> $config_mak
938 echo "#define CONFIG_GDBSTUB 1" >> $config_h
939fi
bellard97a847b2003-08-10 21:36:04 +0000940if test "$gprof" = "yes" ; then
941 echo "TARGET_GPROF=yes" >> $config_mak
942 echo "#define HAVE_GPROF 1" >> $config_h
943fi
944if test "$static" = "yes" ; then
945 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000946 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000947fi
bellard05c2a3e2006-02-08 22:39:17 +0000948if test $profiler = "yes" ; then
949 echo "#define CONFIG_PROFILER 1" >> $config_h
950fi
bellardc20709a2004-04-21 23:27:19 +0000951if test "$slirp" = "yes" ; then
952 echo "CONFIG_SLIRP=yes" >> $config_mak
953 echo "#define CONFIG_SLIRP 1" >> $config_h
954fi
bellardfb065182004-11-09 23:09:44 +0000955if test "$adlib" = "yes" ; then
956 echo "CONFIG_ADLIB=yes" >> $config_mak
957 echo "#define CONFIG_ADLIB 1" >> $config_h
958fi
balroge5c9a132008-01-14 04:27:55 +0000959if test "$ac97" = "yes" ; then
960 echo "CONFIG_AC97=yes" >> $config_mak
961 echo "#define CONFIG_AC97 1" >> $config_h
962fi
balrog423d65f2008-01-14 22:09:11 +0000963if test "$gus" = "yes" ; then
964 echo "CONFIG_GUS=yes" >> $config_mak
965 echo "#define CONFIG_GUS 1" >> $config_h
966fi
bellardfb065182004-11-09 23:09:44 +0000967if test "$oss" = "yes" ; then
968 echo "CONFIG_OSS=yes" >> $config_mak
969 echo "#define CONFIG_OSS 1" >> $config_h
970fi
bellard1d14ffa2005-10-30 18:58:22 +0000971if test "$coreaudio" = "yes" ; then
972 echo "CONFIG_COREAUDIO=yes" >> $config_mak
973 echo "#define CONFIG_COREAUDIO 1" >> $config_h
974fi
975if test "$alsa" = "yes" ; then
976 echo "CONFIG_ALSA=yes" >> $config_mak
977 echo "#define CONFIG_ALSA 1" >> $config_h
978fi
balrogca9cc282008-01-14 04:24:29 +0000979if test "$esd" = "yes" ; then
980 echo "CONFIG_ESD=yes" >> $config_mak
981 echo "#define CONFIG_ESD 1" >> $config_h
982fi
bellard1d14ffa2005-10-30 18:58:22 +0000983if test "$dsound" = "yes" ; then
984 echo "CONFIG_DSOUND=yes" >> $config_mak
985 echo "#define CONFIG_DSOUND 1" >> $config_h
986fi
bellard102a52e2004-11-14 19:57:29 +0000987if test "$fmod" = "yes" ; then
988 echo "CONFIG_FMOD=yes" >> $config_mak
989 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
990 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
991 echo "#define CONFIG_FMOD 1" >> $config_h
992fi
ths8d5d2d42007-08-25 01:37:51 +0000993if test "$vnc_tls" = "yes" ; then
994 echo "CONFIG_VNC_TLS=yes" >> $config_mak
995 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
996 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
997 echo "#define CONFIG_VNC_TLS 1" >> $config_h
998fi
pbrookb1a550a2006-04-16 13:28:56 +0000999qemu_version=`head $source_path/VERSION`
1000echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001001echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001002
1003echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001004if [ "$source_path_used" = "yes" ]; then
1005 echo "VPATH=$source_path" >> $config_mak
1006fi
bellard97a847b2003-08-10 21:36:04 +00001007echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001008if [ "$build_docs" = "yes" ] ; then
1009 echo "BUILD_DOCS=yes" >> $config_mak
1010fi
bellard49ecc3f2007-11-07 19:25:15 +00001011if test "$static" = "yes"; then
1012 sdl1=$sdl_static
1013else
1014 sdl1=$sdl
1015fi
1016if test "$sdl1" = "yes" ; then
1017 echo "#define CONFIG_SDL 1" >> $config_h
1018 echo "CONFIG_SDL=yes" >> $config_mak
1019 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1020 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1021 else
1022 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1023 fi
1024 if [ "${aa}" = "yes" ] ; then
1025 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1026 else
1027 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1028 fi
1029fi
1030if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001031 echo "#define CONFIG_COCOA 1" >> $config_h
1032 echo "CONFIG_COCOA=yes" >> $config_mak
1033fi
1034if test "$curses" = "yes" ; then
1035 echo "#define CONFIG_CURSES 1" >> $config_h
1036 echo "CONFIG_CURSES=yes" >> $config_mak
1037 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001038fi
aurel322e4d9fb2008-04-08 06:01:02 +00001039if test "$brlapi" = "yes" ; then
1040 echo "CONFIG_BRLAPI=yes" >> $config_mak
1041 echo "#define CONFIG_BRLAPI 1" >> $config_h
1042 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1043fi
bellard97a847b2003-08-10 21:36:04 +00001044
bellard83fb7ad2004-07-05 21:25:26 +00001045# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001046if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001047 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001048 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001049 echo "#define _BSD 1" >> $config_h
1050fi
1051
pbrookc5937222006-05-14 11:30:38 +00001052echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1053
pbrookc39e3332007-09-22 16:49:14 +00001054tools=
1055if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1056 tools="qemu-img\$(EXESUF) $tools"
1057fi
1058echo "TOOLS=$tools" >> $config_mak
1059
ths15d9ca02007-07-31 23:07:32 +00001060test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1061
bellard1d14ffa2005-10-30 18:58:22 +00001062for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001063target_dir="$target"
1064config_mak=$target_dir/config.mak
1065config_h=$target_dir/config.h
1066target_cpu=`echo $target | cut -d '-' -f 1`
1067target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001068[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001069[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1070[ "$target_cpu" = "mips" ] && target_bigendian=yes
1071[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1072[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001073[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001074[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001075[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001076[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001077[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001078[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1079[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1080[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001081target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001082target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001083target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001084target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001085case "$target" in
1086 ${target_cpu}-softmmu)
1087 target_softmmu="yes"
1088 ;;
1089 ${target_cpu}-linux-user)
1090 target_user_only="yes"
1091 target_linux_user="yes"
1092 ;;
1093 ${target_cpu}-darwin-user)
1094 target_user_only="yes"
1095 target_darwin_user="yes"
1096 ;;
1097 *)
1098 echo "ERROR: Target '$target' not recognised"
1099 exit 1
1100 ;;
1101esac
ths831b7822007-01-18 20:06:33 +00001102
bellard97ccc682005-07-02 13:32:17 +00001103if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001104 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001105 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001106 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001107 echo "Note that this will disable all output from the virtual graphics card"
1108 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001109 exit 1;
1110fi
1111
bellard7c1f25b2004-04-22 00:02:08 +00001112#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001113
ths15d9ca02007-07-31 23:07:32 +00001114test -f $config_h && mv $config_h ${config_h}~
1115
bellard97a847b2003-08-10 21:36:04 +00001116mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001117mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001118mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001119if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001120 mkdir -p $target_dir/nwfpe
1121fi
1122
bellardec530c82006-04-25 22:36:06 +00001123#
1124# don't use ln -sf as not all "ln -sf" over write the file/link
1125#
1126rm -f $target_dir/Makefile
1127ln -s $source_path/Makefile.target $target_dir/Makefile
1128
bellard97a847b2003-08-10 21:36:04 +00001129
1130echo "# Automatically generated by configure - do not modify" > $config_mak
1131echo "/* Automatically generated by configure - do not modify */" > $config_h
1132
1133
1134echo "include ../config-host.mak" >> $config_mak
1135echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001136
pbrooke5fe0c52006-06-11 13:32:59 +00001137bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001138elfload32="no"
bellard1e43adf2003-09-30 20:54:24 +00001139interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1140echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001141
1142if test "$target_cpu" = "i386" ; then
1143 echo "TARGET_ARCH=i386" >> $config_mak
1144 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1145 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +00001146 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +00001147 echo "#define USE_KQEMU 1" >> $config_h
1148 fi
aurel320938cda2008-04-11 21:36:06 +00001149elif test "$target_cpu" = "x86_64" ; then
1150 echo "TARGET_ARCH=x86_64" >> $config_mak
1151 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1152 echo "#define TARGET_I386 1" >> $config_h
1153 echo "#define TARGET_X86_64 1" >> $config_h
1154 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
1155 echo "#define USE_KQEMU 1" >> $config_h
1156 fi
1157elif test "$target_cpu" = "alpha" ; then
1158 echo "TARGET_ARCH=alpha" >> $config_mak
1159 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1160 echo "#define TARGET_ALPHA 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +00001161elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +00001162 echo "TARGET_ARCH=arm" >> $config_mak
pbrook663715f2008-03-31 03:49:36 +00001163 echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +00001164 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1165 echo "#define TARGET_ARM 1" >> $config_h
pbrook663715f2008-03-31 03:49:36 +00001166 echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h
pbrooke5fe0c52006-06-11 13:32:59 +00001167 bflt="yes"
aurel320938cda2008-04-11 21:36:06 +00001168elif test "$target_cpu" = "cris" ; then
1169 echo "TARGET_ARCH=cris" >> $config_mak
1170 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1171 echo "#define TARGET_CRIS 1" >> $config_h
1172 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1173 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1174elif test "$target_cpu" = "m68k" ; then
1175 echo "TARGET_ARCH=m68k" >> $config_mak
1176 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1177 echo "#define TARGET_M68K 1" >> $config_h
1178 bflt="yes"
1179elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1180 echo "TARGET_ARCH=mips" >> $config_mak
1181 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1182 echo "#define TARGET_MIPS 1" >> $config_h
1183 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1184elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1185 echo "TARGET_ARCH=mipsn32" >> $config_mak
1186 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1187 echo "#define TARGET_MIPS 1" >> $config_h
1188 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1189elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1190 echo "TARGET_ARCH=mips64" >> $config_mak
1191 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1192 echo "#define TARGET_MIPS 1" >> $config_h
1193 echo "#define TARGET_MIPS64 1" >> $config_h
1194 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +00001195elif test "$target_cpu" = "ppc" ; then
1196 echo "TARGET_ARCH=ppc" >> $config_mak
1197 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1198 echo "#define TARGET_PPC 1" >> $config_h
j_mayerd4082e92007-04-24 07:34:03 +00001199elif test "$target_cpu" = "ppcemb" ; then
1200 echo "TARGET_ARCH=ppcemb" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001201 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayerd4082e92007-04-24 07:34:03 +00001202 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1203 echo "#define TARGET_PPC 1" >> $config_h
1204 echo "#define TARGET_PPCEMB 1" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001205elif test "$target_cpu" = "ppc64" ; then
1206 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayerf85e9a62007-10-18 20:51:49 +00001207 echo "TARGET_ABI_DIR=ppc" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001208 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayer22f8a8b2007-10-14 08:38:29 +00001209 echo "#define TARGET_PPC 1" >> $config_h
1210 echo "#define TARGET_PPC64 1" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001211elif test "$target_cpu" = "ppc64abi32" ; then
1212 echo "TARGET_ARCH=ppc64" >> $config_mak
j_mayere85e7c62007-10-18 19:59:49 +00001213 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bellard0c64b9c2008-01-06 18:27:58 +00001214 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
j_mayer5e692ec2007-11-17 01:54:45 +00001215 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
j_mayere85e7c62007-10-18 19:59:49 +00001216 echo "#define TARGET_PPC 1" >> $config_h
1217 echo "#define TARGET_PPC64 1" >> $config_h
1218 echo "#define TARGET_ABI32 1" >> $config_h
pbrook908f52b2006-06-18 19:16:53 +00001219elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
bellardfdf9b3e2006-04-27 21:07:38 +00001220 echo "TARGET_ARCH=sh4" >> $config_mak
1221 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1222 echo "#define TARGET_SH4 1" >> $config_h
pbrook4dbed892006-06-17 20:01:14 +00001223 bflt="yes"
aurel320938cda2008-04-11 21:36:06 +00001224elif test "$target_cpu" = "sparc" ; then
1225 echo "TARGET_ARCH=sparc" >> $config_mak
1226 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1227 echo "#define TARGET_SPARC 1" >> $config_h
1228elif test "$target_cpu" = "sparc64" ; then
1229 echo "TARGET_ARCH=sparc64" >> $config_mak
1230 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1231 echo "#define TARGET_SPARC 1" >> $config_h
1232 echo "#define TARGET_SPARC64 1" >> $config_h
1233 elfload32="yes"
1234elif test "$target_cpu" = "sparc32plus" ; then
1235 echo "TARGET_ARCH=sparc64" >> $config_mak
1236 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1237 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1238 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1239 echo "#define TARGET_SPARC 1" >> $config_h
1240 echo "#define TARGET_SPARC64 1" >> $config_h
1241 echo "#define TARGET_ABI32 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001242else
1243 echo "Unsupported target CPU"
1244 exit 1
1245fi
1246if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001247 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1248 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1249fi
1250if test "$target_softmmu" = "yes" ; then
1251 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1252 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001253fi
bellard997344f2003-10-27 21:10:39 +00001254if test "$target_user_only" = "yes" ; then
1255 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1256 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1257fi
ths831b7822007-01-18 20:06:33 +00001258if test "$target_linux_user" = "yes" ; then
1259 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1260 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1261fi
1262if test "$target_darwin_user" = "yes" ; then
1263 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1264 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1265fi
bellardde83cd02003-06-15 20:25:43 +00001266
aurel320938cda2008-04-11 21:36:06 +00001267if test "$target_cpu" = "arm" \
1268 -o "$target_cpu" = "armeb" \
1269 -o "$target_cpu" = "m68k" \
1270 -o "$target_cpu" = "mips" \
1271 -o "$target_cpu" = "mipsel" \
1272 -o "$target_cpu" = "mipsn32" \
1273 -o "$target_cpu" = "mipsn32el" \
1274 -o "$target_cpu" = "mips64" \
1275 -o "$target_cpu" = "mips64el" \
1276 -o "$target_cpu" = "sparc" \
1277 -o "$target_cpu" = "sparc64" \
1278 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001279 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1280 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1281fi
pbrooke5fe0c52006-06-11 13:32:59 +00001282if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1283 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1284 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1285fi
blueswir1cb33da52007-10-09 16:34:29 +00001286# 32 bit ELF loader in addition to native 64 bit loader?
1287if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1288 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1289 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1290fi
bellard5b0753e2005-03-01 21:37:28 +00001291
ths15d9ca02007-07-31 23:07:32 +00001292test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1293
bellard97a847b2003-08-10 21:36:04 +00001294done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001295
1296# build tree in object directory if source path is different from current one
1297if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001298 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001299 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001300 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001301 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001302 for dir in $DIRS ; do
1303 mkdir -p $dir
1304 done
bellardec530c82006-04-25 22:36:06 +00001305 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001306 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001307 rm -f $f
1308 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001309 done
1310fi
bellard7d132992003-03-06 23:23:54 +00001311
bellard97a847b2003-08-10 21:36:04 +00001312rm -f $TMPO $TMPC $TMPE $TMPS