Statistics
| Branch: | Revision:

root / configure @ 40293e58

History | View | Annotate | Download (36.6 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
if [ -z "$source_path" ]; then
209
    source_path=`pwd`
210
else
211
    source_path=`cd "$source_path"; pwd`
212
fi
213
if test "$source_path" = `pwd` ; then
214
    source_path_used="no"
215
else
216
    source_path_used="yes"
217
fi
218

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

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

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

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

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

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

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

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

    
434
cc="${cross_prefix}${cc}"
435
ar="${cross_prefix}${ar}"
436
strip="${cross_prefix}${strip}"
437

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

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

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

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

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

    
530

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

    
552
if test -z "$cross_prefix" ; then
553

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

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

    
570
else
571

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

    
577
fi
578

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

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

    
591
##########################################
592
# SDL probe
593

    
594
sdl_too_old=no
595

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

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

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

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

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

    
655
##########################################
656
# alsa sound support libraries
657

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
1052
mkdir -p $target_dir
1053
mkdir -p $target_dir/fpu
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