Statistics
| Branch: | Revision:

root / configure @ c631c88c

History | View | Annotate | Download (30.6 kB)

1
#!/bin/sh
2
#
3
# qemu configure script (c) 2003 Fabrice Bellard
4
#
5
# set temporary file name
6
if test ! -z "$TMPDIR" ; then
7
    TMPDIR1="${TMPDIR}"
8
elif test ! -z "$TEMPDIR" ; then
9
    TMPDIR1="${TEMPDIR}"
10
else
11
    TMPDIR1="/tmp"
12
fi
13

    
14
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
18

    
19
# default parameters
20
prefix=""
21
interp_prefix="/usr/gnemul/qemu-%M"
22
static="no"
23
cross_prefix=""
24
cc="gcc"
25
gcc3_search="yes"
26
gcc3_list="gcc-3.4 gcc34 gcc-3.3 gcc33 gcc-3.2 gcc32"
27
host_cc="gcc"
28
ar="ar"
29
make="make"
30
install="install"
31
strip="strip"
32
cpu=`uname -m`
33
target_list=""
34
case "$cpu" in
35
  i386|i486|i586|i686|i86pc|BePC)
36
    cpu="i386"
37
  ;;
38
  armv*b)
39
    cpu="armv4b"
40
  ;;
41
  armv*l)
42
    cpu="armv4l"
43
  ;;
44
  alpha)
45
    cpu="alpha"
46
  ;;
47
  "Power Macintosh"|ppc|ppc64)
48
    cpu="powerpc"
49
  ;;
50
  mips)
51
    cpu="mips"
52
  ;;
53
  mips64)
54
    cpu="mips64"
55
  ;;
56
  s390)
57
    cpu="s390"
58
  ;;
59
  sparc|sun4[cdmuv])
60
    cpu="sparc"
61
  ;;
62
  sparc64)
63
    cpu="sparc64"
64
  ;;
65
  ia64)
66
    cpu="ia64"
67
  ;;
68
  m68k)
69
    cpu="m68k"
70
  ;;
71
  x86_64|amd64)
72
    cpu="x86_64"
73
  ;;
74
  *)
75
    cpu="unknown"
76
  ;;
77
esac
78
gprof="no"
79
bigendian="no"
80
mingw32="no"
81
EXESUF=""
82
gdbstub="yes"
83
slirp="yes"
84
adlib="no"
85
oss="no"
86
dsound="no"
87
coreaudio="no"
88
alsa="no"
89
fmod="no"
90
fmod_lib=""
91
fmod_inc=""
92
bsd="no"
93
linux="no"
94
kqemu="no"
95
profiler="no"
96
cocoa="no"
97
check_gfx="yes"
98
check_gcc="yes"
99
softmmu="yes"
100
linux_user="no"
101
darwin_user="no"
102
build_docs="no"
103
uname_release=""
104

    
105
# OS specific
106
targetos=`uname -s`
107
case $targetos in
108
CYGWIN*)
109
mingw32="yes"
110
OS_CFLAGS="-mno-cygwin"
111
;;
112
MINGW32*)
113
mingw32="yes"
114
;;
115
FreeBSD)
116
bsd="yes"
117
oss="yes"
118
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
119
    kqemu="yes"
120
fi
121
;;
122
NetBSD)
123
bsd="yes"
124
oss="yes"
125
;;
126
OpenBSD)
127
bsd="yes"
128
oss="yes"
129
;;
130
Darwin)
131
bsd="yes"
132
darwin="yes"
133
darwin_user="yes"
134
cocoa="yes"
135
coreaudio="yes"
136
OS_CFLAGS="-mdynamic-no-pic"
137
;;
138
SunOS)
139
    solaris="yes"
140
    make="gmake"
141
    install="ginstall"
142
    needs_libsunmath="no"
143
    solarisrev=`uname -r | cut -f2 -d.`
144
    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
145
        if test "$solarisrev" -le 9 ; then
146
            if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
147
                needs_libsunmath="yes"
148
            else
149
                echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
150
                echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
151
                echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
152
                echo "Studio 11 can be downloaded from www.sun.com."
153
                exit 1
154
            fi
155
        fi
156
        if test "$solarisrev" -ge 9 ; then
157
            kqemu="yes"
158
        fi
159
    fi
160
;;
161
*)
162
oss="yes"
163
linux="yes"
164
linux_user="yes"
165
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
166
    kqemu="yes"
167
fi
168
;;
169
esac
170

    
171
if [ "$bsd" = "yes" ] ; then
172
  if [ "$darwin" != "yes" ] ; then
173
    make="gmake"
174
  fi
175
fi
176

    
177
# find source path
178
source_path=`dirname "$0"`
179
if [ -z "$source_path" ]; then
180
    source_path=`pwd`
181
else
182
    source_path=`cd "$source_path"; pwd`
183
fi
184
if test "$source_path" = `pwd` ; then
185
    source_path_used="no"
186
else
187
    source_path_used="yes"
188
fi
189

    
190
for opt do
191
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
192
  case "$opt" in
193
  --help|-h) show_help=yes
194
  ;;
195
  --prefix=*) prefix="$optarg"
196
  ;;
197
  --interp-prefix=*) interp_prefix="$optarg"
198
  ;;
199
  --source-path=*) source_path="$optarg"
200
  source_path_used="yes"
201
  ;;
202
  --cross-prefix=*) cross_prefix="$optarg"
203
  ;;
204
  --cc=*) cc="$optarg"
205
  gcc3_search="no"
206
  ;;
207
  --host-cc=*) host_cc="$optarg"
208
  ;;
209
  --make=*) make="$optarg"
210
  ;;
211
  --install=*) install="$optarg"
212
  ;;
213
  --extra-cflags=*) CFLAGS="$optarg"
214
  ;;
215
  --extra-ldflags=*) LDFLAGS="$optarg"
216
  ;;
217
  --cpu=*) cpu="$optarg"
218
  ;;
219
  --target-list=*) target_list="$optarg"
220
  ;;
221
  --enable-gprof) gprof="yes"
222
  ;;
223
  --static) static="yes"
224
  ;;
225
  --disable-sdl) sdl="no"
226
  ;;
227
  --enable-coreaudio) coreaudio="yes"
228
  ;;
229
  --enable-alsa) alsa="yes"
230
  ;;
231
  --enable-dsound) dsound="yes"
232
  ;;
233
  --enable-fmod) fmod="yes"
234
  ;;
235
  --fmod-lib=*) fmod_lib="$optarg"
236
  ;;
237
  --fmod-inc=*) fmod_inc="$optarg"
238
  ;;
239
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
240
  ;;
241
  --disable-slirp) slirp="no"
242
  ;;
243
  --enable-adlib) adlib="yes"
244
  ;;
245
  --disable-kqemu) kqemu="no"
246
  ;;
247
  --enable-profiler) profiler="yes"
248
  ;;
249
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
250
  ;;
251
  --disable-gfx-check) check_gfx="no"
252
  ;;
253
  --disable-gcc-check) check_gcc="no"
254
  ;;
255
  --disable-system) softmmu="no"
256
  ;;
257
  --enable-system) softmmu="yes"
258
  ;;
259
  --disable-linux-user) linux_user="no"
260
  ;;
261
  --enable-linux-user) linux_user="yes"
262
  ;;
263
  --disable-darwin-user) darwin_user="no"
264
  ;;
265
  --enable-darwin-user) darwin_user="yes"
266
  ;;
267
  --enable-uname-release=*) uname_release="$optarg"
268
  ;;
269
  --sparc_cpu=*)
270
      sparc_cpu="$optarg"
271
      case $sparc_cpu in
272
        v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
273
                 target_cpu="sparc"; cpu="sparc" ;;
274
        v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
275
                 target_cpu="sparc"; cpu="sparc" ;;
276
        v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
277
                 target_cpu="sparc64"; cpu="sparc64" ;;
278
        *)     echo "undefined SPARC architecture. Exiting";exit 1;;
279
      esac
280
  ;;
281
  esac
282
done
283

    
284
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
285
    AIOLIBS=
286
else
287
    AIOLIBS="-lrt"
288
fi
289

    
290
# default flags for all hosts
291
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
292
LDFLAGS="$LDFLAGS -g"
293

    
294
#
295
# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
296
# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
297
#
298
case $cpu in
299
    sparc) if test -z "$sparc_cpu" ; then
300
               ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
301
               ARCH_LDFLAGS="-m32"
302
           else
303
               ARCH_CFLAGS="${SP_CFLAGS}"
304
               ARCH_LDFLAGS="${SP_LDFLAGS}"
305
           fi
306
           ;;
307
    sparc64) if test -z "$sparc_cpu" ; then
308
               ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
309
               ARCH_LDFLAGS="-m64"
310
           else
311
               ARCH_CFLAGS="${SP_CFLAGS}"
312
               ARCH_LDFLAGS="${SP_LDFLAGS}"
313
           fi
314
           ;;
315
esac
316

    
317
if test x"$show_help" = x"yes" ; then
318
cat << EOF
319

    
320
Usage: configure [options]
321
Options: [defaults in brackets after descriptions]
322

    
323
EOF
324
echo "Standard options:"
325
echo "  --help                   print this message"
326
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
327
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
328
echo "                           use %M for cpu name [$interp_prefix]"
329
echo "  --target-list=LIST       set target list [$target_list]"
330
echo ""
331
echo "kqemu kernel acceleration support:"
332
echo "  --disable-kqemu          disable kqemu support"
333
echo ""
334
echo "Advanced options (experts only):"
335
echo "  --source-path=PATH       path of source code [$source_path]"
336
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
337
echo "  --cc=CC                  use C compiler CC [$cc]"
338
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
339
echo "  --make=MAKE              use specified make [$make]"
340
echo "  --install=INSTALL        use specified install [$install]"
341
echo "  --static                 enable static build [$static]"
342
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
343
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
344
echo "  --enable-adlib           enable Adlib emulation"
345
echo "  --enable-coreaudio       enable Coreaudio audio driver"
346
echo "  --enable-alsa            enable ALSA audio driver"
347
echo "  --enable-fmod            enable FMOD audio driver"
348
echo "  --enable-dsound          enable DirectSound audio driver"
349
echo "  --enable-system          enable all system emulation targets"
350
echo "  --disable-system         disable all system emulation targets"
351
echo "  --enable-linux-user      enable all linux usermode emulation targets"
352
echo "  --disable-linux-user     disable all linux usermode emulation targets"
353
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
354
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
355
echo "  --fmod-lib               path to FMOD library"
356
echo "  --fmod-inc               path to FMOD includes"
357
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
358
echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
359
echo ""
360
echo "NOTE: The object files are built at the place where configure is launched"
361
exit 1
362
fi
363

    
364
cc="${cross_prefix}${cc}"
365
ar="${cross_prefix}${ar}"
366
strip="${cross_prefix}${strip}"
367

    
368
# check that the C compiler works.
369
cat > $TMPC <<EOF
370
int main(void) {}
371
EOF
372

    
373
if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
374
  : C compiler works ok
375
else
376
    echo "ERROR: \"$cc\" either does not exist or does not work"
377
    exit 1
378
fi
379

    
380
if test "$mingw32" = "yes" ; then
381
    linux="no"
382
    EXESUF=".exe"
383
    oss="no"
384
    if [ "$cpu" = "i386" ] ; then
385
        kqemu="yes"
386
    fi
387
fi
388

    
389
# Check for gcc4, error if pre-gcc4 
390
if test "$check_gcc" = "yes" ; then
391
    cat > $TMPC <<EOF
392
#if __GNUC__ < 4
393
#error gcc3
394
#endif
395
int main(){return 0;}
396
EOF
397
    check_cc() {
398
	which "$1" 2> /dev/null
399
	return $?
400
    }
401

    
402
    if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
403
	echo "WARNING: \"$cc\" looks like gcc 4.x"
404
	found_compat_cc="no"
405
	if test "$gcc3_search" = "yes" ; then
406
	    echo "Looking for gcc 3.x"
407
	    for compat_cc in $gcc3_list ; do
408
		if check_cc "$cross_prefix$compat_cc" ; then
409
		    echo "Found \"$compat_cc\""
410
		    cc="$cross_prefix$compat_cc"
411
		    found_compat_cc="yes"
412
		    break
413
		fi
414
	    done
415
	    if test "$found_compat_cc" = "no" ; then
416
		echo "gcc 3.x not found!"
417
	    fi
418
	fi
419
	if test "$found_compat_cc" = "no" ; then
420
	    echo "QEMU is known to have problems when compiled with gcc 4.x"
421
	    echo "It is recommended that you use gcc 3.x to build QEMU"
422
	    echo "To use this compiler anyway, configure with --disable-gcc-check"
423
	    exit 1;
424
	fi
425
    fi
426
fi
427

    
428
#
429
# Solaris specific configure tool chain decisions
430
#
431
if test "$solaris" = "yes" ; then
432
  #
433
  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
434
  # override the check with --disable-gcc-check
435
  # 
436
  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
437
    solgcc=`which $cc`
438
    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
439
      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
440
      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
441
      echo "or get the latest patch from SunSolve for gcc"
442
      exit 1
443
    fi
444
  fi
445
  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
446
  if test -z "$solinst" ; then
447
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
448
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
449
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
450
    exit 1
451
  fi
452
  if test "$solinst" = "/usr/sbin/install" ; then
453
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
454
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
455
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
456
    exit 1
457
  fi
458
  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
459
  if test -z "$sol_ar" ; then
460
    echo "Error: No path includes ar"
461
    if test -f /usr/ccs/bin/ar ; then
462
      echo "Add /usr/ccs/bin to your path and rerun configure"
463
    fi
464
    exit 1
465
  fi
466
fi 
467

    
468

    
469
if test -z "$target_list" ; then
470
# these targets are portable
471
    if [ "$softmmu" = "yes" ] ; then
472
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu ppcemb-softmmu "
473
    fi
474
# the following are Linux specific
475
    if [ "$linux_user" = "yes" ] ; then
476
        target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user $target_list"
477
    fi
478
# the following are Darwin specific
479
    if [ "$darwin_user" = "yes" ] ; then
480
        target_list="i386-darwin-user ppc-darwin-user $target_list"
481
    fi
482
else
483
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
484
fi
485
if test -z "$target_list" ; then
486
    echo "No targets enabled"
487
    exit 1
488
fi
489

    
490
if test -z "$cross_prefix" ; then
491

    
492
# ---
493
# big/little endian test
494
cat > $TMPC << EOF
495
#include <inttypes.h>
496
int main(int argc, char ** argv){
497
        volatile uint32_t i=0x01234567;
498
        return (*((uint8_t*)(&i))) == 0x67;
499
}
500
EOF
501

    
502
if $cc -o $TMPE $TMPC 2> /dev/null ; then
503
$TMPE && bigendian="yes"
504
else
505
echo big/little test failed
506
fi
507

    
508
else
509

    
510
# if cross compiling, cannot launch a program, so make a static guess
511
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
512
    bigendian="yes"
513
fi
514

    
515
fi
516

    
517
# host long bits test
518
hostlongbits="32"
519
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
520
    hostlongbits="64"
521
fi
522

    
523
# check gcc options support
524
cat > $TMPC <<EOF
525
int main(void) {
526
}
527
EOF
528

    
529
##########################################
530
# SDL probe
531

    
532
sdl_too_old=no
533

    
534
if test -z "$sdl" ; then
535

    
536
sdl_config="sdl-config"
537
sdl=no
538
sdl_static=no
539

    
540
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
541
# win32 cross compilation case
542
    sdl_config="i386-mingw32msvc-sdl-config"
543
    sdl=yes
544
else
545
# normal SDL probe
546
cat > $TMPC << EOF
547
#include <SDL.h>
548
#undef main /* We don't want SDL to override our main() */
549
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
550
EOF
551

    
552
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
553
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
554
if test "$_sdlversion" -lt 121 ; then
555
sdl_too_old=yes
556
else
557
 if test "$cocoa" = "no" ; then
558
   sdl=yes
559
 fi
560
fi
561

    
562
# static link with sdl ?
563
if test "$sdl" = "yes" ; then
564
aa="no"
565
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
566
sdl_static_libs=`$sdl_config --static-libs`
567
if [ "$aa" = "yes" ] ; then
568
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
569
fi
570

    
571
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
572
  sdl_static=yes
573
fi
574

    
575
fi # static link
576

    
577
fi # sdl compile test
578

    
579
fi # cross compilation
580

    
581
else
582
 # Make sure to disable cocoa if sdl was set
583
 if test "$sdl" = "yes" ; then
584
   cocoa="no"
585
   coreaudio="no"
586
 fi
587
fi # -z $sdl
588

    
589
##########################################
590
# alsa sound support libraries
591

    
592
if test "$alsa" = "yes" ; then
593
  cat > $TMPC << EOF
594
#include <alsa/asoundlib.h>
595
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
596
EOF
597
  if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
598
    :
599
  else
600
    echo
601
    echo "Error: Could not find alsa"
602
    echo "Make sure to have the alsa libs and headers installed."
603
    echo
604
    exit 1
605
  fi
606
fi
607

    
608
# Check if tools are available to build documentation.
609
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
610
  build_docs="yes"
611
fi
612

    
613
if test "$mingw32" = "yes" ; then
614
  if test -z "$prefix" ; then
615
      prefix="/c/Program Files/Qemu"
616
  fi
617
  mansuffix=""
618
  datasuffix=""
619
  docsuffix=""
620
  binsuffix=""
621
else
622
  if test -z "$prefix" ; then
623
      prefix="/usr/local"
624
  fi
625
  mansuffix="/share/man"
626
  datasuffix="/share/qemu"
627
  docsuffix="/share/doc/qemu"
628
  binsuffix="/bin"
629
fi
630

    
631
echo "Install prefix    $prefix"
632
echo "BIOS directory    $prefix$datasuffix"
633
echo "binary directory  $prefix$binsuffix"
634
if test "$mingw32" = "no" ; then
635
echo "Manual directory  $prefix$mansuffix"
636
echo "ELF interp prefix $interp_prefix"
637
fi
638
echo "Source path       $source_path"
639
echo "C compiler        $cc"
640
echo "Host C compiler   $host_cc"
641
echo "make              $make"
642
echo "install           $install"
643
echo "host CPU          $cpu"
644
echo "host big endian   $bigendian"
645
echo "target list       $target_list"
646
echo "gprof enabled     $gprof"
647
echo "profiler          $profiler"
648
echo "static build      $static"
649
if test "$darwin" = "yes" ; then
650
    echo "Cocoa support     $cocoa"
651
fi
652
echo "SDL support       $sdl"
653
if test "$sdl" != "no" ; then
654
    echo "SDL static link   $sdl_static"
655
fi
656
echo "mingw32 support   $mingw32"
657
echo "Adlib support     $adlib"
658
echo "CoreAudio support $coreaudio"
659
echo "ALSA support      $alsa"
660
echo "DSound support    $dsound"
661
if test "$fmod" = "yes"; then
662
    if test -z $fmod_lib || test -z $fmod_inc; then
663
        echo
664
        echo "Error: You must specify path to FMOD library and headers"
665
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
666
        echo
667
        exit 1
668
    fi
669
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
670
else
671
    fmod_support=""
672
fi
673
echo "FMOD support      $fmod $fmod_support"
674
if test -n "$sparc_cpu"; then
675
    echo "Target Sparc Arch $sparc_cpu"
676
fi
677
echo "kqemu support     $kqemu"
678
echo "Documentation     $build_docs"
679
[ ! -z "$uname_release" ] && \
680
echo "uname -r          $uname_release"
681

    
682
if test $sdl_too_old = "yes"; then
683
echo "-> Your SDL version is too old - please upgrade to have SDL support"
684
fi
685
#if test "$sdl_static" = "no"; then
686
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
687
#fi
688
config_mak="config-host.mak"
689
config_h="config-host.h"
690

    
691
#echo "Creating $config_mak and $config_h"
692

    
693
echo "# Automatically generated by configure - do not modify" > $config_mak
694
echo "# Configured with: $0 $@" >> $config_mak
695
echo "/* Automatically generated by configure - do not modify */" > $config_h
696

    
697
echo "prefix=$prefix" >> $config_mak
698
echo "bindir=\${prefix}$binsuffix" >> $config_mak
699
echo "mandir=\${prefix}$mansuffix" >> $config_mak
700
echo "datadir=\${prefix}$datasuffix" >> $config_mak
701
echo "docdir=\${prefix}$docsuffix" >> $config_mak
702
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
703
echo "MAKE=$make" >> $config_mak
704
echo "INSTALL=$install" >> $config_mak
705
echo "CC=$cc" >> $config_mak
706
echo "HOST_CC=$host_cc" >> $config_mak
707
echo "AR=$ar" >> $config_mak
708
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
709
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
710
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
711
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
712
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
713
echo "CFLAGS=$CFLAGS" >> $config_mak
714
echo "LDFLAGS=$LDFLAGS" >> $config_mak
715
echo "EXESUF=$EXESUF" >> $config_mak
716
echo "AIOLIBS=$AIOLIBS" >> $config_mak
717
if test "$cpu" = "i386" ; then
718
  echo "ARCH=i386" >> $config_mak
719
  echo "#define HOST_I386 1" >> $config_h
720
elif test "$cpu" = "x86_64" ; then
721
  echo "ARCH=x86_64" >> $config_mak
722
  echo "#define HOST_X86_64 1" >> $config_h
723
elif test "$cpu" = "armv4b" ; then
724
  echo "ARCH=arm" >> $config_mak
725
  echo "#define HOST_ARM 1" >> $config_h
726
elif test "$cpu" = "armv4l" ; then
727
  echo "ARCH=arm" >> $config_mak
728
  echo "#define HOST_ARM 1" >> $config_h
729
elif test "$cpu" = "powerpc" ; then
730
  echo "ARCH=ppc" >> $config_mak
731
  echo "#define HOST_PPC 1" >> $config_h
732
elif test "$cpu" = "mips" ; then
733
  echo "ARCH=mips" >> $config_mak
734
  echo "#define HOST_MIPS 1" >> $config_h
735
elif test "$cpu" = "mips64" ; then
736
  echo "ARCH=mips64" >> $config_mak
737
  echo "#define HOST_MIPS64 1" >> $config_h
738
elif test "$cpu" = "s390" ; then
739
  echo "ARCH=s390" >> $config_mak
740
  echo "#define HOST_S390 1" >> $config_h
741
elif test "$cpu" = "alpha" ; then
742
  echo "ARCH=alpha" >> $config_mak
743
  echo "#define HOST_ALPHA 1" >> $config_h
744
elif test "$cpu" = "sparc" ; then
745
  echo "ARCH=sparc" >> $config_mak
746
  echo "#define HOST_SPARC 1" >> $config_h
747
elif test "$cpu" = "sparc64" ; then
748
  echo "ARCH=sparc64" >> $config_mak
749
  echo "#define HOST_SPARC64 1" >> $config_h
750
elif test "$cpu" = "ia64" ; then
751
  echo "ARCH=ia64" >> $config_mak
752
  echo "#define HOST_IA64 1" >> $config_h
753
elif test "$cpu" = "m68k" ; then
754
  echo "ARCH=m68k" >> $config_mak
755
  echo "#define HOST_M68K 1" >> $config_h
756
else
757
  echo "Unsupported CPU = $cpu"
758
  exit 1
759
fi
760
if test "$bigendian" = "yes" ; then
761
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
762
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
763
fi
764
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
765
if test "$mingw32" = "yes" ; then
766
  echo "CONFIG_WIN32=yes" >> $config_mak
767
  echo "#define CONFIG_WIN32 1" >> $config_h
768
else
769
  cat > $TMPC << EOF
770
#include <byteswap.h>
771
int main(void) { return bswap_32(0); }
772
EOF
773
  if $cc -o $TMPE $TMPC 2> /dev/null ; then
774
    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
775
  fi
776
fi
777
if test "$darwin" = "yes" ; then
778
  echo "CONFIG_DARWIN=yes" >> $config_mak
779
  echo "#define CONFIG_DARWIN 1" >> $config_h
780
fi
781
if test "$solaris" = "yes" ; then
782
  echo "CONFIG_SOLARIS=yes" >> $config_mak
783
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
784
  if test "$needs_libsunmath" = "yes" ; then
785
    echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
786
    echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
787
  fi
788
fi
789
if test -n "$sparc_cpu"; then
790
  echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
791
  echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
792
fi
793
if test "$gdbstub" = "yes" ; then
794
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
795
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
796
fi
797
if test "$gprof" = "yes" ; then
798
  echo "TARGET_GPROF=yes" >> $config_mak
799
  echo "#define HAVE_GPROF 1" >> $config_h
800
fi
801
if test "$static" = "yes" ; then
802
  echo "CONFIG_STATIC=yes" >> $config_mak
803
  echo "#define CONFIG_STATIC 1" >> $config_h
804
fi
805
if test $profiler = "yes" ; then
806
  echo "#define CONFIG_PROFILER 1" >> $config_h
807
fi
808
if test "$slirp" = "yes" ; then
809
  echo "CONFIG_SLIRP=yes" >> $config_mak
810
  echo "#define CONFIG_SLIRP 1" >> $config_h
811
fi
812
if test "$adlib" = "yes" ; then
813
  echo "CONFIG_ADLIB=yes" >> $config_mak
814
  echo "#define CONFIG_ADLIB 1" >> $config_h
815
fi
816
if test "$oss" = "yes" ; then
817
  echo "CONFIG_OSS=yes" >> $config_mak
818
  echo "#define CONFIG_OSS 1" >> $config_h
819
fi
820
if test "$coreaudio" = "yes" ; then
821
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
822
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
823
fi
824
if test "$alsa" = "yes" ; then
825
  echo "CONFIG_ALSA=yes" >> $config_mak
826
  echo "#define CONFIG_ALSA 1" >> $config_h
827
fi
828
if test "$dsound" = "yes" ; then
829
  echo "CONFIG_DSOUND=yes" >> $config_mak
830
  echo "#define CONFIG_DSOUND 1" >> $config_h
831
fi
832
if test "$fmod" = "yes" ; then
833
  echo "CONFIG_FMOD=yes" >> $config_mak
834
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
835
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
836
  echo "#define CONFIG_FMOD 1" >> $config_h
837
fi
838
qemu_version=`head $source_path/VERSION`
839
echo "VERSION=$qemu_version" >>$config_mak
840
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
841

    
842
echo "SRC_PATH=$source_path" >> $config_mak
843
if [ "$source_path_used" = "yes" ]; then
844
  echo "VPATH=$source_path" >> $config_mak
845
fi
846
echo "TARGET_DIRS=$target_list" >> $config_mak
847
if [ "$build_docs" = "yes" ] ; then
848
  echo "BUILD_DOCS=yes" >> $config_mak
849
fi
850

    
851
# XXX: suppress that
852
if [ "$bsd" = "yes" ] ; then
853
  echo "#define O_LARGEFILE 0" >> $config_h
854
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
855
  echo "#define _BSD 1" >> $config_h
856
fi
857

    
858
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
859

    
860
for target in $target_list; do
861
target_dir="$target"
862
config_mak=$target_dir/config.mak
863
config_h=$target_dir/config.h
864
target_cpu=`echo $target | cut -d '-' -f 1`
865
target_bigendian="no"
866
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
867
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
868
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
869
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
870
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
871
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
872
[ "$target_cpu" = "mips" ] && target_bigendian=yes
873
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
874
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
875
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
876
target_softmmu="no"
877
if expr $target : '.*-softmmu' > /dev/null ; then
878
  target_softmmu="yes"
879
fi
880
target_user_only="no"
881
if expr $target : '.*-user' > /dev/null ; then
882
  target_user_only="yes"
883
fi
884

    
885
target_linux_user="no"
886
if expr $target : '.*-linux-user' > /dev/null ; then
887
  target_linux_user="yes"
888
fi
889

    
890
target_darwin_user="no"
891
if expr $target : '.*-darwin-user' > /dev/null ; then
892
  target_darwin_user="yes"
893
fi
894

    
895
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
896
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
897
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
898
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
899
    echo "Note that this will disable all output from the virtual graphics card."
900
    exit 1;
901
fi
902

    
903
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
904

    
905
mkdir -p $target_dir
906
mkdir -p $target_dir/fpu
907
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
908
  mkdir -p $target_dir/nwfpe
909
fi
910
if test "$target_user_only" = "no" ; then
911
  mkdir -p $target_dir/slirp
912
fi
913

    
914
#
915
# don't use ln -sf as not all "ln -sf" over write the file/link
916
#
917
rm -f $target_dir/Makefile
918
ln -s $source_path/Makefile.target $target_dir/Makefile
919

    
920

    
921
echo "# Automatically generated by configure - do not modify" > $config_mak
922
echo "/* Automatically generated by configure - do not modify */" > $config_h
923

    
924

    
925
echo "include ../config-host.mak" >> $config_mak
926
echo "#include \"../config-host.h\"" >> $config_h
927

    
928
bflt="no"
929
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
930
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
931

    
932
if test "$target_cpu" = "i386" ; then
933
  echo "TARGET_ARCH=i386" >> $config_mak
934
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
935
  echo "#define TARGET_I386 1" >> $config_h
936
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
937
    echo "#define USE_KQEMU 1" >> $config_h
938
  fi
939
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
940
  echo "TARGET_ARCH=arm" >> $config_mak
941
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
942
  echo "#define TARGET_ARM 1" >> $config_h
943
  bflt="yes"
944
elif test "$target_cpu" = "sparc" ; then
945
  echo "TARGET_ARCH=sparc" >> $config_mak
946
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
947
  echo "#define TARGET_SPARC 1" >> $config_h
948
elif test "$target_cpu" = "sparc64" ; then
949
  echo "TARGET_ARCH=sparc64" >> $config_mak
950
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
951
  echo "#define TARGET_SPARC 1" >> $config_h
952
  echo "#define TARGET_SPARC64 1" >> $config_h
953
elif test "$target_cpu" = "ppc" ; then
954
  echo "TARGET_ARCH=ppc" >> $config_mak
955
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
956
  echo "#define TARGET_PPC 1" >> $config_h
957
elif test "$target_cpu" = "ppc64" ; then
958
  echo "TARGET_ARCH=ppc64" >> $config_mak
959
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
960
  echo "#define TARGET_PPC 1" >> $config_h
961
  echo "#define TARGET_PPC64 1" >> $config_h
962
elif test "$target_cpu" = "ppcemb" ; then
963
  echo "TARGET_ARCH=ppcemb" >> $config_mak
964
  echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
965
  echo "#define TARGET_PPC 1" >> $config_h
966
  echo "#define TARGET_PPCEMB 1" >> $config_h
967
elif test "$target_cpu" = "x86_64" ; then
968
  echo "TARGET_ARCH=x86_64" >> $config_mak
969
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
970
  echo "#define TARGET_I386 1" >> $config_h
971
  echo "#define TARGET_X86_64 1" >> $config_h
972
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
973
    echo "#define USE_KQEMU 1" >> $config_h
974
  fi
975
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
976
  echo "TARGET_ARCH=mips" >> $config_mak
977
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
978
  echo "#define TARGET_MIPS 1" >> $config_h
979
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
980
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
981
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
982
  echo "TARGET_ARCH=mips64" >> $config_mak
983
  echo "#define TARGET_ARCH \"mips64\"" >> $config_h
984
  echo "#define TARGET_MIPS 1" >> $config_h
985
  echo "#define TARGET_MIPS64 1" >> $config_h
986
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
987
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
988
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
989
  echo "TARGET_ARCH=sh4" >> $config_mak
990
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
991
  echo "#define TARGET_SH4 1" >> $config_h
992
  bflt="yes"
993
elif test "$target_cpu" = "m68k" ; then
994
  echo "TARGET_ARCH=m68k" >> $config_mak
995
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
996
  echo "#define TARGET_M68K 1" >> $config_h
997
  bflt="yes"
998
elif test "$target_cpu" = "alpha" ; then
999
  echo "TARGET_ARCH=alpha" >> $config_mak
1000
  echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1001
  echo "#define TARGET_ALPHA 1" >> $config_h
1002
else
1003
  echo "Unsupported target CPU"
1004
  exit 1
1005
fi
1006
if test "$target_bigendian" = "yes" ; then
1007
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1008
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1009
fi
1010
if test "$target_softmmu" = "yes" ; then
1011
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1012
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1013
fi
1014
if test "$target_user_only" = "yes" ; then
1015
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1016
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1017
fi
1018
if test "$target_linux_user" = "yes" ; then
1019
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1020
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1021
fi
1022
if test "$target_darwin_user" = "yes" ; then
1023
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1024
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1025
fi
1026

    
1027
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
1028
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1029
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1030
fi
1031
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1032
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1033
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1034
fi
1035
# sdl defines
1036

    
1037
if test "$target_user_only" = "no"; then
1038
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1039
        sdl1=$sdl_static
1040
    else
1041
        sdl1=$sdl
1042
    fi
1043
    if test "$sdl1" = "yes" ; then
1044
        echo "#define CONFIG_SDL 1" >> $config_h
1045
        echo "CONFIG_SDL=yes" >> $config_mak
1046
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1047
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1048
        else
1049
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1050
        fi
1051
        if [ "${aa}" = "yes" ] ; then
1052
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1053
        else
1054
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1055
        fi
1056
    fi
1057
fi
1058

    
1059
if test "$cocoa" = "yes" ; then
1060
    echo "#define CONFIG_COCOA 1" >> $config_h
1061
    echo "CONFIG_COCOA=yes" >> $config_mak
1062
fi
1063

    
1064
done # for target in $targets
1065

    
1066
# build tree in object directory if source path is different from current one
1067
if test "$source_path_used" = "yes" ; then
1068
    DIRS="tests"
1069
    FILES="Makefile tests/Makefile"
1070
    for dir in $DIRS ; do
1071
            mkdir -p $dir
1072
    done
1073
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1074
    for f in $FILES ; do
1075
        rm -f $f
1076
        ln -s $source_path/$f $f
1077
    done
1078
fi
1079

    
1080
rm -f $TMPO $TMPC $TMPE $TMPS