blob: 51be6e7ff4adaa8f81b957539a22a2f1313661c2 [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"
malc0c58ac12008-06-25 21:04:05 +000027audio_drv_list=""
28audio_card_list=""
bellard7d132992003-03-06 23:23:54 +000029host_cc="gcc"
30ar="ar"
31make="make"
pbrook6a882642006-04-17 13:57:12 +000032install="install"
bellard7d132992003-03-06 23:23:54 +000033strip="strip"
34cpu=`uname -m`
bellard5327cf42005-01-10 23:18:50 +000035target_list=""
bellard7d132992003-03-06 23:23:54 +000036case "$cpu" in
37 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000038 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000039 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000040 x86_64|amd64)
41 cpu="x86_64"
42 ;;
43 alpha)
44 cpu="alpha"
45 ;;
bellardba680552005-03-13 09:49:52 +000046 armv*b)
bellard808c4952004-12-19 23:33:47 +000047 cpu="armv4b"
48 ;;
bellardba680552005-03-13 09:49:52 +000049 armv*l)
bellard7d132992003-03-06 23:23:54 +000050 cpu="armv4l"
51 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000052 cris)
53 cpu="cris"
bellard7d132992003-03-06 23:23:54 +000054 ;;
aurel32f54b3f92008-04-12 20:14:54 +000055 parisc|parisc64)
56 cpu="hppa"
57 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000058 ia64)
59 cpu="ia64"
60 ;;
61 m68k)
62 cpu="m68k"
bellard7d132992003-03-06 23:23:54 +000063 ;;
64 mips)
65 cpu="mips"
66 ;;
thsfbe4f652007-04-01 11:16:48 +000067 mips64)
68 cpu="mips64"
69 ;;
aurel32aaa5fa12008-04-11 22:04:22 +000070 "Power Macintosh"|ppc|ppc64)
71 cpu="powerpc"
thse7daa602007-10-08 13:38:27 +000072 ;;
ths0e7b8a92007-08-01 00:09:31 +000073 s390*)
bellardfb3e5842003-03-29 17:32:36 +000074 cpu="s390"
75 ;;
blueswir131422552007-04-16 18:27:06 +000076 sparc|sun4[cdmuv])
bellardae228532003-05-13 18:59:59 +000077 cpu="sparc"
78 ;;
79 sparc64)
80 cpu="sparc64"
81 ;;
bellard7d132992003-03-06 23:23:54 +000082 *)
83 cpu="unknown"
84 ;;
85esac
86gprof="no"
87bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000088mingw32="no"
89EXESUF=""
90gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000091slirp="yes"
bellard102a52e2004-11-14 19:57:29 +000092fmod_lib=""
93fmod_inc=""
ths8d5d2d42007-08-25 01:37:51 +000094vnc_tls="yes"
pbrookb1a550a2006-04-16 13:28:56 +000095bsd="no"
bellard5327cf42005-01-10 23:18:50 +000096linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +000097kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +000098profiler="no"
bellard5b0753e2005-03-01 21:37:28 +000099cocoa="no"
bellard97ccc682005-07-02 13:32:17 +0000100check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +0000101check_gcc="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000102softmmu="yes"
ths831b7822007-01-18 20:06:33 +0000103linux_user="no"
104darwin_user="no"
pbrookcc8ae6d2006-04-23 17:57:59 +0000105build_docs="no"
pbrookc5937222006-05-14 11:30:38 +0000106uname_release=""
balrog4d3b6f62008-02-10 16:33:14 +0000107curses="yes"
pbrookbd0c5662008-05-29 14:34:11 +0000108nptl="yes"
malc8ff9cbf2008-06-23 18:33:30 +0000109mixemu="no"
bellard7d132992003-03-06 23:23:54 +0000110
111# OS specific
112targetos=`uname -s`
113case $targetos in
bellardc326e0a2005-04-23 18:30:28 +0000114CYGWIN*)
115mingw32="yes"
ths6f30fa82007-01-05 01:00:47 +0000116OS_CFLAGS="-mno-cygwin"
thsdb8d7dd2007-07-12 09:29:18 +0000117if [ "$cpu" = "i386" ] ; then
118 kqemu="yes"
119fi
malcc2de5c92008-06-28 19:13:06 +0000120audio_possible_drivers="sdl"
bellardc326e0a2005-04-23 18:30:28 +0000121;;
bellard67b915a2004-03-31 23:37:16 +0000122MINGW32*)
123mingw32="yes"
thsdb8d7dd2007-07-12 09:29:18 +0000124if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
126fi
malcc2de5c92008-06-28 19:13:06 +0000127audio_possible_drivers="dsound sdl fmod"
bellard67b915a2004-03-31 23:37:16 +0000128;;
ths5c40d2b2007-06-23 16:03:36 +0000129GNU/kFreeBSD)
malc0c58ac12008-06-25 21:04:05 +0000130audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000131audio_possible_drivers="oss sdl esd"
ths5c40d2b2007-06-23 16:03:36 +0000132if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
133 kqemu="yes"
134fi
135;;
bellard7d3505c2004-05-12 19:32:15 +0000136FreeBSD)
137bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000138audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000139audio_possible_drivers="oss sdl esd"
bellarde99f9062005-07-28 21:45:38 +0000140if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000141 kqemu="yes"
142fi
bellard7d3505c2004-05-12 19:32:15 +0000143;;
144NetBSD)
145bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000146audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000147audio_possible_drivers="oss sdl esd"
bellard7d3505c2004-05-12 19:32:15 +0000148;;
149OpenBSD)
150bsd="yes"
malc0c58ac12008-06-25 21:04:05 +0000151audio_drv_list="oss"
malcc2de5c92008-06-28 19:13:06 +0000152audio_possible_drivers="oss sdl esd"
bellard7d3505c2004-05-12 19:32:15 +0000153;;
bellard83fb7ad2004-07-05 21:25:26 +0000154Darwin)
155bsd="yes"
156darwin="yes"
ths831b7822007-01-18 20:06:33 +0000157darwin_user="yes"
thsfd677642007-01-31 12:10:07 +0000158cocoa="yes"
malc0c58ac12008-06-25 21:04:05 +0000159audio_drv_list="coreaudio"
malcc2de5c92008-06-28 19:13:06 +0000160audio_possible_drivers="coreaudio sdl fmod"
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
malc0c58ac12008-06-25 21:04:05 +0000193 audio_drv_list="oss"
ths6b4d2ba2007-05-13 18:02:43 +0000194 fi
malcc2de5c92008-06-28 19:13:06 +0000195 audio_possible_drivers="oss sdl"
ths86b2bd92007-02-11 00:31:33 +0000196;;
bellard1d14ffa2005-10-30 18:58:22 +0000197*)
malc0c58ac12008-06-25 21:04:05 +0000198audio_drv_list="oss"
malcb8e59f12008-07-02 21:03:08 +0000199audio_possible_drivers="oss alsa sdl esd pa"
bellard5327cf42005-01-10 23:18:50 +0000200linux="yes"
ths831b7822007-01-18 20:06:33 +0000201linux_user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000202if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000203 kqemu="yes"
malcc2de5c92008-06-28 19:13:06 +0000204 audio_possible_drivers="$audio_possible_drivers fmod"
bellardc9ec1fe2005-02-10 21:55:30 +0000205fi
bellardfb065182004-11-09 23:09:44 +0000206;;
bellard7d132992003-03-06 23:23:54 +0000207esac
208
bellard7d3505c2004-05-12 19:32:15 +0000209if [ "$bsd" = "yes" ] ; then
pbrookb1a550a2006-04-16 13:28:56 +0000210 if [ "$darwin" != "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000211 make="gmake"
212 fi
bellard7d3505c2004-05-12 19:32:15 +0000213fi
214
bellard7d132992003-03-06 23:23:54 +0000215# find source path
pbrookad064842006-04-16 12:41:07 +0000216source_path=`dirname "$0"`
balrog59faef32008-02-03 04:22:24 +0000217source_path_used="no"
218workdir=`pwd`
pbrookad064842006-04-16 12:41:07 +0000219if [ -z "$source_path" ]; then
balrog59faef32008-02-03 04:22:24 +0000220 source_path=$workdir
pbrookad064842006-04-16 12:41:07 +0000221else
222 source_path=`cd "$source_path"; pwd`
bellard7d132992003-03-06 23:23:54 +0000223fi
pbrook724db112008-02-03 19:20:13 +0000224[ -f "$workdir/vl.c" ] || source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000225
bellard85aa5182007-11-11 20:17:03 +0000226werror="no"
bellard0d1e2392007-11-11 20:24:30 +0000227# generate compile errors on warnings for development builds
228#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
229#werror="yes";
230#fi
bellard85aa5182007-11-11 20:17:03 +0000231
bellard7d132992003-03-06 23:23:54 +0000232for opt do
pbrooka46e4032006-04-29 23:05:22 +0000233 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
bellard7d132992003-03-06 23:23:54 +0000234 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000235 --help|-h) show_help=yes
236 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000237 --prefix=*) prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000238 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000239 --interp-prefix=*) interp_prefix="$optarg"
bellard32ce6332003-04-11 00:16:16 +0000240 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000241 --source-path=*) source_path="$optarg"
pbrookad064842006-04-16 12:41:07 +0000242 source_path_used="yes"
bellard7d132992003-03-06 23:23:54 +0000243 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000244 --cross-prefix=*) cross_prefix="$optarg"
bellard7d132992003-03-06 23:23:54 +0000245 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000246 --cc=*) cc="$optarg"
pbrook328a4242006-12-19 03:31:34 +0000247 gcc3_search="no"
bellard7d132992003-03-06 23:23:54 +0000248 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000249 --host-cc=*) host_cc="$optarg"
bellard83469012005-07-23 14:27:54 +0000250 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000251 --make=*) make="$optarg"
bellard7d132992003-03-06 23:23:54 +0000252 ;;
pbrook6a882642006-04-17 13:57:12 +0000253 --install=*) install="$optarg"
254 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000255 --extra-cflags=*) CFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000256 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000257 --extra-ldflags=*) LDFLAGS="$optarg"
bellard7d132992003-03-06 23:23:54 +0000258 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000259 --cpu=*) cpu="$optarg"
bellard7d132992003-03-06 23:23:54 +0000260 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000261 --target-list=*) target_list="$optarg"
bellardde83cd02003-06-15 20:25:43 +0000262 ;;
bellard7d132992003-03-06 23:23:54 +0000263 --enable-gprof) gprof="yes"
264 ;;
bellard43ce4df2003-06-09 19:53:12 +0000265 --static) static="yes"
266 ;;
bellard97a847b2003-08-10 21:36:04 +0000267 --disable-sdl) sdl="no"
268 ;;
pbrookb1a550a2006-04-16 13:28:56 +0000269 --fmod-lib=*) fmod_lib="$optarg"
bellard102a52e2004-11-14 19:57:29 +0000270 ;;
malcc2de5c92008-06-28 19:13:06 +0000271 --fmod-inc=*) fmod_inc="$optarg"
272 ;;
malc0c58ac12008-06-25 21:04:05 +0000273 --audio-card-list=*) audio_card_list="$optarg"
274 ;;
275 --audio-drv-list=*) audio_drv_list="$optarg"
276 ;;
ths8d5d2d42007-08-25 01:37:51 +0000277 --disable-vnc-tls) vnc_tls="no"
278 ;;
bellardb93aebe2007-02-15 22:58:18 +0000279 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
bellard1d14ffa2005-10-30 18:58:22 +0000280 ;;
bellard443f1372004-06-04 11:13:20 +0000281 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000282 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000283 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000284 ;;
aurel322e4d9fb2008-04-08 06:01:02 +0000285 --disable-brlapi) brlapi="no"
286 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000287 --enable-profiler) profiler="yes"
288 ;;
malcc2de5c92008-06-28 19:13:06 +0000289 --enable-cocoa)
290 cocoa="yes" ;
291 sdl="no" ;
292 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
bellard1d14ffa2005-10-30 18:58:22 +0000293 ;;
bellard97ccc682005-07-02 13:32:17 +0000294 --disable-gfx-check) check_gfx="no"
295 ;;
bellard1aff3812005-11-02 22:30:45 +0000296 --disable-gcc-check) check_gcc="no"
297 ;;
pbrookcad25d62006-03-19 16:31:11 +0000298 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000299 ;;
pbrookcad25d62006-03-19 16:31:11 +0000300 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000301 ;;
ths831b7822007-01-18 20:06:33 +0000302 --disable-linux-user) linux_user="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000303 ;;
ths831b7822007-01-18 20:06:33 +0000304 --enable-linux-user) linux_user="yes"
305 ;;
306 --disable-darwin-user) darwin_user="no"
307 ;;
308 --enable-darwin-user) darwin_user="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000309 ;;
pbrookc5937222006-05-14 11:30:38 +0000310 --enable-uname-release=*) uname_release="$optarg"
311 ;;
blueswir131422552007-04-16 18:27:06 +0000312 --sparc_cpu=*)
313 sparc_cpu="$optarg"
314 case $sparc_cpu in
315 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
316 target_cpu="sparc"; cpu="sparc" ;;
317 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
318 target_cpu="sparc"; cpu="sparc" ;;
319 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
320 target_cpu="sparc64"; cpu="sparc64" ;;
321 *) echo "undefined SPARC architecture. Exiting";exit 1;;
322 esac
323 ;;
bellard85aa5182007-11-11 20:17:03 +0000324 --enable-werror) werror="yes"
325 ;;
326 --disable-werror) werror="no"
327 ;;
balrog4d3b6f62008-02-10 16:33:14 +0000328 --disable-curses) curses="no"
329 ;;
pbrookbd0c5662008-05-29 14:34:11 +0000330 --disable-nptl) nptl="no"
331 ;;
malc8ff9cbf2008-06-23 18:33:30 +0000332 --enable-mixemu) mixemu="yes"
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"
malcc2de5c92008-06-28 19:13:06 +0000416echo " --audio-drv-list=LIST set audio drivers list:"
417echo " Available drivers: $audio_possible_drivers"
418echo " --audio-card-list=LIST set list of additional emulated audio cards"
419echo " Available cards: ac97 adlib cs4231a gus"
malc8ff9cbf2008-06-23 18:33:30 +0000420echo " --enable-mixemu enable mixer emulation"
aurel322e4d9fb2008-04-08 06:01:02 +0000421echo " --disable-brlapi disable BrlAPI"
ths8d5d2d42007-08-25 01:37:51 +0000422echo " --disable-vnc-tls disable TLS encryption for VNC server"
pbrookaf896aa2008-03-23 00:47:42 +0000423echo " --disable-curses disable curses output"
pbrookbd0c5662008-05-29 14:34:11 +0000424echo " --disable-nptl disable usermode NPTL support"
pbrookaf5db582006-04-08 14:26:41 +0000425echo " --enable-system enable all system emulation targets"
426echo " --disable-system disable all system emulation targets"
ths831b7822007-01-18 20:06:33 +0000427echo " --enable-linux-user enable all linux usermode emulation targets"
428echo " --disable-linux-user disable all linux usermode emulation targets"
429echo " --enable-darwin-user enable all darwin usermode emulation targets"
430echo " --disable-darwin-user disable all darwin usermode emulation targets"
pbrookaf5db582006-04-08 14:26:41 +0000431echo " --fmod-lib path to FMOD library"
432echo " --fmod-inc path to FMOD includes"
pbrookc5937222006-05-14 11:30:38 +0000433echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
blueswir131422552007-04-16 18:27:06 +0000434echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
pbrookaf5db582006-04-08 14:26:41 +0000435echo ""
ths5bf08932006-12-23 00:33:26 +0000436echo "NOTE: The object files are built at the place where configure is launched"
pbrookaf5db582006-04-08 14:26:41 +0000437exit 1
438fi
439
bellard7d132992003-03-06 23:23:54 +0000440cc="${cross_prefix}${cc}"
441ar="${cross_prefix}${ar}"
442strip="${cross_prefix}${strip}"
443
pbrook064aae12006-05-08 00:51:44 +0000444# check that the C compiler works.
445cat > $TMPC <<EOF
446int main(void) {}
447EOF
448
pbrookdb7287e2008-02-03 16:27:13 +0000449if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
pbrook064aae12006-05-08 00:51:44 +0000450 : C compiler works ok
451else
452 echo "ERROR: \"$cc\" either does not exist or does not work"
453 exit 1
bellarda7350fa2006-04-23 14:35:23 +0000454fi
455
bellard67b915a2004-03-31 23:37:16 +0000456if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000457 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000458 EXESUF=".exe"
bellard9f059ec2004-11-14 18:59:52 +0000459 oss="no"
bellard67b915a2004-03-31 23:37:16 +0000460fi
461
ths5fafdf22007-09-16 21:08:06 +0000462# Check for gcc4, error if pre-gcc4
pbrook328a4242006-12-19 03:31:34 +0000463if test "$check_gcc" = "yes" ; then
464 cat > $TMPC <<EOF
465#if __GNUC__ < 4
466#error gcc3
467#endif
468int main(){return 0;}
469EOF
pbrookdb7287e2008-02-03 16:27:13 +0000470 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook328a4242006-12-19 03:31:34 +0000471 echo "WARNING: \"$cc\" looks like gcc 4.x"
472 found_compat_cc="no"
473 if test "$gcc3_search" = "yes" ; then
474 echo "Looking for gcc 3.x"
475 for compat_cc in $gcc3_list ; do
balrogd4af3de2007-07-26 20:41:46 +0000476 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
pbrook328a4242006-12-19 03:31:34 +0000477 echo "Found \"$compat_cc\""
pbrook11244262007-02-27 01:03:41 +0000478 cc="$cross_prefix$compat_cc"
pbrook328a4242006-12-19 03:31:34 +0000479 found_compat_cc="yes"
480 break
481 fi
482 done
483 if test "$found_compat_cc" = "no" ; then
484 echo "gcc 3.x not found!"
485 fi
486 fi
487 if test "$found_compat_cc" = "no" ; then
488 echo "QEMU is known to have problems when compiled with gcc 4.x"
489 echo "It is recommended that you use gcc 3.x to build QEMU"
490 echo "To use this compiler anyway, configure with --disable-gcc-check"
491 exit 1;
492 fi
493 fi
494fi
495
bellardec530c82006-04-25 22:36:06 +0000496#
497# Solaris specific configure tool chain decisions
498#
499if test "$solaris" = "yes" ; then
500 #
501 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
502 # override the check with --disable-gcc-check
ths5fafdf22007-09-16 21:08:06 +0000503 #
bellardec530c82006-04-25 22:36:06 +0000504 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
505 solgcc=`which $cc`
506 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
507 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
508 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
509 echo "or get the latest patch from SunSolve for gcc"
510 exit 1
511 fi
512 fi
513 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
514 if test -z "$solinst" ; then
515 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
516 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
517 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
518 exit 1
519 fi
520 if test "$solinst" = "/usr/sbin/install" ; then
521 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
522 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
523 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
524 exit 1
525 fi
bellardec530c82006-04-25 22:36:06 +0000526 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
527 if test -z "$sol_ar" ; then
528 echo "Error: No path includes ar"
529 if test -f /usr/ccs/bin/ar ; then
530 echo "Add /usr/ccs/bin to your path and rerun configure"
531 fi
532 exit 1
533 fi
ths5fafdf22007-09-16 21:08:06 +0000534fi
bellardec530c82006-04-25 22:36:06 +0000535
536
bellard5327cf42005-01-10 23:18:50 +0000537if test -z "$target_list" ; then
538# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000539 if [ "$softmmu" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000540 target_list="\
541i386-softmmu \
542x86_64-softmmu \
543arm-softmmu \
544cris-softmmu \
545m68k-softmmu \
546mips-softmmu \
547mipsel-softmmu \
548mips64-softmmu \
549mips64el-softmmu \
550ppc-softmmu \
551ppcemb-softmmu \
552ppc64-softmmu \
553sh4-softmmu \
554sh4eb-softmmu \
555sparc-softmmu \
556"
pbrook0a8e90f2006-03-19 14:54:16 +0000557 fi
bellard5327cf42005-01-10 23:18:50 +0000558# the following are Linux specific
ths831b7822007-01-18 20:06:33 +0000559 if [ "$linux_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000560 target_list="${target_list}\
561i386-linux-user \
562x86_64-linux-user \
563alpha-linux-user \
564arm-linux-user \
565armeb-linux-user \
566cris-linux-user \
567m68k-linux-user \
568mips-linux-user \
569mipsel-linux-user \
570ppc-linux-user \
571ppc64-linux-user \
572ppc64abi32-linux-user \
573sh4-linux-user \
574sh4eb-linux-user \
575sparc-linux-user \
576sparc64-linux-user \
577sparc32plus-linux-user \
578"
ths831b7822007-01-18 20:06:33 +0000579 fi
580# the following are Darwin specific
581 if [ "$darwin_user" = "yes" ] ; then
aurel322408a522008-04-20 20:19:44 +0000582 target_list="$target_list i386-darwin-user ppc-darwin-user"
bellard5327cf42005-01-10 23:18:50 +0000583 fi
bellard6e20a452005-06-05 15:56:02 +0000584else
pbrookb1a550a2006-04-16 13:28:56 +0000585 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
bellard5327cf42005-01-10 23:18:50 +0000586fi
pbrook0a8e90f2006-03-19 14:54:16 +0000587if test -z "$target_list" ; then
588 echo "No targets enabled"
589 exit 1
590fi
bellard5327cf42005-01-10 23:18:50 +0000591
bellard7d132992003-03-06 23:23:54 +0000592if test -z "$cross_prefix" ; then
593
594# ---
595# big/little endian test
596cat > $TMPC << EOF
597#include <inttypes.h>
598int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000599 volatile uint32_t i=0x01234567;
600 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000601}
602EOF
603
pbrookdb7287e2008-02-03 16:27:13 +0000604if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
bellard7d132992003-03-06 23:23:54 +0000605$TMPE && bigendian="yes"
606else
607echo big/little test failed
608fi
609
610else
611
612# if cross compiling, cannot launch a program, so make a static guess
aurel320938cda2008-04-11 21:36:06 +0000613if test "$cpu" = "armv4b" \
aurel32f54b3f92008-04-12 20:14:54 +0000614 -o "$cpu" = "hppa" \
aurel320938cda2008-04-11 21:36:06 +0000615 -o "$cpu" = "m68k" \
616 -o "$cpu" = "mips" \
617 -o "$cpu" = "mips64" \
618 -o "$cpu" = "powerpc" \
619 -o "$cpu" = "s390" \
620 -o "$cpu" = "sparc" \
621 -o "$cpu" = "sparc64"; then
bellard7d132992003-03-06 23:23:54 +0000622 bigendian="yes"
623fi
624
625fi
626
bellardb6853692005-06-05 17:10:39 +0000627# host long bits test
628hostlongbits="32"
aurel320938cda2008-04-11 21:36:06 +0000629if test "$cpu" = "x86_64" \
630 -o "$cpu" = "alpha" \
631 -o "$cpu" = "ia64" \
632 -o "$cpu" = "sparc64"; then
bellardb6853692005-06-05 17:10:39 +0000633 hostlongbits="64"
634fi
635
bellarde8cd23d2003-06-25 16:08:13 +0000636# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000637cat > $TMPC <<EOF
638int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000639}
640EOF
641
pbrookbd0c5662008-05-29 14:34:11 +0000642# Check host NPTL support
643cat > $TMPC <<EOF
644#include <sched.h>
pbrook30813ce2008-06-02 15:45:44 +0000645#include <linux/futex.h>
pbrookbd0c5662008-05-29 14:34:11 +0000646void foo()
647{
648#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
649#error bork
650#endif
651}
652EOF
653
654if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
655 :
656else
657 nptl="no"
658fi
659
bellard11d9f692004-04-02 20:55:59 +0000660##########################################
661# SDL probe
662
663sdl_too_old=no
664
665if test -z "$sdl" ; then
ths069b0bd2007-07-12 00:27:15 +0000666 sdl_config="sdl-config"
667 sdl=no
668 sdl_static=no
bellard11d9f692004-04-02 20:55:59 +0000669
ths069b0bd2007-07-12 00:27:15 +0000670 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
671 # win32 cross compilation case
672 sdl_config="i386-mingw32msvc-sdl-config"
673 sdl=yes
674 else
675 # normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000676cat > $TMPC << EOF
677#include <SDL.h>
678#undef main /* We don't want SDL to override our main() */
679int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
680EOF
pbrookdb7287e2008-02-03 16:27:13 +0000681 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 +0000682 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
683 if test "$_sdlversion" -lt 121 ; then
684 sdl_too_old=yes
685 else
686 if test "$cocoa" = "no" ; then
687 sdl=yes
688 fi
689 fi
bellard11d9f692004-04-02 20:55:59 +0000690
ths069b0bd2007-07-12 00:27:15 +0000691 # static link with sdl ?
692 if test "$sdl" = "yes" ; then
693 aa="no"
694 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
695 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
696 if [ "$aa" = "yes" ] ; then
697 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
698 fi
699
ths8281db42007-11-18 21:37:07 +0000700 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 +0000701 sdl_static=yes
702 fi
703 fi # static link
704 fi # sdl compile test
705 fi # cross compilation
bellard11d9f692004-04-02 20:55:59 +0000706else
ths069b0bd2007-07-12 00:27:15 +0000707 # Make sure to disable cocoa if sdl was set
708 if test "$sdl" = "yes" ; then
709 cocoa="no"
malcc2de5c92008-06-28 19:13:06 +0000710 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
ths069b0bd2007-07-12 00:27:15 +0000711 fi
bellarda6e022a2004-04-02 21:55:47 +0000712fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000713
ths8f28f3f2007-01-05 21:25:54 +0000714##########################################
ths8d5d2d42007-08-25 01:37:51 +0000715# VNC TLS detection
716if test "$vnc_tls" = "yes" ; then
717 `pkg-config gnutls` || vnc_tls="no"
718fi
719if test "$vnc_tls" = "yes" ; then
720 vnc_tls_cflags=`pkg-config --cflags gnutls`
721 vnc_tls_libs=`pkg-config --libs gnutls`
722fi
723
724##########################################
malcc2de5c92008-06-28 19:13:06 +0000725# Sound support libraries probe
ths8f28f3f2007-01-05 21:25:54 +0000726
malcc2de5c92008-06-28 19:13:06 +0000727audio_drv_probe()
728{
729 drv=$1
730 hdr=$2
731 lib=$3
732 exp=$4
733 cfl=$5
734 cat > $TMPC << EOF
735#include <$hdr>
736int main(void) { $exp }
ths8f28f3f2007-01-05 21:25:54 +0000737EOF
malcc2de5c92008-06-28 19:13:06 +0000738 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
739 :
740 else
741 echo
742 echo "Error: $drv check failed"
743 echo "Make sure to have the $drv libs and headers installed."
744 echo
745 exit 1
746 fi
747}
748
749for drv in $audio_drv_list; do
750 case $drv in
751 alsa)
752 audio_drv_probe $drv alsa/asoundlib.h -lasound \
753 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
754 ;;
755
756 fmod)
757 if test -z $fmod_lib || test -z $fmod_inc; then
758 echo
759 echo "Error: You must specify path to FMOD library and headers"
760 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
761 echo
762 exit 1
763 fi
764 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
765 ;;
766
767 esd)
768 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
769 ;;
malcb8e59f12008-07-02 21:03:08 +0000770
771 pa)
772 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
773 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
774 ;;
775
malcc2de5c92008-06-28 19:13:06 +0000776 esac
777done
ths8f28f3f2007-01-05 21:25:54 +0000778
balrog4d3b6f62008-02-10 16:33:14 +0000779##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000780# BrlAPI probe
781
782if test -z "$brlapi" ; then
783 brlapi=no
784cat > $TMPC << EOF
785#include <brlapi.h>
786int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
787EOF
aurel32a40e56d2008-05-04 00:50:25 +0000788 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000789 brlapi=yes
790 fi # brlapi compile test
791fi # -z $brlapi
792
793##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000794# curses probe
795
796if test "$curses" = "yes" ; then
797 curses=no
798 cat > $TMPC << EOF
799#include <curses.h>
800int main(void) { return curses_version(); }
801EOF
pbrookaf896aa2008-03-23 00:47:42 +0000802 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000803 curses=yes
804 fi
805fi # test "$curses"
806
pbrookcc8ae6d2006-04-23 17:57:59 +0000807# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000808if [ -x "`which texi2html 2>/dev/null`" ] && \
809 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000810 build_docs="yes"
811fi
812
bellard11d9f692004-04-02 20:55:59 +0000813if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000814 if test -z "$prefix" ; then
815 prefix="/c/Program Files/Qemu"
816 fi
817 mansuffix=""
818 datasuffix=""
819 docsuffix=""
820 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000821else
pbrook308c3592007-02-27 00:52:01 +0000822 if test -z "$prefix" ; then
823 prefix="/usr/local"
824 fi
825 mansuffix="/share/man"
826 datasuffix="/share/qemu"
827 docsuffix="/share/doc/qemu"
828 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000829fi
bellard5a671352003-10-01 00:13:48 +0000830
bellard43ce4df2003-06-09 19:53:12 +0000831echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000832echo "BIOS directory $prefix$datasuffix"
833echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000834if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000835echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000836echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000837fi
bellard5a671352003-10-01 00:13:48 +0000838echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000839echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000840echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000841echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000842echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000843echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000844echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000845echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000846echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000847echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000848echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000849echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000850echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000851if test "$darwin" = "yes" ; then
852 echo "Cocoa support $cocoa"
853fi
bellard97a847b2003-08-10 21:36:04 +0000854echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000855if test "$sdl" != "no" ; then
856 echo "SDL static link $sdl_static"
857fi
balrog4d3b6f62008-02-10 16:33:14 +0000858echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000859echo "mingw32 support $mingw32"
malc0c58ac12008-06-25 21:04:05 +0000860echo "Audio drivers $audio_drv_list"
861echo "Extra audio cards $audio_card_list"
malc8ff9cbf2008-06-23 18:33:30 +0000862echo "Mixer emulation $mixemu"
ths8d5d2d42007-08-25 01:37:51 +0000863echo "VNC TLS support $vnc_tls"
864if test "$vnc_tls" = "yes" ; then
865 echo " TLS CFLAGS $vnc_tls_cflags"
866 echo " TLS LIBS $vnc_tls_libs"
867fi
blueswir131422552007-04-16 18:27:06 +0000868if test -n "$sparc_cpu"; then
869 echo "Target Sparc Arch $sparc_cpu"
870fi
bellard07f4ddb2005-04-23 17:44:28 +0000871echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000872echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000873echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000874[ ! -z "$uname_release" ] && \
875echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +0000876echo "NPTL support $nptl"
bellard67b915a2004-03-31 23:37:16 +0000877
bellard97a847b2003-08-10 21:36:04 +0000878if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000879echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000880fi
ths20b40c62007-07-11 23:39:45 +0000881if [ -s /tmp/qemu-$$-sdl-config.log ]; then
882 echo "The error log from compiling the libSDL test is: "
883 cat /tmp/qemu-$$-sdl-config.log
884fi
885rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000886#if test "$sdl_static" = "no"; then
887# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
888#fi
bellard97a847b2003-08-10 21:36:04 +0000889config_mak="config-host.mak"
890config_h="config-host.h"
891
bellard7c1f25b2004-04-22 00:02:08 +0000892#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000893
ths15d9ca02007-07-31 23:07:32 +0000894test -f $config_h && mv $config_h ${config_h}~
895
bellard97a847b2003-08-10 21:36:04 +0000896echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000897echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000898echo "/* Automatically generated by configure - do not modify */" > $config_h
899
900echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000901echo "bindir=\${prefix}$binsuffix" >> $config_mak
902echo "mandir=\${prefix}$mansuffix" >> $config_mak
903echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000904echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000905echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000906echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000907echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000908echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000909echo "HOST_CC=$host_cc" >> $config_mak
910echo "AR=$ar" >> $config_mak
911echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000912# XXX: only use CFLAGS and LDFLAGS ?
913# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
914# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000915echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000916echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
917echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
918echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000919echo "CFLAGS=$CFLAGS" >> $config_mak
920echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000921echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000922echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +0000923case "$cpu" in
924 i386)
925 echo "ARCH=i386" >> $config_mak
926 echo "#define HOST_I386 1" >> $config_h
927 ;;
928 x86_64)
929 echo "ARCH=x86_64" >> $config_mak
930 echo "#define HOST_X86_64 1" >> $config_h
931 ;;
932 alpha)
933 echo "ARCH=alpha" >> $config_mak
934 echo "#define HOST_ALPHA 1" >> $config_h
935 ;;
936 armv4b)
937 echo "ARCH=arm" >> $config_mak
938 echo "#define HOST_ARM 1" >> $config_h
939 ;;
940 armv4l)
941 echo "ARCH=arm" >> $config_mak
942 echo "#define HOST_ARM 1" >> $config_h
943 ;;
944 cris)
945 echo "ARCH=cris" >> $config_mak
946 echo "#define HOST_CRIS 1" >> $config_h
947 ;;
948 hppa)
949 echo "ARCH=hppa" >> $config_mak
950 echo "#define HOST_HPPA 1" >> $config_h
951 ;;
952 ia64)
953 echo "ARCH=ia64" >> $config_mak
954 echo "#define HOST_IA64 1" >> $config_h
955 ;;
956 m68k)
957 echo "ARCH=m68k" >> $config_mak
958 echo "#define HOST_M68K 1" >> $config_h
959 ;;
960 mips)
961 echo "ARCH=mips" >> $config_mak
962 echo "#define HOST_MIPS 1" >> $config_h
963 ;;
964 mips64)
965 echo "ARCH=mips64" >> $config_mak
966 echo "#define HOST_MIPS64 1" >> $config_h
967 ;;
968 powerpc)
969 echo "ARCH=ppc" >> $config_mak
970 echo "#define HOST_PPC 1" >> $config_h
971 ;;
972 s390)
973 echo "ARCH=s390" >> $config_mak
974 echo "#define HOST_S390 1" >> $config_h
975 ;;
976 sparc)
977 echo "ARCH=sparc" >> $config_mak
978 echo "#define HOST_SPARC 1" >> $config_h
979 ;;
980 sparc64)
981 echo "ARCH=sparc64" >> $config_mak
982 echo "#define HOST_SPARC64 1" >> $config_h
983 ;;
984 *)
985 echo "Unsupported CPU = $cpu"
986 exit 1
987 ;;
988esac
bellard7d132992003-03-06 23:23:54 +0000989if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000990 echo "WORDS_BIGENDIAN=yes" >> $config_mak
991 echo "#define WORDS_BIGENDIAN 1" >> $config_h
992fi
bellardb6853692005-06-05 17:10:39 +0000993echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000994if test "$mingw32" = "yes" ; then
995 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000996 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000997else
998 cat > $TMPC << EOF
999#include <byteswap.h>
1000int main(void) { return bswap_32(0); }
1001EOF
pbrookdb7287e2008-02-03 16:27:13 +00001002 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +00001003 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1004 fi
bellard67b915a2004-03-31 23:37:16 +00001005fi
bellard83fb7ad2004-07-05 21:25:26 +00001006if test "$darwin" = "yes" ; then
1007 echo "CONFIG_DARWIN=yes" >> $config_mak
1008 echo "#define CONFIG_DARWIN 1" >> $config_h
1009fi
bellardec530c82006-04-25 22:36:06 +00001010if test "$solaris" = "yes" ; then
1011 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001012 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001013 if test "$needs_libsunmath" = "yes" ; then
1014 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1015 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1016 fi
bellardec530c82006-04-25 22:36:06 +00001017fi
blueswir131422552007-04-16 18:27:06 +00001018if test -n "$sparc_cpu"; then
1019 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1020 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1021fi
bellard67b915a2004-03-31 23:37:16 +00001022if test "$gdbstub" = "yes" ; then
1023 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1024 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1025fi
bellard97a847b2003-08-10 21:36:04 +00001026if test "$gprof" = "yes" ; then
1027 echo "TARGET_GPROF=yes" >> $config_mak
1028 echo "#define HAVE_GPROF 1" >> $config_h
1029fi
1030if test "$static" = "yes" ; then
1031 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001032 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001033fi
bellard05c2a3e2006-02-08 22:39:17 +00001034if test $profiler = "yes" ; then
1035 echo "#define CONFIG_PROFILER 1" >> $config_h
1036fi
bellardc20709a2004-04-21 23:27:19 +00001037if test "$slirp" = "yes" ; then
1038 echo "CONFIG_SLIRP=yes" >> $config_mak
1039 echo "#define CONFIG_SLIRP 1" >> $config_h
1040fi
malc0c58ac12008-06-25 21:04:05 +00001041for card in $audio_card_list; do
pbrookf6e58892008-06-29 01:00:34 +00001042 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001043 echo "$def=yes" >> $config_mak
1044 echo "#define $def 1" >> $config_h
1045done
1046echo "#define AUDIO_DRIVERS \\" >> $config_h
1047for drv in $audio_drv_list; do
1048 echo " &${drv}_audio_driver, \\" >>$config_h
pbrookf6e58892008-06-29 01:00:34 +00001049 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
malc0c58ac12008-06-25 21:04:05 +00001050 echo "$def=yes" >> $config_mak
malc923e4522008-07-02 18:13:46 +00001051 if test "$drv" = "fmod"; then
malc0c58ac12008-06-25 21:04:05 +00001052 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1053 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1054 fi
1055done
1056echo "" >>$config_h
malc8ff9cbf2008-06-23 18:33:30 +00001057if test "$mixemu" = "yes" ; then
1058 echo "CONFIG_MIXEMU=yes" >> $config_mak
1059 echo "#define CONFIG_MIXEMU 1" >> $config_h
1060fi
ths8d5d2d42007-08-25 01:37:51 +00001061if test "$vnc_tls" = "yes" ; then
1062 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1063 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1064 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1065 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1066fi
pbrookb1a550a2006-04-16 13:28:56 +00001067qemu_version=`head $source_path/VERSION`
1068echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001069echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001070
1071echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001072if [ "$source_path_used" = "yes" ]; then
1073 echo "VPATH=$source_path" >> $config_mak
1074fi
bellard97a847b2003-08-10 21:36:04 +00001075echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001076if [ "$build_docs" = "yes" ] ; then
1077 echo "BUILD_DOCS=yes" >> $config_mak
1078fi
bellard49ecc3f2007-11-07 19:25:15 +00001079if test "$static" = "yes"; then
1080 sdl1=$sdl_static
1081else
1082 sdl1=$sdl
1083fi
1084if test "$sdl1" = "yes" ; then
1085 echo "#define CONFIG_SDL 1" >> $config_h
1086 echo "CONFIG_SDL=yes" >> $config_mak
1087 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1088 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1089 else
1090 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1091 fi
1092 if [ "${aa}" = "yes" ] ; then
1093 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1094 else
1095 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1096 fi
1097fi
1098if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001099 echo "#define CONFIG_COCOA 1" >> $config_h
1100 echo "CONFIG_COCOA=yes" >> $config_mak
1101fi
1102if test "$curses" = "yes" ; then
1103 echo "#define CONFIG_CURSES 1" >> $config_h
1104 echo "CONFIG_CURSES=yes" >> $config_mak
1105 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001106fi
aurel322e4d9fb2008-04-08 06:01:02 +00001107if test "$brlapi" = "yes" ; then
1108 echo "CONFIG_BRLAPI=yes" >> $config_mak
1109 echo "#define CONFIG_BRLAPI 1" >> $config_h
1110 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1111fi
bellard97a847b2003-08-10 21:36:04 +00001112
bellard83fb7ad2004-07-05 21:25:26 +00001113# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001114if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001115 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001116 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001117 echo "#define _BSD 1" >> $config_h
1118fi
1119
pbrookc5937222006-05-14 11:30:38 +00001120echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1121
pbrookc39e3332007-09-22 16:49:14 +00001122tools=
1123if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1124 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001125 if [ "$linux" = "yes" ] ; then
1126 tools="qemu-nbd\$(EXESUF) $tools"
1127 fi
pbrookc39e3332007-09-22 16:49:14 +00001128fi
1129echo "TOOLS=$tools" >> $config_mak
1130
ths15d9ca02007-07-31 23:07:32 +00001131test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1132
bellard1d14ffa2005-10-30 18:58:22 +00001133for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001134target_dir="$target"
1135config_mak=$target_dir/config.mak
1136config_h=$target_dir/config.h
1137target_cpu=`echo $target | cut -d '-' -f 1`
1138target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001139[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001140[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1141[ "$target_cpu" = "mips" ] && target_bigendian=yes
1142[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1143[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001144[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001145[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001146[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001147[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001148[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001149[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1150[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1151[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001152target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001153target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001154target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001155target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001156case "$target" in
1157 ${target_cpu}-softmmu)
1158 target_softmmu="yes"
1159 ;;
1160 ${target_cpu}-linux-user)
1161 target_user_only="yes"
1162 target_linux_user="yes"
1163 ;;
1164 ${target_cpu}-darwin-user)
1165 target_user_only="yes"
1166 target_darwin_user="yes"
1167 ;;
1168 *)
1169 echo "ERROR: Target '$target' not recognised"
1170 exit 1
1171 ;;
1172esac
ths831b7822007-01-18 20:06:33 +00001173
bellard97ccc682005-07-02 13:32:17 +00001174if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001175 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001176 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001177 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001178 echo "Note that this will disable all output from the virtual graphics card"
1179 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001180 exit 1;
1181fi
1182
bellard7c1f25b2004-04-22 00:02:08 +00001183#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001184
ths15d9ca02007-07-31 23:07:32 +00001185test -f $config_h && mv $config_h ${config_h}~
1186
bellard97a847b2003-08-10 21:36:04 +00001187mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001188mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001189mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001190if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001191 mkdir -p $target_dir/nwfpe
1192fi
1193
bellardec530c82006-04-25 22:36:06 +00001194#
1195# don't use ln -sf as not all "ln -sf" over write the file/link
1196#
1197rm -f $target_dir/Makefile
1198ln -s $source_path/Makefile.target $target_dir/Makefile
1199
bellard97a847b2003-08-10 21:36:04 +00001200
1201echo "# Automatically generated by configure - do not modify" > $config_mak
1202echo "/* Automatically generated by configure - do not modify */" > $config_h
1203
1204
1205echo "include ../config-host.mak" >> $config_mak
1206echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001207
pbrooke5fe0c52006-06-11 13:32:59 +00001208bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001209elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001210target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001211interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1212echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001213
aurel322408a522008-04-20 20:19:44 +00001214case "$target_cpu" in
1215 i386)
1216 echo "TARGET_ARCH=i386" >> $config_mak
1217 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1218 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001219 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001220 then
1221 echo "#define USE_KQEMU 1" >> $config_h
1222 fi
aurel32f2bf0942008-05-05 06:00:27 +00001223 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001224 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001225 then
1226 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1227 else
1228 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1229 fi
aurel322408a522008-04-20 20:19:44 +00001230 ;;
1231 x86_64)
1232 echo "TARGET_ARCH=x86_64" >> $config_mak
1233 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1234 echo "#define TARGET_I386 1" >> $config_h
1235 echo "#define TARGET_X86_64 1" >> $config_h
1236 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1237 then
1238 echo "#define USE_KQEMU 1" >> $config_h
1239 fi
1240 ;;
1241 alpha)
1242 echo "TARGET_ARCH=alpha" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001243 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001244 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1245 echo "#define TARGET_ALPHA 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001246 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001247 ;;
1248 arm|armeb)
1249 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001250 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1251 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001252 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001253 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001254 ;;
1255 cris)
1256 echo "TARGET_ARCH=cris" >> $config_mak
1257 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1258 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001259 ;;
1260 m68k)
1261 echo "TARGET_ARCH=m68k" >> $config_mak
1262 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1263 echo "#define TARGET_M68K 1" >> $config_h
1264 bflt="yes"
1265 ;;
1266 mips|mipsel)
1267 echo "TARGET_ARCH=mips" >> $config_mak
1268 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1269 echo "#define TARGET_MIPS 1" >> $config_h
1270 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1271 ;;
1272 mipsn32|mipsn32el)
1273 echo "TARGET_ARCH=mipsn32" >> $config_mak
1274 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1275 echo "#define TARGET_MIPS 1" >> $config_h
1276 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1277 ;;
1278 mips64|mips64el)
1279 echo "TARGET_ARCH=mips64" >> $config_mak
1280 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1281 echo "#define TARGET_MIPS 1" >> $config_h
1282 echo "#define TARGET_MIPS64 1" >> $config_h
1283 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1284 ;;
1285 ppc)
1286 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001287 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001288 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1289 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001290 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001291 ;;
1292 ppcemb)
1293 echo "TARGET_ARCH=ppcemb" >> $config_mak
1294 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001295 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001296 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1297 echo "#define TARGET_PPC 1" >> $config_h
1298 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001299 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001300 ;;
1301 ppc64)
1302 echo "TARGET_ARCH=ppc64" >> $config_mak
1303 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001304 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001305 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1306 echo "#define TARGET_PPC 1" >> $config_h
1307 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001308 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001309 ;;
1310 ppc64abi32)
1311 echo "TARGET_ARCH=ppc64" >> $config_mak
1312 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1313 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001314 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001315 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1316 echo "#define TARGET_PPC 1" >> $config_h
1317 echo "#define TARGET_PPC64 1" >> $config_h
1318 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001319 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001320 ;;
1321 sh4|sh4eb)
1322 echo "TARGET_ARCH=sh4" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001323 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001324 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1325 echo "#define TARGET_SH4 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001326 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001327 bflt="yes"
1328 ;;
1329 sparc)
1330 echo "TARGET_ARCH=sparc" >> $config_mak
1331 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1332 echo "#define TARGET_SPARC 1" >> $config_h
1333 ;;
1334 sparc64)
1335 echo "TARGET_ARCH=sparc64" >> $config_mak
1336 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1337 echo "#define TARGET_SPARC 1" >> $config_h
1338 echo "#define TARGET_SPARC64 1" >> $config_h
1339 elfload32="yes"
1340 ;;
1341 sparc32plus)
1342 echo "TARGET_ARCH=sparc64" >> $config_mak
1343 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1344 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1345 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1346 echo "#define TARGET_SPARC 1" >> $config_h
1347 echo "#define TARGET_SPARC64 1" >> $config_h
1348 echo "#define TARGET_ABI32 1" >> $config_h
1349 ;;
1350 *)
1351 echo "Unsupported target CPU"
1352 exit 1
1353 ;;
1354esac
bellardde83cd02003-06-15 20:25:43 +00001355if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001356 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1357 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1358fi
1359if test "$target_softmmu" = "yes" ; then
1360 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1361 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001362fi
bellard997344f2003-10-27 21:10:39 +00001363if test "$target_user_only" = "yes" ; then
1364 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1365 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1366fi
ths831b7822007-01-18 20:06:33 +00001367if test "$target_linux_user" = "yes" ; then
1368 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1369 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1370fi
1371if test "$target_darwin_user" = "yes" ; then
1372 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1373 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1374fi
bellardde83cd02003-06-15 20:25:43 +00001375
aurel320938cda2008-04-11 21:36:06 +00001376if test "$target_cpu" = "arm" \
1377 -o "$target_cpu" = "armeb" \
1378 -o "$target_cpu" = "m68k" \
1379 -o "$target_cpu" = "mips" \
1380 -o "$target_cpu" = "mipsel" \
1381 -o "$target_cpu" = "mipsn32" \
1382 -o "$target_cpu" = "mipsn32el" \
1383 -o "$target_cpu" = "mips64" \
1384 -o "$target_cpu" = "mips64el" \
1385 -o "$target_cpu" = "sparc" \
1386 -o "$target_cpu" = "sparc64" \
1387 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001388 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1389 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1390fi
pbrooke5fe0c52006-06-11 13:32:59 +00001391if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1392 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1393 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1394fi
pbrookbd0c5662008-05-29 14:34:11 +00001395if test "$target_user_only" = "yes" \
1396 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1397 echo "#define USE_NPTL 1" >> $config_h
1398fi
blueswir1cb33da52007-10-09 16:34:29 +00001399# 32 bit ELF loader in addition to native 64 bit loader?
1400if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1401 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1402 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1403fi
bellard5b0753e2005-03-01 21:37:28 +00001404
ths15d9ca02007-07-31 23:07:32 +00001405test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1406
bellard97a847b2003-08-10 21:36:04 +00001407done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001408
1409# build tree in object directory if source path is different from current one
1410if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001411 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001412 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001413 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001414 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001415 for dir in $DIRS ; do
1416 mkdir -p $dir
1417 done
bellardec530c82006-04-25 22:36:06 +00001418 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001419 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001420 rm -f $f
1421 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001422 done
1423fi
bellard7d132992003-03-06 23:23:54 +00001424
bellard97a847b2003-08-10 21:36:04 +00001425rm -f $TMPO $TMPC $TMPE $TMPS