blob: 6a7edb310349e8b4382166088573ba7f2a28edec [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"
malcc2de5c92008-06-28 19:13:06 +0000199audio_possible_drivers="oss alsa sdl esd"
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 ;;
770 esac
771done
ths8f28f3f2007-01-05 21:25:54 +0000772
balrog4d3b6f62008-02-10 16:33:14 +0000773##########################################
aurel322e4d9fb2008-04-08 06:01:02 +0000774# BrlAPI probe
775
776if test -z "$brlapi" ; then
777 brlapi=no
778cat > $TMPC << EOF
779#include <brlapi.h>
780int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
781EOF
aurel32a40e56d2008-05-04 00:50:25 +0000782 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
aurel322e4d9fb2008-04-08 06:01:02 +0000783 brlapi=yes
784 fi # brlapi compile test
785fi # -z $brlapi
786
787##########################################
balrog4d3b6f62008-02-10 16:33:14 +0000788# curses probe
789
790if test "$curses" = "yes" ; then
791 curses=no
792 cat > $TMPC << EOF
793#include <curses.h>
794int main(void) { return curses_version(); }
795EOF
pbrookaf896aa2008-03-23 00:47:42 +0000796 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
balrog4d3b6f62008-02-10 16:33:14 +0000797 curses=yes
798 fi
799fi # test "$curses"
800
pbrookcc8ae6d2006-04-23 17:57:59 +0000801# Check if tools are available to build documentation.
ths6c591862007-05-09 13:55:03 +0000802if [ -x "`which texi2html 2>/dev/null`" ] && \
803 [ -x "`which pod2man 2>/dev/null`" ]; then
pbrookcc8ae6d2006-04-23 17:57:59 +0000804 build_docs="yes"
805fi
806
bellard11d9f692004-04-02 20:55:59 +0000807if test "$mingw32" = "yes" ; then
pbrook308c3592007-02-27 00:52:01 +0000808 if test -z "$prefix" ; then
809 prefix="/c/Program Files/Qemu"
810 fi
811 mansuffix=""
812 datasuffix=""
813 docsuffix=""
814 binsuffix=""
bellard11d9f692004-04-02 20:55:59 +0000815else
pbrook308c3592007-02-27 00:52:01 +0000816 if test -z "$prefix" ; then
817 prefix="/usr/local"
818 fi
819 mansuffix="/share/man"
820 datasuffix="/share/qemu"
821 docsuffix="/share/doc/qemu"
822 binsuffix="/bin"
bellard11d9f692004-04-02 20:55:59 +0000823fi
bellard5a671352003-10-01 00:13:48 +0000824
bellard43ce4df2003-06-09 19:53:12 +0000825echo "Install prefix $prefix"
pbrook308c3592007-02-27 00:52:01 +0000826echo "BIOS directory $prefix$datasuffix"
827echo "binary directory $prefix$binsuffix"
bellard11d9f692004-04-02 20:55:59 +0000828if test "$mingw32" = "no" ; then
pbrook308c3592007-02-27 00:52:01 +0000829echo "Manual directory $prefix$mansuffix"
bellard43ce4df2003-06-09 19:53:12 +0000830echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000831fi
bellard5a671352003-10-01 00:13:48 +0000832echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000833echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000834echo "Host C compiler $host_cc"
pbrookdb7287e2008-02-03 16:27:13 +0000835echo "ARCH_CFLAGS $ARCH_CFLAGS"
bellard43ce4df2003-06-09 19:53:12 +0000836echo "make $make"
pbrook6a882642006-04-17 13:57:12 +0000837echo "install $install"
bellard43ce4df2003-06-09 19:53:12 +0000838echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000839echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000840echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000841echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000842echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000843echo "static build $static"
bellard85aa5182007-11-11 20:17:03 +0000844echo "-Werror enabled $werror"
bellard5b0753e2005-03-01 21:37:28 +0000845if test "$darwin" = "yes" ; then
846 echo "Cocoa support $cocoa"
847fi
bellard97a847b2003-08-10 21:36:04 +0000848echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000849if test "$sdl" != "no" ; then
850 echo "SDL static link $sdl_static"
851fi
balrog4d3b6f62008-02-10 16:33:14 +0000852echo "curses support $curses"
bellard67b915a2004-03-31 23:37:16 +0000853echo "mingw32 support $mingw32"
malc0c58ac12008-06-25 21:04:05 +0000854echo "Audio drivers $audio_drv_list"
855echo "Extra audio cards $audio_card_list"
malc8ff9cbf2008-06-23 18:33:30 +0000856echo "Mixer emulation $mixemu"
ths8d5d2d42007-08-25 01:37:51 +0000857echo "VNC TLS support $vnc_tls"
858if test "$vnc_tls" = "yes" ; then
859 echo " TLS CFLAGS $vnc_tls_cflags"
860 echo " TLS LIBS $vnc_tls_libs"
861fi
blueswir131422552007-04-16 18:27:06 +0000862if test -n "$sparc_cpu"; then
863 echo "Target Sparc Arch $sparc_cpu"
864fi
bellard07f4ddb2005-04-23 17:44:28 +0000865echo "kqemu support $kqemu"
aurel322e4d9fb2008-04-08 06:01:02 +0000866echo "brlapi support $brlapi"
pbrookcc8ae6d2006-04-23 17:57:59 +0000867echo "Documentation $build_docs"
pbrookc5937222006-05-14 11:30:38 +0000868[ ! -z "$uname_release" ] && \
869echo "uname -r $uname_release"
pbrookbd0c5662008-05-29 14:34:11 +0000870echo "NPTL support $nptl"
bellard67b915a2004-03-31 23:37:16 +0000871
bellard97a847b2003-08-10 21:36:04 +0000872if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000873echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000874fi
ths20b40c62007-07-11 23:39:45 +0000875if [ -s /tmp/qemu-$$-sdl-config.log ]; then
876 echo "The error log from compiling the libSDL test is: "
877 cat /tmp/qemu-$$-sdl-config.log
878fi
879rm -f /tmp/qemu-$$-sdl-config.log
bellard24b55b92005-03-01 22:30:41 +0000880#if test "$sdl_static" = "no"; then
881# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
882#fi
bellard97a847b2003-08-10 21:36:04 +0000883config_mak="config-host.mak"
884config_h="config-host.h"
885
bellard7c1f25b2004-04-22 00:02:08 +0000886#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000887
ths15d9ca02007-07-31 23:07:32 +0000888test -f $config_h && mv $config_h ${config_h}~
889
bellard97a847b2003-08-10 21:36:04 +0000890echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000891echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000892echo "/* Automatically generated by configure - do not modify */" > $config_h
893
894echo "prefix=$prefix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000895echo "bindir=\${prefix}$binsuffix" >> $config_mak
896echo "mandir=\${prefix}$mansuffix" >> $config_mak
897echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths4ad5b062007-03-03 21:47:02 +0000898echo "docdir=\${prefix}$docsuffix" >> $config_mak
pbrook308c3592007-02-27 00:52:01 +0000899echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000900echo "MAKE=$make" >> $config_mak
pbrook6a882642006-04-17 13:57:12 +0000901echo "INSTALL=$install" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000902echo "CC=$cc" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000903echo "HOST_CC=$host_cc" >> $config_mak
904echo "AR=$ar" >> $config_mak
905echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
bellard40293e52008-01-31 11:32:10 +0000906# XXX: only use CFLAGS and LDFLAGS ?
907# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
908# compilation of dyngen tool (useful for win32 build on Linux host)
ths6f30fa82007-01-05 01:00:47 +0000909echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
blueswir131422552007-04-16 18:27:06 +0000910echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
911echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
912echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000913echo "CFLAGS=$CFLAGS" >> $config_mak
914echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000915echo "EXESUF=$EXESUF" >> $config_mak
ths70956b72007-03-17 15:00:37 +0000916echo "AIOLIBS=$AIOLIBS" >> $config_mak
aurel322408a522008-04-20 20:19:44 +0000917case "$cpu" in
918 i386)
919 echo "ARCH=i386" >> $config_mak
920 echo "#define HOST_I386 1" >> $config_h
921 ;;
922 x86_64)
923 echo "ARCH=x86_64" >> $config_mak
924 echo "#define HOST_X86_64 1" >> $config_h
925 ;;
926 alpha)
927 echo "ARCH=alpha" >> $config_mak
928 echo "#define HOST_ALPHA 1" >> $config_h
929 ;;
930 armv4b)
931 echo "ARCH=arm" >> $config_mak
932 echo "#define HOST_ARM 1" >> $config_h
933 ;;
934 armv4l)
935 echo "ARCH=arm" >> $config_mak
936 echo "#define HOST_ARM 1" >> $config_h
937 ;;
938 cris)
939 echo "ARCH=cris" >> $config_mak
940 echo "#define HOST_CRIS 1" >> $config_h
941 ;;
942 hppa)
943 echo "ARCH=hppa" >> $config_mak
944 echo "#define HOST_HPPA 1" >> $config_h
945 ;;
946 ia64)
947 echo "ARCH=ia64" >> $config_mak
948 echo "#define HOST_IA64 1" >> $config_h
949 ;;
950 m68k)
951 echo "ARCH=m68k" >> $config_mak
952 echo "#define HOST_M68K 1" >> $config_h
953 ;;
954 mips)
955 echo "ARCH=mips" >> $config_mak
956 echo "#define HOST_MIPS 1" >> $config_h
957 ;;
958 mips64)
959 echo "ARCH=mips64" >> $config_mak
960 echo "#define HOST_MIPS64 1" >> $config_h
961 ;;
962 powerpc)
963 echo "ARCH=ppc" >> $config_mak
964 echo "#define HOST_PPC 1" >> $config_h
965 ;;
966 s390)
967 echo "ARCH=s390" >> $config_mak
968 echo "#define HOST_S390 1" >> $config_h
969 ;;
970 sparc)
971 echo "ARCH=sparc" >> $config_mak
972 echo "#define HOST_SPARC 1" >> $config_h
973 ;;
974 sparc64)
975 echo "ARCH=sparc64" >> $config_mak
976 echo "#define HOST_SPARC64 1" >> $config_h
977 ;;
978 *)
979 echo "Unsupported CPU = $cpu"
980 exit 1
981 ;;
982esac
bellard7d132992003-03-06 23:23:54 +0000983if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000984 echo "WORDS_BIGENDIAN=yes" >> $config_mak
985 echo "#define WORDS_BIGENDIAN 1" >> $config_h
986fi
bellardb6853692005-06-05 17:10:39 +0000987echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000988if test "$mingw32" = "yes" ; then
989 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000990 echo "#define CONFIG_WIN32 1" >> $config_h
pbrook210fa552007-02-27 21:04:49 +0000991else
992 cat > $TMPC << EOF
993#include <byteswap.h>
994int main(void) { return bswap_32(0); }
995EOF
pbrookdb7287e2008-02-03 16:27:13 +0000996 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
pbrook210fa552007-02-27 21:04:49 +0000997 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
998 fi
bellard67b915a2004-03-31 23:37:16 +0000999fi
bellard83fb7ad2004-07-05 21:25:26 +00001000if test "$darwin" = "yes" ; then
1001 echo "CONFIG_DARWIN=yes" >> $config_mak
1002 echo "#define CONFIG_DARWIN 1" >> $config_h
1003fi
bellardec530c82006-04-25 22:36:06 +00001004if test "$solaris" = "yes" ; then
1005 echo "CONFIG_SOLARIS=yes" >> $config_mak
bellard38cfa062006-05-01 13:58:07 +00001006 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths0475a5c2007-04-01 18:54:44 +00001007 if test "$needs_libsunmath" = "yes" ; then
1008 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1009 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1010 fi
bellardec530c82006-04-25 22:36:06 +00001011fi
blueswir131422552007-04-16 18:27:06 +00001012if test -n "$sparc_cpu"; then
1013 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1014 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1015fi
bellard67b915a2004-03-31 23:37:16 +00001016if test "$gdbstub" = "yes" ; then
1017 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1018 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1019fi
bellard97a847b2003-08-10 21:36:04 +00001020if test "$gprof" = "yes" ; then
1021 echo "TARGET_GPROF=yes" >> $config_mak
1022 echo "#define HAVE_GPROF 1" >> $config_h
1023fi
1024if test "$static" = "yes" ; then
1025 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +00001026 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001027fi
bellard05c2a3e2006-02-08 22:39:17 +00001028if test $profiler = "yes" ; then
1029 echo "#define CONFIG_PROFILER 1" >> $config_h
1030fi
bellardc20709a2004-04-21 23:27:19 +00001031if test "$slirp" = "yes" ; then
1032 echo "CONFIG_SLIRP=yes" >> $config_mak
1033 echo "#define CONFIG_SLIRP 1" >> $config_h
1034fi
malc0c58ac12008-06-25 21:04:05 +00001035for card in $audio_card_list; do
1036 def=CONFIG_`echo $card | tr [:lower:] [:upper:]`
1037 echo "$def=yes" >> $config_mak
1038 echo "#define $def 1" >> $config_h
1039done
1040echo "#define AUDIO_DRIVERS \\" >> $config_h
1041for drv in $audio_drv_list; do
1042 echo " &${drv}_audio_driver, \\" >>$config_h
1043 def=CONFIG_`echo $drv | tr [:lower:] [:upper:]`
1044 echo "$def=yes" >> $config_mak
1045 if test "$drv" == "fmod"; then
1046 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1047 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1048 fi
1049done
1050echo "" >>$config_h
malc8ff9cbf2008-06-23 18:33:30 +00001051if test "$mixemu" = "yes" ; then
1052 echo "CONFIG_MIXEMU=yes" >> $config_mak
1053 echo "#define CONFIG_MIXEMU 1" >> $config_h
1054fi
ths8d5d2d42007-08-25 01:37:51 +00001055if test "$vnc_tls" = "yes" ; then
1056 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1057 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1058 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1059 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1060fi
pbrookb1a550a2006-04-16 13:28:56 +00001061qemu_version=`head $source_path/VERSION`
1062echo "VERSION=$qemu_version" >>$config_mak
pbrookd4b8f032006-04-16 13:49:23 +00001063echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001064
1065echo "SRC_PATH=$source_path" >> $config_mak
pbrookad064842006-04-16 12:41:07 +00001066if [ "$source_path_used" = "yes" ]; then
1067 echo "VPATH=$source_path" >> $config_mak
1068fi
bellard97a847b2003-08-10 21:36:04 +00001069echo "TARGET_DIRS=$target_list" >> $config_mak
pbrookcc8ae6d2006-04-23 17:57:59 +00001070if [ "$build_docs" = "yes" ] ; then
1071 echo "BUILD_DOCS=yes" >> $config_mak
1072fi
bellard49ecc3f2007-11-07 19:25:15 +00001073if test "$static" = "yes"; then
1074 sdl1=$sdl_static
1075else
1076 sdl1=$sdl
1077fi
1078if test "$sdl1" = "yes" ; then
1079 echo "#define CONFIG_SDL 1" >> $config_h
1080 echo "CONFIG_SDL=yes" >> $config_mak
1081 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1082 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1083 else
1084 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1085 fi
1086 if [ "${aa}" = "yes" ] ; then
1087 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1088 else
1089 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1090 fi
1091fi
1092if test "$cocoa" = "yes" ; then
balrog4d3b6f62008-02-10 16:33:14 +00001093 echo "#define CONFIG_COCOA 1" >> $config_h
1094 echo "CONFIG_COCOA=yes" >> $config_mak
1095fi
1096if test "$curses" = "yes" ; then
1097 echo "#define CONFIG_CURSES 1" >> $config_h
1098 echo "CONFIG_CURSES=yes" >> $config_mak
1099 echo "CURSES_LIBS=-lcurses" >> $config_mak
bellard49ecc3f2007-11-07 19:25:15 +00001100fi
aurel322e4d9fb2008-04-08 06:01:02 +00001101if test "$brlapi" = "yes" ; then
1102 echo "CONFIG_BRLAPI=yes" >> $config_mak
1103 echo "#define CONFIG_BRLAPI 1" >> $config_h
1104 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1105fi
bellard97a847b2003-08-10 21:36:04 +00001106
bellard83fb7ad2004-07-05 21:25:26 +00001107# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +00001108if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +00001109 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +00001110 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +00001111 echo "#define _BSD 1" >> $config_h
1112fi
1113
pbrookc5937222006-05-14 11:30:38 +00001114echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1115
pbrookc39e3332007-09-22 16:49:14 +00001116tools=
1117if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1118 tools="qemu-img\$(EXESUF) $tools"
bellard7a5ca862008-05-27 21:13:40 +00001119 if [ "$linux" = "yes" ] ; then
1120 tools="qemu-nbd\$(EXESUF) $tools"
1121 fi
pbrookc39e3332007-09-22 16:49:14 +00001122fi
1123echo "TOOLS=$tools" >> $config_mak
1124
ths15d9ca02007-07-31 23:07:32 +00001125test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1126
bellard1d14ffa2005-10-30 18:58:22 +00001127for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +00001128target_dir="$target"
1129config_mak=$target_dir/config.mak
1130config_h=$target_dir/config.h
1131target_cpu=`echo $target | cut -d '-' -f 1`
1132target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +00001133[ "$target_cpu" = "armeb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001134[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1135[ "$target_cpu" = "mips" ] && target_bigendian=yes
1136[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1137[ "$target_cpu" = "mips64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +00001138[ "$target_cpu" = "ppc" ] && target_bigendian=yes
j_mayerd4082e92007-04-24 07:34:03 +00001139[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
j_mayer22f8a8b2007-10-14 08:38:29 +00001140[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
j_mayere85e7c62007-10-18 19:59:49 +00001141[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
pbrook908f52b2006-06-18 19:16:53 +00001142[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
aurel320938cda2008-04-11 21:36:06 +00001143[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1144[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1145[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +00001146target_softmmu="no"
bellard997344f2003-10-27 21:10:39 +00001147target_user_only="no"
ths831b7822007-01-18 20:06:33 +00001148target_linux_user="no"
ths831b7822007-01-18 20:06:33 +00001149target_darwin_user="no"
pbrook9e407a82007-05-26 16:38:53 +00001150case "$target" in
1151 ${target_cpu}-softmmu)
1152 target_softmmu="yes"
1153 ;;
1154 ${target_cpu}-linux-user)
1155 target_user_only="yes"
1156 target_linux_user="yes"
1157 ;;
1158 ${target_cpu}-darwin-user)
1159 target_user_only="yes"
1160 target_darwin_user="yes"
1161 ;;
1162 *)
1163 echo "ERROR: Target '$target' not recognised"
1164 exit 1
1165 ;;
1166esac
ths831b7822007-01-18 20:06:33 +00001167
bellard97ccc682005-07-02 13:32:17 +00001168if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +00001169 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +00001170 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
pbrook9c038502006-04-16 15:19:15 +00001171 echo "To build QEMU without graphical output configure with --disable-gfx-check"
balrog4d3b6f62008-02-10 16:33:14 +00001172 echo "Note that this will disable all output from the virtual graphics card"
1173 echo "except through VNC or curses."
bellard97ccc682005-07-02 13:32:17 +00001174 exit 1;
1175fi
1176
bellard7c1f25b2004-04-22 00:02:08 +00001177#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +00001178
ths15d9ca02007-07-31 23:07:32 +00001179test -f $config_h && mv $config_h ${config_h}~
1180
bellard97a847b2003-08-10 21:36:04 +00001181mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +00001182mkdir -p $target_dir/fpu
bellard57fec1f2008-02-01 10:50:11 +00001183mkdir -p $target_dir/tcg
ths831b7822007-01-18 20:06:33 +00001184if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
bellard69de9272004-02-16 21:40:43 +00001185 mkdir -p $target_dir/nwfpe
1186fi
1187
bellardec530c82006-04-25 22:36:06 +00001188#
1189# don't use ln -sf as not all "ln -sf" over write the file/link
1190#
1191rm -f $target_dir/Makefile
1192ln -s $source_path/Makefile.target $target_dir/Makefile
1193
bellard97a847b2003-08-10 21:36:04 +00001194
1195echo "# Automatically generated by configure - do not modify" > $config_mak
1196echo "/* Automatically generated by configure - do not modify */" > $config_h
1197
1198
1199echo "include ../config-host.mak" >> $config_mak
1200echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +00001201
pbrooke5fe0c52006-06-11 13:32:59 +00001202bflt="no"
blueswir1cb33da52007-10-09 16:34:29 +00001203elfload32="no"
pbrookbd0c5662008-05-29 14:34:11 +00001204target_nptl="no"
bellard1e43adf2003-09-30 20:54:24 +00001205interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1206echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +00001207
aurel322408a522008-04-20 20:19:44 +00001208case "$target_cpu" in
1209 i386)
1210 echo "TARGET_ARCH=i386" >> $config_mak
1211 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1212 echo "#define TARGET_I386 1" >> $config_h
bellardda260242008-05-30 20:48:25 +00001213 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
aurel322408a522008-04-20 20:19:44 +00001214 then
1215 echo "#define USE_KQEMU 1" >> $config_h
1216 fi
aurel32f2bf0942008-05-05 06:00:27 +00001217 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
pbrook11d1fdb2008-05-23 23:16:42 +00001218 if test -n "$gcc3minver" && test $gcc3minver -gt 3
aurel32f2bf0942008-05-05 06:00:27 +00001219 then
1220 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1221 else
1222 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1223 fi
aurel322408a522008-04-20 20:19:44 +00001224 ;;
1225 x86_64)
1226 echo "TARGET_ARCH=x86_64" >> $config_mak
1227 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1228 echo "#define TARGET_I386 1" >> $config_h
1229 echo "#define TARGET_X86_64 1" >> $config_h
1230 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1231 then
1232 echo "#define USE_KQEMU 1" >> $config_h
1233 fi
1234 ;;
1235 alpha)
1236 echo "TARGET_ARCH=alpha" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001237 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001238 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1239 echo "#define TARGET_ALPHA 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001240 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001241 ;;
1242 arm|armeb)
1243 echo "TARGET_ARCH=arm" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001244 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1245 echo "#define TARGET_ARM 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001246 bflt="yes"
pbrookbd0c5662008-05-29 14:34:11 +00001247 target_nptl="yes"
aurel322408a522008-04-20 20:19:44 +00001248 ;;
1249 cris)
1250 echo "TARGET_ARCH=cris" >> $config_mak
1251 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1252 echo "#define TARGET_CRIS 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001253 ;;
1254 m68k)
1255 echo "TARGET_ARCH=m68k" >> $config_mak
1256 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1257 echo "#define TARGET_M68K 1" >> $config_h
1258 bflt="yes"
1259 ;;
1260 mips|mipsel)
1261 echo "TARGET_ARCH=mips" >> $config_mak
1262 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1263 echo "#define TARGET_MIPS 1" >> $config_h
1264 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1265 ;;
1266 mipsn32|mipsn32el)
1267 echo "TARGET_ARCH=mipsn32" >> $config_mak
1268 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1269 echo "#define TARGET_MIPS 1" >> $config_h
1270 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1271 ;;
1272 mips64|mips64el)
1273 echo "TARGET_ARCH=mips64" >> $config_mak
1274 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1275 echo "#define TARGET_MIPS 1" >> $config_h
1276 echo "#define TARGET_MIPS64 1" >> $config_h
1277 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1278 ;;
1279 ppc)
1280 echo "TARGET_ARCH=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001281 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001282 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1283 echo "#define TARGET_PPC 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001284 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001285 ;;
1286 ppcemb)
1287 echo "TARGET_ARCH=ppcemb" >> $config_mak
1288 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001289 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001290 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1291 echo "#define TARGET_PPC 1" >> $config_h
1292 echo "#define TARGET_PPCEMB 1" >> $config_h
blueswir1ec5b78c2008-05-10 17:23:18 +00001293 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001294 ;;
1295 ppc64)
1296 echo "TARGET_ARCH=ppc64" >> $config_mak
1297 echo "TARGET_ABI_DIR=ppc" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001298 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001299 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1300 echo "#define TARGET_PPC 1" >> $config_h
1301 echo "#define TARGET_PPC64 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001302 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001303 ;;
1304 ppc64abi32)
1305 echo "TARGET_ARCH=ppc64" >> $config_mak
1306 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1307 echo "TARGET_ARCH2=ppc64abi32" >> $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 \"ppc64\"" >> $config_h
1310 echo "#define TARGET_PPC 1" >> $config_h
1311 echo "#define TARGET_PPC64 1" >> $config_h
1312 echo "#define TARGET_ABI32 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001313 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001314 ;;
1315 sh4|sh4eb)
1316 echo "TARGET_ARCH=sh4" >> $config_mak
blueswir1bf6247f2008-05-10 12:27:33 +00001317 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
aurel322408a522008-04-20 20:19:44 +00001318 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1319 echo "#define TARGET_SH4 1" >> $config_h
blueswir1bf6247f2008-05-10 12:27:33 +00001320 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
aurel322408a522008-04-20 20:19:44 +00001321 bflt="yes"
1322 ;;
1323 sparc)
1324 echo "TARGET_ARCH=sparc" >> $config_mak
1325 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1326 echo "#define TARGET_SPARC 1" >> $config_h
1327 ;;
1328 sparc64)
1329 echo "TARGET_ARCH=sparc64" >> $config_mak
1330 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1331 echo "#define TARGET_SPARC 1" >> $config_h
1332 echo "#define TARGET_SPARC64 1" >> $config_h
1333 elfload32="yes"
1334 ;;
1335 sparc32plus)
1336 echo "TARGET_ARCH=sparc64" >> $config_mak
1337 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1338 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1339 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1340 echo "#define TARGET_SPARC 1" >> $config_h
1341 echo "#define TARGET_SPARC64 1" >> $config_h
1342 echo "#define TARGET_ABI32 1" >> $config_h
1343 ;;
1344 *)
1345 echo "Unsupported target CPU"
1346 exit 1
1347 ;;
1348esac
bellardde83cd02003-06-15 20:25:43 +00001349if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +00001350 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1351 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1352fi
1353if test "$target_softmmu" = "yes" ; then
1354 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1355 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +00001356fi
bellard997344f2003-10-27 21:10:39 +00001357if test "$target_user_only" = "yes" ; then
1358 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1359 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1360fi
ths831b7822007-01-18 20:06:33 +00001361if test "$target_linux_user" = "yes" ; then
1362 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1363 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1364fi
1365if test "$target_darwin_user" = "yes" ; then
1366 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1367 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1368fi
bellardde83cd02003-06-15 20:25:43 +00001369
aurel320938cda2008-04-11 21:36:06 +00001370if test "$target_cpu" = "arm" \
1371 -o "$target_cpu" = "armeb" \
1372 -o "$target_cpu" = "m68k" \
1373 -o "$target_cpu" = "mips" \
1374 -o "$target_cpu" = "mipsel" \
1375 -o "$target_cpu" = "mipsn32" \
1376 -o "$target_cpu" = "mipsn32el" \
1377 -o "$target_cpu" = "mips64" \
1378 -o "$target_cpu" = "mips64el" \
1379 -o "$target_cpu" = "sparc" \
1380 -o "$target_cpu" = "sparc64" \
1381 -o "$target_cpu" = "sparc32plus"; then
bellard158142c2005-03-13 16:54:06 +00001382 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1383 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1384fi
pbrooke5fe0c52006-06-11 13:32:59 +00001385if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1386 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1387 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1388fi
pbrookbd0c5662008-05-29 14:34:11 +00001389if test "$target_user_only" = "yes" \
1390 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1391 echo "#define USE_NPTL 1" >> $config_h
1392fi
blueswir1cb33da52007-10-09 16:34:29 +00001393# 32 bit ELF loader in addition to native 64 bit loader?
1394if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1395 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1396 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1397fi
bellard5b0753e2005-03-01 21:37:28 +00001398
ths15d9ca02007-07-31 23:07:32 +00001399test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1400
bellard97a847b2003-08-10 21:36:04 +00001401done # for target in $targets
bellard7d132992003-03-06 23:23:54 +00001402
1403# build tree in object directory if source path is different from current one
1404if test "$source_path_used" = "yes" ; then
bellard49ecc3f2007-11-07 19:25:15 +00001405 DIRS="tests tests/cris slirp audio"
bellard7d132992003-03-06 23:23:54 +00001406 FILES="Makefile tests/Makefile"
thse7daa602007-10-08 13:38:27 +00001407 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
edgar_igle1ffb0f2008-03-01 22:23:17 +00001408 FILES="$FILES tests/test-mmap.c"
bellard7d132992003-03-06 23:23:54 +00001409 for dir in $DIRS ; do
1410 mkdir -p $dir
1411 done
bellardec530c82006-04-25 22:36:06 +00001412 # remove the link and recreate it, as not all "ln -sf" overwrite the link
bellard7d132992003-03-06 23:23:54 +00001413 for f in $FILES ; do
bellardec530c82006-04-25 22:36:06 +00001414 rm -f $f
1415 ln -s $source_path/$f $f
bellard7d132992003-03-06 23:23:54 +00001416 done
1417fi
bellard7d132992003-03-06 23:23:54 +00001418
bellard97a847b2003-08-10 21:36:04 +00001419rm -f $TMPO $TMPC $TMPE $TMPS