Statistics
| Branch: | Revision:

root / configure @ aaa5fa14

History | View | Annotate | Download (38.3 kB)

1
#!/bin/sh
2
#
3
# qemu configure script (c) 2003 Fabrice Bellard
4
#
5
# set temporary file name
6
if test ! -z "$TMPDIR" ; then
7
    TMPDIR1="${TMPDIR}"
8
elif test ! -z "$TEMPDIR" ; then
9
    TMPDIR1="${TEMPDIR}"
10
else
11
    TMPDIR1="/tmp"
12
fi
13

    
14
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
18

    
19
# default parameters
20
prefix=""
21
interp_prefix="/usr/gnemul/qemu-%M"
22
static="no"
23
cross_prefix=""
24
cc="gcc"
25
gcc3_search="yes"
26
gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
27
host_cc="gcc"
28
ar="ar"
29
make="make"
30
install="install"
31
strip="strip"
32
cpu=`uname -m`
33
target_list=""
34
case "$cpu" in
35
  i386|i486|i586|i686|i86pc|BePC)
36
    cpu="i386"
37
  ;;
38
  x86_64|amd64)
39
    cpu="x86_64"
40
  ;;
41
  alpha)
42
    cpu="alpha"
43
  ;;
44
  armv*b)
45
    cpu="armv4b"
46
  ;;
47
  armv*l)
48
    cpu="armv4l"
49
  ;;
50
  cris)
51
    cpu="cris"
52
  ;;
53
  ia64)
54
    cpu="ia64"
55
  ;;
56
  m68k)
57
    cpu="m68k"
58
  ;;
59
  mips)
60
    cpu="mips"
61
  ;;
62
  mips64)
63
    cpu="mips64"
64
  ;;
65
  "Power Macintosh"|ppc|ppc64)
66
    cpu="powerpc"
67
  ;;
68
  s390*)
69
    cpu="s390"
70
  ;;
71
  sparc|sun4[cdmuv])
72
    cpu="sparc"
73
  ;;
74
  sparc64)
75
    cpu="sparc64"
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
  --disable-brlapi) brlapi="no"
290
  ;;
291
  --enable-profiler) profiler="yes"
292
  ;;
293
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
294
  ;;
295
  --disable-gfx-check) check_gfx="no"
296
  ;;
297
  --disable-gcc-check) check_gcc="no"
298
  ;;
299
  --disable-system) softmmu="no"
300
  ;;
301
  --enable-system) softmmu="yes"
302
  ;;
303
  --disable-linux-user) linux_user="no"
304
  ;;
305
  --enable-linux-user) linux_user="yes"
306
  ;;
307
  --disable-darwin-user) darwin_user="no"
308
  ;;
309
  --enable-darwin-user) darwin_user="yes"
310
  ;;
311
  --enable-uname-release=*) uname_release="$optarg"
312
  ;;
313
  --sparc_cpu=*)
314
      sparc_cpu="$optarg"
315
      case $sparc_cpu in
316
        v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
317
                 target_cpu="sparc"; cpu="sparc" ;;
318
        v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
319
                 target_cpu="sparc"; cpu="sparc" ;;
320
        v9)    SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
321
                 target_cpu="sparc64"; cpu="sparc64" ;;
322
        *)     echo "undefined SPARC architecture. Exiting";exit 1;;
323
      esac
324
  ;;
325
  --enable-werror) werror="yes"
326
  ;;
327
  --disable-werror) werror="no"
328
  ;;
329
  --disable-curses) curses="no"
330
  ;;
331
  *) echo "ERROR: unknown option $opt"; show_help="yes"
332
  ;;
333
  esac
334
done
335

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

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

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

    
384
if test x"$show_help" = x"yes" ; then
385
cat << EOF
386

    
387
Usage: configure [options]
388
Options: [defaults in brackets after descriptions]
389

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

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

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

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

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

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

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

    
535

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

    
557
if test -z "$cross_prefix" ; then
558

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

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

    
575
else
576

    
577
# if cross compiling, cannot launch a program, so make a static guess
578
if test "$cpu" = "armv4b" \
579
     -o "$cpu" = "m68k" \
580
     -o "$cpu" = "mips" \
581
     -o "$cpu" = "mips64" \
582
     -o "$cpu" = "powerpc" \
583
     -o "$cpu" = "s390" \
584
     -o "$cpu" = "sparc" \
585
     -o "$cpu" = "sparc64"; then
586
    bigendian="yes"
587
fi
588

    
589
fi
590

    
591
# host long bits test
592
hostlongbits="32"
593
if test "$cpu" = "x86_64" \
594
     -o "$cpu" = "alpha" \
595
     -o "$cpu" = "ia64" \
596
     -o "$cpu" = "sparc64"; then
597
    hostlongbits="64"
598
fi
599

    
600
# check gcc options support
601
cat > $TMPC <<EOF
602
int main(void) {
603
}
604
EOF
605

    
606
##########################################
607
# SDL probe
608

    
609
sdl_too_old=no
610

    
611
if test -z "$sdl" ; then
612
    sdl_config="sdl-config"
613
    sdl=no
614
    sdl_static=no
615

    
616
    if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
617
    # win32 cross compilation case
618
        sdl_config="i386-mingw32msvc-sdl-config"
619
        sdl=yes
620
    else
621
        # normal SDL probe
622
cat > $TMPC << EOF
623
#include <SDL.h>
624
#undef main /* We don't want SDL to override our main() */
625
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
626
EOF
627
        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
628
            _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
629
            if test "$_sdlversion" -lt 121 ; then
630
                sdl_too_old=yes
631
            else
632
                if test "$cocoa" = "no" ; then
633
                    sdl=yes
634
                fi
635
            fi
636

    
637
            # static link with sdl ?
638
            if test "$sdl" = "yes" ; then
639
                aa="no"
640
                `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
641
                sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
642
                if [ "$aa" = "yes" ] ; then
643
                    sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
644
                fi
645

    
646
                if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
647
                    sdl_static=yes
648
                fi
649
            fi # static link
650
        fi # sdl compile test
651
    fi # cross compilation
652
else
653
    # Make sure to disable cocoa if sdl was set
654
    if test "$sdl" = "yes" ; then
655
       cocoa="no"
656
       coreaudio="no"
657
    fi
658
fi # -z $sdl
659

    
660
##########################################
661
# VNC TLS detection
662
if test "$vnc_tls" = "yes" ; then
663
  `pkg-config gnutls` || vnc_tls="no"
664
fi
665
if test "$vnc_tls" = "yes" ; then
666
  vnc_tls_cflags=`pkg-config --cflags gnutls`
667
  vnc_tls_libs=`pkg-config --libs gnutls`
668
fi
669

    
670
##########################################
671
# alsa sound support libraries
672

    
673
if test "$alsa" = "yes" ; then
674
  cat > $TMPC << EOF
675
#include <alsa/asoundlib.h>
676
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
677
EOF
678
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lasound 2> /dev/null ; then
679
    :
680
  else
681
    echo
682
    echo "Error: Could not find alsa"
683
    echo "Make sure to have the alsa libs and headers installed."
684
    echo
685
    exit 1
686
  fi
687
fi
688

    
689
##########################################
690
# BrlAPI probe
691

    
692
if test -z "$brlapi" ; then
693
    brlapi=no
694
cat > $TMPC << EOF
695
#include <brlapi.h>
696
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
697
EOF
698
    if $cc -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /tmp/qemu-$$-brlapi.log ; then
699
	    brlapi=yes
700
    fi # brlapi compile test
701
fi # -z $brlapi
702

    
703
##########################################
704
# curses probe
705

    
706
if test "$curses" = "yes" ; then
707
  curses=no
708
  cat > $TMPC << EOF
709
#include <curses.h>
710
int main(void) { return curses_version(); }
711
EOF
712
  if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
713
    curses=yes
714
  fi
715
fi # test "$curses"
716

    
717
# Check if tools are available to build documentation.
718
if [ -x "`which texi2html 2>/dev/null`" ] && \
719
   [ -x "`which pod2man 2>/dev/null`" ]; then
720
  build_docs="yes"
721
fi
722

    
723
if test "$mingw32" = "yes" ; then
724
  if test -z "$prefix" ; then
725
      prefix="/c/Program Files/Qemu"
726
  fi
727
  mansuffix=""
728
  datasuffix=""
729
  docsuffix=""
730
  binsuffix=""
731
else
732
  if test -z "$prefix" ; then
733
      prefix="/usr/local"
734
  fi
735
  mansuffix="/share/man"
736
  datasuffix="/share/qemu"
737
  docsuffix="/share/doc/qemu"
738
  binsuffix="/bin"
739
fi
740

    
741
echo "Install prefix    $prefix"
742
echo "BIOS directory    $prefix$datasuffix"
743
echo "binary directory  $prefix$binsuffix"
744
if test "$mingw32" = "no" ; then
745
echo "Manual directory  $prefix$mansuffix"
746
echo "ELF interp prefix $interp_prefix"
747
fi
748
echo "Source path       $source_path"
749
echo "C compiler        $cc"
750
echo "Host C compiler   $host_cc"
751
echo "ARCH_CFLAGS       $ARCH_CFLAGS"
752
echo "make              $make"
753
echo "install           $install"
754
echo "host CPU          $cpu"
755
echo "host big endian   $bigendian"
756
echo "target list       $target_list"
757
echo "gprof enabled     $gprof"
758
echo "profiler          $profiler"
759
echo "static build      $static"
760
echo "-Werror enabled   $werror"
761
if test "$darwin" = "yes" ; then
762
    echo "Cocoa support     $cocoa"
763
fi
764
echo "SDL support       $sdl"
765
if test "$sdl" != "no" ; then
766
    echo "SDL static link   $sdl_static"
767
fi
768
echo "curses support    $curses"
769
echo "mingw32 support   $mingw32"
770
echo "Adlib support     $adlib"
771
echo "AC97 support      $ac97"
772
echo "GUS support       $gus"
773
echo "CoreAudio support $coreaudio"
774
echo "ALSA support      $alsa"
775
echo "EsounD support    $esd"
776
echo "DSound support    $dsound"
777
if test "$fmod" = "yes"; then
778
    if test -z $fmod_lib || test -z $fmod_inc; then
779
        echo
780
        echo "Error: You must specify path to FMOD library and headers"
781
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
782
        echo
783
        exit 1
784
    fi
785
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
786
else
787
    fmod_support=""
788
fi
789
echo "FMOD support      $fmod $fmod_support"
790
echo "OSS support       $oss"
791
echo "VNC TLS support   $vnc_tls"
792
if test "$vnc_tls" = "yes" ; then
793
    echo "    TLS CFLAGS    $vnc_tls_cflags"
794
    echo "    TLS LIBS      $vnc_tls_libs"
795
fi
796
if test -n "$sparc_cpu"; then
797
    echo "Target Sparc Arch $sparc_cpu"
798
fi
799
echo "kqemu support     $kqemu"
800
echo "brlapi support    $brlapi"
801
echo "Documentation     $build_docs"
802
[ ! -z "$uname_release" ] && \
803
echo "uname -r          $uname_release"
804

    
805
if test $sdl_too_old = "yes"; then
806
echo "-> Your SDL version is too old - please upgrade to have SDL support"
807
fi
808
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
809
  echo "The error log from compiling the libSDL test is: "
810
  cat /tmp/qemu-$$-sdl-config.log
811
fi
812
rm -f /tmp/qemu-$$-sdl-config.log
813
#if test "$sdl_static" = "no"; then
814
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
815
#fi
816
config_mak="config-host.mak"
817
config_h="config-host.h"
818

    
819
#echo "Creating $config_mak and $config_h"
820

    
821
test -f $config_h && mv $config_h ${config_h}~
822

    
823
echo "# Automatically generated by configure - do not modify" > $config_mak
824
echo "# Configured with: $0 $@" >> $config_mak
825
echo "/* Automatically generated by configure - do not modify */" > $config_h
826

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

    
996
echo "SRC_PATH=$source_path" >> $config_mak
997
if [ "$source_path_used" = "yes" ]; then
998
  echo "VPATH=$source_path" >> $config_mak
999
fi
1000
echo "TARGET_DIRS=$target_list" >> $config_mak
1001
if [ "$build_docs" = "yes" ] ; then
1002
  echo "BUILD_DOCS=yes" >> $config_mak
1003
fi
1004
if test "$static" = "yes"; then
1005
  sdl1=$sdl_static
1006
else
1007
  sdl1=$sdl
1008
fi
1009
if test "$sdl1" = "yes" ; then
1010
  echo "#define CONFIG_SDL 1" >> $config_h
1011
  echo "CONFIG_SDL=yes" >> $config_mak
1012
  if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1013
    echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1014
  else
1015
    echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1016
  fi
1017
  if [ "${aa}" = "yes" ] ; then
1018
    echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1019
  else
1020
    echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1021
  fi
1022
fi
1023
if test "$cocoa" = "yes" ; then
1024
  echo "#define CONFIG_COCOA 1" >> $config_h
1025
  echo "CONFIG_COCOA=yes" >> $config_mak
1026
fi
1027
if test "$curses" = "yes" ; then
1028
  echo "#define CONFIG_CURSES 1" >> $config_h
1029
  echo "CONFIG_CURSES=yes" >> $config_mak
1030
  echo "CURSES_LIBS=-lcurses" >> $config_mak
1031
fi
1032
if test "$brlapi" = "yes" ; then
1033
  echo "CONFIG_BRLAPI=yes" >> $config_mak
1034
  echo "#define CONFIG_BRLAPI 1" >> $config_h
1035
  echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1036
fi
1037

    
1038
# XXX: suppress that
1039
if [ "$bsd" = "yes" ] ; then
1040
  echo "#define O_LARGEFILE 0" >> $config_h
1041
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1042
  echo "#define _BSD 1" >> $config_h
1043
fi
1044

    
1045
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1046

    
1047
tools=
1048
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1049
  tools="qemu-img\$(EXESUF) $tools"
1050
fi
1051
echo "TOOLS=$tools" >> $config_mak
1052

    
1053
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1054

    
1055
for target in $target_list; do
1056
target_dir="$target"
1057
config_mak=$target_dir/config.mak
1058
config_h=$target_dir/config.h
1059
target_cpu=`echo $target | cut -d '-' -f 1`
1060
target_bigendian="no"
1061
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1062
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1063
[ "$target_cpu" = "mips" ] && target_bigendian=yes
1064
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1065
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1066
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1067
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1068
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1069
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1070
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1071
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1072
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1073
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1074
target_softmmu="no"
1075
target_user_only="no"
1076
target_linux_user="no"
1077
target_darwin_user="no"
1078
case "$target" in
1079
  ${target_cpu}-softmmu)
1080
    target_softmmu="yes"
1081
    ;;
1082
  ${target_cpu}-linux-user)
1083
    target_user_only="yes"
1084
    target_linux_user="yes"
1085
    ;;
1086
  ${target_cpu}-darwin-user)
1087
    target_user_only="yes"
1088
    target_darwin_user="yes"
1089
    ;;
1090
  *)
1091
    echo "ERROR: Target '$target' not recognised"
1092
    exit 1
1093
    ;;
1094
esac
1095

    
1096
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1097
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1098
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1099
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
1100
    echo "Note that this will disable all output from the virtual graphics card"
1101
    echo "except through VNC or curses."
1102
    exit 1;
1103
fi
1104

    
1105
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1106

    
1107
test -f $config_h && mv $config_h ${config_h}~
1108

    
1109
mkdir -p $target_dir
1110
mkdir -p $target_dir/fpu
1111
mkdir -p $target_dir/tcg
1112
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
1113
  mkdir -p $target_dir/nwfpe
1114
fi
1115

    
1116
#
1117
# don't use ln -sf as not all "ln -sf" over write the file/link
1118
#
1119
rm -f $target_dir/Makefile
1120
ln -s $source_path/Makefile.target $target_dir/Makefile
1121

    
1122

    
1123
echo "# Automatically generated by configure - do not modify" > $config_mak
1124
echo "/* Automatically generated by configure - do not modify */" > $config_h
1125

    
1126

    
1127
echo "include ../config-host.mak" >> $config_mak
1128
echo "#include \"../config-host.h\"" >> $config_h
1129

    
1130
bflt="no"
1131
elfload32="no"
1132
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1133
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1134

    
1135
if test "$target_cpu" = "i386" ; then
1136
  echo "TARGET_ARCH=i386" >> $config_mak
1137
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
1138
  echo "#define TARGET_I386 1" >> $config_h
1139
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
1140
    echo "#define USE_KQEMU 1" >> $config_h
1141
  fi
1142
elif test "$target_cpu" = "x86_64" ; then
1143
  echo "TARGET_ARCH=x86_64" >> $config_mak
1144
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1145
  echo "#define TARGET_I386 1" >> $config_h
1146
  echo "#define TARGET_X86_64 1" >> $config_h
1147
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
1148
    echo "#define USE_KQEMU 1" >> $config_h
1149
  fi
1150
elif test "$target_cpu" = "alpha" ; then
1151
  echo "TARGET_ARCH=alpha" >> $config_mak
1152
  echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1153
  echo "#define TARGET_ALPHA 1" >> $config_h
1154
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
1155
  echo "TARGET_ARCH=arm" >> $config_mak
1156
  echo "CONFIG_NO_DYNGEN_OP=yes" >> $config_mak
1157
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
1158
  echo "#define TARGET_ARM 1" >> $config_h
1159
  echo "#define CONFIG_NO_DYNGEN_OP 1" >> $config_h
1160
  bflt="yes"
1161
elif test "$target_cpu" = "cris" ; then
1162
  echo "TARGET_ARCH=cris" >> $config_mak
1163
  echo "#define TARGET_ARCH \"cris\"" >> $config_h
1164
  echo "#define TARGET_CRIS 1" >> $config_h
1165
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1166
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1167
elif test "$target_cpu" = "m68k" ; then
1168
  echo "TARGET_ARCH=m68k" >> $config_mak
1169
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1170
  echo "#define TARGET_M68K 1" >> $config_h
1171
  bflt="yes"
1172
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1173
  echo "TARGET_ARCH=mips" >> $config_mak
1174
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
1175
  echo "#define TARGET_MIPS 1" >> $config_h
1176
  echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1177
elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then
1178
  echo "TARGET_ARCH=mipsn32" >> $config_mak
1179
  echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1180
  echo "#define TARGET_MIPS 1" >> $config_h
1181
  echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1182
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
1183
  echo "TARGET_ARCH=mips64" >> $config_mak
1184
  echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1185
  echo "#define TARGET_MIPS 1" >> $config_h
1186
  echo "#define TARGET_MIPS64 1" >> $config_h
1187
  echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1188
elif test "$target_cpu" = "ppc" ; then
1189
  echo "TARGET_ARCH=ppc" >> $config_mak
1190
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1191
  echo "#define TARGET_PPC 1" >> $config_h
1192
elif test "$target_cpu" = "ppcemb" ; then
1193
  echo "TARGET_ARCH=ppcemb" >> $config_mak
1194
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1195
  echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1196
  echo "#define TARGET_PPC 1" >> $config_h
1197
  echo "#define TARGET_PPCEMB 1" >> $config_h
1198
elif test "$target_cpu" = "ppc64" ; then
1199
  echo "TARGET_ARCH=ppc64" >> $config_mak
1200
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1201
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1202
  echo "#define TARGET_PPC 1" >> $config_h
1203
  echo "#define TARGET_PPC64 1" >> $config_h
1204
elif test "$target_cpu" = "ppc64abi32" ; then
1205
  echo "TARGET_ARCH=ppc64" >> $config_mak
1206
  echo "TARGET_ABI_DIR=ppc" >> $config_mak
1207
  echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
1208
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1209
  echo "#define TARGET_PPC 1" >> $config_h
1210
  echo "#define TARGET_PPC64 1" >> $config_h
1211
  echo "#define TARGET_ABI32 1" >> $config_h
1212
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1213
  echo "TARGET_ARCH=sh4" >> $config_mak
1214
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1215
  echo "#define TARGET_SH4 1" >> $config_h
1216
  bflt="yes"
1217
elif test "$target_cpu" = "sparc" ; then
1218
  echo "TARGET_ARCH=sparc" >> $config_mak
1219
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1220
  echo "#define TARGET_SPARC 1" >> $config_h
1221
elif test "$target_cpu" = "sparc64" ; then
1222
  echo "TARGET_ARCH=sparc64" >> $config_mak
1223
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1224
  echo "#define TARGET_SPARC 1" >> $config_h
1225
  echo "#define TARGET_SPARC64 1" >> $config_h
1226
  elfload32="yes"
1227
elif test "$target_cpu" = "sparc32plus" ; then
1228
  echo "TARGET_ARCH=sparc64" >> $config_mak
1229
  echo "TARGET_ABI_DIR=sparc" >> $config_mak
1230
  echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1231
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1232
  echo "#define TARGET_SPARC 1" >> $config_h
1233
  echo "#define TARGET_SPARC64 1" >> $config_h
1234
  echo "#define TARGET_ABI32 1" >> $config_h
1235
else
1236
  echo "Unsupported target CPU"
1237
  exit 1
1238
fi
1239
if test "$target_bigendian" = "yes" ; then
1240
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1241
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1242
fi
1243
if test "$target_softmmu" = "yes" ; then
1244
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
1245
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
1246
fi
1247
if test "$target_user_only" = "yes" ; then
1248
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
1249
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
1250
fi
1251
if test "$target_linux_user" = "yes" ; then
1252
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
1253
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
1254
fi
1255
if test "$target_darwin_user" = "yes" ; then
1256
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1257
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1258
fi
1259

    
1260
if test "$target_cpu" = "arm" \
1261
     -o "$target_cpu" = "armeb" \
1262
     -o "$target_cpu" = "m68k" \
1263
     -o "$target_cpu" = "mips" \
1264
     -o "$target_cpu" = "mipsel" \
1265
     -o "$target_cpu" = "mipsn32" \
1266
     -o "$target_cpu" = "mipsn32el" \
1267
     -o "$target_cpu" = "mips64" \
1268
     -o "$target_cpu" = "mips64el" \
1269
     -o "$target_cpu" = "sparc" \
1270
     -o "$target_cpu" = "sparc64" \
1271
     -o "$target_cpu" = "sparc32plus"; then
1272
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1273
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1274
fi
1275
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1276
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
1277
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
1278
fi
1279
# 32 bit ELF loader in addition to native 64 bit loader?
1280
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1281
  echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1282
  echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1283
fi
1284

    
1285
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1286

    
1287
done # for target in $targets
1288

    
1289
# build tree in object directory if source path is different from current one
1290
if test "$source_path_used" = "yes" ; then
1291
    DIRS="tests tests/cris slirp audio"
1292
    FILES="Makefile tests/Makefile"
1293
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1294
    FILES="$FILES tests/test-mmap.c"
1295
    for dir in $DIRS ; do
1296
            mkdir -p $dir
1297
    done
1298
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
1299
    for f in $FILES ; do
1300
        rm -f $f
1301
        ln -s $source_path/$f $f
1302
    done
1303
fi
1304

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