Statistics
| Branch: | Revision:

root / configure @ 5fafdf24

History | View | Annotate | Download (32.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.6 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
vnc_tls="yes"
93
bsd="no"
94
linux="no"
95
kqemu="no"
96
profiler="no"
97
cocoa="no"
98
check_gfx="yes"
99
check_gcc="yes"
100
softmmu="yes"
101
linux_user="no"
102
darwin_user="no"
103
build_docs="no"
104
uname_release=""
105

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

    
188
if [ "$bsd" = "yes" ] ; then
189
  if [ "$darwin" != "yes" ] ; then
190
    make="gmake"
191
  fi
192
fi
193

    
194
# find source path
195
source_path=`dirname "$0"`
196
if [ -z "$source_path" ]; then
197
    source_path=`pwd`
198
else
199
    source_path=`cd "$source_path"; pwd`
200
fi
201
if test "$source_path" = `pwd` ; then
202
    source_path_used="no"
203
else
204
    source_path_used="yes"
205
fi
206

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

    
303
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
304
    AIOLIBS=
305
else
306
    AIOLIBS="-lrt"
307
fi
308

    
309
# default flags for all hosts
310
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
311
LDFLAGS="$LDFLAGS -g"
312

    
313
#
314
# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
315
# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
316
#
317
case $cpu in
318
    sparc) if test -z "$sparc_cpu" ; then
319
               ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
320
               ARCH_LDFLAGS="-m32"
321
           else
322
               ARCH_CFLAGS="${SP_CFLAGS}"
323
               ARCH_LDFLAGS="${SP_LDFLAGS}"
324
           fi
325
           ;;
326
    sparc64) if test -z "$sparc_cpu" ; then
327
               ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
328
               ARCH_LDFLAGS="-m64"
329
           else
330
               ARCH_CFLAGS="${SP_CFLAGS}"
331
               ARCH_LDFLAGS="${SP_LDFLAGS}"
332
           fi
333
           ;;
334
esac
335

    
336
if test x"$show_help" = x"yes" ; then
337
cat << EOF
338

    
339
Usage: configure [options]
340
Options: [defaults in brackets after descriptions]
341

    
342
EOF
343
echo "Standard options:"
344
echo "  --help                   print this message"
345
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
346
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
347
echo "                           use %M for cpu name [$interp_prefix]"
348
echo "  --target-list=LIST       set target list [$target_list]"
349
echo ""
350
echo "kqemu kernel acceleration support:"
351
echo "  --disable-kqemu          disable kqemu support"
352
echo ""
353
echo "Advanced options (experts only):"
354
echo "  --source-path=PATH       path of source code [$source_path]"
355
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
356
echo "  --cc=CC                  use C compiler CC [$cc]"
357
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
358
echo "  --make=MAKE              use specified make [$make]"
359
echo "  --install=INSTALL        use specified install [$install]"
360
echo "  --static                 enable static build [$static]"
361
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
362
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
363
echo "  --enable-adlib           enable Adlib emulation"
364
echo "  --enable-coreaudio       enable Coreaudio audio driver"
365
echo "  --enable-alsa            enable ALSA audio driver"
366
echo "  --enable-fmod            enable FMOD audio driver"
367
echo "  --enable-dsound          enable DirectSound audio driver"
368
echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
369
echo "  --enable-system          enable all system emulation targets"
370
echo "  --disable-system         disable all system emulation targets"
371
echo "  --enable-linux-user      enable all linux usermode emulation targets"
372
echo "  --disable-linux-user     disable all linux usermode emulation targets"
373
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
374
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
375
echo "  --fmod-lib               path to FMOD library"
376
echo "  --fmod-inc               path to FMOD includes"
377
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
378
echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
379
echo ""
380
echo "NOTE: The object files are built at the place where configure is launched"
381
exit 1
382
fi
383

    
384
cc="${cross_prefix}${cc}"
385
ar="${cross_prefix}${ar}"
386
strip="${cross_prefix}${strip}"
387

    
388
# check that the C compiler works.
389
cat > $TMPC <<EOF
390
int main(void) {}
391
EOF
392

    
393
if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
394
  : C compiler works ok
395
else
396
    echo "ERROR: \"$cc\" either does not exist or does not work"
397
    exit 1
398
fi
399

    
400
if test "$mingw32" = "yes" ; then
401
    linux="no"
402
    EXESUF=".exe"
403
    oss="no"
404
fi
405

    
406
# Check for gcc4, error if pre-gcc4
407
if test "$check_gcc" = "yes" ; then
408
    cat > $TMPC <<EOF
409
#if __GNUC__ < 4
410
#error gcc3
411
#endif
412
int main(){return 0;}
413
EOF
414
    if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
415
	echo "WARNING: \"$cc\" looks like gcc 4.x"
416
	found_compat_cc="no"
417
	if test "$gcc3_search" = "yes" ; then
418
	    echo "Looking for gcc 3.x"
419
	    for compat_cc in $gcc3_list ; do
420
		if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
421
		    echo "Found \"$compat_cc\""
422
		    cc="$cross_prefix$compat_cc"
423
		    found_compat_cc="yes"
424
		    break
425
		fi
426
	    done
427
	    if test "$found_compat_cc" = "no" ; then
428
		echo "gcc 3.x not found!"
429
	    fi
430
	fi
431
	if test "$found_compat_cc" = "no" ; then
432
	    echo "QEMU is known to have problems when compiled with gcc 4.x"
433
	    echo "It is recommended that you use gcc 3.x to build QEMU"
434
	    echo "To use this compiler anyway, configure with --disable-gcc-check"
435
	    exit 1;
436
	fi
437
    fi
438
fi
439

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

    
480

    
481
if test -z "$target_list" ; then
482
# these targets are portable
483
    if [ "$softmmu" = "yes" ] ; then
484
        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 m68k-softmmu"
485
    fi
486
# the following are Linux specific
487
    if [ "$linux_user" = "yes" ] ; then
488
        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"
489
    fi
490
# the following are Darwin specific
491
    if [ "$darwin_user" = "yes" ] ; then
492
        target_list="i386-darwin-user ppc-darwin-user $target_list"
493
    fi
494
else
495
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
496
fi
497
if test -z "$target_list" ; then
498
    echo "No targets enabled"
499
    exit 1
500
fi
501

    
502
if test -z "$cross_prefix" ; then
503

    
504
# ---
505
# big/little endian test
506
cat > $TMPC << EOF
507
#include <inttypes.h>
508
int main(int argc, char ** argv){
509
        volatile uint32_t i=0x01234567;
510
        return (*((uint8_t*)(&i))) == 0x67;
511
}
512
EOF
513

    
514
if $cc -o $TMPE $TMPC 2> /dev/null ; then
515
$TMPE && bigendian="yes"
516
else
517
echo big/little test failed
518
fi
519

    
520
else
521

    
522
# if cross compiling, cannot launch a program, so make a static guess
523
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
524
    bigendian="yes"
525
fi
526

    
527
fi
528

    
529
# host long bits test
530
hostlongbits="32"
531
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
532
    hostlongbits="64"
533
fi
534

    
535
# check gcc options support
536
cat > $TMPC <<EOF
537
int main(void) {
538
}
539
EOF
540

    
541
##########################################
542
# SDL probe
543

    
544
sdl_too_old=no
545

    
546
if test -z "$sdl" ; then
547
    sdl_config="sdl-config"
548
    sdl=no
549
    sdl_static=no
550

    
551
    if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
552
    # win32 cross compilation case
553
        sdl_config="i386-mingw32msvc-sdl-config"
554
        sdl=yes
555
    else
556
        # normal SDL probe
557
cat > $TMPC << EOF
558
#include <SDL.h>
559
#undef main /* We don't want SDL to override our main() */
560
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
561
EOF
562
        if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
563
            _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
564
            if test "$_sdlversion" -lt 121 ; then
565
                sdl_too_old=yes
566
            else
567
                if test "$cocoa" = "no" ; then
568
                    sdl=yes
569
                fi
570
            fi
571

    
572
            # static link with sdl ?
573
            if test "$sdl" = "yes" ; then
574
                aa="no"
575
                `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
576
                sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
577
                if [ "$aa" = "yes" ] ; then
578
                    sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
579
                fi
580

    
581
                if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
582
                    sdl_static=yes
583
                fi
584
            fi # static link
585
        fi # sdl compile test
586
    fi # cross compilation
587
else
588
    # Make sure to disable cocoa if sdl was set
589
    if test "$sdl" = "yes" ; then
590
       cocoa="no"
591
       coreaudio="no"
592
    fi
593
fi # -z $sdl
594

    
595
##########################################
596
# VNC TLS detection
597
if test "$vnc_tls" = "yes" ; then
598
  `pkg-config gnutls` || vnc_tls="no"
599
fi
600
if test "$vnc_tls" = "yes" ; then
601
  vnc_tls_cflags=`pkg-config --cflags gnutls`
602
  vnc_tls_libs=`pkg-config --libs gnutls`
603
fi
604

    
605
##########################################
606
# alsa sound support libraries
607

    
608
if test "$alsa" = "yes" ; then
609
  cat > $TMPC << EOF
610
#include <alsa/asoundlib.h>
611
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
612
EOF
613
  if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
614
    :
615
  else
616
    echo
617
    echo "Error: Could not find alsa"
618
    echo "Make sure to have the alsa libs and headers installed."
619
    echo
620
    exit 1
621
  fi
622
fi
623

    
624
# Check if tools are available to build documentation.
625
if [ -x "`which texi2html 2>/dev/null`" ] && \
626
   [ -x "`which pod2man 2>/dev/null`" ]; then
627
  build_docs="yes"
628
fi
629

    
630
if test "$mingw32" = "yes" ; then
631
  if test -z "$prefix" ; then
632
      prefix="/c/Program Files/Qemu"
633
  fi
634
  mansuffix=""
635
  datasuffix=""
636
  docsuffix=""
637
  binsuffix=""
638
else
639
  if test -z "$prefix" ; then
640
      prefix="/usr/local"
641
  fi
642
  mansuffix="/share/man"
643
  datasuffix="/share/qemu"
644
  docsuffix="/share/doc/qemu"
645
  binsuffix="/bin"
646
fi
647

    
648
echo "Install prefix    $prefix"
649
echo "BIOS directory    $prefix$datasuffix"
650
echo "binary directory  $prefix$binsuffix"
651
if test "$mingw32" = "no" ; then
652
echo "Manual directory  $prefix$mansuffix"
653
echo "ELF interp prefix $interp_prefix"
654
fi
655
echo "Source path       $source_path"
656
echo "C compiler        $cc"
657
echo "Host C compiler   $host_cc"
658
echo "make              $make"
659
echo "install           $install"
660
echo "host CPU          $cpu"
661
echo "host big endian   $bigendian"
662
echo "target list       $target_list"
663
echo "gprof enabled     $gprof"
664
echo "profiler          $profiler"
665
echo "static build      $static"
666
if test "$darwin" = "yes" ; then
667
    echo "Cocoa support     $cocoa"
668
fi
669
echo "SDL support       $sdl"
670
if test "$sdl" != "no" ; then
671
    echo "SDL static link   $sdl_static"
672
fi
673
echo "mingw32 support   $mingw32"
674
echo "Adlib support     $adlib"
675
echo "CoreAudio support $coreaudio"
676
echo "ALSA support      $alsa"
677
echo "DSound support    $dsound"
678
if test "$fmod" = "yes"; then
679
    if test -z $fmod_lib || test -z $fmod_inc; then
680
        echo
681
        echo "Error: You must specify path to FMOD library and headers"
682
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
683
        echo
684
        exit 1
685
    fi
686
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
687
else
688
    fmod_support=""
689
fi
690
echo "FMOD support      $fmod $fmod_support"
691
echo "OSS support       $oss"
692
echo "VNC TLS support   $vnc_tls"
693
if test "$vnc_tls" = "yes" ; then
694
    echo "    TLS CFLAGS    $vnc_tls_cflags"
695
    echo "    TLS LIBS      $vnc_tls_libs"
696
fi
697
if test -n "$sparc_cpu"; then
698
    echo "Target Sparc Arch $sparc_cpu"
699
fi
700
echo "kqemu support     $kqemu"
701
echo "Documentation     $build_docs"
702
[ ! -z "$uname_release" ] && \
703
echo "uname -r          $uname_release"
704

    
705
if test $sdl_too_old = "yes"; then
706
echo "-> Your SDL version is too old - please upgrade to have SDL support"
707
fi
708
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
709
  echo "The error log from compiling the libSDL test is: "
710
  cat /tmp/qemu-$$-sdl-config.log
711
fi
712
rm -f /tmp/qemu-$$-sdl-config.log
713
#if test "$sdl_static" = "no"; then
714
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
715
#fi
716
config_mak="config-host.mak"
717
config_h="config-host.h"
718

    
719
#echo "Creating $config_mak and $config_h"
720

    
721
test -f $config_h && mv $config_h ${config_h}~
722

    
723
echo "# Automatically generated by configure - do not modify" > $config_mak
724
echo "# Configured with: $0 $@" >> $config_mak
725
echo "/* Automatically generated by configure - do not modify */" > $config_h
726

    
727
echo "prefix=$prefix" >> $config_mak
728
echo "bindir=\${prefix}$binsuffix" >> $config_mak
729
echo "mandir=\${prefix}$mansuffix" >> $config_mak
730
echo "datadir=\${prefix}$datasuffix" >> $config_mak
731
echo "docdir=\${prefix}$docsuffix" >> $config_mak
732
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
733
echo "MAKE=$make" >> $config_mak
734
echo "INSTALL=$install" >> $config_mak
735
echo "CC=$cc" >> $config_mak
736
echo "HOST_CC=$host_cc" >> $config_mak
737
echo "AR=$ar" >> $config_mak
738
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
739
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
740
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
741
echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
742
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
743
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
744
echo "CFLAGS=$CFLAGS" >> $config_mak
745
echo "LDFLAGS=$LDFLAGS" >> $config_mak
746
echo "EXESUF=$EXESUF" >> $config_mak
747
echo "AIOLIBS=$AIOLIBS" >> $config_mak
748
if test "$cpu" = "i386" ; then
749
  echo "ARCH=i386" >> $config_mak
750
  echo "#define HOST_I386 1" >> $config_h
751
elif test "$cpu" = "x86_64" ; then
752
  echo "ARCH=x86_64" >> $config_mak
753
  echo "#define HOST_X86_64 1" >> $config_h
754
elif test "$cpu" = "armv4b" ; then
755
  echo "ARCH=arm" >> $config_mak
756
  echo "#define HOST_ARM 1" >> $config_h
757
elif test "$cpu" = "armv4l" ; then
758
  echo "ARCH=arm" >> $config_mak
759
  echo "#define HOST_ARM 1" >> $config_h
760
elif test "$cpu" = "powerpc" ; then
761
  echo "ARCH=ppc" >> $config_mak
762
  echo "#define HOST_PPC 1" >> $config_h
763
elif test "$cpu" = "mips" ; then
764
  echo "ARCH=mips" >> $config_mak
765
  echo "#define HOST_MIPS 1" >> $config_h
766
elif test "$cpu" = "mips64" ; then
767
  echo "ARCH=mips64" >> $config_mak
768
  echo "#define HOST_MIPS64 1" >> $config_h
769
elif test "$cpu" = "s390" ; then
770
  echo "ARCH=s390" >> $config_mak
771
  echo "#define HOST_S390 1" >> $config_h
772
elif test "$cpu" = "alpha" ; then
773
  echo "ARCH=alpha" >> $config_mak
774
  echo "#define HOST_ALPHA 1" >> $config_h
775
elif test "$cpu" = "sparc" ; then
776
  echo "ARCH=sparc" >> $config_mak
777
  echo "#define HOST_SPARC 1" >> $config_h
778
elif test "$cpu" = "sparc64" ; then
779
  echo "ARCH=sparc64" >> $config_mak
780
  echo "#define HOST_SPARC64 1" >> $config_h
781
elif test "$cpu" = "ia64" ; then
782
  echo "ARCH=ia64" >> $config_mak
783
  echo "#define HOST_IA64 1" >> $config_h
784
elif test "$cpu" = "m68k" ; then
785
  echo "ARCH=m68k" >> $config_mak
786
  echo "#define HOST_M68K 1" >> $config_h
787
else
788
  echo "Unsupported CPU = $cpu"
789
  exit 1
790
fi
791
if test "$bigendian" = "yes" ; then
792
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
793
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
794
fi
795
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
796
if test "$mingw32" = "yes" ; then
797
  echo "CONFIG_WIN32=yes" >> $config_mak
798
  echo "#define CONFIG_WIN32 1" >> $config_h
799
else
800
  cat > $TMPC << EOF
801
#include <byteswap.h>
802
int main(void) { return bswap_32(0); }
803
EOF
804
  if $cc -o $TMPE $TMPC 2> /dev/null ; then
805
    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
806
  fi
807
fi
808
if test "$darwin" = "yes" ; then
809
  echo "CONFIG_DARWIN=yes" >> $config_mak
810
  echo "#define CONFIG_DARWIN 1" >> $config_h
811
fi
812
if test "$solaris" = "yes" ; then
813
  echo "CONFIG_SOLARIS=yes" >> $config_mak
814
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
815
  if test "$needs_libsunmath" = "yes" ; then
816
    echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
817
    echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
818
  fi
819
fi
820
if test -n "$sparc_cpu"; then
821
  echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
822
  echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
823
fi
824
if test "$gdbstub" = "yes" ; then
825
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
826
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
827
fi
828
if test "$gprof" = "yes" ; then
829
  echo "TARGET_GPROF=yes" >> $config_mak
830
  echo "#define HAVE_GPROF 1" >> $config_h
831
fi
832
if test "$static" = "yes" ; then
833
  echo "CONFIG_STATIC=yes" >> $config_mak
834
  echo "#define CONFIG_STATIC 1" >> $config_h
835
fi
836
if test $profiler = "yes" ; then
837
  echo "#define CONFIG_PROFILER 1" >> $config_h
838
fi
839
if test "$slirp" = "yes" ; then
840
  echo "CONFIG_SLIRP=yes" >> $config_mak
841
  echo "#define CONFIG_SLIRP 1" >> $config_h
842
fi
843
if test "$adlib" = "yes" ; then
844
  echo "CONFIG_ADLIB=yes" >> $config_mak
845
  echo "#define CONFIG_ADLIB 1" >> $config_h
846
fi
847
if test "$oss" = "yes" ; then
848
  echo "CONFIG_OSS=yes" >> $config_mak
849
  echo "#define CONFIG_OSS 1" >> $config_h
850
fi
851
if test "$coreaudio" = "yes" ; then
852
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
853
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
854
fi
855
if test "$alsa" = "yes" ; then
856
  echo "CONFIG_ALSA=yes" >> $config_mak
857
  echo "#define CONFIG_ALSA 1" >> $config_h
858
fi
859
if test "$dsound" = "yes" ; then
860
  echo "CONFIG_DSOUND=yes" >> $config_mak
861
  echo "#define CONFIG_DSOUND 1" >> $config_h
862
fi
863
if test "$fmod" = "yes" ; then
864
  echo "CONFIG_FMOD=yes" >> $config_mak
865
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
866
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
867
  echo "#define CONFIG_FMOD 1" >> $config_h
868
fi
869
if test "$vnc_tls" = "yes" ; then
870
  echo "CONFIG_VNC_TLS=yes" >> $config_mak
871
  echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
872
  echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
873
  echo "#define CONFIG_VNC_TLS 1" >> $config_h
874
fi
875
qemu_version=`head $source_path/VERSION`
876
echo "VERSION=$qemu_version" >>$config_mak
877
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
878

    
879
echo "SRC_PATH=$source_path" >> $config_mak
880
if [ "$source_path_used" = "yes" ]; then
881
  echo "VPATH=$source_path" >> $config_mak
882
fi
883
echo "TARGET_DIRS=$target_list" >> $config_mak
884
if [ "$build_docs" = "yes" ] ; then
885
  echo "BUILD_DOCS=yes" >> $config_mak
886
fi
887

    
888
# XXX: suppress that
889
if [ "$bsd" = "yes" ] ; then
890
  echo "#define O_LARGEFILE 0" >> $config_h
891
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
892
  echo "#define _BSD 1" >> $config_h
893
fi
894

    
895
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
896

    
897
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
898

    
899
for target in $target_list; do
900
target_dir="$target"
901
config_mak=$target_dir/config.mak
902
config_h=$target_dir/config.h
903
target_cpu=`echo $target | cut -d '-' -f 1`
904
target_bigendian="no"
905
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
906
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
907
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
908
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
909
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
910
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
911
[ "$target_cpu" = "mips" ] && target_bigendian=yes
912
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
913
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
914
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
915
target_softmmu="no"
916
target_user_only="no"
917
target_linux_user="no"
918
target_darwin_user="no"
919
case "$target" in
920
  ${target_cpu}-softmmu)
921
    target_softmmu="yes"
922
    ;;
923
  ${target_cpu}-linux-user)
924
    target_user_only="yes"
925
    target_linux_user="yes"
926
    ;;
927
  ${target_cpu}-darwin-user)
928
    target_user_only="yes"
929
    target_darwin_user="yes"
930
    ;;
931
  *)
932
    echo "ERROR: Target '$target' not recognised"
933
    exit 1
934
    ;;
935
esac
936

    
937
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
938
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
939
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
940
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
941
    echo "Note that this will disable all output from the virtual graphics card."
942
    exit 1;
943
fi
944

    
945
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
946

    
947
test -f $config_h && mv $config_h ${config_h}~
948

    
949
mkdir -p $target_dir
950
mkdir -p $target_dir/fpu
951
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
952
  mkdir -p $target_dir/nwfpe
953
fi
954
if test "$target_user_only" = "no" ; then
955
  mkdir -p $target_dir/slirp
956
fi
957

    
958
#
959
# don't use ln -sf as not all "ln -sf" over write the file/link
960
#
961
rm -f $target_dir/Makefile
962
ln -s $source_path/Makefile.target $target_dir/Makefile
963

    
964

    
965
echo "# Automatically generated by configure - do not modify" > $config_mak
966
echo "/* Automatically generated by configure - do not modify */" > $config_h
967

    
968

    
969
echo "include ../config-host.mak" >> $config_mak
970
echo "#include \"../config-host.h\"" >> $config_h
971

    
972
bflt="no"
973
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
974
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
975

    
976
if test "$target_cpu" = "i386" ; then
977
  echo "TARGET_ARCH=i386" >> $config_mak
978
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
979
  echo "#define TARGET_I386 1" >> $config_h
980
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
981
    echo "#define USE_KQEMU 1" >> $config_h
982
  fi
983
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
984
  echo "TARGET_ARCH=arm" >> $config_mak
985
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
986
  echo "#define TARGET_ARM 1" >> $config_h
987
  bflt="yes"
988
elif test "$target_cpu" = "sparc" ; then
989
  echo "TARGET_ARCH=sparc" >> $config_mak
990
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
991
  echo "#define TARGET_SPARC 1" >> $config_h
992
elif test "$target_cpu" = "sparc64" ; then
993
  echo "TARGET_ARCH=sparc64" >> $config_mak
994
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
995
  echo "#define TARGET_SPARC 1" >> $config_h
996
  echo "#define TARGET_SPARC64 1" >> $config_h
997
elif test "$target_cpu" = "ppc" ; then
998
  echo "TARGET_ARCH=ppc" >> $config_mak
999
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1000
  echo "#define TARGET_PPC 1" >> $config_h
1001
elif test "$target_cpu" = "ppc64" ; then
1002
  echo "TARGET_ARCH=ppc64" >> $config_mak
1003
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1004
  echo "#define TARGET_PPC 1" >> $config_h
1005
  echo "#define TARGET_PPC64 1" >> $config_h
1006
elif test "$target_cpu" = "ppcemb" ; then
1007
  echo "TARGET_ARCH=ppcemb" >> $config_mak
1008
  echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1009
  echo "#define TARGET_PPC 1" >> $config_h
1010
  echo "#define TARGET_PPCEMB 1" >> $config_h
1011
elif test "$target_cpu" = "x86_64" ; then
1012
  echo "TARGET_ARCH=x86_64" >> $config_mak
1013
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1014
  echo "#define TARGET_I386 1" >> $config_h
1015
  echo "#define TARGET_X86_64 1" >> $config_h
1016
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1017
    echo "#define USE_KQEMU 1" >> $config_h
1018
  fi
1019
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1020
  echo "TARGET_ARCH=mips" >> $config_mak
1021
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
1022
  echo "#define TARGET_MIPS 1" >> $config_h
1023
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1024
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1025
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1026
  echo "TARGET_ARCH=mips64" >> $config_mak
1027
  echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1028
  echo "#define TARGET_MIPS 1" >> $config_h
1029
  echo "#define TARGET_MIPS64 1" >> $config_h
1030
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1031
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1032
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1033
  echo "TARGET_ARCH=sh4" >> $config_mak
1034
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1035
  echo "#define TARGET_SH4 1" >> $config_h
1036
  bflt="yes"
1037
elif test "$target_cpu" = "m68k" ; then
1038
  echo "TARGET_ARCH=m68k" >> $config_mak
1039
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1040
  echo "#define TARGET_M68K 1" >> $config_h
1041
  bflt="yes"
1042
elif test "$target_cpu" = "alpha" ; then
1043
  echo "TARGET_ARCH=alpha" >> $config_mak
1044
  echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1045
  echo "#define TARGET_ALPHA 1" >> $config_h
1046
else
1047
  echo "Unsupported target CPU"
1048
  exit 1
1049
fi
1050
if test "$target_bigendian" = "yes" ; then
1051
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1052
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1053
fi
1054
if test "$target_softmmu" = "yes" ; then
1055
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1056
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1057
fi
1058
if test "$target_user_only" = "yes" ; then
1059
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1060
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1061
fi
1062
if test "$target_linux_user" = "yes" ; then
1063
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1064
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1065
fi
1066
if test "$target_darwin_user" = "yes" ; then
1067
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1068
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1069
fi
1070

    
1071
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
1072
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1073
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1074
fi
1075
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1076
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1077
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1078
fi
1079
# sdl defines
1080

    
1081
if test "$target_user_only" = "no"; then
1082
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1083
        sdl1=$sdl_static
1084
    else
1085
        sdl1=$sdl
1086
    fi
1087
    if test "$sdl1" = "yes" ; then
1088
        echo "#define CONFIG_SDL 1" >> $config_h
1089
        echo "CONFIG_SDL=yes" >> $config_mak
1090
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1091
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1092
        else
1093
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1094
        fi
1095
        if [ "${aa}" = "yes" ] ; then
1096
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1097
        else
1098
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1099
        fi
1100
    fi
1101
fi
1102

    
1103
if test "$cocoa" = "yes" ; then
1104
    echo "#define CONFIG_COCOA 1" >> $config_h
1105
    echo "CONFIG_COCOA=yes" >> $config_mak
1106
fi
1107

    
1108
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1109

    
1110
done # for target in $targets
1111

    
1112
# build tree in object directory if source path is different from current one
1113
if test "$source_path_used" = "yes" ; then
1114
    DIRS="tests"
1115
    FILES="Makefile tests/Makefile"
1116
    for dir in $DIRS ; do
1117
            mkdir -p $dir
1118
    done
1119
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1120
    for f in $FILES ; do
1121
        rm -f $f
1122
        ln -s $source_path/$f $f
1123
    done
1124
fi
1125

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