Statistics
| Branch: | Revision:

root / configure @ 724db118

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

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

    
200
if [ "$bsd" = "yes" ] ; then
201
  if [ "$darwin" != "yes" ] ; then
202
    make="gmake"
203
  fi
204
fi
205

    
206
# find source path
207
source_path=`dirname "$0"`
208
source_path_used="no"
209
workdir=`pwd`
210
if [ -z "$source_path" ]; then
211
    source_path=$workdir
212
else
213
    source_path=`cd "$source_path"; pwd`
214
fi
215
[ -f "$workdir/vl.c" ] || source_path_used="yes"
216

    
217
werror="no"
218
# generate compile errors on warnings for development builds
219
#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
220
#werror="yes";
221
#fi
222

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

    
331
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
332
    AIOLIBS=
333
else
334
    # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
335
    AIOLIBS="-lrt -lpthread"
336
fi
337

    
338
# default flags for all hosts
339
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
340
LDFLAGS="$LDFLAGS -g"
341
if test "$werror" = "yes" ; then
342
CFLAGS="$CFLAGS -Werror"
343
fi
344

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

    
379
if test x"$show_help" = x"yes" ; then
380
cat << EOF
381

    
382
Usage: configure [options]
383
Options: [defaults in brackets after descriptions]
384

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

    
432
cc="${cross_prefix}${cc}"
433
ar="${cross_prefix}${ar}"
434
strip="${cross_prefix}${strip}"
435

    
436
# check that the C compiler works.
437
cat > $TMPC <<EOF
438
int main(void) {}
439
EOF
440

    
441
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
442
  : C compiler works ok
443
else
444
    echo "ERROR: \"$cc\" either does not exist or does not work"
445
    exit 1
446
fi
447

    
448
if test "$mingw32" = "yes" ; then
449
    linux="no"
450
    EXESUF=".exe"
451
    oss="no"
452
fi
453

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

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

    
528

    
529
if test -z "$target_list" ; then
530
# these targets are portable
531
    if [ "$softmmu" = "yes" ] ; then
532
        target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu sh4eb-softmmu cris-softmmu"
533
    fi
534
# the following are Linux specific
535
    if [ "$linux_user" = "yes" ] ; then
536
        target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user sh4eb-linux-user ppc-linux-user ppc64-linux-user ppc64abi32-linux-user x86_64-linux-user cris-linux-user $target_list"
537
    fi
538
# the following are Darwin specific
539
    if [ "$darwin_user" = "yes" ] ; then
540
        target_list="i386-darwin-user ppc-darwin-user $target_list"
541
    fi
542
else
543
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
544
fi
545
if test -z "$target_list" ; then
546
    echo "No targets enabled"
547
    exit 1
548
fi
549

    
550
if test -z "$cross_prefix" ; then
551

    
552
# ---
553
# big/little endian test
554
cat > $TMPC << EOF
555
#include <inttypes.h>
556
int main(int argc, char ** argv){
557
        volatile uint32_t i=0x01234567;
558
        return (*((uint8_t*)(&i))) == 0x67;
559
}
560
EOF
561

    
562
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
563
$TMPE && bigendian="yes"
564
else
565
echo big/little test failed
566
fi
567

    
568
else
569

    
570
# if cross compiling, cannot launch a program, so make a static guess
571
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
572
    bigendian="yes"
573
fi
574

    
575
fi
576

    
577
# host long bits test
578
hostlongbits="32"
579
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
580
    hostlongbits="64"
581
fi
582

    
583
# check gcc options support
584
cat > $TMPC <<EOF
585
int main(void) {
586
}
587
EOF
588

    
589
##########################################
590
# SDL probe
591

    
592
sdl_too_old=no
593

    
594
if test -z "$sdl" ; then
595
    sdl_config="sdl-config"
596
    sdl=no
597
    sdl_static=no
598

    
599
    if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
600
    # win32 cross compilation case
601
        sdl_config="i386-mingw32msvc-sdl-config"
602
        sdl=yes
603
    else
604
        # normal SDL probe
605
cat > $TMPC << EOF
606
#include <SDL.h>
607
#undef main /* We don't want SDL to override our main() */
608
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
609
EOF
610
        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
611
            _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
612
            if test "$_sdlversion" -lt 121 ; then
613
                sdl_too_old=yes
614
            else
615
                if test "$cocoa" = "no" ; then
616
                    sdl=yes
617
                fi
618
            fi
619

    
620
            # static link with sdl ?
621
            if test "$sdl" = "yes" ; then
622
                aa="no"
623
                `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
624
                sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
625
                if [ "$aa" = "yes" ] ; then
626
                    sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
627
                fi
628

    
629
                if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
630
                    sdl_static=yes
631
                fi
632
            fi # static link
633
        fi # sdl compile test
634
    fi # cross compilation
635
else
636
    # Make sure to disable cocoa if sdl was set
637
    if test "$sdl" = "yes" ; then
638
       cocoa="no"
639
       coreaudio="no"
640
    fi
641
fi # -z $sdl
642

    
643
##########################################
644
# VNC TLS detection
645
if test "$vnc_tls" = "yes" ; then
646
  `pkg-config gnutls` || vnc_tls="no"
647
fi
648
if test "$vnc_tls" = "yes" ; then
649
  vnc_tls_cflags=`pkg-config --cflags gnutls`
650
  vnc_tls_libs=`pkg-config --libs gnutls`
651
fi
652

    
653
##########################################
654
# alsa sound support libraries
655

    
656
if test "$alsa" = "yes" ; then
657
  cat > $TMPC << EOF
658
#include <alsa/asoundlib.h>
659
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
660
EOF
661
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
662
    :
663
  else
664
    echo
665
    echo "Error: Could not find alsa"
666
    echo "Make sure to have the alsa libs and headers installed."
667
    echo
668
    exit 1
669
  fi
670
fi
671

    
672
# Check if tools are available to build documentation.
673
if [ -x "`which texi2html 2>/dev/null`" ] && \
674
   [ -x "`which pod2man 2>/dev/null`" ]; then
675
  build_docs="yes"
676
fi
677

    
678
if test "$mingw32" = "yes" ; then
679
  if test -z "$prefix" ; then
680
      prefix="/c/Program Files/Qemu"
681
  fi
682
  mansuffix=""
683
  datasuffix=""
684
  docsuffix=""
685
  binsuffix=""
686
else
687
  if test -z "$prefix" ; then
688
      prefix="/usr/local"
689
  fi
690
  mansuffix="/share/man"
691
  datasuffix="/share/qemu"
692
  docsuffix="/share/doc/qemu"
693
  binsuffix="/bin"
694
fi
695

    
696
echo "Install prefix    $prefix"
697
echo "BIOS directory    $prefix$datasuffix"
698
echo "binary directory  $prefix$binsuffix"
699
if test "$mingw32" = "no" ; then
700
echo "Manual directory  $prefix$mansuffix"
701
echo "ELF interp prefix $interp_prefix"
702
fi
703
echo "Source path       $source_path"
704
echo "C compiler        $cc"
705
echo "Host C compiler   $host_cc"
706
echo "ARCH_CFLAGS       $ARCH_CFLAGS"
707
echo "make              $make"
708
echo "install           $install"
709
echo "host CPU          $cpu"
710
echo "host big endian   $bigendian"
711
echo "target list       $target_list"
712
echo "gprof enabled     $gprof"
713
echo "profiler          $profiler"
714
echo "static build      $static"
715
echo "-Werror enabled   $werror"
716
if test "$darwin" = "yes" ; then
717
    echo "Cocoa support     $cocoa"
718
fi
719
echo "SDL support       $sdl"
720
if test "$sdl" != "no" ; then
721
    echo "SDL static link   $sdl_static"
722
fi
723
echo "mingw32 support   $mingw32"
724
echo "Adlib support     $adlib"
725
echo "AC97 support      $ac97"
726
echo "GUS support       $gus"
727
echo "CoreAudio support $coreaudio"
728
echo "ALSA support      $alsa"
729
echo "EsounD support    $esd"
730
echo "DSound support    $dsound"
731
if test "$fmod" = "yes"; then
732
    if test -z $fmod_lib || test -z $fmod_inc; then
733
        echo
734
        echo "Error: You must specify path to FMOD library and headers"
735
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
736
        echo
737
        exit 1
738
    fi
739
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
740
else
741
    fmod_support=""
742
fi
743
echo "FMOD support      $fmod $fmod_support"
744
echo "OSS support       $oss"
745
echo "VNC TLS support   $vnc_tls"
746
if test "$vnc_tls" = "yes" ; then
747
    echo "    TLS CFLAGS    $vnc_tls_cflags"
748
    echo "    TLS LIBS      $vnc_tls_libs"
749
fi
750
if test -n "$sparc_cpu"; then
751
    echo "Target Sparc Arch $sparc_cpu"
752
fi
753
echo "kqemu support     $kqemu"
754
echo "Documentation     $build_docs"
755
[ ! -z "$uname_release" ] && \
756
echo "uname -r          $uname_release"
757

    
758
if test $sdl_too_old = "yes"; then
759
echo "-> Your SDL version is too old - please upgrade to have SDL support"
760
fi
761
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
762
  echo "The error log from compiling the libSDL test is: "
763
  cat /tmp/qemu-$$-sdl-config.log
764
fi
765
rm -f /tmp/qemu-$$-sdl-config.log
766
#if test "$sdl_static" = "no"; then
767
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
768
#fi
769
config_mak="config-host.mak"
770
config_h="config-host.h"
771

    
772
#echo "Creating $config_mak and $config_h"
773

    
774
test -f $config_h && mv $config_h ${config_h}~
775

    
776
echo "# Automatically generated by configure - do not modify" > $config_mak
777
echo "# Configured with: $0 $@" >> $config_mak
778
echo "/* Automatically generated by configure - do not modify */" > $config_h
779

    
780
echo "prefix=$prefix" >> $config_mak
781
echo "bindir=\${prefix}$binsuffix" >> $config_mak
782
echo "mandir=\${prefix}$mansuffix" >> $config_mak
783
echo "datadir=\${prefix}$datasuffix" >> $config_mak
784
echo "docdir=\${prefix}$docsuffix" >> $config_mak
785
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
786
echo "MAKE=$make" >> $config_mak
787
echo "INSTALL=$install" >> $config_mak
788
echo "CC=$cc" >> $config_mak
789
echo "HOST_CC=$host_cc" >> $config_mak
790
echo "AR=$ar" >> $config_mak
791
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
792
# XXX: only use CFLAGS and LDFLAGS ?  
793
# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
794
# compilation of dyngen tool (useful for win32 build on Linux host)
795
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
796
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
797
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
798
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
799
echo "CFLAGS=$CFLAGS" >> $config_mak
800
echo "LDFLAGS=$LDFLAGS" >> $config_mak
801
echo "EXESUF=$EXESUF" >> $config_mak
802
echo "AIOLIBS=$AIOLIBS" >> $config_mak
803
if test "$cpu" = "i386" ; then
804
  echo "ARCH=i386" >> $config_mak
805
  echo "#define HOST_I386 1" >> $config_h
806
elif test "$cpu" = "x86_64" ; then
807
  echo "ARCH=x86_64" >> $config_mak
808
  echo "#define HOST_X86_64 1" >> $config_h
809
elif test "$cpu" = "armv4b" ; then
810
  echo "ARCH=arm" >> $config_mak
811
  echo "#define HOST_ARM 1" >> $config_h
812
elif test "$cpu" = "armv4l" ; then
813
  echo "ARCH=arm" >> $config_mak
814
  echo "#define HOST_ARM 1" >> $config_h
815
elif test "$cpu" = "powerpc" ; then
816
  echo "ARCH=ppc" >> $config_mak
817
  echo "#define HOST_PPC 1" >> $config_h
818
elif test "$cpu" = "mips" ; then
819
  echo "ARCH=mips" >> $config_mak
820
  echo "#define HOST_MIPS 1" >> $config_h
821
elif test "$cpu" = "mips64" ; then
822
  echo "ARCH=mips64" >> $config_mak
823
  echo "#define HOST_MIPS64 1" >> $config_h
824
elif test "$cpu" = "cris" ; then
825
  echo "ARCH=cris" >> $config_mak
826
  echo "#define HOST_CRIS 1" >> $config_h
827
elif test "$cpu" = "s390" ; then
828
  echo "ARCH=s390" >> $config_mak
829
  echo "#define HOST_S390 1" >> $config_h
830
elif test "$cpu" = "alpha" ; then
831
  echo "ARCH=alpha" >> $config_mak
832
  echo "#define HOST_ALPHA 1" >> $config_h
833
elif test "$cpu" = "sparc" ; then
834
  echo "ARCH=sparc" >> $config_mak
835
  echo "#define HOST_SPARC 1" >> $config_h
836
elif test "$cpu" = "sparc64" ; then
837
  echo "ARCH=sparc64" >> $config_mak
838
  echo "#define HOST_SPARC64 1" >> $config_h
839
elif test "$cpu" = "ia64" ; then
840
  echo "ARCH=ia64" >> $config_mak
841
  echo "#define HOST_IA64 1" >> $config_h
842
elif test "$cpu" = "m68k" ; then
843
  echo "ARCH=m68k" >> $config_mak
844
  echo "#define HOST_M68K 1" >> $config_h
845
else
846
  echo "Unsupported CPU = $cpu"
847
  exit 1
848
fi
849
if test "$bigendian" = "yes" ; then
850
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
851
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
852
fi
853
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
854
if test "$mingw32" = "yes" ; then
855
  echo "CONFIG_WIN32=yes" >> $config_mak
856
  echo "#define CONFIG_WIN32 1" >> $config_h
857
else
858
  cat > $TMPC << EOF
859
#include <byteswap.h>
860
int main(void) { return bswap_32(0); }
861
EOF
862
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
863
    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
864
  fi
865
fi
866
if test "$darwin" = "yes" ; then
867
  echo "CONFIG_DARWIN=yes" >> $config_mak
868
  echo "#define CONFIG_DARWIN 1" >> $config_h
869
fi
870
if test "$solaris" = "yes" ; then
871
  echo "CONFIG_SOLARIS=yes" >> $config_mak
872
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
873
  if test "$needs_libsunmath" = "yes" ; then
874
    echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
875
    echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
876
  fi
877
fi
878
if test -n "$sparc_cpu"; then
879
  echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
880
  echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
881
fi
882
if test "$gdbstub" = "yes" ; then
883
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
884
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
885
fi
886
if test "$gprof" = "yes" ; then
887
  echo "TARGET_GPROF=yes" >> $config_mak
888
  echo "#define HAVE_GPROF 1" >> $config_h
889
fi
890
if test "$static" = "yes" ; then
891
  echo "CONFIG_STATIC=yes" >> $config_mak
892
  echo "#define CONFIG_STATIC 1" >> $config_h
893
fi
894
if test $profiler = "yes" ; then
895
  echo "#define CONFIG_PROFILER 1" >> $config_h
896
fi
897
if test "$slirp" = "yes" ; then
898
  echo "CONFIG_SLIRP=yes" >> $config_mak
899
  echo "#define CONFIG_SLIRP 1" >> $config_h
900
fi
901
if test "$adlib" = "yes" ; then
902
  echo "CONFIG_ADLIB=yes" >> $config_mak
903
  echo "#define CONFIG_ADLIB 1" >> $config_h
904
fi
905
if test "$ac97" = "yes" ; then
906
  echo "CONFIG_AC97=yes" >> $config_mak
907
  echo "#define CONFIG_AC97 1" >> $config_h
908
fi
909
if test "$gus" = "yes" ; then
910
  echo "CONFIG_GUS=yes" >> $config_mak
911
  echo "#define CONFIG_GUS 1" >> $config_h
912
fi
913
if test "$oss" = "yes" ; then
914
  echo "CONFIG_OSS=yes" >> $config_mak
915
  echo "#define CONFIG_OSS 1" >> $config_h
916
fi
917
if test "$coreaudio" = "yes" ; then
918
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
919
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
920
fi
921
if test "$alsa" = "yes" ; then
922
  echo "CONFIG_ALSA=yes" >> $config_mak
923
  echo "#define CONFIG_ALSA 1" >> $config_h
924
fi
925
if test "$esd" = "yes" ; then
926
  echo "CONFIG_ESD=yes" >> $config_mak
927
  echo "#define CONFIG_ESD 1" >> $config_h
928
fi
929
if test "$dsound" = "yes" ; then
930
  echo "CONFIG_DSOUND=yes" >> $config_mak
931
  echo "#define CONFIG_DSOUND 1" >> $config_h
932
fi
933
if test "$fmod" = "yes" ; then
934
  echo "CONFIG_FMOD=yes" >> $config_mak
935
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
936
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
937
  echo "#define CONFIG_FMOD 1" >> $config_h
938
fi
939
if test "$vnc_tls" = "yes" ; then
940
  echo "CONFIG_VNC_TLS=yes" >> $config_mak
941
  echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
942
  echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
943
  echo "#define CONFIG_VNC_TLS 1" >> $config_h
944
fi
945
qemu_version=`head $source_path/VERSION`
946
echo "VERSION=$qemu_version" >>$config_mak
947
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
948

    
949
echo "SRC_PATH=$source_path" >> $config_mak
950
if [ "$source_path_used" = "yes" ]; then
951
  echo "VPATH=$source_path" >> $config_mak
952
fi
953
echo "TARGET_DIRS=$target_list" >> $config_mak
954
if [ "$build_docs" = "yes" ] ; then
955
  echo "BUILD_DOCS=yes" >> $config_mak
956
fi
957
if test "$static" = "yes"; then
958
  sdl1=$sdl_static
959
else
960
  sdl1=$sdl
961
fi
962
if test "$sdl1" = "yes" ; then
963
  echo "#define CONFIG_SDL 1" >> $config_h
964
  echo "CONFIG_SDL=yes" >> $config_mak
965
  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
966
    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
967
  else
968
    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
969
  fi
970
  if [ "${aa}" = "yes" ] ; then
971
    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
972
  else
973
    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
974
  fi
975
fi
976
if test "$cocoa" = "yes" ; then
977
    echo "#define CONFIG_COCOA 1" >> $config_h
978
    echo "CONFIG_COCOA=yes" >> $config_mak
979
fi
980

    
981
# XXX: suppress that
982
if [ "$bsd" = "yes" ] ; then
983
  echo "#define O_LARGEFILE 0" >> $config_h
984
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
985
  echo "#define _BSD 1" >> $config_h
986
fi
987

    
988
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
989

    
990
tools=
991
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
992
  tools="qemu-img\$(EXESUF) $tools"
993
fi
994
echo "TOOLS=$tools" >> $config_mak
995

    
996
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
997

    
998
for target in $target_list; do
999
target_dir="$target"
1000
config_mak=$target_dir/config.mak
1001
config_h=$target_dir/config.h
1002
target_cpu=`echo $target | cut -d '-' -f 1`
1003
target_bigendian="no"
1004
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1005
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1006
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1007
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1008
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1009
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1010
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1011
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1012
[ "$target_cpu" = "mips" ] && target_bigendian=yes
1013
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1014
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1015
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1016
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1017
target_softmmu="no"
1018
target_user_only="no"
1019
target_linux_user="no"
1020
target_darwin_user="no"
1021
case "$target" in
1022
  ${target_cpu}-softmmu)
1023
    target_softmmu="yes"
1024
    ;;
1025
  ${target_cpu}-linux-user)
1026
    target_user_only="yes"
1027
    target_linux_user="yes"
1028
    ;;
1029
  ${target_cpu}-darwin-user)
1030
    target_user_only="yes"
1031
    target_darwin_user="yes"
1032
    ;;
1033
  *)
1034
    echo "ERROR: Target '$target' not recognised"
1035
    exit 1
1036
    ;;
1037
esac
1038

    
1039
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1040
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1041
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1042
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
1043
    echo "Note that this will disable all output from the virtual graphics card."
1044
    exit 1;
1045
fi
1046

    
1047
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1048

    
1049
test -f $config_h && mv $config_h ${config_h}~
1050

    
1051
mkdir -p $target_dir
1052
mkdir -p $target_dir/fpu
1053
mkdir -p $target_dir/tcg
1054
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1055
  mkdir -p $target_dir/nwfpe
1056
fi
1057

    
1058
#
1059
# don't use ln -sf as not all "ln -sf" over write the file/link
1060
#
1061
rm -f $target_dir/Makefile
1062
ln -s $source_path/Makefile.target $target_dir/Makefile
1063

    
1064

    
1065
echo "# Automatically generated by configure - do not modify" > $config_mak
1066
echo "/* Automatically generated by configure - do not modify */" > $config_h
1067

    
1068

    
1069
echo "include ../config-host.mak" >> $config_mak
1070
echo "#include \"../config-host.h\"" >> $config_h
1071

    
1072
bflt="no"
1073
elfload32="no"
1074
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1075
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1076

    
1077
if test "$target_cpu" = "i386" ; then
1078
  echo "TARGET_ARCH=i386" >> $config_mak
1079
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
1080
  echo "#define TARGET_I386 1" >> $config_h
1081
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1082
    echo "#define USE_KQEMU 1" >> $config_h
1083
  fi
1084
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1085
  echo "TARGET_ARCH=arm" >> $config_mak
1086
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
1087
  echo "#define TARGET_ARM 1" >> $config_h
1088
  bflt="yes"
1089
elif test "$target_cpu" = "sparc" ; then
1090
  echo "TARGET_ARCH=sparc" >> $config_mak
1091
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1092
  echo "#define TARGET_SPARC 1" >> $config_h
1093
elif test "$target_cpu" = "sparc64" ; then
1094
  echo "TARGET_ARCH=sparc64" >> $config_mak
1095
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1096
  echo "#define TARGET_SPARC 1" >> $config_h
1097
  echo "#define TARGET_SPARC64 1" >> $config_h
1098
  elfload32="yes"
1099
elif test "$target_cpu" = "sparc32plus" ; then
1100
  echo "TARGET_ARCH=sparc64" >> $config_mak
1101
  echo "TARGET_ABI_DIR=sparc" >> $config_mak
1102
  echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1103
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1104
  echo "#define TARGET_SPARC 1" >> $config_h
1105
  echo "#define TARGET_SPARC64 1" >> $config_h
1106
  echo "#define TARGET_ABI32 1" >> $config_h
1107
elif test "$target_cpu" = "ppc" ; then
1108
  echo "TARGET_ARCH=ppc" >> $config_mak
1109
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1110
  echo "#define TARGET_PPC 1" >> $config_h
1111
elif test "$target_cpu" = "ppcemb" ; then
1112
  echo "TARGET_ARCH=ppcemb" >> $config_mak
1113
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1114
  echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1115
  echo "#define TARGET_PPC 1" >> $config_h
1116
  echo "#define TARGET_PPCEMB 1" >> $config_h
1117
elif test "$target_cpu" = "ppc64" ; then
1118
  echo "TARGET_ARCH=ppc64" >> $config_mak
1119
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1120
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1121
  echo "#define TARGET_PPC 1" >> $config_h
1122
  echo "#define TARGET_PPC64 1" >> $config_h
1123
elif test "$target_cpu" = "ppc64abi32" ; then
1124
  echo "TARGET_ARCH=ppc64" >> $config_mak
1125
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1126
  echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1127
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1128
  echo "#define TARGET_PPC 1" >> $config_h
1129
  echo "#define TARGET_PPC64 1" >> $config_h
1130
  echo "#define TARGET_ABI32 1" >> $config_h
1131
elif test "$target_cpu" = "x86_64" ; then
1132
  echo "TARGET_ARCH=x86_64" >> $config_mak
1133
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1134
  echo "#define TARGET_I386 1" >> $config_h
1135
  echo "#define TARGET_X86_64 1" >> $config_h
1136
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1137
    echo "#define USE_KQEMU 1" >> $config_h
1138
  fi
1139
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1140
  echo "TARGET_ARCH=mips" >> $config_mak
1141
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
1142
  echo "#define TARGET_MIPS 1" >> $config_h
1143
  echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1144
elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1145
  echo "TARGET_ARCH=mipsn32" >> $config_mak
1146
  echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1147
  echo "#define TARGET_MIPS 1" >> $config_h
1148
  echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1149
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1150
  echo "TARGET_ARCH=mips64" >> $config_mak
1151
  echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1152
  echo "#define TARGET_MIPS 1" >> $config_h
1153
  echo "#define TARGET_MIPS64 1" >> $config_h
1154
  echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1155
elif test "$target_cpu" = "cris" ; then
1156
  echo "TARGET_ARCH=cris" >> $config_mak
1157
  echo "#define TARGET_ARCH \"cris\"" >> $config_h
1158
  echo "#define TARGET_CRIS 1" >> $config_h
1159
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1160
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1161
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1162
  echo "TARGET_ARCH=sh4" >> $config_mak
1163
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1164
  echo "#define TARGET_SH4 1" >> $config_h
1165
  bflt="yes"
1166
elif test "$target_cpu" = "m68k" ; then
1167
  echo "TARGET_ARCH=m68k" >> $config_mak
1168
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1169
  echo "#define TARGET_M68K 1" >> $config_h
1170
  bflt="yes"
1171
elif test "$target_cpu" = "alpha" ; then
1172
  echo "TARGET_ARCH=alpha" >> $config_mak
1173
  echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1174
  echo "#define TARGET_ALPHA 1" >> $config_h
1175
else
1176
  echo "Unsupported target CPU"
1177
  exit 1
1178
fi
1179
if test "$target_bigendian" = "yes" ; then
1180
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1181
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1182
fi
1183
if test "$target_softmmu" = "yes" ; then
1184
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1185
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1186
fi
1187
if test "$target_user_only" = "yes" ; then
1188
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1189
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1190
fi
1191
if test "$target_linux_user" = "yes" ; then
1192
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1193
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1194
fi
1195
if test "$target_darwin_user" = "yes" ; then
1196
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1197
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1198
fi
1199

    
1200
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64"  -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then
1201
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1202
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1203
fi
1204
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1205
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1206
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1207
fi
1208
# 32 bit ELF loader in addition to native 64 bit loader?
1209
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1210
  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1211
  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1212
fi
1213

    
1214
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1215

    
1216
done # for target in $targets
1217

    
1218
# build tree in object directory if source path is different from current one
1219
if test "$source_path_used" = "yes" ; then
1220
    DIRS="tests tests/cris slirp audio"
1221
    FILES="Makefile tests/Makefile"
1222
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1223
    for dir in $DIRS ; do
1224
            mkdir -p $dir
1225
    done
1226
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1227
    for f in $FILES ; do
1228
        rm -f $f
1229
        ln -s $source_path/$f $f
1230
    done
1231
fi
1232

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