blob: ff504b2b3a02975285a7bb1047bba39ee5e4875c [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"
pbrook0a8e90f2006-03-19 14:54:16 +000093softmmu="yes"
94user="no"
bellard7d132992003-03-06 23:23:54 +000095
96# OS specific
97targetos=`uname -s`
98case $targetos in
bellardc326e0a2005-04-23 18:30:28 +000099CYGWIN*)
100mingw32="yes"
101CFLAGS="-O2 -mno-cygwin"
102;;
bellard67b915a2004-03-31 23:37:16 +0000103MINGW32*)
104mingw32="yes"
105;;
bellard7d3505c2004-05-12 19:32:15 +0000106FreeBSD)
107bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000108oss="yes"
bellarde99f9062005-07-28 21:45:38 +0000109if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard07f4ddb2005-04-23 17:44:28 +0000110 kqemu="yes"
111fi
bellard7d3505c2004-05-12 19:32:15 +0000112;;
113NetBSD)
114bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000115oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000116;;
117OpenBSD)
118bsd="yes"
bellardfb065182004-11-09 23:09:44 +0000119oss="yes"
bellard7d3505c2004-05-12 19:32:15 +0000120;;
bellard83fb7ad2004-07-05 21:25:26 +0000121Darwin)
122bsd="yes"
123darwin="yes"
124;;
bellard1d14ffa2005-10-30 18:58:22 +0000125*)
bellardfb065182004-11-09 23:09:44 +0000126oss="yes"
bellard5327cf42005-01-10 23:18:50 +0000127linux="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000128user="yes"
bellard07f4ddb2005-04-23 17:44:28 +0000129if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellardc9ec1fe2005-02-10 21:55:30 +0000130 kqemu="yes"
131fi
bellardfb065182004-11-09 23:09:44 +0000132;;
bellard7d132992003-03-06 23:23:54 +0000133esac
134
bellard7d3505c2004-05-12 19:32:15 +0000135if [ "$bsd" = "yes" ] ; then
bellard83fb7ad2004-07-05 21:25:26 +0000136 if [ ! "$darwin" = "yes" ] ; then
137 make="gmake"
138 fi
bellard7d3505c2004-05-12 19:32:15 +0000139fi
140
bellard7d132992003-03-06 23:23:54 +0000141# find source path
bellard1d14ffa2005-10-30 18:58:22 +0000142# XXX: we assume an absolute path is given when launching configure,
bellard7d132992003-03-06 23:23:54 +0000143# except in './configure' case.
144source_path=${0%configure}
145source_path=${source_path%/}
146source_path_used="yes"
147if test -z "$source_path" -o "$source_path" = "." ; then
148 source_path=`pwd`
149 source_path_used="no"
150fi
151
152for opt do
153 case "$opt" in
bellard2efc3262005-12-18 19:14:49 +0000154 --help|-h) show_help=yes
155 ;;
bellard7d132992003-03-06 23:23:54 +0000156 --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
157 ;;
bellard32ce6332003-04-11 00:16:16 +0000158 --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
159 ;;
bellard7d132992003-03-06 23:23:54 +0000160 --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
161 ;;
162 --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
163 ;;
164 --cc=*) cc=`echo $opt | cut -d '=' -f 2`
165 ;;
bellard83469012005-07-23 14:27:54 +0000166 --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2`
167 ;;
bellard7d132992003-03-06 23:23:54 +0000168 --make=*) make=`echo $opt | cut -d '=' -f 2`
169 ;;
170 --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
171 ;;
172 --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
173 ;;
bellard7d132992003-03-06 23:23:54 +0000174 --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
175 ;;
bellard97a847b2003-08-10 21:36:04 +0000176 --target-list=*) target_list=${opt#--target-list=}
bellardde83cd02003-06-15 20:25:43 +0000177 ;;
bellard7d132992003-03-06 23:23:54 +0000178 --enable-gprof) gprof="yes"
179 ;;
bellard43ce4df2003-06-09 19:53:12 +0000180 --static) static="yes"
181 ;;
bellard97a847b2003-08-10 21:36:04 +0000182 --disable-sdl) sdl="no"
183 ;;
bellard1d14ffa2005-10-30 18:58:22 +0000184 --enable-coreaudio) coreaudio="yes"
185 ;;
186 --enable-alsa) alsa="yes"
187 ;;
188 --enable-dsound) dsound="yes"
189 ;;
bellard102a52e2004-11-14 19:57:29 +0000190 --enable-fmod) fmod="yes"
191 ;;
192 --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
193 ;;
194 --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
195 ;;
bellard67b915a2004-03-31 23:37:16 +0000196 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
bellard1d14ffa2005-10-30 18:58:22 +0000197 ;;
bellard443f1372004-06-04 11:13:20 +0000198 --disable-slirp) slirp="no"
bellard1d14ffa2005-10-30 18:58:22 +0000199 ;;
bellardfb065182004-11-09 23:09:44 +0000200 --enable-adlib) adlib="yes"
bellard1d14ffa2005-10-30 18:58:22 +0000201 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000202 --disable-kqemu) kqemu="no"
bellard1d14ffa2005-10-30 18:58:22 +0000203 ;;
bellard05c2a3e2006-02-08 22:39:17 +0000204 --enable-profiler) profiler="yes"
205 ;;
bellardc9ec1fe2005-02-10 21:55:30 +0000206 --kernel-path=*) kernel_path=${opt#--kernel-path=}
bellard1d14ffa2005-10-30 18:58:22 +0000207 ;;
208 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
209 ;;
bellard97ccc682005-07-02 13:32:17 +0000210 --disable-gfx-check) check_gfx="no"
211 ;;
bellard1aff3812005-11-02 22:30:45 +0000212 --disable-gcc-check) check_gcc="no"
213 ;;
pbrookcad25d62006-03-19 16:31:11 +0000214 --disable-system) softmmu="no"
pbrook0a8e90f2006-03-19 14:54:16 +0000215 ;;
pbrookcad25d62006-03-19 16:31:11 +0000216 --enable-system) softmmu="yes"
pbrook0a8e90f2006-03-19 14:54:16 +0000217 ;;
218 --disable-user) user="no"
219 ;;
220 --enable-user) user="yes"
221 ;;
bellard7d132992003-03-06 23:23:54 +0000222 esac
223done
224
225# Checking for CFLAGS
226if test -z "$CFLAGS"; then
227 CFLAGS="-O2"
228fi
229
pbrookaf5db582006-04-08 14:26:41 +0000230if test x"$show_help" = x"yes" ; then
231cat << EOF
232
233Usage: configure [options]
234Options: [defaults in brackets after descriptions]
235
236EOF
237echo "Standard options:"
238echo " --help print this message"
239echo " --prefix=PREFIX install in PREFIX [$prefix]"
240echo " --interp-prefix=PREFIX where to find shared libraries, etc."
241echo " use %M for cpu name [$interp_prefix]"
242echo " --target-list=LIST set target list [$target_list]"
243echo ""
244echo "kqemu kernel acceleration support:"
245echo " --disable-kqemu disable kqemu support"
246echo " --kernel-path=PATH set the kernel path (configure probes it)"
247echo ""
248echo "Advanced options (experts only):"
249echo " --source-path=PATH path of source code [$source_path]"
250echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
251echo " --cc=CC use C compiler CC [$cc]"
252echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
253echo " --make=MAKE use specified make [$make]"
254echo " --static enable static build [$static]"
255echo " --enable-cocoa enable COCOA (Mac OS X only)"
256echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
257echo " --enable-adlib enable Adlib emulation"
258echo " --enable-coreaudio enable Coreaudio audio driver"
259echo " --enable-alsa enable ALSA audio driver"
260echo " --enable-fmod enable FMOD audio driver"
261echo " --enabled-dsound enable DirectSound audio driver"
262echo " --enable-system enable all system emulation targets"
263echo " --disable-system disable all system emulation targets"
264echo " --enable-user enable all linux usermode emulation targets"
265echo " --disable-user disable all linux usermode emulation targets"
266echo " --fmod-lib path to FMOD library"
267echo " --fmod-inc path to FMOD includes"
268echo ""
269echo "NOTE: The object files are build at the place where configure is launched"
270exit 1
271fi
272
bellard7d132992003-03-06 23:23:54 +0000273cc="${cross_prefix}${cc}"
274ar="${cross_prefix}${ar}"
275strip="${cross_prefix}${strip}"
276
bellard67b915a2004-03-31 23:37:16 +0000277if test "$mingw32" = "yes" ; then
bellard5327cf42005-01-10 23:18:50 +0000278 linux="no"
bellard67b915a2004-03-31 23:37:16 +0000279 EXESUF=".exe"
280 gdbstub="no"
bellard9f059ec2004-11-14 18:59:52 +0000281 oss="no"
bellard07f4ddb2005-04-23 17:44:28 +0000282 if [ "$cpu" = "i386" ] ; then
283 kqemu="yes"
284 fi
bellard67b915a2004-03-31 23:37:16 +0000285fi
286
bellard5327cf42005-01-10 23:18:50 +0000287if test -z "$target_list" ; then
288# these targets are portable
pbrook0a8e90f2006-03-19 14:54:16 +0000289 if [ "$softmmu" = "yes" ] ; then
290 target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
291 fi
bellard5327cf42005-01-10 23:18:50 +0000292# the following are Linux specific
pbrook0a8e90f2006-03-19 14:54:16 +0000293 if [ "$user" = "yes" ] ; then
bellardc20eb472005-12-06 21:42:55 +0000294 target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
bellard5327cf42005-01-10 23:18:50 +0000295 fi
bellard6e20a452005-06-05 15:56:02 +0000296else
297 target_list=$(echo "$target_list" | sed -e 's/,/ /g')
bellard5327cf42005-01-10 23:18:50 +0000298fi
pbrook0a8e90f2006-03-19 14:54:16 +0000299if test -z "$target_list" ; then
300 echo "No targets enabled"
301 exit 1
302fi
bellard5327cf42005-01-10 23:18:50 +0000303
bellard7d132992003-03-06 23:23:54 +0000304if test -z "$cross_prefix" ; then
305
306# ---
307# big/little endian test
308cat > $TMPC << EOF
309#include <inttypes.h>
310int main(int argc, char ** argv){
bellard1d14ffa2005-10-30 18:58:22 +0000311 volatile uint32_t i=0x01234567;
312 return (*((uint8_t*)(&i))) == 0x67;
bellard7d132992003-03-06 23:23:54 +0000313}
314EOF
315
316if $cc -o $TMPE $TMPC 2>/dev/null ; then
317$TMPE && bigendian="yes"
318else
319echo big/little test failed
320fi
321
322else
323
324# if cross compiling, cannot launch a program, so make a static guess
bellard808c4952004-12-19 23:33:47 +0000325if 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 +0000326 bigendian="yes"
327fi
328
329fi
330
bellardb6853692005-06-05 17:10:39 +0000331# host long bits test
332hostlongbits="32"
333if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
334 hostlongbits="64"
335fi
336
bellarde8cd23d2003-06-25 16:08:13 +0000337# check gcc options support
bellard04369ff2003-03-20 22:33:23 +0000338cat > $TMPC <<EOF
339int main(void) {
bellard04369ff2003-03-20 22:33:23 +0000340}
341EOF
342
bellarde8cd23d2003-06-25 16:08:13 +0000343have_gcc3_options="no"
344if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
345 have_gcc3_options="yes"
bellard04369ff2003-03-20 22:33:23 +0000346fi
bellardca735202003-03-18 20:41:34 +0000347
bellard1aff3812005-11-02 22:30:45 +0000348# Check for gcc4
349if test "$check_gcc" = "yes" ; then
350 cat > $TMPC <<EOF
351#if __GNUC__ >= 4
352#error gcc4
353#endif
354int main(){return 0;}
355EOF
356 if ! $cc -o $TMPO $TMPC 2>/dev/null ; then
357 echo "ERROR: \"$cc\" looks like gcc 4.x"
358 echo "QEMU is known to have problems when compiled with gcc 4.x"
359 echo "It is recommended that you use gcc 3.x to build QEMU"
360 echo "To use this compiler anyway, configure with --disable-gcc-check"
361 exit 1;
362 fi
363fi
364
bellard11d9f692004-04-02 20:55:59 +0000365##########################################
366# SDL probe
367
368sdl_too_old=no
369
370if test -z "$sdl" ; then
371
bellarda6e022a2004-04-02 21:55:47 +0000372sdl_config="sdl-config"
373sdl=no
bellard7c1f25b2004-04-22 00:02:08 +0000374sdl_static=no
bellarda6e022a2004-04-02 21:55:47 +0000375
376if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
377# win32 cross compilation case
378 sdl_config="i386-mingw32msvc-sdl-config"
379 sdl=yes
380else
381# normal SDL probe
bellard11d9f692004-04-02 20:55:59 +0000382cat > $TMPC << EOF
383#include <SDL.h>
384#undef main /* We don't want SDL to override our main() */
385int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
386EOF
387
bellarda6e022a2004-04-02 21:55:47 +0000388if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
389_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
bellard11d9f692004-04-02 20:55:59 +0000390if test "$_sdlversion" -lt 121 ; then
391sdl_too_old=yes
392else
393sdl=yes
394fi
bellard7c1f25b2004-04-22 00:02:08 +0000395
396# static link with sdl ?
397if test "$sdl" = "yes" ; then
398aa="no"
399`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
400sdl_static_libs=`$sdl_config --static-libs`
401if [ "$aa" = "yes" ] ; then
bellardd8d8aa42004-04-29 20:14:07 +0000402 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
bellard11d9f692004-04-02 20:55:59 +0000403fi
404
bellard7c1f25b2004-04-22 00:02:08 +0000405if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
406 sdl_static=yes
407fi
408
409fi # static link
410
411fi # sdl compile test
412
bellarda6e022a2004-04-02 21:55:47 +0000413fi # cross compilation
414fi # -z $sdl
bellard11d9f692004-04-02 20:55:59 +0000415
bellard11d9f692004-04-02 20:55:59 +0000416if test "$mingw32" = "yes" ; then
417if test -z "$prefix" ; then
418 prefix="/c/Program Files/Qemu"
419fi
420mandir="$prefix"
bellard7efa4382004-05-12 18:54:06 +0000421datadir="$prefix"
bellard1f50f8d2004-05-08 14:44:43 +0000422docdir="$prefix"
bellard11d9f692004-04-02 20:55:59 +0000423bindir="$prefix"
424else
425if test -z "$prefix" ; then
426 prefix="/usr/local"
427fi
bellard5a671352003-10-01 00:13:48 +0000428mandir="$prefix/share/man"
bellard7efa4382004-05-12 18:54:06 +0000429datadir="$prefix/share/qemu"
bellard1f50f8d2004-05-08 14:44:43 +0000430docdir="$prefix/share/doc/qemu"
bellard11d9f692004-04-02 20:55:59 +0000431bindir="$prefix/bin"
432fi
bellard5a671352003-10-01 00:13:48 +0000433
bellard43ce4df2003-06-09 19:53:12 +0000434echo "Install prefix $prefix"
bellard7efa4382004-05-12 18:54:06 +0000435echo "BIOS directory $datadir"
bellard11d9f692004-04-02 20:55:59 +0000436echo "binary directory $bindir"
437if test "$mingw32" = "no" ; then
438echo "Manual directory $mandir"
bellard43ce4df2003-06-09 19:53:12 +0000439echo "ELF interp prefix $interp_prefix"
bellard11d9f692004-04-02 20:55:59 +0000440fi
bellard5a671352003-10-01 00:13:48 +0000441echo "Source path $source_path"
bellard43ce4df2003-06-09 19:53:12 +0000442echo "C compiler $cc"
bellard83469012005-07-23 14:27:54 +0000443echo "Host C compiler $host_cc"
bellard43ce4df2003-06-09 19:53:12 +0000444echo "make $make"
445echo "host CPU $cpu"
bellardde83cd02003-06-15 20:25:43 +0000446echo "host big endian $bigendian"
bellard97a847b2003-08-10 21:36:04 +0000447echo "target list $target_list"
bellard43ce4df2003-06-09 19:53:12 +0000448echo "gprof enabled $gprof"
bellard05c2a3e2006-02-08 22:39:17 +0000449echo "profiler $profiler"
bellard43ce4df2003-06-09 19:53:12 +0000450echo "static build $static"
bellard5b0753e2005-03-01 21:37:28 +0000451if test "$darwin" = "yes" ; then
452 echo "Cocoa support $cocoa"
453fi
bellard97a847b2003-08-10 21:36:04 +0000454echo "SDL support $sdl"
bellarde4afee92005-04-26 20:46:24 +0000455if test "$sdl" != "no" ; then
456 echo "SDL static link $sdl_static"
457fi
bellard67b915a2004-03-31 23:37:16 +0000458echo "mingw32 support $mingw32"
bellardfb065182004-11-09 23:09:44 +0000459echo "Adlib support $adlib"
bellard1d14ffa2005-10-30 18:58:22 +0000460echo "CoreAudio support $coreaudio"
461echo "ALSA support $alsa"
462echo "DSound support $dsound"
bellard102a52e2004-11-14 19:57:29 +0000463echo -n "FMOD support $fmod"
bellard1d14ffa2005-10-30 18:58:22 +0000464if test "$fmod" = "yes"; then
465 if test -z $fmod_lib || test -z $fmod_inc; then
466 echo
467 echo "Error: You must specify path to FMOD library and headers"
468 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
469 echo
470 exit 1
471 fi
bellard102a52e2004-11-14 19:57:29 +0000472 echo -n " (lib='$fmod_lib' include='$fmod_inc')"
473fi
474echo ""
bellard07f4ddb2005-04-23 17:44:28 +0000475echo "kqemu support $kqemu"
bellard67b915a2004-03-31 23:37:16 +0000476
bellard97a847b2003-08-10 21:36:04 +0000477if test $sdl_too_old = "yes"; then
bellard24b55b92005-03-01 22:30:41 +0000478echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellarde8cd23d2003-06-25 16:08:13 +0000479fi
bellard24b55b92005-03-01 22:30:41 +0000480#if test "$sdl_static" = "no"; then
481# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
482#fi
bellard97a847b2003-08-10 21:36:04 +0000483
484config_mak="config-host.mak"
485config_h="config-host.h"
486
bellard7c1f25b2004-04-22 00:02:08 +0000487#echo "Creating $config_mak and $config_h"
bellard97a847b2003-08-10 21:36:04 +0000488
489echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook29517132006-02-09 17:58:47 +0000490echo "# Configured with: $0 $@" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000491echo "/* Automatically generated by configure - do not modify */" > $config_h
492
493echo "prefix=$prefix" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000494echo "bindir=$bindir" >> $config_mak
bellard5a671352003-10-01 00:13:48 +0000495echo "mandir=$mandir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000496echo "datadir=$datadir" >> $config_mak
bellard1f50f8d2004-05-08 14:44:43 +0000497echo "docdir=$docdir" >> $config_mak
bellard7efa4382004-05-12 18:54:06 +0000498echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000499echo "MAKE=$make" >> $config_mak
500echo "CC=$cc" >> $config_mak
501if test "$have_gcc3_options" = "yes" ; then
502 echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
503fi
504echo "HOST_CC=$host_cc" >> $config_mak
505echo "AR=$ar" >> $config_mak
506echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
507echo "CFLAGS=$CFLAGS" >> $config_mak
508echo "LDFLAGS=$LDFLAGS" >> $config_mak
bellard67b915a2004-03-31 23:37:16 +0000509echo "EXESUF=$EXESUF" >> $config_mak
bellard97a847b2003-08-10 21:36:04 +0000510if test "$cpu" = "i386" ; then
511 echo "ARCH=i386" >> $config_mak
512 echo "#define HOST_I386 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000513elif test "$cpu" = "x86_64" ; then
514 echo "ARCH=x86_64" >> $config_mak
515 echo "#define HOST_X86_64 1" >> $config_h
bellard808c4952004-12-19 23:33:47 +0000516elif test "$cpu" = "armv4b" ; then
517 echo "ARCH=arm" >> $config_mak
518 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000519elif test "$cpu" = "armv4l" ; then
bellard97a847b2003-08-10 21:36:04 +0000520 echo "ARCH=arm" >> $config_mak
521 echo "#define HOST_ARM 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000522elif test "$cpu" = "powerpc" ; then
bellard97a847b2003-08-10 21:36:04 +0000523 echo "ARCH=ppc" >> $config_mak
524 echo "#define HOST_PPC 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000525elif test "$cpu" = "mips" ; then
bellard97a847b2003-08-10 21:36:04 +0000526 echo "ARCH=mips" >> $config_mak
527 echo "#define HOST_MIPS 1" >> $config_h
bellardfb3e5842003-03-29 17:32:36 +0000528elif test "$cpu" = "s390" ; then
bellard97a847b2003-08-10 21:36:04 +0000529 echo "ARCH=s390" >> $config_mak
530 echo "#define HOST_S390 1" >> $config_h
bellard295defa2003-04-07 21:31:29 +0000531elif test "$cpu" = "alpha" ; then
bellard97a847b2003-08-10 21:36:04 +0000532 echo "ARCH=alpha" >> $config_mak
533 echo "#define HOST_ALPHA 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000534elif test "$cpu" = "sparc" ; then
bellard97a847b2003-08-10 21:36:04 +0000535 echo "ARCH=sparc" >> $config_mak
536 echo "#define HOST_SPARC 1" >> $config_h
bellardae228532003-05-13 18:59:59 +0000537elif test "$cpu" = "sparc64" ; then
bellard97a847b2003-08-10 21:36:04 +0000538 echo "ARCH=sparc64" >> $config_mak
539 echo "#define HOST_SPARC64 1" >> $config_h
bellarda8baa8c2003-04-29 20:53:31 +0000540elif test "$cpu" = "ia64" ; then
bellard97a847b2003-08-10 21:36:04 +0000541 echo "ARCH=ia64" >> $config_mak
542 echo "#define HOST_IA64 1" >> $config_h
bellard38e584a2003-08-10 22:14:22 +0000543elif test "$cpu" = "m68k" ; then
bellard38ca2ab2004-03-13 18:32:13 +0000544 echo "ARCH=m68k" >> $config_mak
545 echo "#define HOST_M68K 1" >> $config_h
bellard7d132992003-03-06 23:23:54 +0000546else
547 echo "Unsupported CPU"
548 exit 1
549fi
550if test "$bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000551 echo "WORDS_BIGENDIAN=yes" >> $config_mak
552 echo "#define WORDS_BIGENDIAN 1" >> $config_h
553fi
bellardb6853692005-06-05 17:10:39 +0000554echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
bellard67b915a2004-03-31 23:37:16 +0000555if test "$mingw32" = "yes" ; then
556 echo "CONFIG_WIN32=yes" >> $config_mak
bellard11d9f692004-04-02 20:55:59 +0000557 echo "#define CONFIG_WIN32 1" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000558elif test -f "/usr/include/byteswap.h" ; then
bellard67b915a2004-03-31 23:37:16 +0000559 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
560fi
bellard83fb7ad2004-07-05 21:25:26 +0000561if test "$darwin" = "yes" ; then
562 echo "CONFIG_DARWIN=yes" >> $config_mak
563 echo "#define CONFIG_DARWIN 1" >> $config_h
564fi
bellard67b915a2004-03-31 23:37:16 +0000565if test "$gdbstub" = "yes" ; then
566 echo "CONFIG_GDBSTUB=yes" >> $config_mak
567 echo "#define CONFIG_GDBSTUB 1" >> $config_h
568fi
bellard97a847b2003-08-10 21:36:04 +0000569if test "$gprof" = "yes" ; then
570 echo "TARGET_GPROF=yes" >> $config_mak
571 echo "#define HAVE_GPROF 1" >> $config_h
572fi
573if test "$static" = "yes" ; then
574 echo "CONFIG_STATIC=yes" >> $config_mak
bellard50863472003-10-28 23:04:01 +0000575 echo "#define CONFIG_STATIC 1" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000576fi
bellard05c2a3e2006-02-08 22:39:17 +0000577if test $profiler = "yes" ; then
578 echo "#define CONFIG_PROFILER 1" >> $config_h
579fi
bellardc20709a2004-04-21 23:27:19 +0000580if test "$slirp" = "yes" ; then
581 echo "CONFIG_SLIRP=yes" >> $config_mak
582 echo "#define CONFIG_SLIRP 1" >> $config_h
583fi
bellardfb065182004-11-09 23:09:44 +0000584if test "$adlib" = "yes" ; then
585 echo "CONFIG_ADLIB=yes" >> $config_mak
586 echo "#define CONFIG_ADLIB 1" >> $config_h
587fi
588if test "$oss" = "yes" ; then
589 echo "CONFIG_OSS=yes" >> $config_mak
590 echo "#define CONFIG_OSS 1" >> $config_h
591fi
bellard1d14ffa2005-10-30 18:58:22 +0000592if test "$coreaudio" = "yes" ; then
593 echo "CONFIG_COREAUDIO=yes" >> $config_mak
594 echo "#define CONFIG_COREAUDIO 1" >> $config_h
595fi
596if test "$alsa" = "yes" ; then
597 echo "CONFIG_ALSA=yes" >> $config_mak
598 echo "#define CONFIG_ALSA 1" >> $config_h
599fi
600if test "$dsound" = "yes" ; then
601 echo "CONFIG_DSOUND=yes" >> $config_mak
602 echo "#define CONFIG_DSOUND 1" >> $config_h
603fi
bellard102a52e2004-11-14 19:57:29 +0000604if test "$fmod" = "yes" ; then
605 echo "CONFIG_FMOD=yes" >> $config_mak
606 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
607 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
608 echo "#define CONFIG_FMOD 1" >> $config_h
609fi
bellard97a847b2003-08-10 21:36:04 +0000610echo -n "VERSION=" >>$config_mak
611head $source_path/VERSION >>$config_mak
612echo "" >>$config_mak
613echo -n "#define QEMU_VERSION \"" >> $config_h
614head $source_path/VERSION >> $config_h
615echo "\"" >> $config_h
616
617echo "SRC_PATH=$source_path" >> $config_mak
618echo "TARGET_DIRS=$target_list" >> $config_mak
619
bellard83fb7ad2004-07-05 21:25:26 +0000620# XXX: suppress that
bellard7d3505c2004-05-12 19:32:15 +0000621if [ "$bsd" = "yes" ] ; then
bellard43003042004-05-20 13:23:39 +0000622 echo "#define O_LARGEFILE 0" >> $config_h
bellard43003042004-05-20 13:23:39 +0000623 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard7d3505c2004-05-12 19:32:15 +0000624 echo "#define _BSD 1" >> $config_h
625fi
626
bellard1d14ffa2005-10-30 18:58:22 +0000627for target in $target_list; do
bellard97a847b2003-08-10 21:36:04 +0000628
629target_dir="$target"
630config_mak=$target_dir/config.mak
631config_h=$target_dir/config.h
632target_cpu=`echo $target | cut -d '-' -f 1`
633target_bigendian="no"
bellard808c4952004-12-19 23:33:47 +0000634[ "$target_cpu" = "armeb" ] && target_bigendian=yes
bellard1e43adf2003-09-30 20:54:24 +0000635[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard64b3ab22005-01-30 22:43:42 +0000636[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
bellard67867302003-11-23 17:05:30 +0000637[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellarda2458622005-07-23 22:39:53 +0000638[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellardd3258562005-07-02 15:37:12 +0000639[ "$target_cpu" = "mips" ] && target_bigendian=yes
bellard97a847b2003-08-10 21:36:04 +0000640target_softmmu="no"
641if expr $target : '.*-softmmu' > /dev/null ; then
642 target_softmmu="yes"
bellard7d132992003-03-06 23:23:54 +0000643fi
bellard997344f2003-10-27 21:10:39 +0000644target_user_only="no"
645if expr $target : '.*-user' > /dev/null ; then
646 target_user_only="yes"
647fi
bellardde83cd02003-06-15 20:25:43 +0000648
bellard97ccc682005-07-02 13:32:17 +0000649if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
bellard1d14ffa2005-10-30 18:58:22 +0000650 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
bellard97ccc682005-07-02 13:32:17 +0000651 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
652 echo "To build QEMU with graphical output configure with --disable-gfx-check"
653 echo "Note that this will disable all output from the virtual graphics card."
654 exit 1;
655fi
656
bellard7c1f25b2004-04-22 00:02:08 +0000657#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
bellard97a847b2003-08-10 21:36:04 +0000658
659mkdir -p $target_dir
bellard158142c2005-03-13 16:54:06 +0000660mkdir -p $target_dir/fpu
bellard808c4952004-12-19 23:33:47 +0000661if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard69de9272004-02-16 21:40:43 +0000662 mkdir -p $target_dir/nwfpe
663fi
bellarda7e61ed2004-04-22 21:46:47 +0000664if test "$target_user_only" = "no" ; then
665 mkdir -p $target_dir/slirp
666fi
bellard69de9272004-02-16 21:40:43 +0000667
bellard97a847b2003-08-10 21:36:04 +0000668ln -sf $source_path/Makefile.target $target_dir/Makefile
669
670echo "# Automatically generated by configure - do not modify" > $config_mak
671echo "/* Automatically generated by configure - do not modify */" > $config_h
672
673
674echo "include ../config-host.mak" >> $config_mak
675echo "#include \"../config-host.h\"" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000676
677interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
678echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
bellard97a847b2003-08-10 21:36:04 +0000679
680if test "$target_cpu" = "i386" ; then
681 echo "TARGET_ARCH=i386" >> $config_mak
682 echo "#define TARGET_ARCH \"i386\"" >> $config_h
683 echo "#define TARGET_I386 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000684 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard824d5602005-02-12 18:58:00 +0000685 echo "#define USE_KQEMU 1" >> $config_h
686 fi
bellard808c4952004-12-19 23:33:47 +0000687elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
bellard97a847b2003-08-10 21:36:04 +0000688 echo "TARGET_ARCH=arm" >> $config_mak
689 echo "#define TARGET_ARCH \"arm\"" >> $config_h
690 echo "#define TARGET_ARM 1" >> $config_h
bellard1e43adf2003-09-30 20:54:24 +0000691elif test "$target_cpu" = "sparc" ; then
692 echo "TARGET_ARCH=sparc" >> $config_mak
693 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
694 echo "#define TARGET_SPARC 1" >> $config_h
bellard64b3ab22005-01-30 22:43:42 +0000695elif test "$target_cpu" = "sparc64" ; then
696 echo "TARGET_ARCH=sparc64" >> $config_mak
697 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
698 echo "#define TARGET_SPARC 1" >> $config_h
699 echo "#define TARGET_SPARC64 1" >> $config_h
bellard67867302003-11-23 17:05:30 +0000700elif test "$target_cpu" = "ppc" ; then
701 echo "TARGET_ARCH=ppc" >> $config_mak
702 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
703 echo "#define TARGET_PPC 1" >> $config_h
bellarda2458622005-07-23 22:39:53 +0000704elif test "$target_cpu" = "ppc64" ; then
705 echo "TARGET_ARCH=ppc64" >> $config_mak
706 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
707 echo "#define TARGET_PPC 1" >> $config_h
708 echo "#define TARGET_PPC64 1" >> $config_h
bellard0b0babc2005-01-03 23:38:40 +0000709elif test "$target_cpu" = "x86_64" ; then
710 echo "TARGET_ARCH=x86_64" >> $config_mak
711 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
712 echo "#define TARGET_I386 1" >> $config_h
713 echo "#define TARGET_X86_64 1" >> $config_h
bellard07f4ddb2005-04-23 17:44:28 +0000714 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
715 echo "#define USE_KQEMU 1" >> $config_h
716 fi
bellardc20eb472005-12-06 21:42:55 +0000717elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellardd3258562005-07-02 15:37:12 +0000718 echo "TARGET_ARCH=mips" >> $config_mak
719 echo "#define TARGET_ARCH \"mips\"" >> $config_h
720 echo "#define TARGET_MIPS 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000721else
722 echo "Unsupported target CPU"
723 exit 1
724fi
725if test "$target_bigendian" = "yes" ; then
bellard97a847b2003-08-10 21:36:04 +0000726 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
727 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
728fi
729if test "$target_softmmu" = "yes" ; then
730 echo "CONFIG_SOFTMMU=yes" >> $config_mak
731 echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellardde83cd02003-06-15 20:25:43 +0000732fi
bellard997344f2003-10-27 21:10:39 +0000733if test "$target_user_only" = "yes" ; then
734 echo "CONFIG_USER_ONLY=yes" >> $config_mak
735 echo "#define CONFIG_USER_ONLY 1" >> $config_h
736fi
bellardde83cd02003-06-15 20:25:43 +0000737
bellard158142c2005-03-13 16:54:06 +0000738if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
739 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
740 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
741fi
bellard7c1f25b2004-04-22 00:02:08 +0000742# sdl defines
743
744if test "$target_user_only" = "no"; then
745 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
bellarddbb2c922004-10-24 22:17:47 +0000746 sdl1=$sdl_static
bellard7c1f25b2004-04-22 00:02:08 +0000747 else
bellarddbb2c922004-10-24 22:17:47 +0000748 sdl1=$sdl
749 fi
750 if test "$sdl1" = "yes" ; then
751 echo "#define CONFIG_SDL 1" >> $config_h
752 echo "CONFIG_SDL=yes" >> $config_mak
753 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
754 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
755 else
bellard7c1f25b2004-04-22 00:02:08 +0000756 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
757 fi
bellarddbb2c922004-10-24 22:17:47 +0000758 echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
759 if [ "${aa}" = "yes" ] ; then
760 echo -n " `aalib-config --cflags`" >> $config_mak ;
761 fi
762 echo "" >> $config_mak
bellard7c1f25b2004-04-22 00:02:08 +0000763 fi
bellard7c1f25b2004-04-22 00:02:08 +0000764fi
765
bellard5b0753e2005-03-01 21:37:28 +0000766if test "$cocoa" = "yes" ; then
767 echo "#define CONFIG_COCOA 1" >> $config_h
768 echo "CONFIG_COCOA=yes" >> $config_mak
769fi
770
bellard97a847b2003-08-10 21:36:04 +0000771done # for target in $targets
bellard7d132992003-03-06 23:23:54 +0000772
773# build tree in object directory if source path is different from current one
774if test "$source_path_used" = "yes" ; then
775 DIRS="tests"
776 FILES="Makefile tests/Makefile"
777 for dir in $DIRS ; do
778 mkdir -p $dir
779 done
780 for f in $FILES ; do
781 ln -sf $source_path/$f $f
782 done
783fi
bellard7d132992003-03-06 23:23:54 +0000784
bellard97a847b2003-08-10 21:36:04 +0000785rm -f $TMPO $TMPC $TMPE $TMPS