Statistics
| Branch: | Revision:

root / configure @ c2de5c91

History | View | Annotate | Download (39.1 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
audio_drv_list=""
28
audio_card_list=""
29
host_cc="gcc"
30
ar="ar"
31
make="make"
32
install="install"
33
strip="strip"
34
cpu=`uname -m`
35
target_list=""
36
case "$cpu" in
37
  i386|i486|i586|i686|i86pc|BePC)
38
    cpu="i386"
39
  ;;
40
  x86_64|amd64)
41
    cpu="x86_64"
42
  ;;
43
  alpha)
44
    cpu="alpha"
45
  ;;
46
  armv*b)
47
    cpu="armv4b"
48
  ;;
49
  armv*l)
50
    cpu="armv4l"
51
  ;;
52
  cris)
53
    cpu="cris"
54
  ;;
55
  parisc|parisc64)
56
    cpu="hppa"
57
  ;;
58
  ia64)
59
    cpu="ia64"
60
  ;;
61
  m68k)
62
    cpu="m68k"
63
  ;;
64
  mips)
65
    cpu="mips"
66
  ;;
67
  mips64)
68
    cpu="mips64"
69
  ;;
70
  "Power Macintosh"|ppc|ppc64)
71
    cpu="powerpc"
72
  ;;
73
  s390*)
74
    cpu="s390"
75
  ;;
76
  sparc|sun4[cdmuv])
77
    cpu="sparc"
78
  ;;
79
  sparc64)
80
    cpu="sparc64"
81
  ;;
82
  *)
83
    cpu="unknown"
84
  ;;
85
esac
86
gprof="no"
87
bigendian="no"
88
mingw32="no"
89
EXESUF=""
90
gdbstub="yes"
91
slirp="yes"
92
fmod_lib=""
93
fmod_inc=""
94
vnc_tls="yes"
95
bsd="no"
96
linux="no"
97
kqemu="no"
98
profiler="no"
99
cocoa="no"
100
check_gfx="yes"
101
check_gcc="yes"
102
softmmu="yes"
103
linux_user="no"
104
darwin_user="no"
105
build_docs="no"
106
uname_release=""
107
curses="yes"
108
nptl="yes"
109
mixemu="no"
110

    
111
# OS specific
112
targetos=`uname -s`
113
case $targetos in
114
CYGWIN*)
115
mingw32="yes"
116
OS_CFLAGS="-mno-cygwin"
117
if [ "$cpu" = "i386" ] ; then
118
    kqemu="yes"
119
fi
120
audio_possible_drivers="sdl"
121
;;
122
MINGW32*)
123
mingw32="yes"
124
if [ "$cpu" = "i386" ] ; then
125
    kqemu="yes"
126
fi
127
audio_possible_drivers="dsound sdl fmod"
128
;;
129
GNU/kFreeBSD)
130
audio_drv_list="oss"
131
audio_possible_drivers="oss sdl esd"
132
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
133
    kqemu="yes"
134
fi
135
;;
136
FreeBSD)
137
bsd="yes"
138
audio_drv_list="oss"
139
audio_possible_drivers="oss sdl esd"
140
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
141
    kqemu="yes"
142
fi
143
;;
144
NetBSD)
145
bsd="yes"
146
audio_drv_list="oss"
147
audio_possible_drivers="oss sdl esd"
148
;;
149
OpenBSD)
150
bsd="yes"
151
audio_drv_list="oss"
152
audio_possible_drivers="oss sdl esd"
153
;;
154
Darwin)
155
bsd="yes"
156
darwin="yes"
157
darwin_user="yes"
158
cocoa="yes"
159
audio_drv_list="coreaudio"
160
audio_possible_drivers="coreaudio sdl fmod"
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
        audio_drv_list="oss"
194
    fi
195
    audio_possible_drivers="oss sdl"
196
;;
197
*)
198
audio_drv_list="oss"
199
audio_possible_drivers="oss alsa sdl esd"
200
linux="yes"
201
linux_user="yes"
202
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
203
    kqemu="yes"
204
    audio_possible_drivers="$audio_possible_drivers fmod"
205
fi
206
;;
207
esac
208

    
209
if [ "$bsd" = "yes" ] ; then
210
  if [ "$darwin" != "yes" ] ; then
211
    make="gmake"
212
  fi
213
fi
214

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

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

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

    
339
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
340
    AIOLIBS=
341
else
342
    # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
343
    AIOLIBS="-lrt -lpthread"
344
fi
345

    
346
# default flags for all hosts
347
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
348
LDFLAGS="$LDFLAGS -g"
349
if test "$werror" = "yes" ; then
350
CFLAGS="$CFLAGS -Werror"
351
fi
352

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

    
387
if test x"$show_help" = x"yes" ; then
388
cat << EOF
389

    
390
Usage: configure [options]
391
Options: [defaults in brackets after descriptions]
392

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

    
440
cc="${cross_prefix}${cc}"
441
ar="${cross_prefix}${ar}"
442
strip="${cross_prefix}${strip}"
443

    
444
# check that the C compiler works.
445
cat > $TMPC <<EOF
446
int main(void) {}
447
EOF
448

    
449
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
450
  : C compiler works ok
451
else
452
    echo "ERROR: \"$cc\" either does not exist or does not work"
453
    exit 1
454
fi
455

    
456
if test "$mingw32" = "yes" ; then
457
    linux="no"
458
    EXESUF=".exe"
459
    oss="no"
460
fi
461

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

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

    
536

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

    
592
if test -z "$cross_prefix" ; then
593

    
594
# ---
595
# big/little endian test
596
cat > $TMPC << EOF
597
#include <inttypes.h>
598
int main(int argc, char ** argv){
599
        volatile uint32_t i=0x01234567;
600
        return (*((uint8_t*)(&i))) == 0x67;
601
}
602
EOF
603

    
604
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
605
$TMPE && bigendian="yes"
606
else
607
echo big/little test failed
608
fi
609

    
610
else
611

    
612
# if cross compiling, cannot launch a program, so make a static guess
613
if test "$cpu" = "armv4b" \
614
     -o "$cpu" = "hppa" \
615
     -o "$cpu" = "m68k" \
616
     -o "$cpu" = "mips" \
617
     -o "$cpu" = "mips64" \
618
     -o "$cpu" = "powerpc" \
619
     -o "$cpu" = "s390" \
620
     -o "$cpu" = "sparc" \
621
     -o "$cpu" = "sparc64"; then
622
    bigendian="yes"
623
fi
624

    
625
fi
626

    
627
# host long bits test
628
hostlongbits="32"
629
if test "$cpu" = "x86_64" \
630
     -o "$cpu" = "alpha" \
631
     -o "$cpu" = "ia64" \
632
     -o "$cpu" = "sparc64"; then
633
    hostlongbits="64"
634
fi
635

    
636
# check gcc options support
637
cat > $TMPC <<EOF
638
int main(void) {
639
}
640
EOF
641

    
642
# Check host NPTL support
643
cat > $TMPC <<EOF
644
#include <sched.h>
645
#include <linux/futex.h>
646
void foo()
647
{
648
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
649
#error bork
650
#endif
651
}
652
EOF
653

    
654
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
655
  :
656
else
657
   nptl="no"
658
fi
659

    
660
##########################################
661
# SDL probe
662

    
663
sdl_too_old=no
664

    
665
if test -z "$sdl" ; then
666
    sdl_config="sdl-config"
667
    sdl=no
668
    sdl_static=no
669

    
670
    if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
671
    # win32 cross compilation case
672
        sdl_config="i386-mingw32msvc-sdl-config"
673
        sdl=yes
674
    else
675
        # normal SDL probe
676
cat > $TMPC << EOF
677
#include <SDL.h>
678
#undef main /* We don't want SDL to override our main() */
679
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
680
EOF
681
        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
682
            _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
683
            if test "$_sdlversion" -lt 121 ; then
684
                sdl_too_old=yes
685
            else
686
                if test "$cocoa" = "no" ; then
687
                    sdl=yes
688
                fi
689
            fi
690

    
691
            # static link with sdl ?
692
            if test "$sdl" = "yes" ; then
693
                aa="no"
694
                `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
695
                sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
696
                if [ "$aa" = "yes" ] ; then
697
                    sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
698
                fi
699

    
700
                if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
701
                    sdl_static=yes
702
                fi
703
            fi # static link
704
        fi # sdl compile test
705
    fi # cross compilation
706
else
707
    # Make sure to disable cocoa if sdl was set
708
    if test "$sdl" = "yes" ; then
709
       cocoa="no"
710
       audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
711
    fi
712
fi # -z $sdl
713

    
714
##########################################
715
# VNC TLS detection
716
if test "$vnc_tls" = "yes" ; then
717
  `pkg-config gnutls` || vnc_tls="no"
718
fi
719
if test "$vnc_tls" = "yes" ; then
720
  vnc_tls_cflags=`pkg-config --cflags gnutls`
721
  vnc_tls_libs=`pkg-config --libs gnutls`
722
fi
723

    
724
##########################################
725
# Sound support libraries probe
726

    
727
audio_drv_probe()
728
{
729
    drv=$1
730
    hdr=$2
731
    lib=$3
732
    exp=$4
733
    cfl=$5
734
        cat > $TMPC << EOF
735
#include <$hdr>
736
int main(void) { $exp }
737
EOF
738
    if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
739
        :
740
    else
741
        echo
742
        echo "Error: $drv check failed"
743
        echo "Make sure to have the $drv libs and headers installed."
744
        echo
745
        exit 1
746
    fi
747
}
748

    
749
for drv in $audio_drv_list; do
750
    case $drv in
751
    alsa)
752
    audio_drv_probe $drv alsa/asoundlib.h -lasound \
753
        "snd_pcm_t **handle; return snd_pcm_close(*handle);"
754
    ;;
755

    
756
    fmod)
757
    if test -z $fmod_lib || test -z $fmod_inc; then
758
        echo
759
        echo "Error: You must specify path to FMOD library and headers"
760
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
761
        echo
762
        exit 1
763
    fi
764
    audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
765
    ;;
766

    
767
    esd)
768
    audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
769
    ;;
770
    esac
771
done
772

    
773
##########################################
774
# BrlAPI probe
775

    
776
if test -z "$brlapi" ; then
777
    brlapi=no
778
cat > $TMPC << EOF
779
#include <brlapi.h>
780
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
781
EOF
782
    if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
783
	    brlapi=yes
784
    fi # brlapi compile test
785
fi # -z $brlapi
786

    
787
##########################################
788
# curses probe
789

    
790
if test "$curses" = "yes" ; then
791
  curses=no
792
  cat > $TMPC << EOF
793
#include <curses.h>
794
int main(void) { return curses_version(); }
795
EOF
796
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
797
    curses=yes
798
  fi
799
fi # test "$curses"
800

    
801
# Check if tools are available to build documentation.
802
if [ -x "`which texi2html 2>/dev/null`" ] && \
803
   [ -x "`which pod2man 2>/dev/null`" ]; then
804
  build_docs="yes"
805
fi
806

    
807
if test "$mingw32" = "yes" ; then
808
  if test -z "$prefix" ; then
809
      prefix="/c/Program Files/Qemu"
810
  fi
811
  mansuffix=""
812
  datasuffix=""
813
  docsuffix=""
814
  binsuffix=""
815
else
816
  if test -z "$prefix" ; then
817
      prefix="/usr/local"
818
  fi
819
  mansuffix="/share/man"
820
  datasuffix="/share/qemu"
821
  docsuffix="/share/doc/qemu"
822
  binsuffix="/bin"
823
fi
824

    
825
echo "Install prefix    $prefix"
826
echo "BIOS directory    $prefix$datasuffix"
827
echo "binary directory  $prefix$binsuffix"
828
if test "$mingw32" = "no" ; then
829
echo "Manual directory  $prefix$mansuffix"
830
echo "ELF interp prefix $interp_prefix"
831
fi
832
echo "Source path       $source_path"
833
echo "C compiler        $cc"
834
echo "Host C compiler   $host_cc"
835
echo "ARCH_CFLAGS       $ARCH_CFLAGS"
836
echo "make              $make"
837
echo "install           $install"
838
echo "host CPU          $cpu"
839
echo "host big endian   $bigendian"
840
echo "target list       $target_list"
841
echo "gprof enabled     $gprof"
842
echo "profiler          $profiler"
843
echo "static build      $static"
844
echo "-Werror enabled   $werror"
845
if test "$darwin" = "yes" ; then
846
    echo "Cocoa support     $cocoa"
847
fi
848
echo "SDL support       $sdl"
849
if test "$sdl" != "no" ; then
850
    echo "SDL static link   $sdl_static"
851
fi
852
echo "curses support    $curses"
853
echo "mingw32 support   $mingw32"
854
echo "Audio drivers     $audio_drv_list"
855
echo "Extra audio cards $audio_card_list"
856
echo "Mixer emulation   $mixemu"
857
echo "VNC TLS support   $vnc_tls"
858
if test "$vnc_tls" = "yes" ; then
859
    echo "    TLS CFLAGS    $vnc_tls_cflags"
860
    echo "    TLS LIBS      $vnc_tls_libs"
861
fi
862
if test -n "$sparc_cpu"; then
863
    echo "Target Sparc Arch $sparc_cpu"
864
fi
865
echo "kqemu support     $kqemu"
866
echo "brlapi support    $brlapi"
867
echo "Documentation     $build_docs"
868
[ ! -z "$uname_release" ] && \
869
echo "uname -r          $uname_release"
870
echo "NPTL support      $nptl"
871

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

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

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

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

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

    
1065
echo "SRC_PATH=$source_path" >> $config_mak
1066
if [ "$source_path_used" = "yes" ]; then
1067
  echo "VPATH=$source_path" >> $config_mak
1068
fi
1069
echo "TARGET_DIRS=$target_list" >> $config_mak
1070
if [ "$build_docs" = "yes" ] ; then
1071
  echo "BUILD_DOCS=yes" >> $config_mak
1072
fi
1073
if test "$static" = "yes"; then
1074
  sdl1=$sdl_static
1075
else
1076
  sdl1=$sdl
1077
fi
1078
if test "$sdl1" = "yes" ; then
1079
  echo "#define CONFIG_SDL 1" >> $config_h
1080
  echo "CONFIG_SDL=yes" >> $config_mak
1081
  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1082
    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1083
  else
1084
    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1085
  fi
1086
  if [ "${aa}" = "yes" ] ; then
1087
    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1088
  else
1089
    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1090
  fi
1091
fi
1092
if test "$cocoa" = "yes" ; then
1093
  echo "#define CONFIG_COCOA 1" >> $config_h
1094
  echo "CONFIG_COCOA=yes" >> $config_mak
1095
fi
1096
if test "$curses" = "yes" ; then
1097
  echo "#define CONFIG_CURSES 1" >> $config_h
1098
  echo "CONFIG_CURSES=yes" >> $config_mak
1099
  echo "CURSES_LIBS=-lcurses" >> $config_mak
1100
fi
1101
if test "$brlapi" = "yes" ; then
1102
  echo "CONFIG_BRLAPI=yes" >> $config_mak
1103
  echo "#define CONFIG_BRLAPI 1" >> $config_h
1104
  echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1105
fi
1106

    
1107
# XXX: suppress that
1108
if [ "$bsd" = "yes" ] ; then
1109
  echo "#define O_LARGEFILE 0" >> $config_h
1110
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1111
  echo "#define _BSD 1" >> $config_h
1112
fi
1113

    
1114
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1115

    
1116
tools=
1117
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1118
  tools="qemu-img\$(EXESUF) $tools"
1119
  if [ "$linux" = "yes" ] ; then
1120
      tools="qemu-nbd\$(EXESUF) $tools"
1121
  fi
1122
fi
1123
echo "TOOLS=$tools" >> $config_mak
1124

    
1125
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1126

    
1127
for target in $target_list; do
1128
target_dir="$target"
1129
config_mak=$target_dir/config.mak
1130
config_h=$target_dir/config.h
1131
target_cpu=`echo $target | cut -d '-' -f 1`
1132
target_bigendian="no"
1133
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1134
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1135
[ "$target_cpu" = "mips" ] && target_bigendian=yes
1136
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1137
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1138
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1139
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1140
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1141
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1142
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1143
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1144
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1145
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1146
target_softmmu="no"
1147
target_user_only="no"
1148
target_linux_user="no"
1149
target_darwin_user="no"
1150
case "$target" in
1151
  ${target_cpu}-softmmu)
1152
    target_softmmu="yes"
1153
    ;;
1154
  ${target_cpu}-linux-user)
1155
    target_user_only="yes"
1156
    target_linux_user="yes"
1157
    ;;
1158
  ${target_cpu}-darwin-user)
1159
    target_user_only="yes"
1160
    target_darwin_user="yes"
1161
    ;;
1162
  *)
1163
    echo "ERROR: Target '$target' not recognised"
1164
    exit 1
1165
    ;;
1166
esac
1167

    
1168
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1169
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1170
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1171
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
1172
    echo "Note that this will disable all output from the virtual graphics card"
1173
    echo "except through VNC or curses."
1174
    exit 1;
1175
fi
1176

    
1177
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1178

    
1179
test -f $config_h && mv $config_h ${config_h}~
1180

    
1181
mkdir -p $target_dir
1182
mkdir -p $target_dir/fpu
1183
mkdir -p $target_dir/tcg
1184
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1185
  mkdir -p $target_dir/nwfpe
1186
fi
1187

    
1188
#
1189
# don't use ln -sf as not all "ln -sf" over write the file/link
1190
#
1191
rm -f $target_dir/Makefile
1192
ln -s $source_path/Makefile.target $target_dir/Makefile
1193

    
1194

    
1195
echo "# Automatically generated by configure - do not modify" > $config_mak
1196
echo "/* Automatically generated by configure - do not modify */" > $config_h
1197

    
1198

    
1199
echo "include ../config-host.mak" >> $config_mak
1200
echo "#include \"../config-host.h\"" >> $config_h
1201

    
1202
bflt="no"
1203
elfload32="no"
1204
target_nptl="no"
1205
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1206
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1207

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

    
1370
if test "$target_cpu" = "arm" \
1371
     -o "$target_cpu" = "armeb" \
1372
     -o "$target_cpu" = "m68k" \
1373
     -o "$target_cpu" = "mips" \
1374
     -o "$target_cpu" = "mipsel" \
1375
     -o "$target_cpu" = "mipsn32" \
1376
     -o "$target_cpu" = "mipsn32el" \
1377
     -o "$target_cpu" = "mips64" \
1378
     -o "$target_cpu" = "mips64el" \
1379
     -o "$target_cpu" = "sparc" \
1380
     -o "$target_cpu" = "sparc64" \
1381
     -o "$target_cpu" = "sparc32plus"; then
1382
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1383
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1384
fi
1385
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1386
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1387
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1388
fi
1389
if test "$target_user_only" = "yes" \
1390
        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1391
  echo "#define USE_NPTL 1" >> $config_h
1392
fi
1393
# 32 bit ELF loader in addition to native 64 bit loader?
1394
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1395
  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1396
  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1397
fi
1398

    
1399
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1400

    
1401
done # for target in $targets
1402

    
1403
# build tree in object directory if source path is different from current one
1404
if test "$source_path_used" = "yes" ; then
1405
    DIRS="tests tests/cris slirp audio"
1406
    FILES="Makefile tests/Makefile"
1407
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1408
    FILES="$FILES tests/test-mmap.c"
1409
    for dir in $DIRS ; do
1410
            mkdir -p $dir
1411
    done
1412
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1413
    for f in $FILES ; do
1414
        rm -f $f
1415
        ln -s $source_path/$f $f
1416
    done
1417
fi
1418

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