blob: 9a6e547353437b6f3d58496cfcdd7b791404719c [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"
88kernel_path=""
bellard5b0753e2005-03-01 21:37:28 +000089cocoa="no"
bellard97ccc682005-07-02 13:32:17 +000090check_gfx="yes"
bellard1aff3812005-11-02 22:30:45 +000091check_gcc="yes"
bellard7d132992003-03-06 23:23:54 +000092
93# OS specific
94targetos=`uname -s`
95case $targetos in
bellardc326e0a2005-04-23 18:30:28 +000096CYGWIN*)
97mingw32="yes"
98CFLAGS="-O2 -mno-cygwin"
99;;
bellard67b915a2004-03-31 23:37:16 +0000100MINGW32*)
101mingw32="yes"
102;;
bellard7d3505c2004-05-12 19:32:15 +0000103FreeBSD)
104bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000105oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000106if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000107 kqemu="yes"
108fi
bellard7d3505c2004-05-12 19:32:15 +0000109;;
110NetBSD)
111bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000112oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000113;;
114OpenBSD)
115bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000116oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000117;;
bellard83fb7ad2004-07-05 21:25:26 +0000118Darwin)
119bsd="yes"
120darwin="yes"
121;;
bellard1d14ffa2005-10-30 18:58:22 +0000122*)
bellardfb065182004-11-09 23:09:44 +0000123oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000124linux="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000125if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000126 kqemu="yes"
127fi
bellardfb065182004-11-09 23:09:44 +0000128;;
bellard7d132992003-03-06 23:23:54 +0000129esac
130
bellard7d3505c2004-05-12 19:32:15 +0000131if [ "$bsd" = "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000132 if [ ! "$darwin" = "yes" ] ; then
133 make="gmake"
134 fi
bellard7d3505c2004-05-12 19:32:15 +0000135fi
136
bellard7d132992003-03-06 23:23:54 +0000137# find source path
bellard1d14ffa2005-10-30 18:58:22 +0000138# XXX: we assume an absolute path is given when launching configure,
bellard7d132992003-03-06 23:23:54 +0000139# except in './configure' case.
140source_path=${0%configure}
141source_path=${source_path%/}
142source_path_used="yes"
143if test -z "$source_path" -o "$source_path" = "." ; then
144 source_path=`pwd`
145 source_path_used="no"
146fi
147
148for opt do
149 case "$opt" in
150 --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
151 ;;
bellard32ce6332003-04-11 00:16:16 +0000152 --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
153 ;;
bellard7d132992003-03-06 23:23:54 +0000154 --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
155 ;;
156 --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
157 ;;
158 --cc=*) cc=`echo $opt | cut -d '=' -f 2`
159 ;;
bellard83469012005-07-23 14:27:54 +0000160 --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2`
161 ;;
bellard7d132992003-03-06 23:23:54 +0000162 --make=*) make=`echo $opt | cut -d '=' -f 2`
163 ;;
164 --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
165 ;;
166 --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
167 ;;
bellard7d132992003-03-06 23:23:54 +0000168 --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
169 ;;
bellard97a847b2003-08-10 21:36:04 +0000170 --target-list=*) target_list=${opt#--target-list=}
bellardde83cd02003-06-15 20:25:43 +0000171 ;;
bellard7d132992003-03-06 23:23:54 +0000172 --enable-gprof) gprof="yes"
173 ;;
bellard43ce4df2003-06-09 19:53:12 +0000174 --static) static="yes"
175 ;;
bellard97a847b2003-08-10 21:36:04 +0000176 --disable-sdl) sdl="no"
177 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000178 --enable-coreaudio) coreaudio="yes"
179 ;;
180 --enable-alsa) alsa="yes"
181 ;;
182 --enable-dsound) dsound="yes"
183 ;;
bellard102a52e2004-11-14 19:57:29 +0000184 --enable-fmod) fmod="yes"
185 ;;
186 --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
187 ;;
188 --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
189 ;;
bellard67b915a2004-03-31 23:37:16 +0000190 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
bellard1d14ffa2005-10-30 18:58:22 +0000191 ;;
bellard443f1372004-06-04 11:13:20 +0000192 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000193 ;;
bellardfb065182004-11-09 23:09:44 +0000194 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000195 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000196 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000197 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000198 --kernel-path=*) kernel_path=${opt#--kernel-path=}
bellard1d14ffa2005-10-30 18:58:22 +0000199 ;;
200 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
201 ;;
bellard97ccc682005-07-02 13:32:17 +0000202 --disable-gfx-check) check_gfx="no"
203 ;;
bellard1aff3812005-11-02 22:30:45 +0000204 --disable-gcc-check) check_gcc="no"
205 ;;
bellard7d132992003-03-06 23:23:54 +0000206 esac
207done
208
209# Checking for CFLAGS
210if test -z "$CFLAGS"; then
211 CFLAGS="-O2"
212fi
213
214cc="${cross_prefix}${cc}"
215ar="${cross_prefix}${ar}"
216strip="${cross_prefix}${strip}"
217
bellard67b915a2004-03-31 23:37:16 +0000218if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000219 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000220 EXESUF=".exe"
221 gdbstub="no"
bellard9f059ec2004-11-14 18:59:52 +0000222 oss="no"
bellard07f4ddb2005-04-23 17:44:28 +0000223 if [ "$cpu" = "i386" ] ; then
224 kqemu="yes"
225 fi
bellard67b915a2004-03-31 23:37:16 +0000226fi
227
bellard5327cf42005-01-10 23:18:50 +0000228if test -z "$target_list" ; then
229# these targets are portable
bellardb5ff1b32005-11-26 10:38:39 +0000230 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu arm-softmmu"
bellard5327cf42005-01-10 23:18:50 +0000231# the following are Linux specific
232 if [ "$linux" = "yes" ] ; then
bellard048f6b42005-11-26 18:47:20 +0000233 target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000234 fi
bellard6e20a452005-06-05 15:56:02 +0000235else
236 target_list=$(echo "$target_list" | sed -e 's/,/ /g')
bellard5327cf42005-01-10 23:18:50 +0000237fi
238
bellard7d132992003-03-06 23:23:54 +0000239if test -z "$cross_prefix" ; then
240
241# ---
242# big/little endian test
243cat > $TMPC << EOF
244#include <inttypes.h>
245int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000246 volatile uint32_t i=0x01234567;
247 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000248}
249EOF
250
251if $cc -o $TMPE $TMPC 2>/dev/null ; then
252$TMPE && bigendian="yes"
253else
254echo big/little test failed
255fi
256
257else
258
259# if cross compiling, cannot launch a program, so make a static guess
bellard808c4952004-12-19 23:33:47 +0000260if 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 +0000261 bigendian="yes"
262fi
263
264fi
265
bellardb6853692005-06-05 17:10:39 +0000266# host long bits test
267hostlongbits="32"
268if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
269 hostlongbits="64"
270fi
271
bellarde8cd23d2003-06-25 16:08:13 +0000272# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000273cat > $TMPC <<EOF
274int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000275}
276EOF
277
bellarde8cd23d2003-06-25 16:08:13 +0000278have_gcc3_options="no"
279if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
280 have_gcc3_options="yes"
bellard04369ff2003-03-20 22:33:23 +0000281fi
bellardca735202003-03-18 20:41:34 +0000282
bellard1aff3812005-11-02 22:30:45 +0000283# Check for gcc4
284if test "$check_gcc" = "yes" ; then
285 cat > $TMPC <<EOF
286#if __GNUC__ >= 4
287#error gcc4
288#endif
289int main(){return 0;}
290EOF
291 if ! $cc -o $TMPO $TMPC 2>/dev/null ; then
292 echo "ERROR: \"$cc\" looks like gcc 4.x"
293 echo "QEMU is known to have problems when compiled with gcc 4.x"
294 echo "It is recommended that you use gcc 3.x to build QEMU"
295 echo "To use this compiler anyway, configure with --disable-gcc-check"
296 exit 1;
297 fi
298fi
299
bellard11d9f692004-04-02 20:55:59 +0000300##########################################
301# SDL probe
302
303sdl_too_old=no
304
305if test -z "$sdl" ; then
306
bellarda6e022a2004-04-02 21:55:47 +0000307sdl_config="sdl-config"
308sdl=no
bellard7c1f25b2004-04-22 00:02:08 +0000309sdl_static=no
bellarda6e022a2004-04-02 21:55:47 +0000310
311if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
312# win32 cross compilation case
313 sdl_config="i386-mingw32msvc-sdl-config"
314 sdl=yes
315else
316# normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000317cat > $TMPC << EOF
318#include <SDL.h>
319#undef main /* We don't want SDL to override our main() */
320int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
321EOF
322
bellarda6e022a2004-04-02 21:55:47 +0000323if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
324_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
bellard11d9f692004-04-02 20:55:59 +0000325if test "$_sdlversion" -lt 121 ; then
326sdl_too_old=yes
327else
328sdl=yes
329fi
bellard7c1f25b2004-04-22 00:02:08 +0000330
331# static link with sdl ?
332if test "$sdl" = "yes" ; then
333aa="no"
334`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
335sdl_static_libs=`$sdl_config --static-libs`
336if [ "$aa" = "yes" ] ; then
bellardd8d8aa42004-04-29 20:14:07 +0000337 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
bellard11d9f692004-04-02 20:55:59 +0000338fi
339
bellard7c1f25b2004-04-22 00:02:08 +0000340if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
341 sdl_static=yes
342fi
343
344fi # static link
345
346fi # sdl compile test
347
bellarda6e022a2004-04-02 21:55:47 +0000348fi # cross compilation
349fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000350
bellard7d132992003-03-06 23:23:54 +0000351if test x"$1" = x"-h" -o x"$1" = x"--help" ; then
352cat << EOF
353
354Usage: configure [options]
355Options: [defaults in brackets after descriptions]
356
357EOF
358echo "Standard options:"
359echo " --help print this message"
360echo " --prefix=PREFIX install in PREFIX [$prefix]"
bellard1e43adf2003-09-30 20:54:24 +0000361echo " --interp-prefix=PREFIX where to find shared libraries, etc."
362echo " use %M for cpu name [$interp_prefix]"
bellard97a847b2003-08-10 21:36:04 +0000363echo " --target-list=LIST set target list [$target_list]"
bellard7d132992003-03-06 23:23:54 +0000364echo ""
bellardc9ec1fe2005-02-10 21:55:30 +0000365echo "kqemu kernel acceleration support:"
366echo " --disable-kqemu disable kqemu build"
367echo " --kernel-path=PATH set the kernel path (configure probes it)"
368echo ""
bellard7d132992003-03-06 23:23:54 +0000369echo "Advanced options (experts only):"
370echo " --source-path=PATH path of source code [$source_path]"
371echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
372echo " --cc=CC use C compiler CC [$cc]"
bellard83469012005-07-23 14:27:54 +0000373echo " --host-cc=CC use C compiler CC [$cc] for dyngen etc."
bellard7d132992003-03-06 23:23:54 +0000374echo " --make=MAKE use specified make [$make]"
bellard43ce4df2003-06-09 19:53:12 +0000375echo " --static enable static build [$static]"
bellard67b915a2004-03-31 23:37:16 +0000376echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
bellardd37282a2005-04-28 20:41:53 +0000377echo " --enable-adlib enable Adlib emulation"
bellard1d14ffa2005-10-30 18:58:22 +0000378echo " --enable-coreaudio enable Coreaudio audio driver"
379echo " --enable-alsa enable ALSA audio driver"
380echo " --enable-fmod enable FMOD audio driver"
381echo " --enabled-dsound enable DirectSound audio driver"
bellard102a52e2004-11-14 19:57:29 +0000382echo " --fmod-lib path to FMOD library"
383echo " --fmod-inc path to FMOD includes"
bellard7d132992003-03-06 23:23:54 +0000384echo ""
385echo "NOTE: The object files are build at the place where configure is launched"
386exit 1
387fi
388
bellard11d9f692004-04-02 20:55:59 +0000389if test "$mingw32" = "yes" ; then
390if test -z "$prefix" ; then
391 prefix="/c/Program Files/Qemu"
392fi
393mandir="$prefix"
bellard7efa4382004-05-12 18:54:06 +0000394datadir="$prefix"
bellard1f50f8d2004-05-08 14:44:43 +0000395docdir="$prefix"
bellard11d9f692004-04-02 20:55:59 +0000396bindir="$prefix"
397else
398if test -z "$prefix" ; then
399 prefix="/usr/local"
400fi
bellard5a671352003-10-01 00:13:48 +0000401mandir="$prefix/share/man"
bellard7efa4382004-05-12 18:54:06 +0000402datadir="$prefix/share/qemu"
bellard1f50f8d2004-05-08 14:44:43 +0000403docdir="$prefix/share/doc/qemu"
bellard11d9f692004-04-02 20:55:59 +0000404bindir="$prefix/bin"
405fi
bellard5a671352003-10-01 00:13:48 +0000406
bellard07f4ddb2005-04-23 17:44:28 +0000407# kqemu support
bellardc9ec1fe2005-02-10 21:55:30 +0000408if test $kqemu = "yes" ; then
bellard441c72b2005-02-12 14:45:23 +0000409 # test if the source code is installed
bellard1d14ffa2005-10-30 18:58:22 +0000410 if test '!' -f "kqemu/Makefile" ; then
bellard441c72b2005-02-12 14:45:23 +0000411 kqemu="no"
412 fi
413fi
bellard1d14ffa2005-10-30 18:58:22 +0000414
bellard07f4ddb2005-04-23 17:44:28 +0000415# Linux specific kqemu configuration
416if test $kqemu = "yes" -a $linux = "yes" ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000417# find the kernel path
418if test -z "$kernel_path" ; then
419kernel_version=`uname -r`
420kernel_path="/lib/modules/$kernel_version/build"
bellard1d14ffa2005-10-30 18:58:22 +0000421if test '!' -d "$kernel_path/include" ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000422 kernel_path="/usr/src/linux"
bellard1d14ffa2005-10-30 18:58:22 +0000423 if test '!' -d "$kernel_path/include" ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000424 echo "Could not find kernel includes in /lib/modules or /usr/src/linux - cannot build the kqemu module"
425 kqemu="no"
426 fi
427fi
428fi
429
430if test $kqemu = "yes" ; then
431
432# test that the kernel config is present
433if test '!' -f "$kernel_path/Makefile" ; then
bellardf94daed2005-03-01 21:28:22 +0000434 echo "No Makefile file present in $kernel_path - kqemu cannot be built"
bellardc9ec1fe2005-02-10 21:55:30 +0000435 kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000436fi
bellardc9ec1fe2005-02-10 21:55:30 +0000437
438# find build system (2.6 or legacy)
439kbuild26="yes"
440if grep -q "PATCHLEVEL = 4" $kernel_path/Makefile ; then
441kbuild26="no"
442fi
443
444fi # kqemu
445
bellard07f4ddb2005-04-23 17:44:28 +0000446fi # kqemu and linux
bellardc9ec1fe2005-02-10 21:55:30 +0000447
448
bellard43ce4df2003-06-09 19:53:12 +0000449echo "Install prefix $prefix"
bellard7efa4382004-05-12 18:54:06 +0000450echo "BIOS directory $datadir"
bellard11d9f692004-04-02 20:55:59 +0000451echo "binary directory $bindir"
452if test "$mingw32" = "no" ; then
453echo "Manual directory $mandir"
bellard43ce4df2003-06-09 19:53:12 +0000454echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000455fi
bellard5a671352003-10-01 00:13:48 +0000456echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000457echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000458echo "Host C compiler $host_cc"
bellard43ce4df2003-06-09 19:53:12 +0000459echo "make $make"
460echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000461echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000462echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000463echo "gprof enabled $gprof"
464echo "static build $static"
bellard5b0753e2005-03-01 21:37:28 +0000465if test "$darwin" = "yes" ; then
466 echo "Cocoa support $cocoa"
467fi
bellard97a847b2003-08-10 21:36:04 +0000468echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000469if test "$sdl" != "no" ; then
470 echo "SDL static link $sdl_static"
471fi
bellard67b915a2004-03-31 23:37:16 +0000472echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000473echo "Adlib support $adlib"
bellard1d14ffa2005-10-30 18:58:22 +0000474echo "CoreAudio support $coreaudio"
475echo "ALSA support $alsa"
476echo "DSound support $dsound"
bellard102a52e2004-11-14 19:57:29 +0000477echo -n "FMOD support $fmod"
bellard1d14ffa2005-10-30 18:58:22 +0000478if test "$fmod" = "yes"; then
479 if test -z $fmod_lib || test -z $fmod_inc; then
480 echo
481 echo "Error: You must specify path to FMOD library and headers"
482 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
483 echo
484 exit 1
485 fi
bellard102a52e2004-11-14 19:57:29 +0000486 echo -n " (lib='$fmod_lib' include='$fmod_inc')"
487fi
488echo ""
bellard07f4ddb2005-04-23 17:44:28 +0000489echo "kqemu support $kqemu"
490if test $kqemu = "yes" -a $linux = "yes" ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000491echo ""
bellard07f4ddb2005-04-23 17:44:28 +0000492echo "KQEMU Linux module configuration:"
bellardc9ec1fe2005-02-10 21:55:30 +0000493echo "kernel sources $kernel_path"
494echo -n "kbuild type "
495if test $kbuild26 = "yes"; then
496echo "2.6"
497else
498echo "2.4"
499fi
500fi
bellard67b915a2004-03-31 23:37:16 +0000501
bellard97a847b2003-08-10 21:36:04 +0000502if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000503echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000504fi
bellard24b55b92005-03-01 22:30:41 +0000505#if test "$sdl_static" = "no"; then
506# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
507#fi
bellard97a847b2003-08-10 21:36:04 +0000508
509config_mak="config-host.mak"
510config_h="config-host.h"
511
bellard7c1f25b2004-04-22 00:02:08 +0000512#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000513
514echo "# Automatically generated by configure - do not modify" > $config_mak
515echo "/* Automatically generated by configure - do not modify */" > $config_h
516
517echo "prefix=$prefix" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000518echo "bindir=$bindir" >> $config_mak
bellard5a671352003-10-01 00:13:48 +0000519echo "mandir=$mandir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000520echo "datadir=$datadir" >> $config_mak
bellard1f50f8d2004-05-08 14:44:43 +0000521echo "docdir=$docdir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000522echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000523echo "MAKE=$make" >> $config_mak
524echo "CC=$cc" >> $config_mak
525if test "$have_gcc3_options" = "yes" ; then
526 echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
527fi
528echo "HOST_CC=$host_cc" >> $config_mak
529echo "AR=$ar" >> $config_mak
530echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
531echo "CFLAGS=$CFLAGS" >> $config_mak
532echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000533echo "EXESUF=$EXESUF" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000534if test "$cpu" = "i386" ; then
535 echo "ARCH=i386" >> $config_mak
536 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000537elif test "$cpu" = "x86_64" ; then
538 echo "ARCH=x86_64" >> $config_mak
539 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000540elif test "$cpu" = "armv4b" ; then
541 echo "ARCH=arm" >> $config_mak
542 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000543elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000544 echo "ARCH=arm" >> $config_mak
545 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000546elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000547 echo "ARCH=ppc" >> $config_mak
548 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000549elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000550 echo "ARCH=mips" >> $config_mak
551 echo "#define HOST_MIPS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000552elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000553 echo "ARCH=s390" >> $config_mak
554 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000555elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000556 echo "ARCH=alpha" >> $config_mak
557 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000558elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000559 echo "ARCH=sparc" >> $config_mak
560 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000561elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000562 echo "ARCH=sparc64" >> $config_mak
563 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000564elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000565 echo "ARCH=ia64" >> $config_mak
566 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000567elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000568 echo "ARCH=m68k" >> $config_mak
569 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000570else
571 echo "Unsupported CPU"
572 exit 1
573fi
574if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000575 echo "WORDS_BIGENDIAN=yes" >> $config_mak
576 echo "#define WORDS_BIGENDIAN 1" >> $config_h
577fi
bellardb6853692005-06-05 17:10:39 +0000578echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000579if test "$mingw32" = "yes" ; then
580 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000581 echo "#define CONFIG_WIN32 1" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000582elif test -f "/usr/include/byteswap.h" ; then
bellard67b915a2004-03-31 23:37:16 +0000583 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
584fi
bellard83fb7ad2004-07-05 21:25:26 +0000585if test "$darwin" = "yes" ; then
586 echo "CONFIG_DARWIN=yes" >> $config_mak
587 echo "#define CONFIG_DARWIN 1" >> $config_h
588fi
bellard67b915a2004-03-31 23:37:16 +0000589if test "$gdbstub" = "yes" ; then
590 echo "CONFIG_GDBSTUB=yes" >> $config_mak
591 echo "#define CONFIG_GDBSTUB 1" >> $config_h
592fi
bellard97a847b2003-08-10 21:36:04 +0000593if test "$gprof" = "yes" ; then
594 echo "TARGET_GPROF=yes" >> $config_mak
595 echo "#define HAVE_GPROF 1" >> $config_h
596fi
597if test "$static" = "yes" ; then
598 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000599 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000600fi
bellardc20709a2004-04-21 23:27:19 +0000601if test "$slirp" = "yes" ; then
602 echo "CONFIG_SLIRP=yes" >> $config_mak
603 echo "#define CONFIG_SLIRP 1" >> $config_h
604fi
bellardfb065182004-11-09 23:09:44 +0000605if test "$adlib" = "yes" ; then
606 echo "CONFIG_ADLIB=yes" >> $config_mak
607 echo "#define CONFIG_ADLIB 1" >> $config_h
608fi
609if test "$oss" = "yes" ; then
610 echo "CONFIG_OSS=yes" >> $config_mak
611 echo "#define CONFIG_OSS 1" >> $config_h
612fi
bellard1d14ffa2005-10-30 18:58:22 +0000613if test "$coreaudio" = "yes" ; then
614 echo "CONFIG_COREAUDIO=yes" >> $config_mak
615 echo "#define CONFIG_COREAUDIO 1" >> $config_h
616fi
617if test "$alsa" = "yes" ; then
618 echo "CONFIG_ALSA=yes" >> $config_mak
619 echo "#define CONFIG_ALSA 1" >> $config_h
620fi
621if test "$dsound" = "yes" ; then
622 echo "CONFIG_DSOUND=yes" >> $config_mak
623 echo "#define CONFIG_DSOUND 1" >> $config_h
624fi
bellard102a52e2004-11-14 19:57:29 +0000625if test "$fmod" = "yes" ; then
626 echo "CONFIG_FMOD=yes" >> $config_mak
627 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
628 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
629 echo "#define CONFIG_FMOD 1" >> $config_h
630fi
bellard97a847b2003-08-10 21:36:04 +0000631echo -n "VERSION=" >>$config_mak
632head $source_path/VERSION >>$config_mak
633echo "" >>$config_mak
634echo -n "#define QEMU_VERSION \"" >> $config_h
635head $source_path/VERSION >> $config_h
636echo "\"" >> $config_h
637
bellardc9ec1fe2005-02-10 21:55:30 +0000638if test $kqemu = "yes" ; then
639 echo "CONFIG_KQEMU=yes" >> $config_mak
bellard1026f132005-04-26 20:34:45 +0000640 if test $linux = "yes" ; then
641 echo "KERNEL_PATH=$kernel_path" >> $config_mak
642 if test $kbuild26 = "yes" ; then
643 echo "CONFIG_KBUILD26=yes" >> $config_mak
644 fi
bellardc9ec1fe2005-02-10 21:55:30 +0000645 fi
646fi
bellard97a847b2003-08-10 21:36:04 +0000647echo "SRC_PATH=$source_path" >> $config_mak
648echo "TARGET_DIRS=$target_list" >> $config_mak
649
bellard83fb7ad2004-07-05 21:25:26 +0000650# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +0000651if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +0000652 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +0000653 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000654 echo "#define _BSD 1" >> $config_h
655fi
656
bellard1d14ffa2005-10-30 18:58:22 +0000657for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +0000658
659target_dir="$target"
660config_mak=$target_dir/config.mak
661config_h=$target_dir/config.h
662target_cpu=`echo $target | cut -d '-' -f 1`
663target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +0000664[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +0000665[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +0000666[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +0000667[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellarda2458622005-07-23 22:39:53 +0000668[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +0000669[ "$target_cpu" = "mips" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +0000670target_softmmu="no"
671if expr $target : '.*-softmmu' > /dev/null ; then
672 target_softmmu="yes"
bellard7d132992003-03-06 23:23:54 +0000673fi
bellard997344f2003-10-27 21:10:39 +0000674target_user_only="no"
675if expr $target : '.*-user' > /dev/null ; then
676 target_user_only="yes"
677fi
bellardde83cd02003-06-15 20:25:43 +0000678
bellard97ccc682005-07-02 13:32:17 +0000679if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +0000680 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +0000681 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
682 echo "To build QEMU with graphical output configure with --disable-gfx-check"
683 echo "Note that this will disable all output from the virtual graphics card."
684 exit 1;
685fi
686
bellard7c1f25b2004-04-22 00:02:08 +0000687#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +0000688
689mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +0000690mkdir -p $target_dir/fpu
bellard808c4952004-12-19 23:33:47 +0000691if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard69de9272004-02-16 21:40:43 +0000692 mkdir -p $target_dir/nwfpe
693fi
bellarda7e61ed2004-04-22 21:46:47 +0000694if test "$target_user_only" = "no" ; then
695 mkdir -p $target_dir/slirp
696fi
bellard69de9272004-02-16 21:40:43 +0000697
bellard97a847b2003-08-10 21:36:04 +0000698ln -sf $source_path/Makefile.target $target_dir/Makefile
699
700echo "# Automatically generated by configure - do not modify" > $config_mak
701echo "/* Automatically generated by configure - do not modify */" > $config_h
702
703
704echo "include ../config-host.mak" >> $config_mak
705echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000706
707interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
708echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000709
710if test "$target_cpu" = "i386" ; then
711 echo "TARGET_ARCH=i386" >> $config_mak
712 echo "#define TARGET_ARCH \"i386\"" >> $config_h
713 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000714 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +0000715 echo "#define USE_KQEMU 1" >> $config_h
716 fi
bellard808c4952004-12-19 23:33:47 +0000717elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +0000718 echo "TARGET_ARCH=arm" >> $config_mak
719 echo "#define TARGET_ARCH \"arm\"" >> $config_h
720 echo "#define TARGET_ARM 1" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000721elif test "$target_cpu" = "sparc" ; then
722 echo "TARGET_ARCH=sparc" >> $config_mak
723 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
724 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +0000725elif test "$target_cpu" = "sparc64" ; then
726 echo "TARGET_ARCH=sparc64" >> $config_mak
727 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
728 echo "#define TARGET_SPARC 1" >> $config_h
729 echo "#define TARGET_SPARC64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +0000730elif test "$target_cpu" = "ppc" ; then
731 echo "TARGET_ARCH=ppc" >> $config_mak
732 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
733 echo "#define TARGET_PPC 1" >> $config_h
bellarda2458622005-07-23 22:39:53 +0000734elif test "$target_cpu" = "ppc64" ; then
735 echo "TARGET_ARCH=ppc64" >> $config_mak
736 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
737 echo "#define TARGET_PPC 1" >> $config_h
738 echo "#define TARGET_PPC64 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000739elif test "$target_cpu" = "x86_64" ; then
740 echo "TARGET_ARCH=x86_64" >> $config_mak
741 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
742 echo "#define TARGET_I386 1" >> $config_h
743 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000744 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
745 echo "#define USE_KQEMU 1" >> $config_h
746 fi
bellardd3258562005-07-02 15:37:12 +0000747elif test "$target_cpu" = "mips" ; then
748 echo "TARGET_ARCH=mips" >> $config_mak
749 echo "#define TARGET_ARCH \"mips\"" >> $config_h
750 echo "#define TARGET_MIPS 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000751else
752 echo "Unsupported target CPU"
753 exit 1
754fi
755if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000756 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
757 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
758fi
759if test "$target_softmmu" = "yes" ; then
760 echo "CONFIG_SOFTMMU=yes" >> $config_mak
761 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000762fi
bellard997344f2003-10-27 21:10:39 +0000763if test "$target_user_only" = "yes" ; then
764 echo "CONFIG_USER_ONLY=yes" >> $config_mak
765 echo "#define CONFIG_USER_ONLY 1" >> $config_h
766fi
bellardde83cd02003-06-15 20:25:43 +0000767
bellard158142c2005-03-13 16:54:06 +0000768if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
769 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
770 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
771fi
bellard7c1f25b2004-04-22 00:02:08 +0000772# sdl defines
773
774if test "$target_user_only" = "no"; then
775 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
bellarddbb2c922004-10-24 22:17:47 +0000776 sdl1=$sdl_static
bellard7c1f25b2004-04-22 00:02:08 +0000777 else
bellarddbb2c922004-10-24 22:17:47 +0000778 sdl1=$sdl
779 fi
780 if test "$sdl1" = "yes" ; then
781 echo "#define CONFIG_SDL 1" >> $config_h
782 echo "CONFIG_SDL=yes" >> $config_mak
783 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
784 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
785 else
bellard7c1f25b2004-04-22 00:02:08 +0000786 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
787 fi
bellarddbb2c922004-10-24 22:17:47 +0000788 echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
789 if [ "${aa}" = "yes" ] ; then
790 echo -n " `aalib-config --cflags`" >> $config_mak ;
791 fi
792 echo "" >> $config_mak
bellard7c1f25b2004-04-22 00:02:08 +0000793 fi
bellard7c1f25b2004-04-22 00:02:08 +0000794fi
795
bellard5b0753e2005-03-01 21:37:28 +0000796if test "$cocoa" = "yes" ; then
797 echo "#define CONFIG_COCOA 1" >> $config_h
798 echo "CONFIG_COCOA=yes" >> $config_mak
799fi
800
bellard97a847b2003-08-10 21:36:04 +0000801done # for target in $targets
bellard7d132992003-03-06 23:23:54 +0000802
803# build tree in object directory if source path is different from current one
804if test "$source_path_used" = "yes" ; then
805 DIRS="tests"
806 FILES="Makefile tests/Makefile"
807 for dir in $DIRS ; do
808 mkdir -p $dir
809 done
810 for f in $FILES ; do
811 ln -sf $source_path/$f $f
812 done
813fi
bellard7d132992003-03-06 23:23:54 +0000814
bellard97a847b2003-08-10 21:36:04 +0000815rm -f $TMPO $TMPC $TMPE $TMPS