blob: 64b7b4283f795cf00242390dd1545bcbe932f396 [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"
malccc53d262008-06-13 10:48:22 +000093cs4231a="no"
bellardfb065182004-11-09 23:09:44 +000094oss="no"
bellard1d14ffa2005-10-30 18:58:22 +000095dsound="no"
96coreaudio="no"
97alsa="no"
balrogca9cc282008-01-14 04:24:29 +000098esd="no"
bellard102a52e2004-11-14 19:57:29 +000099fmod="no"
100fmod_lib=""
101fmod_inc=""
ths8d5d2d42007-08-25 01:37:51 +0000102vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +0000103bsd="no"
bellard5327cf42005-01-10 23:18:50 +0000104linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +0000105kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +0000106profiler="no"
bellard5b0753e2005-03-01 21:37:28 +0000107cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000108check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000109check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000110softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000111linux_user="no"
112darwin_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000113build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000114uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000115curses="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000116nptl="yes"
bellard7d132992003-03-06 23:23:54 +0000117
118# OS specific
119targetos=`uname -s`
120case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000121CYGWIN*)
122mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000123OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000124if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
126fi
bellardc326e0a2005-04-23 18:30:28 +0000127;;
bellard67b915a2004-03-31 23:37:16 +0000128MINGW32*)
129mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000130if [ "$cpu" = "i386" ] ; then
131 kqemu="yes"
132fi
bellard67b915a2004-03-31 23:37:16 +0000133;;
ths5c40d2b2007-06-23 16:03:36 +0000134GNU/kFreeBSD)
135oss="yes"
136if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
137 kqemu="yes"
138fi
139;;
bellard7d3505c2004-05-12 19:32:15 +0000140FreeBSD)
141bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000142oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000143if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000144 kqemu="yes"
145fi
bellard7d3505c2004-05-12 19:32:15 +0000146;;
147NetBSD)
148bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000149oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000150;;
151OpenBSD)
152bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000153oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000154;;
bellard83fb7ad2004-07-05 21:25:26 +0000155Darwin)
156bsd="yes"
157darwin="yes"
ths831b7822007-01-18 20:06:33 +0000158darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000159cocoa="yes"
160coreaudio="yes"
ths6f30fa82007-01-05 01:00:47 +0000161OS_CFLAGS="-mdynamic-no-pic"
thsc2c59c32008-01-08 00:00:20 +0000162OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
bellard83fb7ad2004-07-05 21:25:26 +0000163;;
bellardec530c82006-04-25 22:36:06 +0000164SunOS)
thsc2b84fa2007-02-10 23:21:21 +0000165 solaris="yes"
166 make="gmake"
167 install="ginstall"
ths0475a5c2007-04-01 18:54:44 +0000168 needs_libsunmath="no"
thsc2b84fa2007-02-10 23:21:21 +0000169 solarisrev=`uname -r | cut -f2 -d.`
thsef18c882007-09-16 22:12:39 +0000170 # have to select again, because `uname -m` returns i86pc
171 # even on an x86_64 box.
172 solariscpu=`isainfo -k`
173 if test "${solariscpu}" = "amd64" ; then
174 cpu="x86_64"
175 fi
thsc2b84fa2007-02-10 23:21:21 +0000176 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
ths0475a5c2007-04-01 18:54:44 +0000177 if test "$solarisrev" -le 9 ; then
178 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
179 needs_libsunmath="yes"
180 else
181 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
182 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
183 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
184 echo "Studio 11 can be downloaded from www.sun.com."
185 exit 1
186 fi
187 fi
188 if test "$solarisrev" -ge 9 ; then
thsc2b84fa2007-02-10 23:21:21 +0000189 kqemu="yes"
190 fi
ths86b2bd92007-02-11 00:31:33 +0000191 fi
ths6b4d2ba2007-05-13 18:02:43 +0000192 if test -f /usr/include/sys/soundcard.h ; then
193 oss=yes
194 fi
ths86b2bd92007-02-11 00:31:33 +0000195;;
bellard1d14ffa2005-10-30 18:58:22 +0000196*)
bellardfb065182004-11-09 23:09:44 +0000197oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000198linux="yes"
ths831b7822007-01-18 20:06:33 +0000199linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000200if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000201 kqemu="yes"
202fi
bellardfb065182004-11-09 23:09:44 +0000203;;
bellard7d132992003-03-06 23:23:54 +0000204esac
205
bellard7d3505c2004-05-12 19:32:15 +0000206if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000207 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000208 make="gmake"
209 fi
bellard7d3505c2004-05-12 19:32:15 +0000210fi
211
bellard7d132992003-03-06 23:23:54 +0000212# find source path
pbrookad064842006-04-16 12:41:07 +0000213source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000214source_path_used="no"
215workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000216if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000217 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000218else
219 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000220fi
pbrook724db112008-02-03 19:20:13 +0000221[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000222
bellard85aa5182007-11-11 20:17:03 +0000223werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000224# generate compile errors on warnings for development builds
225#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
226#werror="yes";
227#fi
bellard85aa5182007-11-11 20:17:03 +0000228
bellard7d132992003-03-06 23:23:54 +0000229for opt do
pbrooka46e4032006-04-29 23:05:22 +0000230 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000231 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000232 --help|-h) show_help=yes
233 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000234 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000235 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000236 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000237 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000238 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000239 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000240 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000241 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000242 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000243 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000244 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000245 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000246 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000247 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000248 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000249 ;;
pbrook6a882642006-04-17 13:57:12 +0000250 --install=*) install="$optarg"
251 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000252 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000253 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000254 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000255 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000256 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000257 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000258 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000259 ;;
bellard7d132992003-03-06 23:23:54 +0000260 --enable-gprof) gprof="yes"
261 ;;
bellard43ce4df2003-06-09 19:53:12 +0000262 --static) static="yes"
263 ;;
bellard97a847b2003-08-10 21:36:04 +0000264 --disable-sdl) sdl="no"
265 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000266 --enable-coreaudio) coreaudio="yes"
267 ;;
268 --enable-alsa) alsa="yes"
269 ;;
balrogca9cc282008-01-14 04:24:29 +0000270 --enable-esd) esd="yes"
271 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000272 --enable-dsound) dsound="yes"
273 ;;
bellard102a52e2004-11-14 19:57:29 +0000274 --enable-fmod) fmod="yes"
275 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000276 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000277 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000278 --fmod-inc=*) fmod_inc="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000279 ;;
ths8d5d2d42007-08-25 01:37:51 +0000280 --disable-vnc-tls) vnc_tls="no"
281 ;;
bellardb93aebe2007-02-15 22:58:18 +0000282 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
bellard1d14ffa2005-10-30 18:58:22 +0000283 ;;
bellard443f1372004-06-04 11:13:20 +0000284 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000285 ;;
bellardfb065182004-11-09 23:09:44 +0000286 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000287 ;;
balroge5c9a132008-01-14 04:27:55 +0000288 --enable-ac97) ac97="yes"
289 ;;
balrog423d65f2008-01-14 22:09:11 +0000290 --enable-gus) gus="yes"
291 ;;
malccc53d262008-06-13 10:48:22 +0000292 --enable-cs4231a) cs4231a="yes"
293 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000294 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000295 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000296 --disable-brlapi) brlapi="no"
297 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000298 --enable-profiler) profiler="yes"
299 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000300 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
301 ;;
bellard97ccc682005-07-02 13:32:17 +0000302 --disable-gfx-check) check_gfx="no"
303 ;;
bellard1aff3812005-11-02 22:30:45 +0000304 --disable-gcc-check) check_gcc="no"
305 ;;
pbrookcad25d62006-03-19 16:31:11 +0000306 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000307 ;;
pbrookcad25d62006-03-19 16:31:11 +0000308 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000309 ;;
ths831b7822007-01-18 20:06:33 +0000310 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000311 ;;
ths831b7822007-01-18 20:06:33 +0000312 --enable-linux-user) linux_user="yes"
313 ;;
314 --disable-darwin-user) darwin_user="no"
315 ;;
316 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000317 ;;
pbrookc5937222006-05-14 11:30:38 +0000318 --enable-uname-release=*) uname_release="$optarg"
319 ;;
blueswir131422552007-04-16 18:27:06 +0000320 --sparc_cpu=*)
321 sparc_cpu="$optarg"
322 case $sparc_cpu in
323 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
324 target_cpu="sparc"; cpu="sparc" ;;
325 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
326 target_cpu="sparc"; cpu="sparc" ;;
327 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
328 target_cpu="sparc64"; cpu="sparc64" ;;
329 *) echo "undefined SPARC architecture. Exiting";exit 1;;
330 esac
331 ;;
bellard85aa5182007-11-11 20:17:03 +0000332 --enable-werror) werror="yes"
333 ;;
334 --disable-werror) werror="no"
335 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000336 --disable-curses) curses="no"
337 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000338 --disable-nptl) nptl="no"
339 ;;
balrog7f1559c2007-11-17 10:24:32 +0000340 *) echo "ERROR: unknown option $opt"; show_help="yes"
341 ;;
bellard7d132992003-03-06 23:23:54 +0000342 esac
343done
344
ths209afb92007-03-25 20:55:00 +0000345if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
346 AIOLIBS=
347else
ths4259e1a2007-11-05 13:27:21 +0000348 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
349 AIOLIBS="-lrt -lpthread"
ths209afb92007-03-25 20:55:00 +0000350fi
351
ths6f30fa82007-01-05 01:00:47 +0000352# default flags for all hosts
353CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
354LDFLAGS="$LDFLAGS -g"
bellard85aa5182007-11-11 20:17:03 +0000355if test "$werror" = "yes" ; then
356CFLAGS="$CFLAGS -Werror"
357fi
ths6f30fa82007-01-05 01:00:47 +0000358
blueswir131422552007-04-16 18:27:06 +0000359#
360# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
361# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
362#
bellard40293e52008-01-31 11:32:10 +0000363case "$cpu" in
blueswir131422552007-04-16 18:27:06 +0000364 sparc) if test -z "$sparc_cpu" ; then
365 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
366 ARCH_LDFLAGS="-m32"
367 else
368 ARCH_CFLAGS="${SP_CFLAGS}"
369 ARCH_LDFLAGS="${SP_LDFLAGS}"
370 fi
371 ;;
372 sparc64) if test -z "$sparc_cpu" ; then
373 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
374 ARCH_LDFLAGS="-m64"
375 else
376 ARCH_CFLAGS="${SP_CFLAGS}"
377 ARCH_LDFLAGS="${SP_LDFLAGS}"
378 fi
379 ;;
ths76d83bd2007-11-18 21:22:10 +0000380 s390)
381 ARCH_CFLAGS="-march=z900"
382 ;;
bellard40293e52008-01-31 11:32:10 +0000383 i386)
384 ARCH_CFLAGS="-m32"
385 ARCH_LDFLAGS="-m32"
386 ;;
387 x86_64)
388 ARCH_CFLAGS="-m64"
389 ARCH_LDFLAGS="-m64"
390 ;;
blueswir131422552007-04-16 18:27:06 +0000391esac
392
pbrookaf5db582006-04-08 14:26:41 +0000393if test x"$show_help" = x"yes" ; then
394cat << EOF
395
396Usage: configure [options]
397Options: [defaults in brackets after descriptions]
398
399EOF
400echo "Standard options:"
401echo " --help print this message"
402echo " --prefix=PREFIX install in PREFIX [$prefix]"
403echo " --interp-prefix=PREFIX where to find shared libraries, etc."
404echo " use %M for cpu name [$interp_prefix]"
405echo " --target-list=LIST set target list [$target_list]"
406echo ""
407echo "kqemu kernel acceleration support:"
408echo " --disable-kqemu disable kqemu support"
pbrookaf5db582006-04-08 14:26:41 +0000409echo ""
410echo "Advanced options (experts only):"
411echo " --source-path=PATH path of source code [$source_path]"
412echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
413echo " --cc=CC use C compiler CC [$cc]"
414echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
415echo " --make=MAKE use specified make [$make]"
pbrook6a882642006-04-17 13:57:12 +0000416echo " --install=INSTALL use specified install [$install]"
pbrookaf5db582006-04-08 14:26:41 +0000417echo " --static enable static build [$static]"
bellard85aa5182007-11-11 20:17:03 +0000418echo " --disable-werror disable compilation abort on warning"
balrogfe8f78e2007-10-31 01:03:28 +0000419echo " --disable-sdl disable SDL"
pbrookaf5db582006-04-08 14:26:41 +0000420echo " --enable-cocoa enable COCOA (Mac OS X only)"
421echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
422echo " --enable-adlib enable Adlib emulation"
balroge5c9a132008-01-14 04:27:55 +0000423echo " --enable-ac97 enable AC97 emulation"
balrog423d65f2008-01-14 22:09:11 +0000424echo " --enable-gus enable Gravis Ultrasound emulation"
malccc53d262008-06-13 10:48:22 +0000425echo " --enable-cs4231a enable CS4231A emulation"
pbrookaf5db582006-04-08 14:26:41 +0000426echo " --enable-coreaudio enable Coreaudio audio driver"
427echo " --enable-alsa enable ALSA audio driver"
balrogca9cc282008-01-14 04:24:29 +0000428echo " --enable-esd enable EsoundD audio driver"
pbrookaf5db582006-04-08 14:26:41 +0000429echo " --enable-fmod enable FMOD audio driver"
thsed5065e2007-03-25 16:15:21 +0000430echo " --enable-dsound enable DirectSound audio driver"
aurel322e4d9fb2008-04-08 06:01:02 +0000431echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000432echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000433echo " --disable-curses disable curses output"
pbrookbd0c5662008-05-29 14:34:11 +0000434echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000435echo " --enable-system enable all system emulation targets"
436echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000437echo " --enable-linux-user enable all linux usermode emulation targets"
438echo " --disable-linux-user disable all linux usermode emulation targets"
439echo " --enable-darwin-user enable all darwin usermode emulation targets"
440echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000441echo " --fmod-lib path to FMOD library"
442echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000443echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000444echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000445echo ""
ths5bf08932006-12-23 00:33:26 +0000446echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000447exit 1
448fi
449
bellard7d132992003-03-06 23:23:54 +0000450cc="${cross_prefix}${cc}"
451ar="${cross_prefix}${ar}"
452strip="${cross_prefix}${strip}"
453
pbrook064aae12006-05-08 00:51:44 +0000454# check that the C compiler works.
455cat > $TMPC <<EOF
456int main(void) {}
457EOF
458
pbrookdb7287e2008-02-03 16:27:13 +0000459if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000460 : C compiler works ok
461else
462 echo "ERROR: \"$cc\" either does not exist or does not work"
463 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000464fi
465
bellard67b915a2004-03-31 23:37:16 +0000466if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000467 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000468 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000469 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000470fi
471
ths5fafdf22007-09-16 21:08:06 +0000472# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000473if test "$check_gcc" = "yes" ; then
474 cat > $TMPC <<EOF
475#if __GNUC__ < 4
476#error gcc3
477#endif
478int main(){return 0;}
479EOF
pbrookdb7287e2008-02-03 16:27:13 +0000480 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000481 echo "WARNING: \"$cc\" looks like gcc 4.x"
482 found_compat_cc="no"
483 if test "$gcc3_search" = "yes" ; then
484 echo "Looking for gcc 3.x"
485 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000486 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000487 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000488 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000489 found_compat_cc="yes"
490 break
491 fi
492 done
493 if test "$found_compat_cc" = "no" ; then
494 echo "gcc 3.x not found!"
495 fi
496 fi
497 if test "$found_compat_cc" = "no" ; then
498 echo "QEMU is known to have problems when compiled with gcc 4.x"
499 echo "It is recommended that you use gcc 3.x to build QEMU"
500 echo "To use this compiler anyway, configure with --disable-gcc-check"
501 exit 1;
502 fi
503 fi
504fi
505
bellardec530c82006-04-25 22:36:06 +0000506#
507# Solaris specific configure tool chain decisions
508#
509if test "$solaris" = "yes" ; then
510 #
511 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
512 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000513 #
bellardec530c82006-04-25 22:36:06 +0000514 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
515 solgcc=`which $cc`
516 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
517 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
518 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
519 echo "or get the latest patch from SunSolve for gcc"
520 exit 1
521 fi
522 fi
523 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
524 if test -z "$solinst" ; then
525 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
526 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
527 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
528 exit 1
529 fi
530 if test "$solinst" = "/usr/sbin/install" ; then
531 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
532 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
533 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
534 exit 1
535 fi
bellardec530c82006-04-25 22:36:06 +0000536 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
537 if test -z "$sol_ar" ; then
538 echo "Error: No path includes ar"
539 if test -f /usr/ccs/bin/ar ; then
540 echo "Add /usr/ccs/bin to your path and rerun configure"
541 fi
542 exit 1
543 fi
ths5fafdf22007-09-16 21:08:06 +0000544fi
bellardec530c82006-04-25 22:36:06 +0000545
546
bellard5327cf42005-01-10 23:18:50 +0000547if test -z "$target_list" ; then
548# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000549 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000550 target_list="\
551i386-softmmu \
552x86_64-softmmu \
553arm-softmmu \
554cris-softmmu \
555m68k-softmmu \
556mips-softmmu \
557mipsel-softmmu \
558mips64-softmmu \
559mips64el-softmmu \
560ppc-softmmu \
561ppcemb-softmmu \
562ppc64-softmmu \
563sh4-softmmu \
564sh4eb-softmmu \
565sparc-softmmu \
566"
pbrook0a8e90f2006-03-19 14:54:16 +0000567 fi
bellard5327cf42005-01-10 23:18:50 +0000568# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000569 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000570 target_list="${target_list}\
571i386-linux-user \
572x86_64-linux-user \
573alpha-linux-user \
574arm-linux-user \
575armeb-linux-user \
576cris-linux-user \
577m68k-linux-user \
578mips-linux-user \
579mipsel-linux-user \
580ppc-linux-user \
581ppc64-linux-user \
582ppc64abi32-linux-user \
583sh4-linux-user \
584sh4eb-linux-user \
585sparc-linux-user \
586sparc64-linux-user \
587sparc32plus-linux-user \
588"
ths831b7822007-01-18 20:06:33 +0000589 fi
590# the following are Darwin specific
591 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000592 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000593 fi
bellard6e20a452005-06-05 15:56:02 +0000594else
pbrookb1a550a2006-04-16 13:28:56 +0000595 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000596fi
pbrook0a8e90f2006-03-19 14:54:16 +0000597if test -z "$target_list" ; then
598 echo "No targets enabled"
599 exit 1
600fi
bellard5327cf42005-01-10 23:18:50 +0000601
bellard7d132992003-03-06 23:23:54 +0000602if test -z "$cross_prefix" ; then
603
604# ---
605# big/little endian test
606cat > $TMPC << EOF
607#include <inttypes.h>
608int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000609 volatile uint32_t i=0x01234567;
610 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000611}
612EOF
613
pbrookdb7287e2008-02-03 16:27:13 +0000614if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000615$TMPE && bigendian="yes"
616else
617echo big/little test failed
618fi
619
620else
621
622# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000623if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000624 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000625 -o "$cpu" = "m68k" \
626 -o "$cpu" = "mips" \
627 -o "$cpu" = "mips64" \
628 -o "$cpu" = "powerpc" \
629 -o "$cpu" = "s390" \
630 -o "$cpu" = "sparc" \
631 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000632 bigendian="yes"
633fi
634
635fi
636
bellardb6853692005-06-05 17:10:39 +0000637# host long bits test
638hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000639if test "$cpu" = "x86_64" \
640 -o "$cpu" = "alpha" \
641 -o "$cpu" = "ia64" \
642 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000643 hostlongbits="64"
644fi
645
bellarde8cd23d2003-06-25 16:08:13 +0000646# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000647cat > $TMPC <<EOF
648int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000649}
650EOF
651
pbrookbd0c5662008-05-29 14:34:11 +0000652# Check host NPTL support
653cat > $TMPC <<EOF
654#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000655#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000656void foo()
657{
658#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
659#error bork
660#endif
661}
662EOF
663
664if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
665 :
666else
667 nptl="no"
668fi
669
bellard11d9f692004-04-02 20:55:59 +0000670##########################################
671# SDL probe
672
673sdl_too_old=no
674
675if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000676 sdl_config="sdl-config"
677 sdl=no
678 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000679
ths069b0bd2007-07-12 00:27:15 +0000680 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
681 # win32 cross compilation case
682 sdl_config="i386-mingw32msvc-sdl-config"
683 sdl=yes
684 else
685 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000686cat > $TMPC << EOF
687#include <SDL.h>
688#undef main /* We don't want SDL to override our main() */
689int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
690EOF
pbrookdb7287e2008-02-03 16:27:13 +0000691 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 +0000692 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
693 if test "$_sdlversion" -lt 121 ; then
694 sdl_too_old=yes
695 else
696 if test "$cocoa" = "no" ; then
697 sdl=yes
698 fi
699 fi
bellard11d9f692004-04-02 20:55:59 +0000700
ths069b0bd2007-07-12 00:27:15 +0000701 # static link with sdl ?
702 if test "$sdl" = "yes" ; then
703 aa="no"
704 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
705 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
706 if [ "$aa" = "yes" ] ; then
707 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
708 fi
709
ths8281db42007-11-18 21:37:07 +0000710 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 +0000711 sdl_static=yes
712 fi
713 fi # static link
714 fi # sdl compile test
715 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000716else
ths069b0bd2007-07-12 00:27:15 +0000717 # Make sure to disable cocoa if sdl was set
718 if test "$sdl" = "yes" ; then
719 cocoa="no"
720 coreaudio="no"
721 fi
bellarda6e022a2004-04-02 21:55:47 +0000722fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000723
ths8f28f3f2007-01-05 21:25:54 +0000724##########################################
ths8d5d2d42007-08-25 01:37:51 +0000725# VNC TLS detection
726if test "$vnc_tls" = "yes" ; then
727 `pkg-config gnutls` || vnc_tls="no"
728fi
729if test "$vnc_tls" = "yes" ; then
730 vnc_tls_cflags=`pkg-config --cflags gnutls`
731 vnc_tls_libs=`pkg-config --libs gnutls`
732fi
733
734##########################################
ths8f28f3f2007-01-05 21:25:54 +0000735# alsa sound support libraries
736
737if test "$alsa" = "yes" ; then
738 cat > $TMPC << EOF
739#include <alsa/asoundlib.h>
740int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
741EOF
pbrookdb7287e2008-02-03 16:27:13 +0000742 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
ths8f28f3f2007-01-05 21:25:54 +0000743 :
744 else
745 echo
746 echo "Error: Could not find alsa"
747 echo "Make sure to have the alsa libs and headers installed."
748 echo
749 exit 1
750 fi
751fi
752
balrog4d3b6f62008-02-10 16:33:14 +0000753##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000754# BrlAPI probe
755
756if test -z "$brlapi" ; then
757 brlapi=no
758cat > $TMPC << EOF
759#include <brlapi.h>
760int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
761EOF
aurel32a40e56d2008-05-04 00:50:25 +0000762 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000763 brlapi=yes
764 fi # brlapi compile test
765fi # -z $brlapi
766
767##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000768# curses probe
769
770if test "$curses" = "yes" ; then
771 curses=no
772 cat > $TMPC << EOF
773#include <curses.h>
774int main(void) { return curses_version(); }
775EOF
pbrookaf896aa2008-03-23 00:47:42 +0000776 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000777 curses=yes
778 fi
779fi # test "$curses"
780
pbrookcc8ae6d2006-04-23 17:57:59 +0000781# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000782if [ -x "`which texi2html 2>/dev/null`" ] && \
783 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000784 build_docs="yes"
785fi
786
bellard11d9f692004-04-02 20:55:59 +0000787if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000788 if test -z "$prefix" ; then
789 prefix="/c/Program Files/Qemu"
790 fi
791 mansuffix=""
792 datasuffix=""
793 docsuffix=""
794 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000795else
pbrook308c3592007-02-27 00:52:01 +0000796 if test -z "$prefix" ; then
797 prefix="/usr/local"
798 fi
799 mansuffix="/share/man"
800 datasuffix="/share/qemu"
801 docsuffix="/share/doc/qemu"
802 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000803fi
bellard5a671352003-10-01 00:13:48 +0000804
bellard43ce4df2003-06-09 19:53:12 +0000805echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000806echo "BIOS directory $prefix$datasuffix"
807echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000808if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000809echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000810echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000811fi
bellard5a671352003-10-01 00:13:48 +0000812echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000813echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000814echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000815echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000816echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000817echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000818echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000819echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000820echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000821echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000822echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000823echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000824echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000825if test "$darwin" = "yes" ; then
826 echo "Cocoa support $cocoa"
827fi
bellard97a847b2003-08-10 21:36:04 +0000828echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000829if test "$sdl" != "no" ; then
830 echo "SDL static link $sdl_static"
831fi
balrog4d3b6f62008-02-10 16:33:14 +0000832echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000833echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000834echo "Adlib support $adlib"
balroge5c9a132008-01-14 04:27:55 +0000835echo "AC97 support $ac97"
balrog423d65f2008-01-14 22:09:11 +0000836echo "GUS support $gus"
malccc53d262008-06-13 10:48:22 +0000837echo "CS4231A support $cs4231a"
bellard1d14ffa2005-10-30 18:58:22 +0000838echo "CoreAudio support $coreaudio"
839echo "ALSA support $alsa"
balrogca9cc282008-01-14 04:24:29 +0000840echo "EsounD support $esd"
bellard1d14ffa2005-10-30 18:58:22 +0000841echo "DSound support $dsound"
bellard1d14ffa2005-10-30 18:58:22 +0000842if test "$fmod" = "yes"; then
843 if test -z $fmod_lib || test -z $fmod_inc; then
844 echo
845 echo "Error: You must specify path to FMOD library and headers"
846 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
847 echo
848 exit 1
849 fi
pbrookb1a550a2006-04-16 13:28:56 +0000850 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
851else
852 fmod_support=""
bellard102a52e2004-11-14 19:57:29 +0000853fi
pbrookb1a550a2006-04-16 13:28:56 +0000854echo "FMOD support $fmod $fmod_support"
ths6b4d2ba2007-05-13 18:02:43 +0000855echo "OSS support $oss"
ths8d5d2d42007-08-25 01:37:51 +0000856echo "VNC TLS support $vnc_tls"
857if test "$vnc_tls" = "yes" ; then
858 echo " TLS CFLAGS $vnc_tls_cflags"
859 echo " TLS LIBS $vnc_tls_libs"
860fi
blueswir131422552007-04-16 18:27:06 +0000861if test -n "$sparc_cpu"; then
862 echo "Target Sparc Arch $sparc_cpu"
863fi
bellard07f4ddb2005-04-23 17:44:28 +0000864echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000865echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000866echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000867[ ! -z "$uname_release" ] && \
868echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +0000869echo "NPTL support $nptl"
bellard67b915a2004-03-31 23:37:16 +0000870
bellard97a847b2003-08-10 21:36:04 +0000871if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000872echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000873fi
ths20b40c62007-07-11 23:39:45 +0000874if [ -s /tmp/qemu-$$-sdl-config.log ]; then
875 echo "The error log from compiling the libSDL test is: "
876 cat /tmp/qemu-$$-sdl-config.log
877fi
878rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000879#if test "$sdl_static" = "no"; then
880# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
881#fi
bellard97a847b2003-08-10 21:36:04 +0000882config_mak="config-host.mak"
883config_h="config-host.h"
884
bellard7c1f25b2004-04-22 00:02:08 +0000885#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000886
ths15d9ca02007-07-31 23:07:32 +0000887test -f $config_h && mv $config_h ${config_h}~
888
bellard97a847b2003-08-10 21:36:04 +0000889echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000890echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000891echo "/* Automatically generated by configure - do not modify */" > $config_h
892
893echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000894echo "bindir=\${prefix}$binsuffix" >> $config_mak
895echo "mandir=\${prefix}$mansuffix" >> $config_mak
896echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000897echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000898echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000899echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000900echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000901echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000902echo "HOST_CC=$host_cc" >> $config_mak
903echo "AR=$ar" >> $config_mak
904echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000905# XXX: only use CFLAGS and LDFLAGS ?
906# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
907# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000908echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000909echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
910echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
911echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000912echo "CFLAGS=$CFLAGS" >> $config_mak
913echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000914echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000915echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +0000916case "$cpu" in
917 i386)
918 echo "ARCH=i386" >> $config_mak
919 echo "#define HOST_I386 1" >> $config_h
920 ;;
921 x86_64)
922 echo "ARCH=x86_64" >> $config_mak
923 echo "#define HOST_X86_64 1" >> $config_h
924 ;;
925 alpha)
926 echo "ARCH=alpha" >> $config_mak
927 echo "#define HOST_ALPHA 1" >> $config_h
928 ;;
929 armv4b)
930 echo "ARCH=arm" >> $config_mak
931 echo "#define HOST_ARM 1" >> $config_h
932 ;;
933 armv4l)
934 echo "ARCH=arm" >> $config_mak
935 echo "#define HOST_ARM 1" >> $config_h
936 ;;
937 cris)
938 echo "ARCH=cris" >> $config_mak
939 echo "#define HOST_CRIS 1" >> $config_h
940 ;;
941 hppa)
942 echo "ARCH=hppa" >> $config_mak
943 echo "#define HOST_HPPA 1" >> $config_h
944 ;;
945 ia64)
946 echo "ARCH=ia64" >> $config_mak
947 echo "#define HOST_IA64 1" >> $config_h
948 ;;
949 m68k)
950 echo "ARCH=m68k" >> $config_mak
951 echo "#define HOST_M68K 1" >> $config_h
952 ;;
953 mips)
954 echo "ARCH=mips" >> $config_mak
955 echo "#define HOST_MIPS 1" >> $config_h
956 ;;
957 mips64)
958 echo "ARCH=mips64" >> $config_mak
959 echo "#define HOST_MIPS64 1" >> $config_h
960 ;;
961 powerpc)
962 echo "ARCH=ppc" >> $config_mak
963 echo "#define HOST_PPC 1" >> $config_h
964 ;;
965 s390)
966 echo "ARCH=s390" >> $config_mak
967 echo "#define HOST_S390 1" >> $config_h
968 ;;
969 sparc)
970 echo "ARCH=sparc" >> $config_mak
971 echo "#define HOST_SPARC 1" >> $config_h
972 ;;
973 sparc64)
974 echo "ARCH=sparc64" >> $config_mak
975 echo "#define HOST_SPARC64 1" >> $config_h
976 ;;
977 *)
978 echo "Unsupported CPU = $cpu"
979 exit 1
980 ;;
981esac
bellard7d132992003-03-06 23:23:54 +0000982if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000983 echo "WORDS_BIGENDIAN=yes" >> $config_mak
984 echo "#define WORDS_BIGENDIAN 1" >> $config_h
985fi
bellardb6853692005-06-05 17:10:39 +0000986echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000987if test "$mingw32" = "yes" ; then
988 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000989 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000990else
991 cat > $TMPC << EOF
992#include <byteswap.h>
993int main(void) { return bswap_32(0); }
994EOF
pbrookdb7287e2008-02-03 16:27:13 +0000995 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000996 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
997 fi
bellard67b915a2004-03-31 23:37:16 +0000998fi
bellard83fb7ad2004-07-05 21:25:26 +0000999if test "$darwin" = "yes" ; then
1000 echo "CONFIG_DARWIN=yes" >> $config_mak
1001 echo "#define CONFIG_DARWIN 1" >> $config_h
1002fi
bellardec530c82006-04-25 22:36:06 +00001003if test "$solaris" = "yes" ; then
1004 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001005 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001006 if test "$needs_libsunmath" = "yes" ; then
1007 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1008 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1009 fi
bellardec530c82006-04-25 22:36:06 +00001010fi
blueswir131422552007-04-16 18:27:06 +00001011if test -n "$sparc_cpu"; then
1012 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1013 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1014fi
bellard67b915a2004-03-31 23:37:16 +00001015if test "$gdbstub" = "yes" ; then
1016 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1017 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1018fi
bellard97a847b2003-08-10 21:36:04 +00001019if test "$gprof" = "yes" ; then
1020 echo "TARGET_GPROF=yes" >> $config_mak
1021 echo "#define HAVE_GPROF 1" >> $config_h
1022fi
1023if test "$static" = "yes" ; then
1024 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001025 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001026fi
bellard05c2a3e2006-02-08 22:39:17 +00001027if test $profiler = "yes" ; then
1028 echo "#define CONFIG_PROFILER 1" >> $config_h
1029fi
bellardc20709a2004-04-21 23:27:19 +00001030if test "$slirp" = "yes" ; then
1031 echo "CONFIG_SLIRP=yes" >> $config_mak
1032 echo "#define CONFIG_SLIRP 1" >> $config_h
1033fi
bellardfb065182004-11-09 23:09:44 +00001034if test "$adlib" = "yes" ; then
1035 echo "CONFIG_ADLIB=yes" >> $config_mak
1036 echo "#define CONFIG_ADLIB 1" >> $config_h
1037fi
balroge5c9a132008-01-14 04:27:55 +00001038if test "$ac97" = "yes" ; then
1039 echo "CONFIG_AC97=yes" >> $config_mak
1040 echo "#define CONFIG_AC97 1" >> $config_h
1041fi
balrog423d65f2008-01-14 22:09:11 +00001042if test "$gus" = "yes" ; then
1043 echo "CONFIG_GUS=yes" >> $config_mak
1044 echo "#define CONFIG_GUS 1" >> $config_h
1045fi
malccc53d262008-06-13 10:48:22 +00001046if test "$cs4231a" = "yes" ; then
1047 echo "CONFIG_CS4231A=yes" >> $config_mak
1048 echo "#define CONFIG_CS4231A 1" >> $config_h
1049fi
bellardfb065182004-11-09 23:09:44 +00001050if test "$oss" = "yes" ; then
1051 echo "CONFIG_OSS=yes" >> $config_mak
1052 echo "#define CONFIG_OSS 1" >> $config_h
1053fi
bellard1d14ffa2005-10-30 18:58:22 +00001054if test "$coreaudio" = "yes" ; then
1055 echo "CONFIG_COREAUDIO=yes" >> $config_mak
1056 echo "#define CONFIG_COREAUDIO 1" >> $config_h
1057fi
1058if test "$alsa" = "yes" ; then
1059 echo "CONFIG_ALSA=yes" >> $config_mak
1060 echo "#define CONFIG_ALSA 1" >> $config_h
1061fi
balrogca9cc282008-01-14 04:24:29 +00001062if test "$esd" = "yes" ; then
1063 echo "CONFIG_ESD=yes" >> $config_mak
1064 echo "#define CONFIG_ESD 1" >> $config_h
1065fi
bellard1d14ffa2005-10-30 18:58:22 +00001066if test "$dsound" = "yes" ; then
1067 echo "CONFIG_DSOUND=yes" >> $config_mak
1068 echo "#define CONFIG_DSOUND 1" >> $config_h
1069fi
bellard102a52e2004-11-14 19:57:29 +00001070if test "$fmod" = "yes" ; then
1071 echo "CONFIG_FMOD=yes" >> $config_mak
1072 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1073 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1074 echo "#define CONFIG_FMOD 1" >> $config_h
1075fi
ths8d5d2d42007-08-25 01:37:51 +00001076if test "$vnc_tls" = "yes" ; then
1077 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1078 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1079 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1080 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1081fi
pbrookb1a550a2006-04-16 13:28:56 +00001082qemu_version=`head $source_path/VERSION`
1083echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001084echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001085
1086echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001087if [ "$source_path_used" = "yes" ]; then
1088 echo "VPATH=$source_path" >> $config_mak
1089fi
bellard97a847b2003-08-10 21:36:04 +00001090echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001091if [ "$build_docs" = "yes" ] ; then
1092 echo "BUILD_DOCS=yes" >> $config_mak
1093fi
bellard49ecc3f2007-11-07 19:25:15 +00001094if test "$static" = "yes"; then
1095 sdl1=$sdl_static
1096else
1097 sdl1=$sdl
1098fi
1099if test "$sdl1" = "yes" ; then
1100 echo "#define CONFIG_SDL 1" >> $config_h
1101 echo "CONFIG_SDL=yes" >> $config_mak
1102 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1103 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1104 else
1105 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1106 fi
1107 if [ "${aa}" = "yes" ] ; then
1108 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1109 else
1110 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1111 fi
1112fi
1113if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001114 echo "#define CONFIG_COCOA 1" >> $config_h
1115 echo "CONFIG_COCOA=yes" >> $config_mak
1116fi
1117if test "$curses" = "yes" ; then
1118 echo "#define CONFIG_CURSES 1" >> $config_h
1119 echo "CONFIG_CURSES=yes" >> $config_mak
1120 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001121fi
aurel322e4d9fb2008-04-08 06:01:02 +00001122if test "$brlapi" = "yes" ; then
1123 echo "CONFIG_BRLAPI=yes" >> $config_mak
1124 echo "#define CONFIG_BRLAPI 1" >> $config_h
1125 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1126fi
bellard97a847b2003-08-10 21:36:04 +00001127
bellard83fb7ad2004-07-05 21:25:26 +00001128# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001129if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001130 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001131 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001132 echo "#define _BSD 1" >> $config_h
1133fi
1134
pbrookc5937222006-05-14 11:30:38 +00001135echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1136
pbrookc39e3332007-09-22 16:49:14 +00001137tools=
1138if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1139 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001140 if [ "$linux" = "yes" ] ; then
1141 tools="qemu-nbd\$(EXESUF) $tools"
1142 fi
pbrookc39e3332007-09-22 16:49:14 +00001143fi
1144echo "TOOLS=$tools" >> $config_mak
1145
ths15d9ca02007-07-31 23:07:32 +00001146test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1147
bellard1d14ffa2005-10-30 18:58:22 +00001148for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001149target_dir="$target"
1150config_mak=$target_dir/config.mak
1151config_h=$target_dir/config.h
1152target_cpu=`echo $target | cut -d '-' -f 1`
1153target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001154[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001155[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1156[ "$target_cpu" = "mips" ] && target_bigendian=yes
1157[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1158[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001159[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001160[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001161[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001162[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001163[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001164[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1165[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1166[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001167target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001168target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001169target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001170target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001171case "$target" in
1172 ${target_cpu}-softmmu)
1173 target_softmmu="yes"
1174 ;;
1175 ${target_cpu}-linux-user)
1176 target_user_only="yes"
1177 target_linux_user="yes"
1178 ;;
1179 ${target_cpu}-darwin-user)
1180 target_user_only="yes"
1181 target_darwin_user="yes"
1182 ;;
1183 *)
1184 echo "ERROR: Target '$target' not recognised"
1185 exit 1
1186 ;;
1187esac
ths831b7822007-01-18 20:06:33 +00001188
bellard97ccc682005-07-02 13:32:17 +00001189if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001190 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001191 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001192 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001193 echo "Note that this will disable all output from the virtual graphics card"
1194 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001195 exit 1;
1196fi
1197
bellard7c1f25b2004-04-22 00:02:08 +00001198#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001199
ths15d9ca02007-07-31 23:07:32 +00001200test -f $config_h && mv $config_h ${config_h}~
1201
bellard97a847b2003-08-10 21:36:04 +00001202mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001203mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001204mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001205if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001206 mkdir -p $target_dir/nwfpe
1207fi
1208
bellardec530c82006-04-25 22:36:06 +00001209#
1210# don't use ln -sf as not all "ln -sf" over write the file/link
1211#
1212rm -f $target_dir/Makefile
1213ln -s $source_path/Makefile.target $target_dir/Makefile
1214
bellard97a847b2003-08-10 21:36:04 +00001215
1216echo "# Automatically generated by configure - do not modify" > $config_mak
1217echo "/* Automatically generated by configure - do not modify */" > $config_h
1218
1219
1220echo "include ../config-host.mak" >> $config_mak
1221echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001222
pbrooke5fe0c52006-06-11 13:32:59 +00001223bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001224elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001225target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001226interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1227echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001228
aurel322408a522008-04-20 20:19:44 +00001229case "$target_cpu" in
1230 i386)
1231 echo "TARGET_ARCH=i386" >> $config_mak
1232 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1233 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001234 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001235 then
1236 echo "#define USE_KQEMU 1" >> $config_h
1237 fi
aurel32f2bf0942008-05-05 06:00:27 +00001238 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001239 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001240 then
1241 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1242 else
1243 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1244 fi
aurel322408a522008-04-20 20:19:44 +00001245 ;;
1246 x86_64)
1247 echo "TARGET_ARCH=x86_64" >> $config_mak
1248 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1249 echo "#define TARGET_I386 1" >> $config_h
1250 echo "#define TARGET_X86_64 1" >> $config_h
1251 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1252 then
1253 echo "#define USE_KQEMU 1" >> $config_h
1254 fi
1255 ;;
1256 alpha)
1257 echo "TARGET_ARCH=alpha" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001258 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001259 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1260 echo "#define TARGET_ALPHA 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001261 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001262 ;;
1263 arm|armeb)
1264 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001265 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1266 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001267 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001268 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001269 ;;
1270 cris)
1271 echo "TARGET_ARCH=cris" >> $config_mak
1272 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1273 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001274 ;;
1275 m68k)
1276 echo "TARGET_ARCH=m68k" >> $config_mak
1277 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1278 echo "#define TARGET_M68K 1" >> $config_h
1279 bflt="yes"
1280 ;;
1281 mips|mipsel)
1282 echo "TARGET_ARCH=mips" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001283 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001284 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1285 echo "#define TARGET_MIPS 1" >> $config_h
1286 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001287 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001288 ;;
1289 mipsn32|mipsn32el)
1290 echo "TARGET_ARCH=mipsn32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001291 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001292 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1293 echo "#define TARGET_MIPS 1" >> $config_h
1294 echo "#define TARGET_ABI_MIPSN32 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 mips64|mips64el)
1298 echo "TARGET_ARCH=mips64" >> $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 \"mips64\"" >> $config_h
1301 echo "#define TARGET_MIPS 1" >> $config_h
1302 echo "#define TARGET_MIPS64 1" >> $config_h
1303 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001304 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001305 ;;
1306 ppc)
1307 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001308 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001309 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1310 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001311 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001312 ;;
1313 ppcemb)
1314 echo "TARGET_ARCH=ppcemb" >> $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 \"ppcemb\"" >> $config_h
1318 echo "#define TARGET_PPC 1" >> $config_h
1319 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001320 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001321 ;;
1322 ppc64)
1323 echo "TARGET_ARCH=ppc64" >> $config_mak
1324 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001325 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001326 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1327 echo "#define TARGET_PPC 1" >> $config_h
1328 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001329 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001330 ;;
1331 ppc64abi32)
1332 echo "TARGET_ARCH=ppc64" >> $config_mak
1333 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1334 echo "TARGET_ARCH2=ppc64abi32" >> $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 \"ppc64\"" >> $config_h
1337 echo "#define TARGET_PPC 1" >> $config_h
1338 echo "#define TARGET_PPC64 1" >> $config_h
1339 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001340 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001341 ;;
1342 sh4|sh4eb)
1343 echo "TARGET_ARCH=sh4" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001344 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001345 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1346 echo "#define TARGET_SH4 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001347 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001348 bflt="yes"
1349 ;;
1350 sparc)
1351 echo "TARGET_ARCH=sparc" >> $config_mak
1352 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1353 echo "#define TARGET_SPARC 1" >> $config_h
1354 ;;
1355 sparc64)
1356 echo "TARGET_ARCH=sparc64" >> $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 elfload32="yes"
1361 ;;
1362 sparc32plus)
1363 echo "TARGET_ARCH=sparc64" >> $config_mak
1364 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1365 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1366 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1367 echo "#define TARGET_SPARC 1" >> $config_h
1368 echo "#define TARGET_SPARC64 1" >> $config_h
1369 echo "#define TARGET_ABI32 1" >> $config_h
1370 ;;
1371 *)
1372 echo "Unsupported target CPU"
1373 exit 1
1374 ;;
1375esac
bellardde83cd02003-06-15 20:25:43 +00001376if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001377 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1378 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1379fi
1380if test "$target_softmmu" = "yes" ; then
1381 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1382 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001383fi
bellard997344f2003-10-27 21:10:39 +00001384if test "$target_user_only" = "yes" ; then
1385 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1386 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1387fi
ths831b7822007-01-18 20:06:33 +00001388if test "$target_linux_user" = "yes" ; then
1389 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1390 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1391fi
1392if test "$target_darwin_user" = "yes" ; then
1393 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1394 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1395fi
bellardde83cd02003-06-15 20:25:43 +00001396
aurel320938cda2008-04-11 21:36:06 +00001397if test "$target_cpu" = "arm" \
1398 -o "$target_cpu" = "armeb" \
1399 -o "$target_cpu" = "m68k" \
1400 -o "$target_cpu" = "mips" \
1401 -o "$target_cpu" = "mipsel" \
1402 -o "$target_cpu" = "mipsn32" \
1403 -o "$target_cpu" = "mipsn32el" \
1404 -o "$target_cpu" = "mips64" \
1405 -o "$target_cpu" = "mips64el" \
1406 -o "$target_cpu" = "sparc" \
1407 -o "$target_cpu" = "sparc64" \
1408 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001409 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1410 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1411fi
pbrooke5fe0c52006-06-11 13:32:59 +00001412if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1413 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1414 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1415fi
pbrookbd0c5662008-05-29 14:34:11 +00001416if test "$target_user_only" = "yes" \
1417 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1418 echo "#define USE_NPTL 1" >> $config_h
1419fi
blueswir1cb33da52007-10-09 16:34:29 +00001420# 32 bit ELF loader in addition to native 64 bit loader?
1421if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1422 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1423 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1424fi
bellard5b0753e2005-03-01 21:37:28 +00001425
ths15d9ca02007-07-31 23:07:32 +00001426test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1427
bellard97a847b2003-08-10 21:36:04 +00001428done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001429
1430# build tree in object directory if source path is different from current one
1431if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001432 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001433 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001434 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001435 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001436 for dir in $DIRS ; do
1437 mkdir -p $dir
1438 done
bellardec530c82006-04-25 22:36:06 +00001439 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001440 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001441 rm -f $f
1442 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001443 done
1444fi
bellard7d132992003-03-06 23:23:54 +00001445
bellard97a847b2003-08-10 21:36:04 +00001446rm -f $TMPO $TMPC $TMPE $TMPS