Statistics
| Branch: | Revision:

root / configure @ 1cdb9c3d

History | View | Annotate | Download (37.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
  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
curses="yes"
112

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

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

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

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

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

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

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

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

    
382
if test x"$show_help" = x"yes" ; then
383
cat << EOF
384

    
385
Usage: configure [options]
386
Options: [defaults in brackets after descriptions]
387

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

    
436
cc="${cross_prefix}${cc}"
437
ar="${cross_prefix}${ar}"
438
strip="${cross_prefix}${strip}"
439

    
440
# check that the C compiler works.
441
cat > $TMPC <<EOF
442
int main(void) {}
443
EOF
444

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

    
452
if test "$mingw32" = "yes" ; then
453
    linux="no"
454
    EXESUF=".exe"
455
    oss="no"
456
fi
457

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

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

    
532

    
533
if test -z "$target_list" ; then
534
# these targets are portable
535
    if [ "$softmmu" = "yes" ] ; then
536
        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"
537
    fi
538
# the following are Linux specific
539
    if [ "$linux_user" = "yes" ] ; then
540
        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"
541
    fi
542
# the following are Darwin specific
543
    if [ "$darwin_user" = "yes" ] ; then
544
        target_list="i386-darwin-user ppc-darwin-user $target_list"
545
    fi
546
else
547
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
548
fi
549
if test -z "$target_list" ; then
550
    echo "No targets enabled"
551
    exit 1
552
fi
553

    
554
if test -z "$cross_prefix" ; then
555

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

    
566
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
567
$TMPE && bigendian="yes"
568
else
569
echo big/little test failed
570
fi
571

    
572
else
573

    
574
# if cross compiling, cannot launch a program, so make a static guess
575
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
576
    bigendian="yes"
577
fi
578

    
579
fi
580

    
581
# host long bits test
582
hostlongbits="32"
583
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
584
    hostlongbits="64"
585
fi
586

    
587
# check gcc options support
588
cat > $TMPC <<EOF
589
int main(void) {
590
}
591
EOF
592

    
593
##########################################
594
# SDL probe
595

    
596
sdl_too_old=no
597

    
598
if test -z "$sdl" ; then
599
    sdl_config="sdl-config"
600
    sdl=no
601
    sdl_static=no
602

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

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

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

    
647
##########################################
648
# VNC TLS detection
649
if test "$vnc_tls" = "yes" ; then
650
  `pkg-config gnutls` || vnc_tls="no"
651
fi
652
if test "$vnc_tls" = "yes" ; then
653
  vnc_tls_cflags=`pkg-config --cflags gnutls`
654
  vnc_tls_libs=`pkg-config --libs gnutls`
655
fi
656

    
657
##########################################
658
# alsa sound support libraries
659

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

    
676
##########################################
677
# curses probe
678

    
679
if test "$curses" = "yes" ; then
680
  curses=no
681
  cat > $TMPC << EOF
682
#include <curses.h>
683
int main(void) { return curses_version(); }
684
EOF
685
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
686
    curses=yes
687
  fi
688
fi # test "$curses"
689

    
690
# Check if tools are available to build documentation.
691
if [ -x "`which texi2html 2>/dev/null`" ] && \
692
   [ -x "`which pod2man 2>/dev/null`" ]; then
693
  build_docs="yes"
694
fi
695

    
696
if test "$mingw32" = "yes" ; then
697
  if test -z "$prefix" ; then
698
      prefix="/c/Program Files/Qemu"
699
  fi
700
  mansuffix=""
701
  datasuffix=""
702
  docsuffix=""
703
  binsuffix=""
704
else
705
  if test -z "$prefix" ; then
706
      prefix="/usr/local"
707
  fi
708
  mansuffix="/share/man"
709
  datasuffix="/share/qemu"
710
  docsuffix="/share/doc/qemu"
711
  binsuffix="/bin"
712
fi
713

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

    
777
if test $sdl_too_old = "yes"; then
778
echo "-> Your SDL version is too old - please upgrade to have SDL support"
779
fi
780
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
781
  echo "The error log from compiling the libSDL test is: "
782
  cat /tmp/qemu-$$-sdl-config.log
783
fi
784
rm -f /tmp/qemu-$$-sdl-config.log
785
#if test "$sdl_static" = "no"; then
786
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
787
#fi
788
config_mak="config-host.mak"
789
config_h="config-host.h"
790

    
791
#echo "Creating $config_mak and $config_h"
792

    
793
test -f $config_h && mv $config_h ${config_h}~
794

    
795
echo "# Automatically generated by configure - do not modify" > $config_mak
796
echo "# Configured with: $0 $@" >> $config_mak
797
echo "/* Automatically generated by configure - do not modify */" > $config_h
798

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

    
968
echo "SRC_PATH=$source_path" >> $config_mak
969
if [ "$source_path_used" = "yes" ]; then
970
  echo "VPATH=$source_path" >> $config_mak
971
fi
972
echo "TARGET_DIRS=$target_list" >> $config_mak
973
if [ "$build_docs" = "yes" ] ; then
974
  echo "BUILD_DOCS=yes" >> $config_mak
975
fi
976
if test "$static" = "yes"; then
977
  sdl1=$sdl_static
978
else
979
  sdl1=$sdl
980
fi
981
if test "$sdl1" = "yes" ; then
982
  echo "#define CONFIG_SDL 1" >> $config_h
983
  echo "CONFIG_SDL=yes" >> $config_mak
984
  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
985
    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
986
  else
987
    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
988
  fi
989
  if [ "${aa}" = "yes" ] ; then
990
    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
991
  else
992
    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
993
  fi
994
fi
995
if test "$cocoa" = "yes" ; then
996
  echo "#define CONFIG_COCOA 1" >> $config_h
997
  echo "CONFIG_COCOA=yes" >> $config_mak
998
fi
999
if test "$curses" = "yes" ; then
1000
  echo "#define CONFIG_CURSES 1" >> $config_h
1001
  echo "CONFIG_CURSES=yes" >> $config_mak
1002
  echo "CURSES_LIBS=-lcurses" >> $config_mak
1003
fi
1004

    
1005
# XXX: suppress that
1006
if [ "$bsd" = "yes" ] ; then
1007
  echo "#define O_LARGEFILE 0" >> $config_h
1008
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1009
  echo "#define _BSD 1" >> $config_h
1010
fi
1011

    
1012
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1013

    
1014
tools=
1015
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1016
  tools="qemu-img\$(EXESUF) $tools"
1017
fi
1018
echo "TOOLS=$tools" >> $config_mak
1019

    
1020
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1021

    
1022
for target in $target_list; do
1023
target_dir="$target"
1024
config_mak=$target_dir/config.mak
1025
config_h=$target_dir/config.h
1026
target_cpu=`echo $target | cut -d '-' -f 1`
1027
target_bigendian="no"
1028
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1029
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1030
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1031
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1032
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1033
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1034
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1035
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1036
[ "$target_cpu" = "mips" ] && target_bigendian=yes
1037
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1038
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1039
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1040
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1041
target_softmmu="no"
1042
target_user_only="no"
1043
target_linux_user="no"
1044
target_darwin_user="no"
1045
case "$target" in
1046
  ${target_cpu}-softmmu)
1047
    target_softmmu="yes"
1048
    ;;
1049
  ${target_cpu}-linux-user)
1050
    target_user_only="yes"
1051
    target_linux_user="yes"
1052
    ;;
1053
  ${target_cpu}-darwin-user)
1054
    target_user_only="yes"
1055
    target_darwin_user="yes"
1056
    ;;
1057
  *)
1058
    echo "ERROR: Target '$target' not recognised"
1059
    exit 1
1060
    ;;
1061
esac
1062

    
1063
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1064
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1065
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1066
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
1067
    echo "Note that this will disable all output from the virtual graphics card"
1068
    echo "except through VNC or curses."
1069
    exit 1;
1070
fi
1071

    
1072
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1073

    
1074
test -f $config_h && mv $config_h ${config_h}~
1075

    
1076
mkdir -p $target_dir
1077
mkdir -p $target_dir/fpu
1078
mkdir -p $target_dir/tcg
1079
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1080
  mkdir -p $target_dir/nwfpe
1081
fi
1082

    
1083
#
1084
# don't use ln -sf as not all "ln -sf" over write the file/link
1085
#
1086
rm -f $target_dir/Makefile
1087
ln -s $source_path/Makefile.target $target_dir/Makefile
1088

    
1089

    
1090
echo "# Automatically generated by configure - do not modify" > $config_mak
1091
echo "/* Automatically generated by configure - do not modify */" > $config_h
1092

    
1093

    
1094
echo "include ../config-host.mak" >> $config_mak
1095
echo "#include \"../config-host.h\"" >> $config_h
1096

    
1097
bflt="no"
1098
elfload32="no"
1099
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1100
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1101

    
1102
if test "$target_cpu" = "i386" ; then
1103
  echo "TARGET_ARCH=i386" >> $config_mak
1104
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
1105
  echo "#define TARGET_I386 1" >> $config_h
1106
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1107
    echo "#define USE_KQEMU 1" >> $config_h
1108
  fi
1109
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1110
  echo "TARGET_ARCH=arm" >> $config_mak
1111
  echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak
1112
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
1113
  echo "#define TARGET_ARM 1" >> $config_h
1114
  echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h
1115
  bflt="yes"
1116
elif test "$target_cpu" = "sparc" ; then
1117
  echo "TARGET_ARCH=sparc" >> $config_mak
1118
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1119
  echo "#define TARGET_SPARC 1" >> $config_h
1120
elif test "$target_cpu" = "sparc64" ; then
1121
  echo "TARGET_ARCH=sparc64" >> $config_mak
1122
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1123
  echo "#define TARGET_SPARC 1" >> $config_h
1124
  echo "#define TARGET_SPARC64 1" >> $config_h
1125
  elfload32="yes"
1126
elif test "$target_cpu" = "sparc32plus" ; then
1127
  echo "TARGET_ARCH=sparc64" >> $config_mak
1128
  echo "TARGET_ABI_DIR=sparc" >> $config_mak
1129
  echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1130
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1131
  echo "#define TARGET_SPARC 1" >> $config_h
1132
  echo "#define TARGET_SPARC64 1" >> $config_h
1133
  echo "#define TARGET_ABI32 1" >> $config_h
1134
elif test "$target_cpu" = "ppc" ; then
1135
  echo "TARGET_ARCH=ppc" >> $config_mak
1136
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1137
  echo "#define TARGET_PPC 1" >> $config_h
1138
elif test "$target_cpu" = "ppcemb" ; then
1139
  echo "TARGET_ARCH=ppcemb" >> $config_mak
1140
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1141
  echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1142
  echo "#define TARGET_PPC 1" >> $config_h
1143
  echo "#define TARGET_PPCEMB 1" >> $config_h
1144
elif test "$target_cpu" = "ppc64" ; then
1145
  echo "TARGET_ARCH=ppc64" >> $config_mak
1146
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1147
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1148
  echo "#define TARGET_PPC 1" >> $config_h
1149
  echo "#define TARGET_PPC64 1" >> $config_h
1150
elif test "$target_cpu" = "ppc64abi32" ; then
1151
  echo "TARGET_ARCH=ppc64" >> $config_mak
1152
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1153
  echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1154
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1155
  echo "#define TARGET_PPC 1" >> $config_h
1156
  echo "#define TARGET_PPC64 1" >> $config_h
1157
  echo "#define TARGET_ABI32 1" >> $config_h
1158
elif test "$target_cpu" = "x86_64" ; then
1159
  echo "TARGET_ARCH=x86_64" >> $config_mak
1160
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1161
  echo "#define TARGET_I386 1" >> $config_h
1162
  echo "#define TARGET_X86_64 1" >> $config_h
1163
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1164
    echo "#define USE_KQEMU 1" >> $config_h
1165
  fi
1166
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1167
  echo "TARGET_ARCH=mips" >> $config_mak
1168
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
1169
  echo "#define TARGET_MIPS 1" >> $config_h
1170
  echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1171
elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1172
  echo "TARGET_ARCH=mipsn32" >> $config_mak
1173
  echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1174
  echo "#define TARGET_MIPS 1" >> $config_h
1175
  echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1176
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1177
  echo "TARGET_ARCH=mips64" >> $config_mak
1178
  echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1179
  echo "#define TARGET_MIPS 1" >> $config_h
1180
  echo "#define TARGET_MIPS64 1" >> $config_h
1181
  echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1182
elif test "$target_cpu" = "cris" ; then
1183
  echo "TARGET_ARCH=cris" >> $config_mak
1184
  echo "#define TARGET_ARCH \"cris\"" >> $config_h
1185
  echo "#define TARGET_CRIS 1" >> $config_h
1186
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1187
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1188
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1189
  echo "TARGET_ARCH=sh4" >> $config_mak
1190
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1191
  echo "#define TARGET_SH4 1" >> $config_h
1192
  bflt="yes"
1193
elif test "$target_cpu" = "m68k" ; then
1194
  echo "TARGET_ARCH=m68k" >> $config_mak
1195
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1196
  echo "#define TARGET_M68K 1" >> $config_h
1197
  bflt="yes"
1198
elif test "$target_cpu" = "alpha" ; then
1199
  echo "TARGET_ARCH=alpha" >> $config_mak
1200
  echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1201
  echo "#define TARGET_ALPHA 1" >> $config_h
1202
else
1203
  echo "Unsupported target CPU"
1204
  exit 1
1205
fi
1206
if test "$target_bigendian" = "yes" ; then
1207
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1208
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1209
fi
1210
if test "$target_softmmu" = "yes" ; then
1211
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1212
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1213
fi
1214
if test "$target_user_only" = "yes" ; then
1215
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1216
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1217
fi
1218
if test "$target_linux_user" = "yes" ; then
1219
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1220
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1221
fi
1222
if test "$target_darwin_user" = "yes" ; then
1223
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1224
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1225
fi
1226

    
1227
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
1228
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1229
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1230
fi
1231
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1232
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1233
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1234
fi
1235
# 32 bit ELF loader in addition to native 64 bit loader?
1236
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1237
  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1238
  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1239
fi
1240

    
1241
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1242

    
1243
done # for target in $targets
1244

    
1245
# build tree in object directory if source path is different from current one
1246
if test "$source_path_used" = "yes" ; then
1247
    DIRS="tests tests/cris slirp audio"
1248
    FILES="Makefile tests/Makefile"
1249
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1250
    FILES="$FILES tests/test-mmap.c"
1251
    for dir in $DIRS ; do
1252
            mkdir -p $dir
1253
    done
1254
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1255
    for f in $FILES ; do
1256
        rm -f $f
1257
        ln -s $source_path/$f $f
1258
    done
1259
fi
1260

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