Statistics
| Branch: | Revision:

root / configure @ c8c2227e

History | View | Annotate | Download (39.5 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.6 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
  x86_64|amd64)
39
    cpu="x86_64"
40
  ;;
41
  alpha)
42
    cpu="alpha"
43
  ;;
44
  armv*b)
45
    cpu="armv4b"
46
  ;;
47
  armv*l)
48
    cpu="armv4l"
49
  ;;
50
  cris)
51
    cpu="cris"
52
  ;;
53
  parisc|parisc64)
54
    cpu="hppa"
55
  ;;
56
  ia64)
57
    cpu="ia64"
58
  ;;
59
  m68k)
60
    cpu="m68k"
61
  ;;
62
  mips)
63
    cpu="mips"
64
  ;;
65
  mips64)
66
    cpu="mips64"
67
  ;;
68
  "Power Macintosh"|ppc|ppc64)
69
    cpu="powerpc"
70
  ;;
71
  s390*)
72
    cpu="s390"
73
  ;;
74
  sparc|sun4[cdmuv])
75
    cpu="sparc"
76
  ;;
77
  sparc64)
78
    cpu="sparc64"
79
  ;;
80
  *)
81
    cpu="unknown"
82
  ;;
83
esac
84
gprof="no"
85
bigendian="no"
86
mingw32="no"
87
EXESUF=""
88
gdbstub="yes"
89
slirp="yes"
90
adlib="no"
91
ac97="no"
92
gus="no"
93
cs4231a="no"
94
oss="no"
95
dsound="no"
96
coreaudio="no"
97
alsa="no"
98
esd="no"
99
fmod="no"
100
fmod_lib=""
101
fmod_inc=""
102
vnc_tls="yes"
103
bsd="no"
104
linux="no"
105
kqemu="no"
106
profiler="no"
107
cocoa="no"
108
check_gfx="yes"
109
check_gcc="yes"
110
softmmu="yes"
111
linux_user="no"
112
darwin_user="no"
113
build_docs="no"
114
uname_release=""
115
curses="yes"
116
nptl="yes"
117

    
118
# OS specific
119
targetos=`uname -s`
120
case $targetos in
121
CYGWIN*)
122
mingw32="yes"
123
OS_CFLAGS="-mno-cygwin"
124
if [ "$cpu" = "i386" ] ; then
125
    kqemu="yes"
126
fi
127
;;
128
MINGW32*)
129
mingw32="yes"
130
if [ "$cpu" = "i386" ] ; then
131
    kqemu="yes"
132
fi
133
;;
134
GNU/kFreeBSD)
135
oss="yes"
136
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
137
    kqemu="yes"
138
fi
139
;;
140
FreeBSD)
141
bsd="yes"
142
oss="yes"
143
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
144
    kqemu="yes"
145
fi
146
;;
147
NetBSD)
148
bsd="yes"
149
oss="yes"
150
;;
151
OpenBSD)
152
bsd="yes"
153
oss="yes"
154
;;
155
Darwin)
156
bsd="yes"
157
darwin="yes"
158
darwin_user="yes"
159
cocoa="yes"
160
coreaudio="yes"
161
OS_CFLAGS="-mdynamic-no-pic"
162
OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
163
;;
164
SunOS)
165
    solaris="yes"
166
    make="gmake"
167
    install="ginstall"
168
    needs_libsunmath="no"
169
    solarisrev=`uname -r | cut -f2 -d.`
170
    # have to select again, because `uname -m` returns i86pc
171
    # even on an x86_64 box.
172
    solariscpu=`isainfo -k`
173
    if test "${solariscpu}" = "amd64" ; then
174
        cpu="x86_64"
175
    fi
176
    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
177
        if test "$solarisrev" -le 9 ; then
178
            if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
179
                needs_libsunmath="yes"
180
            else
181
                echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
182
                echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
183
                echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
184
                echo "Studio 11 can be downloaded from www.sun.com."
185
                exit 1
186
            fi
187
        fi
188
        if test "$solarisrev" -ge 9 ; then
189
            kqemu="yes"
190
        fi
191
    fi
192
    if test -f /usr/include/sys/soundcard.h ; then
193
        oss=yes
194
    fi
195
;;
196
*)
197
oss="yes"
198
linux="yes"
199
linux_user="yes"
200
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
201
    kqemu="yes"
202
fi
203
;;
204
esac
205

    
206
if [ "$bsd" = "yes" ] ; then
207
  if [ "$darwin" != "yes" ] ; then
208
    make="gmake"
209
  fi
210
fi
211

    
212
# find source path
213
source_path=`dirname "$0"`
214
source_path_used="no"
215
workdir=`pwd`
216
if [ -z "$source_path" ]; then
217
    source_path=$workdir
218
else
219
    source_path=`cd "$source_path"; pwd`
220
fi
221
[ -f "$workdir/vl.c" ] || source_path_used="yes"
222

    
223
werror="no"
224
# generate compile errors on warnings for development builds
225
#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
226
#werror="yes";
227
#fi
228

    
229
for opt do
230
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
231
  case "$opt" in
232
  --help|-h) show_help=yes
233
  ;;
234
  --prefix=*) prefix="$optarg"
235
  ;;
236
  --interp-prefix=*) interp_prefix="$optarg"
237
  ;;
238
  --source-path=*) source_path="$optarg"
239
  source_path_used="yes"
240
  ;;
241
  --cross-prefix=*) cross_prefix="$optarg"
242
  ;;
243
  --cc=*) cc="$optarg"
244
  gcc3_search="no"
245
  ;;
246
  --host-cc=*) host_cc="$optarg"
247
  ;;
248
  --make=*) make="$optarg"
249
  ;;
250
  --install=*) install="$optarg"
251
  ;;
252
  --extra-cflags=*) CFLAGS="$optarg"
253
  ;;
254
  --extra-ldflags=*) LDFLAGS="$optarg"
255
  ;;
256
  --cpu=*) cpu="$optarg"
257
  ;;
258
  --target-list=*) target_list="$optarg"
259
  ;;
260
  --enable-gprof) gprof="yes"
261
  ;;
262
  --static) static="yes"
263
  ;;
264
  --disable-sdl) sdl="no"
265
  ;;
266
  --enable-coreaudio) coreaudio="yes"
267
  ;;
268
  --enable-alsa) alsa="yes"
269
  ;;
270
  --enable-esd) esd="yes"
271
  ;;
272
  --enable-dsound) dsound="yes"
273
  ;;
274
  --enable-fmod) fmod="yes"
275
  ;;
276
  --fmod-lib=*) fmod_lib="$optarg"
277
  ;;
278
  --fmod-inc=*) fmod_inc="$optarg"
279
  ;;
280
  --disable-vnc-tls) vnc_tls="no"
281
  ;;
282
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
283
  ;;
284
  --disable-slirp) slirp="no"
285
  ;;
286
  --enable-adlib) adlib="yes"
287
  ;;
288
  --enable-ac97) ac97="yes"
289
  ;;
290
  --enable-gus) gus="yes"
291
  ;;
292
  --enable-cs4231a) cs4231a="yes"
293
  ;;
294
  --disable-kqemu) kqemu="no"
295
  ;;
296
  --disable-brlapi) brlapi="no"
297
  ;;
298
  --enable-profiler) profiler="yes"
299
  ;;
300
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
301
  ;;
302
  --disable-gfx-check) check_gfx="no"
303
  ;;
304
  --disable-gcc-check) check_gcc="no"
305
  ;;
306
  --disable-system) softmmu="no"
307
  ;;
308
  --enable-system) softmmu="yes"
309
  ;;
310
  --disable-linux-user) linux_user="no"
311
  ;;
312
  --enable-linux-user) linux_user="yes"
313
  ;;
314
  --disable-darwin-user) darwin_user="no"
315
  ;;
316
  --enable-darwin-user) darwin_user="yes"
317
  ;;
318
  --enable-uname-release=*) uname_release="$optarg"
319
  ;;
320
  --sparc_cpu=*)
321
      sparc_cpu="$optarg"
322
      case $sparc_cpu in
323
        v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
324
                 target_cpu="sparc"; cpu="sparc" ;;
325
        v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
326
                 target_cpu="sparc"; cpu="sparc" ;;
327
        v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
328
                 target_cpu="sparc64"; cpu="sparc64" ;;
329
        *)     echo "undefined SPARC architecture. Exiting";exit 1;;
330
      esac
331
  ;;
332
  --enable-werror) werror="yes"
333
  ;;
334
  --disable-werror) werror="no"
335
  ;;
336
  --disable-curses) curses="no"
337
  ;;
338
  --disable-nptl) nptl="no"
339
  ;;
340
  *) echo "ERROR: unknown option $opt"; show_help="yes"
341
  ;;
342
  esac
343
done
344

    
345
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
346
    AIOLIBS=
347
else
348
    # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
349
    AIOLIBS="-lrt -lpthread"
350
fi
351

    
352
# default flags for all hosts
353
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
354
LDFLAGS="$LDFLAGS -g"
355
if test "$werror" = "yes" ; then
356
CFLAGS="$CFLAGS -Werror"
357
fi
358

    
359
#
360
# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
361
# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
362
#
363
case "$cpu" in
364
    sparc) if test -z "$sparc_cpu" ; then
365
               ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
366
               ARCH_LDFLAGS="-m32"
367
           else
368
               ARCH_CFLAGS="${SP_CFLAGS}"
369
               ARCH_LDFLAGS="${SP_LDFLAGS}"
370
           fi
371
           ;;
372
    sparc64) if test -z "$sparc_cpu" ; then
373
               ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
374
               ARCH_LDFLAGS="-m64"
375
           else
376
               ARCH_CFLAGS="${SP_CFLAGS}"
377
               ARCH_LDFLAGS="${SP_LDFLAGS}"
378
           fi
379
           ;;
380
    s390)
381
           ARCH_CFLAGS="-march=z900"
382
           ;;
383
    i386)
384
           ARCH_CFLAGS="-m32"
385
           ARCH_LDFLAGS="-m32"
386
           ;;
387
    x86_64)
388
           ARCH_CFLAGS="-m64"
389
           ARCH_LDFLAGS="-m64"
390
           ;;
391
esac
392

    
393
if test x"$show_help" = x"yes" ; then
394
cat << EOF
395

    
396
Usage: configure [options]
397
Options: [defaults in brackets after descriptions]
398

    
399
EOF
400
echo "Standard options:"
401
echo "  --help                   print this message"
402
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
403
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
404
echo "                           use %M for cpu name [$interp_prefix]"
405
echo "  --target-list=LIST       set target list [$target_list]"
406
echo ""
407
echo "kqemu kernel acceleration support:"
408
echo "  --disable-kqemu          disable kqemu support"
409
echo ""
410
echo "Advanced options (experts only):"
411
echo "  --source-path=PATH       path of source code [$source_path]"
412
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
413
echo "  --cc=CC                  use C compiler CC [$cc]"
414
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
415
echo "  --make=MAKE              use specified make [$make]"
416
echo "  --install=INSTALL        use specified install [$install]"
417
echo "  --static                 enable static build [$static]"
418
echo "  --disable-werror         disable compilation abort on warning"
419
echo "  --disable-sdl            disable SDL"
420
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
421
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
422
echo "  --enable-adlib           enable Adlib emulation"
423
echo "  --enable-ac97            enable AC97 emulation"
424
echo "  --enable-gus             enable Gravis Ultrasound emulation"
425
echo "  --enable-cs4231a         enable CS4231A emulation"
426
echo "  --enable-coreaudio       enable Coreaudio audio driver"
427
echo "  --enable-alsa            enable ALSA audio driver"
428
echo "  --enable-esd             enable EsoundD audio driver"
429
echo "  --enable-fmod            enable FMOD audio driver"
430
echo "  --enable-dsound          enable DirectSound audio driver"
431
echo "  --disable-brlapi         disable BrlAPI"
432
echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
433
echo "  --disable-curses         disable curses output"
434
echo "  --disable-nptl           disable usermode NPTL support"
435
echo "  --enable-system          enable all system emulation targets"
436
echo "  --disable-system         disable all system emulation targets"
437
echo "  --enable-linux-user      enable all linux usermode emulation targets"
438
echo "  --disable-linux-user     disable all linux usermode emulation targets"
439
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
440
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
441
echo "  --fmod-lib               path to FMOD library"
442
echo "  --fmod-inc               path to FMOD includes"
443
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
444
echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
445
echo ""
446
echo "NOTE: The object files are built at the place where configure is launched"
447
exit 1
448
fi
449

    
450
cc="${cross_prefix}${cc}"
451
ar="${cross_prefix}${ar}"
452
strip="${cross_prefix}${strip}"
453

    
454
# check that the C compiler works.
455
cat > $TMPC <<EOF
456
int main(void) {}
457
EOF
458

    
459
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
460
  : C compiler works ok
461
else
462
    echo "ERROR: \"$cc\" either does not exist or does not work"
463
    exit 1
464
fi
465

    
466
if test "$mingw32" = "yes" ; then
467
    linux="no"
468
    EXESUF=".exe"
469
    oss="no"
470
fi
471

    
472
# Check for gcc4, error if pre-gcc4
473
if test "$check_gcc" = "yes" ; then
474
    cat > $TMPC <<EOF
475
#if __GNUC__ < 4
476
#error gcc3
477
#endif
478
int main(){return 0;}
479
EOF
480
    if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
481
	echo "WARNING: \"$cc\" looks like gcc 4.x"
482
	found_compat_cc="no"
483
	if test "$gcc3_search" = "yes" ; then
484
	    echo "Looking for gcc 3.x"
485
	    for compat_cc in $gcc3_list ; do
486
		if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
487
		    echo "Found \"$compat_cc\""
488
		    cc="$cross_prefix$compat_cc"
489
		    found_compat_cc="yes"
490
		    break
491
		fi
492
	    done
493
	    if test "$found_compat_cc" = "no" ; then
494
		echo "gcc 3.x not found!"
495
	    fi
496
	fi
497
	if test "$found_compat_cc" = "no" ; then
498
	    echo "QEMU is known to have problems when compiled with gcc 4.x"
499
	    echo "It is recommended that you use gcc 3.x to build QEMU"
500
	    echo "To use this compiler anyway, configure with --disable-gcc-check"
501
	    exit 1;
502
	fi
503
    fi
504
fi
505

    
506
#
507
# Solaris specific configure tool chain decisions
508
#
509
if test "$solaris" = "yes" ; then
510
  #
511
  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
512
  # override the check with --disable-gcc-check
513
  #
514
  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
515
    solgcc=`which $cc`
516
    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
517
      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
518
      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
519
      echo "or get the latest patch from SunSolve for gcc"
520
      exit 1
521
    fi
522
  fi
523
  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
524
  if test -z "$solinst" ; then
525
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
526
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
527
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
528
    exit 1
529
  fi
530
  if test "$solinst" = "/usr/sbin/install" ; then
531
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
532
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
533
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
534
    exit 1
535
  fi
536
  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
537
  if test -z "$sol_ar" ; then
538
    echo "Error: No path includes ar"
539
    if test -f /usr/ccs/bin/ar ; then
540
      echo "Add /usr/ccs/bin to your path and rerun configure"
541
    fi
542
    exit 1
543
  fi
544
fi
545

    
546

    
547
if test -z "$target_list" ; then
548
# these targets are portable
549
    if [ "$softmmu" = "yes" ] ; then
550
        target_list="\
551
i386-softmmu \
552
x86_64-softmmu \
553
arm-softmmu \
554
cris-softmmu \
555
m68k-softmmu \
556
mips-softmmu \
557
mipsel-softmmu \
558
mips64-softmmu \
559
mips64el-softmmu \
560
ppc-softmmu \
561
ppcemb-softmmu \
562
ppc64-softmmu \
563
sh4-softmmu \
564
sh4eb-softmmu \
565
sparc-softmmu \
566
"
567
    fi
568
# the following are Linux specific
569
    if [ "$linux_user" = "yes" ] ; then
570
        target_list="${target_list}\
571
i386-linux-user \
572
x86_64-linux-user \
573
alpha-linux-user \
574
arm-linux-user \
575
armeb-linux-user \
576
cris-linux-user \
577
m68k-linux-user \
578
mips-linux-user \
579
mipsel-linux-user \
580
ppc-linux-user \
581
ppc64-linux-user \
582
ppc64abi32-linux-user \
583
sh4-linux-user \
584
sh4eb-linux-user \
585
sparc-linux-user \
586
sparc64-linux-user \
587
sparc32plus-linux-user \
588
"
589
    fi
590
# the following are Darwin specific
591
    if [ "$darwin_user" = "yes" ] ; then
592
        target_list="$target_list i386-darwin-user ppc-darwin-user"
593
    fi
594
else
595
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
596
fi
597
if test -z "$target_list" ; then
598
    echo "No targets enabled"
599
    exit 1
600
fi
601

    
602
if test -z "$cross_prefix" ; then
603

    
604
# ---
605
# big/little endian test
606
cat > $TMPC << EOF
607
#include <inttypes.h>
608
int main(int argc, char ** argv){
609
        volatile uint32_t i=0x01234567;
610
        return (*((uint8_t*)(&i))) == 0x67;
611
}
612
EOF
613

    
614
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
615
$TMPE && bigendian="yes"
616
else
617
echo big/little test failed
618
fi
619

    
620
else
621

    
622
# if cross compiling, cannot launch a program, so make a static guess
623
if test "$cpu" = "armv4b" \
624
     -o "$cpu" = "hppa" \
625
     -o "$cpu" = "m68k" \
626
     -o "$cpu" = "mips" \
627
     -o "$cpu" = "mips64" \
628
     -o "$cpu" = "powerpc" \
629
     -o "$cpu" = "s390" \
630
     -o "$cpu" = "sparc" \
631
     -o "$cpu" = "sparc64"; then
632
    bigendian="yes"
633
fi
634

    
635
fi
636

    
637
# host long bits test
638
hostlongbits="32"
639
if test "$cpu" = "x86_64" \
640
     -o "$cpu" = "alpha" \
641
     -o "$cpu" = "ia64" \
642
     -o "$cpu" = "sparc64"; then
643
    hostlongbits="64"
644
fi
645

    
646
# check gcc options support
647
cat > $TMPC <<EOF
648
int main(void) {
649
}
650
EOF
651

    
652
# Check host NPTL support
653
cat > $TMPC <<EOF
654
#include <sched.h>
655
#include <linux/futex.h>
656
void foo()
657
{
658
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
659
#error bork
660
#endif
661
}
662
EOF
663

    
664
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
665
  :
666
else
667
   nptl="no"
668
fi
669

    
670
##########################################
671
# SDL probe
672

    
673
sdl_too_old=no
674

    
675
if test -z "$sdl" ; then
676
    sdl_config="sdl-config"
677
    sdl=no
678
    sdl_static=no
679

    
680
    if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
681
    # win32 cross compilation case
682
        sdl_config="i386-mingw32msvc-sdl-config"
683
        sdl=yes
684
    else
685
        # normal SDL probe
686
cat > $TMPC << EOF
687
#include <SDL.h>
688
#undef main /* We don't want SDL to override our main() */
689
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
690
EOF
691
        if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
692
            _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
693
            if test "$_sdlversion" -lt 121 ; then
694
                sdl_too_old=yes
695
            else
696
                if test "$cocoa" = "no" ; then
697
                    sdl=yes
698
                fi
699
            fi
700

    
701
            # static link with sdl ?
702
            if test "$sdl" = "yes" ; then
703
                aa="no"
704
                `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
705
                sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
706
                if [ "$aa" = "yes" ] ; then
707
                    sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
708
                fi
709

    
710
                if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
711
                    sdl_static=yes
712
                fi
713
            fi # static link
714
        fi # sdl compile test
715
    fi # cross compilation
716
else
717
    # Make sure to disable cocoa if sdl was set
718
    if test "$sdl" = "yes" ; then
719
       cocoa="no"
720
       coreaudio="no"
721
    fi
722
fi # -z $sdl
723

    
724
##########################################
725
# VNC TLS detection
726
if test "$vnc_tls" = "yes" ; then
727
  `pkg-config gnutls` || vnc_tls="no"
728
fi
729
if test "$vnc_tls" = "yes" ; then
730
  vnc_tls_cflags=`pkg-config --cflags gnutls`
731
  vnc_tls_libs=`pkg-config --libs gnutls`
732
fi
733

    
734
##########################################
735
# alsa sound support libraries
736

    
737
if test "$alsa" = "yes" ; then
738
  cat > $TMPC << EOF
739
#include <alsa/asoundlib.h>
740
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
741
EOF
742
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
743
    :
744
  else
745
    echo
746
    echo "Error: Could not find alsa"
747
    echo "Make sure to have the alsa libs and headers installed."
748
    echo
749
    exit 1
750
  fi
751
fi
752

    
753
##########################################
754
# BrlAPI probe
755

    
756
if test -z "$brlapi" ; then
757
    brlapi=no
758
cat > $TMPC << EOF
759
#include <brlapi.h>
760
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
761
EOF
762
    if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
763
	    brlapi=yes
764
    fi # brlapi compile test
765
fi # -z $brlapi
766

    
767
##########################################
768
# curses probe
769

    
770
if test "$curses" = "yes" ; then
771
  curses=no
772
  cat > $TMPC << EOF
773
#include <curses.h>
774
int main(void) { return curses_version(); }
775
EOF
776
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
777
    curses=yes
778
  fi
779
fi # test "$curses"
780

    
781
# Check if tools are available to build documentation.
782
if [ -x "`which texi2html 2>/dev/null`" ] && \
783
   [ -x "`which pod2man 2>/dev/null`" ]; then
784
  build_docs="yes"
785
fi
786

    
787
if test "$mingw32" = "yes" ; then
788
  if test -z "$prefix" ; then
789
      prefix="/c/Program Files/Qemu"
790
  fi
791
  mansuffix=""
792
  datasuffix=""
793
  docsuffix=""
794
  binsuffix=""
795
else
796
  if test -z "$prefix" ; then
797
      prefix="/usr/local"
798
  fi
799
  mansuffix="/share/man"
800
  datasuffix="/share/qemu"
801
  docsuffix="/share/doc/qemu"
802
  binsuffix="/bin"
803
fi
804

    
805
echo "Install prefix    $prefix"
806
echo "BIOS directory    $prefix$datasuffix"
807
echo "binary directory  $prefix$binsuffix"
808
if test "$mingw32" = "no" ; then
809
echo "Manual directory  $prefix$mansuffix"
810
echo "ELF interp prefix $interp_prefix"
811
fi
812
echo "Source path       $source_path"
813
echo "C compiler        $cc"
814
echo "Host C compiler   $host_cc"
815
echo "ARCH_CFLAGS       $ARCH_CFLAGS"
816
echo "make              $make"
817
echo "install           $install"
818
echo "host CPU          $cpu"
819
echo "host big endian   $bigendian"
820
echo "target list       $target_list"
821
echo "gprof enabled     $gprof"
822
echo "profiler          $profiler"
823
echo "static build      $static"
824
echo "-Werror enabled   $werror"
825
if test "$darwin" = "yes" ; then
826
    echo "Cocoa support     $cocoa"
827
fi
828
echo "SDL support       $sdl"
829
if test "$sdl" != "no" ; then
830
    echo "SDL static link   $sdl_static"
831
fi
832
echo "curses support    $curses"
833
echo "mingw32 support   $mingw32"
834
echo "Adlib support     $adlib"
835
echo "AC97 support      $ac97"
836
echo "GUS support       $gus"
837
echo "CS4231A support   $cs4231a"
838
echo "CoreAudio support $coreaudio"
839
echo "ALSA support      $alsa"
840
echo "EsounD support    $esd"
841
echo "DSound support    $dsound"
842
if test "$fmod" = "yes"; then
843
    if test -z $fmod_lib || test -z $fmod_inc; then
844
        echo
845
        echo "Error: You must specify path to FMOD library and headers"
846
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
847
        echo
848
        exit 1
849
    fi
850
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
851
else
852
    fmod_support=""
853
fi
854
echo "FMOD support      $fmod $fmod_support"
855
echo "OSS support       $oss"
856
echo "VNC TLS support   $vnc_tls"
857
if test "$vnc_tls" = "yes" ; then
858
    echo "    TLS CFLAGS    $vnc_tls_cflags"
859
    echo "    TLS LIBS      $vnc_tls_libs"
860
fi
861
if test -n "$sparc_cpu"; then
862
    echo "Target Sparc Arch $sparc_cpu"
863
fi
864
echo "kqemu support     $kqemu"
865
echo "brlapi support    $brlapi"
866
echo "Documentation     $build_docs"
867
[ ! -z "$uname_release" ] && \
868
echo "uname -r          $uname_release"
869
echo "NPTL support      $nptl"
870

    
871
if test $sdl_too_old = "yes"; then
872
echo "-> Your SDL version is too old - please upgrade to have SDL support"
873
fi
874
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
875
  echo "The error log from compiling the libSDL test is: "
876
  cat /tmp/qemu-$$-sdl-config.log
877
fi
878
rm -f /tmp/qemu-$$-sdl-config.log
879
#if test "$sdl_static" = "no"; then
880
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
881
#fi
882
config_mak="config-host.mak"
883
config_h="config-host.h"
884

    
885
#echo "Creating $config_mak and $config_h"
886

    
887
test -f $config_h && mv $config_h ${config_h}~
888

    
889
echo "# Automatically generated by configure - do not modify" > $config_mak
890
echo "# Configured with: $0 $@" >> $config_mak
891
echo "/* Automatically generated by configure - do not modify */" > $config_h
892

    
893
echo "prefix=$prefix" >> $config_mak
894
echo "bindir=\${prefix}$binsuffix" >> $config_mak
895
echo "mandir=\${prefix}$mansuffix" >> $config_mak
896
echo "datadir=\${prefix}$datasuffix" >> $config_mak
897
echo "docdir=\${prefix}$docsuffix" >> $config_mak
898
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
899
echo "MAKE=$make" >> $config_mak
900
echo "INSTALL=$install" >> $config_mak
901
echo "CC=$cc" >> $config_mak
902
echo "HOST_CC=$host_cc" >> $config_mak
903
echo "AR=$ar" >> $config_mak
904
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
905
# XXX: only use CFLAGS and LDFLAGS ?  
906
# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
907
# compilation of dyngen tool (useful for win32 build on Linux host)
908
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
909
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
910
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
911
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
912
echo "CFLAGS=$CFLAGS" >> $config_mak
913
echo "LDFLAGS=$LDFLAGS" >> $config_mak
914
echo "EXESUF=$EXESUF" >> $config_mak
915
echo "AIOLIBS=$AIOLIBS" >> $config_mak
916
case "$cpu" in
917
  i386)
918
    echo "ARCH=i386" >> $config_mak
919
    echo "#define HOST_I386 1" >> $config_h
920
  ;;
921
  x86_64)
922
    echo "ARCH=x86_64" >> $config_mak
923
    echo "#define HOST_X86_64 1" >> $config_h
924
  ;;
925
  alpha)
926
    echo "ARCH=alpha" >> $config_mak
927
    echo "#define HOST_ALPHA 1" >> $config_h
928
  ;;
929
  armv4b)
930
    echo "ARCH=arm" >> $config_mak
931
    echo "#define HOST_ARM 1" >> $config_h
932
  ;;
933
  armv4l)
934
    echo "ARCH=arm" >> $config_mak
935
    echo "#define HOST_ARM 1" >> $config_h
936
  ;;
937
  cris)
938
    echo "ARCH=cris" >> $config_mak
939
    echo "#define HOST_CRIS 1" >> $config_h
940
  ;;
941
  hppa)
942
    echo "ARCH=hppa" >> $config_mak
943
    echo "#define HOST_HPPA 1" >> $config_h
944
  ;;
945
  ia64)
946
    echo "ARCH=ia64" >> $config_mak
947
    echo "#define HOST_IA64 1" >> $config_h
948
  ;;
949
  m68k)
950
    echo "ARCH=m68k" >> $config_mak
951
    echo "#define HOST_M68K 1" >> $config_h
952
  ;;
953
  mips)
954
    echo "ARCH=mips" >> $config_mak
955
    echo "#define HOST_MIPS 1" >> $config_h
956
  ;;
957
  mips64)
958
    echo "ARCH=mips64" >> $config_mak
959
    echo "#define HOST_MIPS64 1" >> $config_h
960
  ;;
961
  powerpc)
962
    echo "ARCH=ppc" >> $config_mak
963
    echo "#define HOST_PPC 1" >> $config_h
964
  ;;
965
  s390)
966
    echo "ARCH=s390" >> $config_mak
967
    echo "#define HOST_S390 1" >> $config_h
968
  ;;
969
  sparc)
970
    echo "ARCH=sparc" >> $config_mak
971
    echo "#define HOST_SPARC 1" >> $config_h
972
  ;;
973
  sparc64)
974
    echo "ARCH=sparc64" >> $config_mak
975
    echo "#define HOST_SPARC64 1" >> $config_h
976
  ;;
977
  *)
978
    echo "Unsupported CPU = $cpu"
979
    exit 1
980
  ;;
981
esac
982
if test "$bigendian" = "yes" ; then
983
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
984
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
985
fi
986
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
987
if test "$mingw32" = "yes" ; then
988
  echo "CONFIG_WIN32=yes" >> $config_mak
989
  echo "#define CONFIG_WIN32 1" >> $config_h
990
else
991
  cat > $TMPC << EOF
992
#include <byteswap.h>
993
int main(void) { return bswap_32(0); }
994
EOF
995
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
996
    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
997
  fi
998
fi
999
if test "$darwin" = "yes" ; then
1000
  echo "CONFIG_DARWIN=yes" >> $config_mak
1001
  echo "#define CONFIG_DARWIN 1" >> $config_h
1002
fi
1003
if test "$solaris" = "yes" ; then
1004
  echo "CONFIG_SOLARIS=yes" >> $config_mak
1005
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
1006
  if test "$needs_libsunmath" = "yes" ; then
1007
    echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1008
    echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1009
  fi
1010
fi
1011
if test -n "$sparc_cpu"; then
1012
  echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1013
  echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1014
fi
1015
if test "$gdbstub" = "yes" ; then
1016
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
1017
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
1018
fi
1019
if test "$gprof" = "yes" ; then
1020
  echo "TARGET_GPROF=yes" >> $config_mak
1021
  echo "#define HAVE_GPROF 1" >> $config_h
1022
fi
1023
if test "$static" = "yes" ; then
1024
  echo "CONFIG_STATIC=yes" >> $config_mak
1025
  echo "#define CONFIG_STATIC 1" >> $config_h
1026
fi
1027
if test $profiler = "yes" ; then
1028
  echo "#define CONFIG_PROFILER 1" >> $config_h
1029
fi
1030
if test "$slirp" = "yes" ; then
1031
  echo "CONFIG_SLIRP=yes" >> $config_mak
1032
  echo "#define CONFIG_SLIRP 1" >> $config_h
1033
fi
1034
if test "$adlib" = "yes" ; then
1035
  echo "CONFIG_ADLIB=yes" >> $config_mak
1036
  echo "#define CONFIG_ADLIB 1" >> $config_h
1037
fi
1038
if test "$ac97" = "yes" ; then
1039
  echo "CONFIG_AC97=yes" >> $config_mak
1040
  echo "#define CONFIG_AC97 1" >> $config_h
1041
fi
1042
if test "$gus" = "yes" ; then
1043
  echo "CONFIG_GUS=yes" >> $config_mak
1044
  echo "#define CONFIG_GUS 1" >> $config_h
1045
fi
1046
if test "$cs4231a" = "yes" ; then
1047
  echo "CONFIG_CS4231A=yes" >> $config_mak
1048
  echo "#define CONFIG_CS4231A 1" >> $config_h
1049
fi
1050
if test "$oss" = "yes" ; then
1051
  echo "CONFIG_OSS=yes" >> $config_mak
1052
  echo "#define CONFIG_OSS 1" >> $config_h
1053
fi
1054
if test "$coreaudio" = "yes" ; then
1055
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
1056
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
1057
fi
1058
if test "$alsa" = "yes" ; then
1059
  echo "CONFIG_ALSA=yes" >> $config_mak
1060
  echo "#define CONFIG_ALSA 1" >> $config_h
1061
fi
1062
if test "$esd" = "yes" ; then
1063
  echo "CONFIG_ESD=yes" >> $config_mak
1064
  echo "#define CONFIG_ESD 1" >> $config_h
1065
fi
1066
if test "$dsound" = "yes" ; then
1067
  echo "CONFIG_DSOUND=yes" >> $config_mak
1068
  echo "#define CONFIG_DSOUND 1" >> $config_h
1069
fi
1070
if test "$fmod" = "yes" ; then
1071
  echo "CONFIG_FMOD=yes" >> $config_mak
1072
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1073
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1074
  echo "#define CONFIG_FMOD 1" >> $config_h
1075
fi
1076
if test "$vnc_tls" = "yes" ; then
1077
  echo "CONFIG_VNC_TLS=yes" >> $config_mak
1078
  echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1079
  echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1080
  echo "#define CONFIG_VNC_TLS 1" >> $config_h
1081
fi
1082
qemu_version=`head $source_path/VERSION`
1083
echo "VERSION=$qemu_version" >>$config_mak
1084
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1085

    
1086
echo "SRC_PATH=$source_path" >> $config_mak
1087
if [ "$source_path_used" = "yes" ]; then
1088
  echo "VPATH=$source_path" >> $config_mak
1089
fi
1090
echo "TARGET_DIRS=$target_list" >> $config_mak
1091
if [ "$build_docs" = "yes" ] ; then
1092
  echo "BUILD_DOCS=yes" >> $config_mak
1093
fi
1094
if test "$static" = "yes"; then
1095
  sdl1=$sdl_static
1096
else
1097
  sdl1=$sdl
1098
fi
1099
if test "$sdl1" = "yes" ; then
1100
  echo "#define CONFIG_SDL 1" >> $config_h
1101
  echo "CONFIG_SDL=yes" >> $config_mak
1102
  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1103
    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1104
  else
1105
    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1106
  fi
1107
  if [ "${aa}" = "yes" ] ; then
1108
    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1109
  else
1110
    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1111
  fi
1112
fi
1113
if test "$cocoa" = "yes" ; then
1114
  echo "#define CONFIG_COCOA 1" >> $config_h
1115
  echo "CONFIG_COCOA=yes" >> $config_mak
1116
fi
1117
if test "$curses" = "yes" ; then
1118
  echo "#define CONFIG_CURSES 1" >> $config_h
1119
  echo "CONFIG_CURSES=yes" >> $config_mak
1120
  echo "CURSES_LIBS=-lcurses" >> $config_mak
1121
fi
1122
if test "$brlapi" = "yes" ; then
1123
  echo "CONFIG_BRLAPI=yes" >> $config_mak
1124
  echo "#define CONFIG_BRLAPI 1" >> $config_h
1125
  echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1126
fi
1127

    
1128
# XXX: suppress that
1129
if [ "$bsd" = "yes" ] ; then
1130
  echo "#define O_LARGEFILE 0" >> $config_h
1131
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1132
  echo "#define _BSD 1" >> $config_h
1133
fi
1134

    
1135
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1136

    
1137
tools=
1138
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1139
  tools="qemu-img\$(EXESUF) $tools"
1140
  if [ "$linux" = "yes" ] ; then
1141
      tools="qemu-nbd\$(EXESUF) $tools"
1142
  fi
1143
fi
1144
echo "TOOLS=$tools" >> $config_mak
1145

    
1146
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1147

    
1148
for target in $target_list; do
1149
target_dir="$target"
1150
config_mak=$target_dir/config.mak
1151
config_h=$target_dir/config.h
1152
target_cpu=`echo $target | cut -d '-' -f 1`
1153
target_bigendian="no"
1154
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1155
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1156
[ "$target_cpu" = "mips" ] && target_bigendian=yes
1157
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1158
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1159
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1160
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1161
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1162
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1163
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1164
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1165
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1166
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1167
target_softmmu="no"
1168
target_user_only="no"
1169
target_linux_user="no"
1170
target_darwin_user="no"
1171
case "$target" in
1172
  ${target_cpu}-softmmu)
1173
    target_softmmu="yes"
1174
    ;;
1175
  ${target_cpu}-linux-user)
1176
    target_user_only="yes"
1177
    target_linux_user="yes"
1178
    ;;
1179
  ${target_cpu}-darwin-user)
1180
    target_user_only="yes"
1181
    target_darwin_user="yes"
1182
    ;;
1183
  *)
1184
    echo "ERROR: Target '$target' not recognised"
1185
    exit 1
1186
    ;;
1187
esac
1188

    
1189
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1190
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1191
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1192
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
1193
    echo "Note that this will disable all output from the virtual graphics card"
1194
    echo "except through VNC or curses."
1195
    exit 1;
1196
fi
1197

    
1198
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1199

    
1200
test -f $config_h && mv $config_h ${config_h}~
1201

    
1202
mkdir -p $target_dir
1203
mkdir -p $target_dir/fpu
1204
mkdir -p $target_dir/tcg
1205
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1206
  mkdir -p $target_dir/nwfpe
1207
fi
1208

    
1209
#
1210
# don't use ln -sf as not all "ln -sf" over write the file/link
1211
#
1212
rm -f $target_dir/Makefile
1213
ln -s $source_path/Makefile.target $target_dir/Makefile
1214

    
1215

    
1216
echo "# Automatically generated by configure - do not modify" > $config_mak
1217
echo "/* Automatically generated by configure - do not modify */" > $config_h
1218

    
1219

    
1220
echo "include ../config-host.mak" >> $config_mak
1221
echo "#include \"../config-host.h\"" >> $config_h
1222

    
1223
bflt="no"
1224
elfload32="no"
1225
target_nptl="no"
1226
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1227
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1228

    
1229
case "$target_cpu" in
1230
  i386)
1231
    echo "TARGET_ARCH=i386" >> $config_mak
1232
    echo "#define TARGET_ARCH \"i386\"" >> $config_h
1233
    echo "#define TARGET_I386 1" >> $config_h
1234
    if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1235
    then
1236
      echo "#define USE_KQEMU 1" >> $config_h
1237
    fi
1238
    gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
1239
    if test -n "$gcc3minver" && test $gcc3minver -gt 3
1240
    then
1241
      echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1242
    else
1243
      echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1244
    fi
1245
  ;;
1246
  x86_64)
1247
    echo "TARGET_ARCH=x86_64" >> $config_mak
1248
    echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1249
    echo "#define TARGET_I386 1" >> $config_h
1250
    echo "#define TARGET_X86_64 1" >> $config_h
1251
    if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1252
    then
1253
      echo "#define USE_KQEMU 1" >> $config_h
1254
    fi
1255
  ;;
1256
  alpha)
1257
    echo "TARGET_ARCH=alpha" >> $config_mak
1258
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1259
    echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1260
    echo "#define TARGET_ALPHA 1" >> $config_h
1261
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1262
  ;;
1263
  arm|armeb)
1264
    echo "TARGET_ARCH=arm" >> $config_mak
1265
    echo "#define TARGET_ARCH \"arm\"" >> $config_h
1266
    echo "#define TARGET_ARM 1" >> $config_h
1267
    bflt="yes"
1268
    target_nptl="yes"
1269
  ;;
1270
  cris)
1271
    echo "TARGET_ARCH=cris" >> $config_mak
1272
    echo "#define TARGET_ARCH \"cris\"" >> $config_h
1273
    echo "#define TARGET_CRIS 1" >> $config_h
1274
  ;;
1275
  m68k)
1276
    echo "TARGET_ARCH=m68k" >> $config_mak
1277
    echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1278
    echo "#define TARGET_M68K 1" >> $config_h
1279
    bflt="yes"
1280
  ;;
1281
  mips|mipsel)
1282
    echo "TARGET_ARCH=mips" >> $config_mak
1283
    echo "#define TARGET_ARCH \"mips\"" >> $config_h
1284
    echo "#define TARGET_MIPS 1" >> $config_h
1285
    echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1286
  ;;
1287
  mipsn32|mipsn32el)
1288
    echo "TARGET_ARCH=mipsn32" >> $config_mak
1289
    echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1290
    echo "#define TARGET_MIPS 1" >> $config_h
1291
    echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1292
  ;;
1293
  mips64|mips64el)
1294
    echo "TARGET_ARCH=mips64" >> $config_mak
1295
    echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1296
    echo "#define TARGET_MIPS 1" >> $config_h
1297
    echo "#define TARGET_MIPS64 1" >> $config_h
1298
    echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1299
  ;;
1300
  ppc)
1301
    echo "TARGET_ARCH=ppc" >> $config_mak
1302
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1303
    echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1304
    echo "#define TARGET_PPC 1" >> $config_h
1305
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1306
  ;;
1307
  ppcemb)
1308
    echo "TARGET_ARCH=ppcemb" >> $config_mak
1309
    echo "TARGET_ABI_DIR=ppc" >> $config_mak
1310
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1311
    echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1312
    echo "#define TARGET_PPC 1" >> $config_h
1313
    echo "#define TARGET_PPCEMB 1" >> $config_h
1314
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1315
  ;;
1316
  ppc64)
1317
    echo "TARGET_ARCH=ppc64" >> $config_mak
1318
    echo "TARGET_ABI_DIR=ppc" >> $config_mak
1319
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1320
    echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1321
    echo "#define TARGET_PPC 1" >> $config_h
1322
    echo "#define TARGET_PPC64 1" >> $config_h
1323
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1324
  ;;
1325
  ppc64abi32)
1326
    echo "TARGET_ARCH=ppc64" >> $config_mak
1327
    echo "TARGET_ABI_DIR=ppc" >> $config_mak
1328
    echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1329
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1330
    echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1331
    echo "#define TARGET_PPC 1" >> $config_h
1332
    echo "#define TARGET_PPC64 1" >> $config_h
1333
    echo "#define TARGET_ABI32 1" >> $config_h
1334
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1335
  ;;
1336
  sh4|sh4eb)
1337
    echo "TARGET_ARCH=sh4" >> $config_mak
1338
    echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
1339
    echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1340
    echo "#define TARGET_SH4 1" >> $config_h
1341
    echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
1342
    bflt="yes"
1343
  ;;
1344
  sparc)
1345
    echo "TARGET_ARCH=sparc" >> $config_mak
1346
    echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1347
    echo "#define TARGET_SPARC 1" >> $config_h
1348
  ;;
1349
  sparc64)
1350
    echo "TARGET_ARCH=sparc64" >> $config_mak
1351
    echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1352
    echo "#define TARGET_SPARC 1" >> $config_h
1353
    echo "#define TARGET_SPARC64 1" >> $config_h
1354
    elfload32="yes"
1355
  ;;
1356
  sparc32plus)
1357
    echo "TARGET_ARCH=sparc64" >> $config_mak
1358
    echo "TARGET_ABI_DIR=sparc" >> $config_mak
1359
    echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1360
    echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1361
    echo "#define TARGET_SPARC 1" >> $config_h
1362
    echo "#define TARGET_SPARC64 1" >> $config_h
1363
    echo "#define TARGET_ABI32 1" >> $config_h
1364
  ;;
1365
  *)
1366
    echo "Unsupported target CPU"
1367
    exit 1
1368
  ;;
1369
esac
1370
if test "$target_bigendian" = "yes" ; then
1371
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1372
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1373
fi
1374
if test "$target_softmmu" = "yes" ; then
1375
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1376
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1377
fi
1378
if test "$target_user_only" = "yes" ; then
1379
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1380
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1381
fi
1382
if test "$target_linux_user" = "yes" ; then
1383
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1384
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1385
fi
1386
if test "$target_darwin_user" = "yes" ; then
1387
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1388
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1389
fi
1390

    
1391
if test "$target_cpu" = "arm" \
1392
     -o "$target_cpu" = "armeb" \
1393
     -o "$target_cpu" = "m68k" \
1394
     -o "$target_cpu" = "mips" \
1395
     -o "$target_cpu" = "mipsel" \
1396
     -o "$target_cpu" = "mipsn32" \
1397
     -o "$target_cpu" = "mipsn32el" \
1398
     -o "$target_cpu" = "mips64" \
1399
     -o "$target_cpu" = "mips64el" \
1400
     -o "$target_cpu" = "sparc" \
1401
     -o "$target_cpu" = "sparc64" \
1402
     -o "$target_cpu" = "sparc32plus"; then
1403
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1404
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1405
fi
1406
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1407
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1408
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1409
fi
1410
if test "$target_user_only" = "yes" \
1411
        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1412
  echo "#define USE_NPTL 1" >> $config_h
1413
fi
1414
# 32 bit ELF loader in addition to native 64 bit loader?
1415
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1416
  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1417
  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1418
fi
1419

    
1420
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1421

    
1422
done # for target in $targets
1423

    
1424
# build tree in object directory if source path is different from current one
1425
if test "$source_path_used" = "yes" ; then
1426
    DIRS="tests tests/cris slirp audio"
1427
    FILES="Makefile tests/Makefile"
1428
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1429
    FILES="$FILES tests/test-mmap.c"
1430
    for dir in $DIRS ; do
1431
            mkdir -p $dir
1432
    done
1433
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1434
    for f in $FILES ; do
1435
        rm -f $f
1436
        ln -s $source_path/$f $f
1437
    done
1438
fi
1439

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