blob: 64cb745dcc639206fa0e19d851c161145c383b59 [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"
25host_cc="gcc"
26ar="ar"
27make="make"
28strip="strip"
29cpu=`uname -m`
bellard5327cf42005-01-10 23:18:50 +000030target_list=""
bellard7d132992003-03-06 23:23:54 +000031case "$cpu" in
32 i386|i486|i586|i686|i86pc|BePC)
bellard97a847b2003-08-10 21:36:04 +000033 cpu="i386"
bellard7d132992003-03-06 23:23:54 +000034 ;;
bellardba680552005-03-13 09:49:52 +000035 armv*b)
bellard808c4952004-12-19 23:33:47 +000036 cpu="armv4b"
37 ;;
bellardba680552005-03-13 09:49:52 +000038 armv*l)
bellard7d132992003-03-06 23:23:54 +000039 cpu="armv4l"
40 ;;
41 alpha)
42 cpu="alpha"
43 ;;
bellard295defa2003-04-07 21:31:29 +000044 "Power Macintosh"|ppc|ppc64)
bellard7d132992003-03-06 23:23:54 +000045 cpu="powerpc"
46 ;;
47 mips)
48 cpu="mips"
49 ;;
bellardfb3e5842003-03-29 17:32:36 +000050 s390)
51 cpu="s390"
52 ;;
bellardae228532003-05-13 18:59:59 +000053 sparc)
54 cpu="sparc"
55 ;;
56 sparc64)
57 cpu="sparc64"
58 ;;
bellarda8baa8c2003-04-29 20:53:31 +000059 ia64)
60 cpu="ia64"
61 ;;
bellard38e584a2003-08-10 22:14:22 +000062 m68k)
63 cpu="m68k"
64 ;;
bellardbc51c5c2004-03-17 23:46:04 +000065 x86_64|amd64)
bellard0b0babc2005-01-03 23:38:40 +000066 cpu="x86_64"
bellardbc51c5c2004-03-17 23:46:04 +000067 ;;
bellard7d132992003-03-06 23:23:54 +000068 *)
69 cpu="unknown"
70 ;;
71esac
72gprof="no"
73bigendian="no"
bellard67b915a2004-03-31 23:37:16 +000074mingw32="no"
75EXESUF=""
76gdbstub="yes"
bellard443f1372004-06-04 11:13:20 +000077slirp="yes"
bellardfb065182004-11-09 23:09:44 +000078adlib="no"
79oss="no"
bellard1d14ffa2005-10-30 18:58:22 +000080dsound="no"
81coreaudio="no"
82alsa="no"
bellard102a52e2004-11-14 19:57:29 +000083fmod="no"
84fmod_lib=""
85fmod_inc=""
bellard5327cf42005-01-10 23:18:50 +000086linux="no"
bellardc9ec1fe2005-02-10 21:55:30 +000087kqemu="no"
bellard05c2a3e2006-02-08 22:39:17 +000088profiler="no"
bellardc9ec1fe2005-02-10 21:55:30 +000089kernel_path=""
bellard5b0753e2005-03-01 21:37:28 +000090cocoa="no"
bellard97ccc682005-07-02 13:32:17 +000091check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +000092check_gcc="yes"
bellard7d132992003-03-06 23:23:54 +000093
94# OS specific
95targetos=`uname -s`
96case $targetos in
bellardc326e0a2005-04-23 18:30:28 +000097CYGWIN*)
98mingw32="yes"
99CFLAGS="-O2 -mno-cygwin"
100;;
bellard67b915a2004-03-31 23:37:16 +0000101MINGW32*)
102mingw32="yes"
103;;
bellard7d3505c2004-05-12 19:32:15 +0000104FreeBSD)
105bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000106oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000107if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000108 kqemu="yes"
109fi
bellard7d3505c2004-05-12 19:32:15 +0000110;;
111NetBSD)
112bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000113oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000114;;
115OpenBSD)
116bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000117oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000118;;
bellard83fb7ad2004-07-05 21:25:26 +0000119Darwin)
120bsd="yes"
121darwin="yes"
122;;
bellard1d14ffa2005-10-30 18:58:22 +0000123*)
bellardfb065182004-11-09 23:09:44 +0000124oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000125linux="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000126if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000127 kqemu="yes"
128fi
bellardfb065182004-11-09 23:09:44 +0000129;;
bellard7d132992003-03-06 23:23:54 +0000130esac
131
bellard7d3505c2004-05-12 19:32:15 +0000132if [ "$bsd" = "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000133 if [ ! "$darwin" = "yes" ] ; then
134 make="gmake"
135 fi
bellard7d3505c2004-05-12 19:32:15 +0000136fi
137
bellard7d132992003-03-06 23:23:54 +0000138# find source path
bellard1d14ffa2005-10-30 18:58:22 +0000139# XXX: we assume an absolute path is given when launching configure,
bellard7d132992003-03-06 23:23:54 +0000140# except in './configure' case.
141source_path=${0%configure}
142source_path=${source_path%/}
143source_path_used="yes"
144if test -z "$source_path" -o "$source_path" = "." ; then
145 source_path=`pwd`
146 source_path_used="no"
147fi
148
149for opt do
150 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000151 --help|-h) show_help=yes
152 ;;
bellard7d132992003-03-06 23:23:54 +0000153 --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
154 ;;
bellard32ce6332003-04-11 00:16:16 +0000155 --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
156 ;;
bellard7d132992003-03-06 23:23:54 +0000157 --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
158 ;;
159 --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
160 ;;
161 --cc=*) cc=`echo $opt | cut -d '=' -f 2`
162 ;;
bellard83469012005-07-23 14:27:54 +0000163 --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2`
164 ;;
bellard7d132992003-03-06 23:23:54 +0000165 --make=*) make=`echo $opt | cut -d '=' -f 2`
166 ;;
167 --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
168 ;;
169 --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
170 ;;
bellard7d132992003-03-06 23:23:54 +0000171 --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
172 ;;
bellard97a847b2003-08-10 21:36:04 +0000173 --target-list=*) target_list=${opt#--target-list=}
bellardde83cd02003-06-15 20:25:43 +0000174 ;;
bellard7d132992003-03-06 23:23:54 +0000175 --enable-gprof) gprof="yes"
176 ;;
bellard43ce4df2003-06-09 19:53:12 +0000177 --static) static="yes"
178 ;;
bellard97a847b2003-08-10 21:36:04 +0000179 --disable-sdl) sdl="no"
180 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000181 --enable-coreaudio) coreaudio="yes"
182 ;;
183 --enable-alsa) alsa="yes"
184 ;;
185 --enable-dsound) dsound="yes"
186 ;;
bellard102a52e2004-11-14 19:57:29 +0000187 --enable-fmod) fmod="yes"
188 ;;
189 --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
190 ;;
191 --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
192 ;;
bellard67b915a2004-03-31 23:37:16 +0000193 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
bellard1d14ffa2005-10-30 18:58:22 +0000194 ;;
bellard443f1372004-06-04 11:13:20 +0000195 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000196 ;;
bellardfb065182004-11-09 23:09:44 +0000197 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000198 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000199 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000200 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000201 --enable-profiler) profiler="yes"
202 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000203 --kernel-path=*) kernel_path=${opt#--kernel-path=}
bellard1d14ffa2005-10-30 18:58:22 +0000204 ;;
205 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
206 ;;
bellard97ccc682005-07-02 13:32:17 +0000207 --disable-gfx-check) check_gfx="no"
208 ;;
bellard1aff3812005-11-02 22:30:45 +0000209 --disable-gcc-check) check_gcc="no"
210 ;;
bellard7d132992003-03-06 23:23:54 +0000211 esac
212done
213
214# Checking for CFLAGS
215if test -z "$CFLAGS"; then
216 CFLAGS="-O2"
217fi
218
219cc="${cross_prefix}${cc}"
220ar="${cross_prefix}${ar}"
221strip="${cross_prefix}${strip}"
222
bellard67b915a2004-03-31 23:37:16 +0000223if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000224 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000225 EXESUF=".exe"
226 gdbstub="no"
bellard9f059ec2004-11-14 18:59:52 +0000227 oss="no"
bellard07f4ddb2005-04-23 17:44:28 +0000228 if [ "$cpu" = "i386" ] ; then
229 kqemu="yes"
230 fi
bellard67b915a2004-03-31 23:37:16 +0000231fi
232
bellard5327cf42005-01-10 23:18:50 +0000233if test -z "$target_list" ; then
234# these targets are portable
bellardb5ff1b32005-11-26 10:38:39 +0000235 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu arm-softmmu"
bellard5327cf42005-01-10 23:18:50 +0000236# the following are Linux specific
237 if [ "$linux" = "yes" ] ; then
bellardc20eb472005-12-06 21:42:55 +0000238 target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000239 fi
bellard6e20a452005-06-05 15:56:02 +0000240else
241 target_list=$(echo "$target_list" | sed -e 's/,/ /g')
bellard5327cf42005-01-10 23:18:50 +0000242fi
243
bellard7d132992003-03-06 23:23:54 +0000244if test -z "$cross_prefix" ; then
245
246# ---
247# big/little endian test
248cat > $TMPC << EOF
249#include <inttypes.h>
250int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000251 volatile uint32_t i=0x01234567;
252 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000253}
254EOF
255
256if $cc -o $TMPE $TMPC 2>/dev/null ; then
257$TMPE && bigendian="yes"
258else
259echo big/little test failed
260fi
261
262else
263
264# if cross compiling, cannot launch a program, so make a static guess
bellard808c4952004-12-19 23:33:47 +0000265if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
bellard7d132992003-03-06 23:23:54 +0000266 bigendian="yes"
267fi
268
269fi
270
bellardb6853692005-06-05 17:10:39 +0000271# host long bits test
272hostlongbits="32"
273if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
274 hostlongbits="64"
275fi
276
bellarde8cd23d2003-06-25 16:08:13 +0000277# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000278cat > $TMPC <<EOF
279int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000280}
281EOF
282
bellarde8cd23d2003-06-25 16:08:13 +0000283have_gcc3_options="no"
284if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
285 have_gcc3_options="yes"
bellard04369ff2003-03-20 22:33:23 +0000286fi
bellardca735202003-03-18 20:41:34 +0000287
bellard1aff3812005-11-02 22:30:45 +0000288# Check for gcc4
289if test "$check_gcc" = "yes" ; then
290 cat > $TMPC <<EOF
291#if __GNUC__ >= 4
292#error gcc4
293#endif
294int main(){return 0;}
295EOF
296 if ! $cc -o $TMPO $TMPC 2>/dev/null ; then
297 echo "ERROR: \"$cc\" looks like gcc 4.x"
298 echo "QEMU is known to have problems when compiled with gcc 4.x"
299 echo "It is recommended that you use gcc 3.x to build QEMU"
300 echo "To use this compiler anyway, configure with --disable-gcc-check"
301 exit 1;
302 fi
303fi
304
bellard11d9f692004-04-02 20:55:59 +0000305##########################################
306# SDL probe
307
308sdl_too_old=no
309
310if test -z "$sdl" ; then
311
bellarda6e022a2004-04-02 21:55:47 +0000312sdl_config="sdl-config"
313sdl=no
bellard7c1f25b2004-04-22 00:02:08 +0000314sdl_static=no
bellarda6e022a2004-04-02 21:55:47 +0000315
316if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
317# win32 cross compilation case
318 sdl_config="i386-mingw32msvc-sdl-config"
319 sdl=yes
320else
321# normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000322cat > $TMPC << EOF
323#include <SDL.h>
324#undef main /* We don't want SDL to override our main() */
325int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
326EOF
327
bellarda6e022a2004-04-02 21:55:47 +0000328if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
329_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
bellard11d9f692004-04-02 20:55:59 +0000330if test "$_sdlversion" -lt 121 ; then
331sdl_too_old=yes
332else
333sdl=yes
334fi
bellard7c1f25b2004-04-22 00:02:08 +0000335
336# static link with sdl ?
337if test "$sdl" = "yes" ; then
338aa="no"
339`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
340sdl_static_libs=`$sdl_config --static-libs`
341if [ "$aa" = "yes" ] ; then
bellardd8d8aa42004-04-29 20:14:07 +0000342 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
bellard11d9f692004-04-02 20:55:59 +0000343fi
344
bellard7c1f25b2004-04-22 00:02:08 +0000345if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
346 sdl_static=yes
347fi
348
349fi # static link
350
351fi # sdl compile test
352
bellarda6e022a2004-04-02 21:55:47 +0000353fi # cross compilation
354fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000355
bellard2efc3262005-12-18 19:14:49 +0000356if test x"$show_help" = x"yes" ; then
bellard7d132992003-03-06 23:23:54 +0000357cat << EOF
358
359Usage: configure [options]
360Options: [defaults in brackets after descriptions]
361
362EOF
363echo "Standard options:"
364echo " --help print this message"
365echo " --prefix=PREFIX install in PREFIX [$prefix]"
bellard1e43adf2003-09-30 20:54:24 +0000366echo " --interp-prefix=PREFIX where to find shared libraries, etc."
367echo " use %M for cpu name [$interp_prefix]"
bellard97a847b2003-08-10 21:36:04 +0000368echo " --target-list=LIST set target list [$target_list]"
bellard7d132992003-03-06 23:23:54 +0000369echo ""
bellardc9ec1fe2005-02-10 21:55:30 +0000370echo "kqemu kernel acceleration support:"
bellard05c2a3e2006-02-08 22:39:17 +0000371echo " --disable-kqemu disable kqemu support"
bellardc9ec1fe2005-02-10 21:55:30 +0000372echo " --kernel-path=PATH set the kernel path (configure probes it)"
373echo ""
bellard7d132992003-03-06 23:23:54 +0000374echo "Advanced options (experts only):"
375echo " --source-path=PATH path of source code [$source_path]"
376echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
377echo " --cc=CC use C compiler CC [$cc]"
bellard2efc3262005-12-18 19:14:49 +0000378echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
bellard7d132992003-03-06 23:23:54 +0000379echo " --make=MAKE use specified make [$make]"
bellard43ce4df2003-06-09 19:53:12 +0000380echo " --static enable static build [$static]"
bellard8147cfc2006-02-01 21:45:16 +0000381echo " --enable-cocoa enable COCOA (Mac OS X only)"
bellard67b915a2004-03-31 23:37:16 +0000382echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
bellardd37282a2005-04-28 20:41:53 +0000383echo " --enable-adlib enable Adlib emulation"
bellard1d14ffa2005-10-30 18:58:22 +0000384echo " --enable-coreaudio enable Coreaudio audio driver"
385echo " --enable-alsa enable ALSA audio driver"
386echo " --enable-fmod enable FMOD audio driver"
387echo " --enabled-dsound enable DirectSound audio driver"
bellard102a52e2004-11-14 19:57:29 +0000388echo " --fmod-lib path to FMOD library"
389echo " --fmod-inc path to FMOD includes"
bellard7d132992003-03-06 23:23:54 +0000390echo ""
391echo "NOTE: The object files are build at the place where configure is launched"
392exit 1
393fi
394
bellard11d9f692004-04-02 20:55:59 +0000395if test "$mingw32" = "yes" ; then
396if test -z "$prefix" ; then
397 prefix="/c/Program Files/Qemu"
398fi
399mandir="$prefix"
bellard7efa4382004-05-12 18:54:06 +0000400datadir="$prefix"
bellard1f50f8d2004-05-08 14:44:43 +0000401docdir="$prefix"
bellard11d9f692004-04-02 20:55:59 +0000402bindir="$prefix"
403else
404if test -z "$prefix" ; then
405 prefix="/usr/local"
406fi
bellard5a671352003-10-01 00:13:48 +0000407mandir="$prefix/share/man"
bellard7efa4382004-05-12 18:54:06 +0000408datadir="$prefix/share/qemu"
bellard1f50f8d2004-05-08 14:44:43 +0000409docdir="$prefix/share/doc/qemu"
bellard11d9f692004-04-02 20:55:59 +0000410bindir="$prefix/bin"
411fi
bellard5a671352003-10-01 00:13:48 +0000412
bellard43ce4df2003-06-09 19:53:12 +0000413echo "Install prefix $prefix"
bellard7efa4382004-05-12 18:54:06 +0000414echo "BIOS directory $datadir"
bellard11d9f692004-04-02 20:55:59 +0000415echo "binary directory $bindir"
416if test "$mingw32" = "no" ; then
417echo "Manual directory $mandir"
bellard43ce4df2003-06-09 19:53:12 +0000418echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000419fi
bellard5a671352003-10-01 00:13:48 +0000420echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000421echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000422echo "Host C compiler $host_cc"
bellard43ce4df2003-06-09 19:53:12 +0000423echo "make $make"
424echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000425echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000426echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000427echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000428echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000429echo "static build $static"
bellard5b0753e2005-03-01 21:37:28 +0000430if test "$darwin" = "yes" ; then
431 echo "Cocoa support $cocoa"
432fi
bellard97a847b2003-08-10 21:36:04 +0000433echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000434if test "$sdl" != "no" ; then
435 echo "SDL static link $sdl_static"
436fi
bellard67b915a2004-03-31 23:37:16 +0000437echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000438echo "Adlib support $adlib"
bellard1d14ffa2005-10-30 18:58:22 +0000439echo "CoreAudio support $coreaudio"
440echo "ALSA support $alsa"
441echo "DSound support $dsound"
bellard102a52e2004-11-14 19:57:29 +0000442echo -n "FMOD support $fmod"
bellard1d14ffa2005-10-30 18:58:22 +0000443if test "$fmod" = "yes"; then
444 if test -z $fmod_lib || test -z $fmod_inc; then
445 echo
446 echo "Error: You must specify path to FMOD library and headers"
447 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
448 echo
449 exit 1
450 fi
bellard102a52e2004-11-14 19:57:29 +0000451 echo -n " (lib='$fmod_lib' include='$fmod_inc')"
452fi
453echo ""
bellard07f4ddb2005-04-23 17:44:28 +0000454echo "kqemu support $kqemu"
bellard67b915a2004-03-31 23:37:16 +0000455
bellard97a847b2003-08-10 21:36:04 +0000456if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000457echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000458fi
bellard24b55b92005-03-01 22:30:41 +0000459#if test "$sdl_static" = "no"; then
460# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
461#fi
bellard97a847b2003-08-10 21:36:04 +0000462
463config_mak="config-host.mak"
464config_h="config-host.h"
465
bellard7c1f25b2004-04-22 00:02:08 +0000466#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000467
468echo "# Automatically generated by configure - do not modify" > $config_mak
469echo "/* Automatically generated by configure - do not modify */" > $config_h
470
471echo "prefix=$prefix" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000472echo "bindir=$bindir" >> $config_mak
bellard5a671352003-10-01 00:13:48 +0000473echo "mandir=$mandir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000474echo "datadir=$datadir" >> $config_mak
bellard1f50f8d2004-05-08 14:44:43 +0000475echo "docdir=$docdir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000476echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000477echo "MAKE=$make" >> $config_mak
478echo "CC=$cc" >> $config_mak
479if test "$have_gcc3_options" = "yes" ; then
480 echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
481fi
482echo "HOST_CC=$host_cc" >> $config_mak
483echo "AR=$ar" >> $config_mak
484echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
485echo "CFLAGS=$CFLAGS" >> $config_mak
486echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000487echo "EXESUF=$EXESUF" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000488if test "$cpu" = "i386" ; then
489 echo "ARCH=i386" >> $config_mak
490 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000491elif test "$cpu" = "x86_64" ; then
492 echo "ARCH=x86_64" >> $config_mak
493 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000494elif test "$cpu" = "armv4b" ; then
495 echo "ARCH=arm" >> $config_mak
496 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000497elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000498 echo "ARCH=arm" >> $config_mak
499 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000500elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000501 echo "ARCH=ppc" >> $config_mak
502 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000503elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000504 echo "ARCH=mips" >> $config_mak
505 echo "#define HOST_MIPS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000506elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000507 echo "ARCH=s390" >> $config_mak
508 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000509elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000510 echo "ARCH=alpha" >> $config_mak
511 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000512elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000513 echo "ARCH=sparc" >> $config_mak
514 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000515elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000516 echo "ARCH=sparc64" >> $config_mak
517 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000518elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000519 echo "ARCH=ia64" >> $config_mak
520 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000521elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000522 echo "ARCH=m68k" >> $config_mak
523 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000524else
525 echo "Unsupported CPU"
526 exit 1
527fi
528if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000529 echo "WORDS_BIGENDIAN=yes" >> $config_mak
530 echo "#define WORDS_BIGENDIAN 1" >> $config_h
531fi
bellardb6853692005-06-05 17:10:39 +0000532echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000533if test "$mingw32" = "yes" ; then
534 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000535 echo "#define CONFIG_WIN32 1" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000536elif test -f "/usr/include/byteswap.h" ; then
bellard67b915a2004-03-31 23:37:16 +0000537 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
538fi
bellard83fb7ad2004-07-05 21:25:26 +0000539if test "$darwin" = "yes" ; then
540 echo "CONFIG_DARWIN=yes" >> $config_mak
541 echo "#define CONFIG_DARWIN 1" >> $config_h
542fi
bellard67b915a2004-03-31 23:37:16 +0000543if test "$gdbstub" = "yes" ; then
544 echo "CONFIG_GDBSTUB=yes" >> $config_mak
545 echo "#define CONFIG_GDBSTUB 1" >> $config_h
546fi
bellard97a847b2003-08-10 21:36:04 +0000547if test "$gprof" = "yes" ; then
548 echo "TARGET_GPROF=yes" >> $config_mak
549 echo "#define HAVE_GPROF 1" >> $config_h
550fi
551if test "$static" = "yes" ; then
552 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000553 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000554fi
bellard05c2a3e2006-02-08 22:39:17 +0000555if test $profiler = "yes" ; then
556 echo "#define CONFIG_PROFILER 1" >> $config_h
557fi
bellardc20709a2004-04-21 23:27:19 +0000558if test "$slirp" = "yes" ; then
559 echo "CONFIG_SLIRP=yes" >> $config_mak
560 echo "#define CONFIG_SLIRP 1" >> $config_h
561fi
bellardfb065182004-11-09 23:09:44 +0000562if test "$adlib" = "yes" ; then
563 echo "CONFIG_ADLIB=yes" >> $config_mak
564 echo "#define CONFIG_ADLIB 1" >> $config_h
565fi
566if test "$oss" = "yes" ; then
567 echo "CONFIG_OSS=yes" >> $config_mak
568 echo "#define CONFIG_OSS 1" >> $config_h
569fi
bellard1d14ffa2005-10-30 18:58:22 +0000570if test "$coreaudio" = "yes" ; then
571 echo "CONFIG_COREAUDIO=yes" >> $config_mak
572 echo "#define CONFIG_COREAUDIO 1" >> $config_h
573fi
574if test "$alsa" = "yes" ; then
575 echo "CONFIG_ALSA=yes" >> $config_mak
576 echo "#define CONFIG_ALSA 1" >> $config_h
577fi
578if test "$dsound" = "yes" ; then
579 echo "CONFIG_DSOUND=yes" >> $config_mak
580 echo "#define CONFIG_DSOUND 1" >> $config_h
581fi
bellard102a52e2004-11-14 19:57:29 +0000582if test "$fmod" = "yes" ; then
583 echo "CONFIG_FMOD=yes" >> $config_mak
584 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
585 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
586 echo "#define CONFIG_FMOD 1" >> $config_h
587fi
bellard97a847b2003-08-10 21:36:04 +0000588echo -n "VERSION=" >>$config_mak
589head $source_path/VERSION >>$config_mak
590echo "" >>$config_mak
591echo -n "#define QEMU_VERSION \"" >> $config_h
592head $source_path/VERSION >> $config_h
593echo "\"" >> $config_h
594
595echo "SRC_PATH=$source_path" >> $config_mak
596echo "TARGET_DIRS=$target_list" >> $config_mak
597
bellard83fb7ad2004-07-05 21:25:26 +0000598# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +0000599if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +0000600 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +0000601 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000602 echo "#define _BSD 1" >> $config_h
603fi
604
bellard1d14ffa2005-10-30 18:58:22 +0000605for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +0000606
607target_dir="$target"
608config_mak=$target_dir/config.mak
609config_h=$target_dir/config.h
610target_cpu=`echo $target | cut -d '-' -f 1`
611target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +0000612[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +0000613[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +0000614[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +0000615[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellarda2458622005-07-23 22:39:53 +0000616[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +0000617[ "$target_cpu" = "mips" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +0000618target_softmmu="no"
619if expr $target : '.*-softmmu' > /dev/null ; then
620 target_softmmu="yes"
bellard7d132992003-03-06 23:23:54 +0000621fi
bellard997344f2003-10-27 21:10:39 +0000622target_user_only="no"
623if expr $target : '.*-user' > /dev/null ; then
624 target_user_only="yes"
625fi
bellardde83cd02003-06-15 20:25:43 +0000626
bellard97ccc682005-07-02 13:32:17 +0000627if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +0000628 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +0000629 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
630 echo "To build QEMU with graphical output configure with --disable-gfx-check"
631 echo "Note that this will disable all output from the virtual graphics card."
632 exit 1;
633fi
634
bellard7c1f25b2004-04-22 00:02:08 +0000635#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +0000636
637mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +0000638mkdir -p $target_dir/fpu
bellard808c4952004-12-19 23:33:47 +0000639if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard69de9272004-02-16 21:40:43 +0000640 mkdir -p $target_dir/nwfpe
641fi
bellarda7e61ed2004-04-22 21:46:47 +0000642if test "$target_user_only" = "no" ; then
643 mkdir -p $target_dir/slirp
644fi
bellard69de9272004-02-16 21:40:43 +0000645
bellard97a847b2003-08-10 21:36:04 +0000646ln -sf $source_path/Makefile.target $target_dir/Makefile
647
648echo "# Automatically generated by configure - do not modify" > $config_mak
649echo "/* Automatically generated by configure - do not modify */" > $config_h
650
651
652echo "include ../config-host.mak" >> $config_mak
653echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000654
655interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
656echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000657
658if test "$target_cpu" = "i386" ; then
659 echo "TARGET_ARCH=i386" >> $config_mak
660 echo "#define TARGET_ARCH \"i386\"" >> $config_h
661 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000662 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +0000663 echo "#define USE_KQEMU 1" >> $config_h
664 fi
bellard808c4952004-12-19 23:33:47 +0000665elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +0000666 echo "TARGET_ARCH=arm" >> $config_mak
667 echo "#define TARGET_ARCH \"arm\"" >> $config_h
668 echo "#define TARGET_ARM 1" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000669elif test "$target_cpu" = "sparc" ; then
670 echo "TARGET_ARCH=sparc" >> $config_mak
671 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
672 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +0000673elif test "$target_cpu" = "sparc64" ; then
674 echo "TARGET_ARCH=sparc64" >> $config_mak
675 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
676 echo "#define TARGET_SPARC 1" >> $config_h
677 echo "#define TARGET_SPARC64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +0000678elif test "$target_cpu" = "ppc" ; then
679 echo "TARGET_ARCH=ppc" >> $config_mak
680 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
681 echo "#define TARGET_PPC 1" >> $config_h
bellarda2458622005-07-23 22:39:53 +0000682elif test "$target_cpu" = "ppc64" ; then
683 echo "TARGET_ARCH=ppc64" >> $config_mak
684 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
685 echo "#define TARGET_PPC 1" >> $config_h
686 echo "#define TARGET_PPC64 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000687elif test "$target_cpu" = "x86_64" ; then
688 echo "TARGET_ARCH=x86_64" >> $config_mak
689 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
690 echo "#define TARGET_I386 1" >> $config_h
691 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000692 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
693 echo "#define USE_KQEMU 1" >> $config_h
bellard05c2a3e2006-02-08 22:39:17 +0000694 if test $kqemu_profile = "yes" ; then
695 echo "#define CONFIG_KQEMU_PROFILE 1" >> $config_h
696 fi
bellard07f4ddb2005-04-23 17:44:28 +0000697 fi
bellardc20eb472005-12-06 21:42:55 +0000698elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +0000699 echo "TARGET_ARCH=mips" >> $config_mak
700 echo "#define TARGET_ARCH \"mips\"" >> $config_h
701 echo "#define TARGET_MIPS 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000702else
703 echo "Unsupported target CPU"
704 exit 1
705fi
706if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000707 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
708 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
709fi
710if test "$target_softmmu" = "yes" ; then
711 echo "CONFIG_SOFTMMU=yes" >> $config_mak
712 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000713fi
bellard997344f2003-10-27 21:10:39 +0000714if test "$target_user_only" = "yes" ; then
715 echo "CONFIG_USER_ONLY=yes" >> $config_mak
716 echo "#define CONFIG_USER_ONLY 1" >> $config_h
717fi
bellardde83cd02003-06-15 20:25:43 +0000718
bellard158142c2005-03-13 16:54:06 +0000719if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
720 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
721 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
722fi
bellard7c1f25b2004-04-22 00:02:08 +0000723# sdl defines
724
725if test "$target_user_only" = "no"; then
726 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
bellarddbb2c922004-10-24 22:17:47 +0000727 sdl1=$sdl_static
bellard7c1f25b2004-04-22 00:02:08 +0000728 else
bellarddbb2c922004-10-24 22:17:47 +0000729 sdl1=$sdl
730 fi
731 if test "$sdl1" = "yes" ; then
732 echo "#define CONFIG_SDL 1" >> $config_h
733 echo "CONFIG_SDL=yes" >> $config_mak
734 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
735 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
736 else
bellard7c1f25b2004-04-22 00:02:08 +0000737 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
738 fi
bellarddbb2c922004-10-24 22:17:47 +0000739 echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
740 if [ "${aa}" = "yes" ] ; then
741 echo -n " `aalib-config --cflags`" >> $config_mak ;
742 fi
743 echo "" >> $config_mak
bellard7c1f25b2004-04-22 00:02:08 +0000744 fi
bellard7c1f25b2004-04-22 00:02:08 +0000745fi
746
bellard5b0753e2005-03-01 21:37:28 +0000747if test "$cocoa" = "yes" ; then
748 echo "#define CONFIG_COCOA 1" >> $config_h
749 echo "CONFIG_COCOA=yes" >> $config_mak
750fi
751
bellard97a847b2003-08-10 21:36:04 +0000752done # for target in $targets
bellard7d132992003-03-06 23:23:54 +0000753
754# build tree in object directory if source path is different from current one
755if test "$source_path_used" = "yes" ; then
756 DIRS="tests"
757 FILES="Makefile tests/Makefile"
758 for dir in $DIRS ; do
759 mkdir -p $dir
760 done
761 for f in $FILES ; do
762 ln -sf $source_path/$f $f
763 done
764fi
bellard7d132992003-03-06 23:23:54 +0000765
bellard97a847b2003-08-10 21:36:04 +0000766rm -f $TMPO $TMPC $TMPE $TMPS