Statistics
| Branch: | Revision:

root / configure @ cc8ae6de

History | View | Annotate | Download (21.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
host_cc="gcc"
26
ar="ar"
27
make="make"
28
install="install"
29
strip="strip"
30
cpu=`uname -m`
31
target_list=""
32
case "$cpu" in
33
  i386|i486|i586|i686|i86pc|BePC)
34
    cpu="i386"
35
  ;;
36
  armv*b)
37
    cpu="armv4b"
38
  ;;
39
  armv*l)
40
    cpu="armv4l"
41
  ;;
42
  alpha)
43
    cpu="alpha"
44
  ;;
45
  "Power Macintosh"|ppc|ppc64)
46
    cpu="powerpc"
47
  ;;
48
  mips)
49
    cpu="mips"
50
  ;;
51
  s390)
52
    cpu="s390"
53
  ;;
54
  sparc)
55
    cpu="sparc"
56
  ;;
57
  sparc64)
58
    cpu="sparc64"
59
  ;;
60
  ia64)
61
    cpu="ia64"
62
  ;;
63
  m68k)
64
    cpu="m68k"
65
  ;;
66
  x86_64|amd64)
67
    cpu="x86_64"
68
  ;;
69
  *)
70
    cpu="unknown"
71
  ;;
72
esac
73
gprof="no"
74
bigendian="no"
75
mingw32="no"
76
EXESUF=""
77
gdbstub="yes"
78
slirp="yes"
79
adlib="no"
80
oss="no"
81
dsound="no"
82
coreaudio="no"
83
alsa="no"
84
fmod="no"
85
fmod_lib=""
86
fmod_inc=""
87
bsd="no"
88
linux="no"
89
kqemu="no"
90
profiler="no"
91
kernel_path=""
92
cocoa="no"
93
check_gfx="yes"
94
check_gcc="yes"
95
softmmu="yes"
96
user="no"
97
build_docs="no"
98

    
99
# OS specific
100
targetos=`uname -s`
101
case $targetos in
102
CYGWIN*)
103
mingw32="yes"
104
CFLAGS="-O2 -mno-cygwin"
105
;;
106
MINGW32*)
107
mingw32="yes"
108
;;
109
FreeBSD)
110
bsd="yes"
111
oss="yes"
112
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
113
    kqemu="yes"
114
fi
115
;;
116
NetBSD)
117
bsd="yes"
118
oss="yes"
119
;;
120
OpenBSD)
121
bsd="yes"
122
oss="yes"
123
;;
124
Darwin)
125
bsd="yes"
126
darwin="yes"
127
;;
128
*)
129
oss="yes"
130
linux="yes"
131
user="yes"
132
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
133
    kqemu="yes"
134
fi
135
;;
136
esac
137

    
138
if [ "$bsd" = "yes" ] ; then
139
  if [ "$darwin" != "yes" ] ; then
140
    make="gmake"
141
  fi
142
fi
143

    
144
# find source path
145
source_path=`dirname "$0"`
146
if [ -z "$source_path" ]; then
147
    source_path=`pwd`
148
else
149
    source_path=`cd "$source_path"; pwd`
150
fi
151
if test "$source_path" = `pwd` ; then
152
    source_path_used="no"
153
else
154
    source_path_used="yes"
155
fi
156

    
157
for opt do
158
  optarg=`expr "$opt" : '[^=]*=\(.*\)'`
159
  case "$opt" in
160
  --help|-h) show_help=yes
161
  ;;
162
  --prefix=*) prefix="$optarg"
163
  ;;
164
  --interp-prefix=*) interp_prefix="$optarg"
165
  ;;
166
  --source-path=*) source_path="$optarg"
167
  source_path_used="yes"
168
  ;;
169
  --cross-prefix=*) cross_prefix="$optarg"
170
  ;;
171
  --cc=*) cc="$optarg"
172
  ;;
173
  --host-cc=*) host_cc="$optarg"
174
  ;;
175
  --make=*) make="$optarg"
176
  ;;
177
  --install=*) install="$optarg"
178
  ;;
179
  --extra-cflags=*) CFLAGS="$optarg"
180
  ;;
181
  --extra-ldflags=*) LDFLAGS="$optarg"
182
  ;;
183
  --cpu=*) cpu="$optarg"
184
  ;;
185
  --target-list=*) target_list="$optarg"
186
  ;;
187
  --enable-gprof) gprof="yes"
188
  ;;
189
  --static) static="yes"
190
  ;;
191
  --disable-sdl) sdl="no"
192
  ;;
193
  --enable-coreaudio) coreaudio="yes"
194
  ;;
195
  --enable-alsa) alsa="yes"
196
  ;;
197
  --enable-dsound) dsound="yes"
198
  ;;
199
  --enable-fmod) fmod="yes"
200
  ;;
201
  --fmod-lib=*) fmod_lib="$optarg"
202
  ;;
203
  --fmod-inc=*) fmod_inc="$optarg"
204
  ;;
205
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
206
  ;;
207
  --disable-slirp) slirp="no"
208
  ;;
209
  --enable-adlib) adlib="yes"
210
  ;;
211
  --disable-kqemu) kqemu="no"
212
  ;;
213
  --enable-profiler) profiler="yes"
214
  ;;
215
  --kernel-path=*) kernel_path="$optarg"
216
  ;;
217
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
218
  ;;
219
  --disable-gfx-check) check_gfx="no"
220
  ;;
221
  --disable-gcc-check) check_gcc="no"
222
  ;;
223
  --disable-system) softmmu="no"
224
  ;;
225
  --enable-system) softmmu="yes"
226
  ;;
227
  --disable-user) user="no"
228
  ;;
229
  --enable-user) user="yes"
230
  ;;
231
  esac
232
done
233

    
234
# Checking for CFLAGS
235
if test -z "$CFLAGS"; then
236
    CFLAGS="-O2"
237
fi
238

    
239
if test x"$show_help" = x"yes" ; then
240
cat << EOF
241

    
242
Usage: configure [options]
243
Options: [defaults in brackets after descriptions]
244

    
245
EOF
246
echo "Standard options:"
247
echo "  --help                   print this message"
248
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
249
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
250
echo "                           use %M for cpu name [$interp_prefix]"
251
echo "  --target-list=LIST       set target list [$target_list]"
252
echo ""
253
echo "kqemu kernel acceleration support:"
254
echo "  --disable-kqemu          disable kqemu support"
255
echo "  --kernel-path=PATH       set the kernel path (configure probes it)"
256
echo ""
257
echo "Advanced options (experts only):"
258
echo "  --source-path=PATH       path of source code [$source_path]"
259
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
260
echo "  --cc=CC                  use C compiler CC [$cc]"
261
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
262
echo "  --make=MAKE              use specified make [$make]"
263
echo "  --install=INSTALL        use specified install [$install]"
264
echo "  --static                 enable static build [$static]"
265
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
266
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
267
echo "  --enable-adlib           enable Adlib emulation"
268
echo "  --enable-coreaudio       enable Coreaudio audio driver"
269
echo "  --enable-alsa            enable ALSA audio driver"
270
echo "  --enable-fmod            enable FMOD audio driver"
271
echo "  --enabled-dsound         enable DirectSound audio driver"
272
echo "  --enable-system          enable all system emulation targets"
273
echo "  --disable-system         disable all system emulation targets"
274
echo "  --enable-user            enable all linux usermode emulation targets"
275
echo "  --disable-user           disable all linux usermode emulation targets"
276
echo "  --fmod-lib               path to FMOD library"
277
echo "  --fmod-inc               path to FMOD includes"
278
echo ""
279
echo "NOTE: The object files are build at the place where configure is launched"
280
exit 1
281
fi
282

    
283
cc="${cross_prefix}${cc}"
284
ar="${cross_prefix}${ar}"
285
strip="${cross_prefix}${strip}"
286

    
287
if [ -z `which $cc` ] ; then
288
    echo "Compiler $cc could not be found"
289
    exit
290
fi
291

    
292
if test "$mingw32" = "yes" ; then
293
    linux="no"
294
    EXESUF=".exe"
295
    gdbstub="no"
296
    oss="no"
297
    if [ "$cpu" = "i386" ] ; then
298
        kqemu="yes"
299
    fi
300
fi
301

    
302
if test -z "$target_list" ; then
303
# these targets are portable
304
    if [ "$softmmu" = "yes" ] ; then
305
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
306
    fi
307
# the following are Linux specific
308
    if [ "$user" = "yes" ] ; then
309
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
310
    fi
311
else
312
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
313
fi
314
if test -z "$target_list" ; then
315
    echo "No targets enabled"
316
    exit 1
317
fi
318

    
319
if test -z "$cross_prefix" ; then
320

    
321
# ---
322
# big/little endian test
323
cat > $TMPC << EOF
324
#include <inttypes.h>
325
int main(int argc, char ** argv){
326
        volatile uint32_t i=0x01234567;
327
        return (*((uint8_t*)(&i))) == 0x67;
328
}
329
EOF
330

    
331
if $cc -o $TMPE $TMPC 2>/dev/null ; then
332
$TMPE && bigendian="yes"
333
else
334
echo big/little test failed
335
fi
336

    
337
else
338

    
339
# if cross compiling, cannot launch a program, so make a static guess
340
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
341
    bigendian="yes"
342
fi
343

    
344
fi
345

    
346
# host long bits test
347
hostlongbits="32"
348
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
349
    hostlongbits="64"
350
fi
351

    
352
# check gcc options support
353
cat > $TMPC <<EOF
354
int main(void) {
355
}
356
EOF
357

    
358
have_gcc3_options="no"
359
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
360
   have_gcc3_options="yes"
361
fi
362

    
363
# Check for gcc4, error if pre-gcc4 
364
if test "$check_gcc" = "yes" ; then
365
    cat > $TMPC <<EOF
366
#if __GNUC__ < 4
367
#error gcc3
368
#endif
369
int main(){return 0;}
370
EOF
371
    if $cc -o $TMPO $TMPC 2>/dev/null ; then
372
        echo "ERROR: \"$cc\" looks like gcc 4.x"
373
        echo "QEMU is known to have problems when compiled with gcc 4.x"
374
        echo "It is recommended that you use gcc 3.x to build QEMU"
375
        echo "To use this compiler anyway, configure with --disable-gcc-check"
376
        exit 1;
377
    fi
378
fi
379

    
380
##########################################
381
# SDL probe
382

    
383
sdl_too_old=no
384

    
385
if test -z "$sdl" ; then
386

    
387
sdl_config="sdl-config"
388
sdl=no
389
sdl_static=no
390

    
391
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
392
# win32 cross compilation case
393
    sdl_config="i386-mingw32msvc-sdl-config"
394
    sdl=yes
395
else
396
# normal SDL probe
397
cat > $TMPC << EOF
398
#include <SDL.h>
399
#undef main /* We don't want SDL to override our main() */
400
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
401
EOF
402

    
403
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
404
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
405
if test "$_sdlversion" -lt 121 ; then
406
sdl_too_old=yes
407
else
408
sdl=yes
409
fi
410

    
411
# static link with sdl ?
412
if test "$sdl" = "yes" ; then
413
aa="no"
414
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
415
sdl_static_libs=`$sdl_config --static-libs`
416
if [ "$aa" = "yes" ] ; then
417
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
418
fi
419

    
420
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
421
  sdl_static=yes
422
fi
423

    
424
fi # static link
425

    
426
fi # sdl compile test
427

    
428
fi # cross compilation
429
fi # -z $sdl
430

    
431
# Check if tools are available to build documentation.
432
if [ ! -z `which texi2html` ] && [ ! -z `which pod2man` ]; then
433
  build_docs="yes"
434
fi
435

    
436
if test "$mingw32" = "yes" ; then
437
if test -z "$prefix" ; then
438
    prefix="/c/Program Files/Qemu"
439
fi
440
mandir="$prefix"
441
datadir="$prefix"
442
docdir="$prefix"
443
bindir="$prefix"
444
else
445
if test -z "$prefix" ; then
446
    prefix="/usr/local"
447
fi
448
mandir="$prefix/share/man"
449
datadir="$prefix/share/qemu"
450
docdir="$prefix/share/doc/qemu"
451
bindir="$prefix/bin"
452
fi
453

    
454
echo "Install prefix    $prefix"
455
echo "BIOS directory    $datadir"
456
echo "binary directory  $bindir"
457
if test "$mingw32" = "no" ; then
458
echo "Manual directory  $mandir"
459
echo "ELF interp prefix $interp_prefix"
460
fi
461
echo "Source path       $source_path"
462
echo "C compiler        $cc"
463
echo "Host C compiler   $host_cc"
464
echo "make              $make"
465
echo "install           $install"
466
echo "host CPU          $cpu"
467
echo "host big endian   $bigendian"
468
echo "target list       $target_list"
469
echo "gprof enabled     $gprof"
470
echo "profiler          $profiler"
471
echo "static build      $static"
472
if test "$darwin" = "yes" ; then
473
    echo "Cocoa support     $cocoa"
474
fi
475
echo "SDL support       $sdl"
476
if test "$sdl" != "no" ; then
477
    echo "SDL static link   $sdl_static"
478
fi
479
echo "mingw32 support   $mingw32"
480
echo "Adlib support     $adlib"
481
echo "CoreAudio support $coreaudio"
482
echo "ALSA support      $alsa"
483
echo "DSound support    $dsound"
484
if test "$fmod" = "yes"; then
485
    if test -z $fmod_lib || test -z $fmod_inc; then
486
        echo
487
        echo "Error: You must specify path to FMOD library and headers"
488
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
489
        echo
490
        exit 1
491
    fi
492
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
493
else
494
    fmod_support=""
495
fi
496
echo "FMOD support      $fmod $fmod_support"
497
echo "kqemu support     $kqemu"
498
echo "Documentation     $build_docs"
499

    
500
if test $sdl_too_old = "yes"; then
501
echo "-> Your SDL version is too old - please upgrade to have SDL support"
502
fi
503
#if test "$sdl_static" = "no"; then
504
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
505
#fi
506
config_mak="config-host.mak"
507
config_h="config-host.h"
508

    
509
#echo "Creating $config_mak and $config_h"
510

    
511
echo "# Automatically generated by configure - do not modify" > $config_mak
512
echo "# Configured with: $0 $@" >> $config_mak
513
echo "/* Automatically generated by configure - do not modify */" > $config_h
514

    
515
echo "prefix=$prefix" >> $config_mak
516
echo "bindir=$bindir" >> $config_mak
517
echo "mandir=$mandir" >> $config_mak
518
echo "datadir=$datadir" >> $config_mak
519
echo "docdir=$docdir" >> $config_mak
520
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
521
echo "MAKE=$make" >> $config_mak
522
echo "INSTALL=$install" >> $config_mak
523
echo "CC=$cc" >> $config_mak
524
if test "$have_gcc3_options" = "yes" ; then
525
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
526
fi
527
echo "HOST_CC=$host_cc" >> $config_mak
528
echo "AR=$ar" >> $config_mak
529
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
530
echo "CFLAGS=$CFLAGS" >> $config_mak
531
echo "LDFLAGS=$LDFLAGS" >> $config_mak
532
echo "EXESUF=$EXESUF" >> $config_mak
533
if test "$cpu" = "i386" ; then
534
  echo "ARCH=i386" >> $config_mak
535
  echo "#define HOST_I386 1" >> $config_h
536
elif test "$cpu" = "x86_64" ; then
537
  echo "ARCH=x86_64" >> $config_mak
538
  echo "#define HOST_X86_64 1" >> $config_h
539
elif test "$cpu" = "armv4b" ; then
540
  echo "ARCH=arm" >> $config_mak
541
  echo "#define HOST_ARM 1" >> $config_h
542
elif test "$cpu" = "armv4l" ; then
543
  echo "ARCH=arm" >> $config_mak
544
  echo "#define HOST_ARM 1" >> $config_h
545
elif test "$cpu" = "powerpc" ; then
546
  echo "ARCH=ppc" >> $config_mak
547
  echo "#define HOST_PPC 1" >> $config_h
548
elif test "$cpu" = "mips" ; then
549
  echo "ARCH=mips" >> $config_mak
550
  echo "#define HOST_MIPS 1" >> $config_h
551
elif test "$cpu" = "s390" ; then
552
  echo "ARCH=s390" >> $config_mak
553
  echo "#define HOST_S390 1" >> $config_h
554
elif test "$cpu" = "alpha" ; then
555
  echo "ARCH=alpha" >> $config_mak
556
  echo "#define HOST_ALPHA 1" >> $config_h
557
elif test "$cpu" = "sparc" ; then
558
  echo "ARCH=sparc" >> $config_mak
559
  echo "#define HOST_SPARC 1" >> $config_h
560
elif test "$cpu" = "sparc64" ; then
561
  echo "ARCH=sparc64" >> $config_mak
562
  echo "#define HOST_SPARC64 1" >> $config_h
563
elif test "$cpu" = "ia64" ; then
564
  echo "ARCH=ia64" >> $config_mak
565
  echo "#define HOST_IA64 1" >> $config_h
566
elif test "$cpu" = "m68k" ; then
567
  echo "ARCH=m68k" >> $config_mak
568
  echo "#define HOST_M68K 1" >> $config_h
569
else
570
  echo "Unsupported CPU"
571
  exit 1
572
fi
573
if test "$bigendian" = "yes" ; then
574
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
575
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
576
fi
577
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
578
if test "$mingw32" = "yes" ; then
579
  echo "CONFIG_WIN32=yes" >> $config_mak
580
  echo "#define CONFIG_WIN32 1" >> $config_h
581
elif test -f "/usr/include/byteswap.h" ; then
582
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
583
fi
584
if test "$darwin" = "yes" ; then
585
  echo "CONFIG_DARWIN=yes" >> $config_mak
586
  echo "#define CONFIG_DARWIN 1" >> $config_h
587
fi
588
if test "$gdbstub" = "yes" ; then
589
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
590
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
591
fi
592
if test "$gprof" = "yes" ; then
593
  echo "TARGET_GPROF=yes" >> $config_mak
594
  echo "#define HAVE_GPROF 1" >> $config_h
595
fi
596
if test "$static" = "yes" ; then
597
  echo "CONFIG_STATIC=yes" >> $config_mak
598
  echo "#define CONFIG_STATIC 1" >> $config_h
599
fi
600
if test $profiler = "yes" ; then
601
  echo "#define CONFIG_PROFILER 1" >> $config_h
602
fi
603
if test "$slirp" = "yes" ; then
604
  echo "CONFIG_SLIRP=yes" >> $config_mak
605
  echo "#define CONFIG_SLIRP 1" >> $config_h
606
fi
607
if test "$adlib" = "yes" ; then
608
  echo "CONFIG_ADLIB=yes" >> $config_mak
609
  echo "#define CONFIG_ADLIB 1" >> $config_h
610
fi
611
if test "$oss" = "yes" ; then
612
  echo "CONFIG_OSS=yes" >> $config_mak
613
  echo "#define CONFIG_OSS 1" >> $config_h
614
fi
615
if test "$coreaudio" = "yes" ; then
616
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
617
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
618
fi
619
if test "$alsa" = "yes" ; then
620
  echo "CONFIG_ALSA=yes" >> $config_mak
621
  echo "#define CONFIG_ALSA 1" >> $config_h
622
fi
623
if test "$dsound" = "yes" ; then
624
  echo "CONFIG_DSOUND=yes" >> $config_mak
625
  echo "#define CONFIG_DSOUND 1" >> $config_h
626
fi
627
if test "$fmod" = "yes" ; then
628
  echo "CONFIG_FMOD=yes" >> $config_mak
629
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
630
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
631
  echo "#define CONFIG_FMOD 1" >> $config_h
632
fi
633
qemu_version=`head $source_path/VERSION`
634
echo "VERSION=$qemu_version" >>$config_mak
635
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
636

    
637
echo "SRC_PATH=$source_path" >> $config_mak
638
if [ "$source_path_used" = "yes" ]; then
639
  echo "VPATH=$source_path" >> $config_mak
640
fi
641
echo "TARGET_DIRS=$target_list" >> $config_mak
642
if [ "$build_docs" = "yes" ] ; then
643
  echo "BUILD_DOCS=yes" >> $config_mak
644
fi
645

    
646
# XXX: suppress that
647
if [ "$bsd" = "yes" ] ; then
648
  echo "#define O_LARGEFILE 0" >> $config_h
649
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
650
  echo "#define _BSD 1" >> $config_h
651
fi
652

    
653
for target in $target_list; do
654
target_dir="$target"
655
config_mak=$target_dir/config.mak
656
config_h=$target_dir/config.h
657
target_cpu=`echo $target | cut -d '-' -f 1`
658
target_bigendian="no"
659
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
660
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
661
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
662
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
663
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
664
[ "$target_cpu" = "mips" ] && target_bigendian=yes
665
target_softmmu="no"
666
if expr $target : '.*-softmmu' > /dev/null ; then
667
  target_softmmu="yes"
668
fi
669
target_user_only="no"
670
if expr $target : '.*-user' > /dev/null ; then
671
  target_user_only="yes"
672
fi
673

    
674
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
675
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
676
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
677
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
678
    echo "Note that this will disable all output from the virtual graphics card."
679
    exit 1;
680
fi
681

    
682
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
683

    
684
mkdir -p $target_dir
685
mkdir -p $target_dir/fpu
686
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
687
  mkdir -p $target_dir/nwfpe
688
fi
689
if test "$target_user_only" = "no" ; then
690
  mkdir -p $target_dir/slirp
691
fi
692

    
693
ln -sf $source_path/Makefile.target $target_dir/Makefile
694

    
695
echo "# Automatically generated by configure - do not modify" > $config_mak
696
echo "/* Automatically generated by configure - do not modify */" > $config_h
697

    
698

    
699
echo "include ../config-host.mak" >> $config_mak
700
echo "#include \"../config-host.h\"" >> $config_h
701

    
702
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
703
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
704

    
705
if test "$target_cpu" = "i386" ; then
706
  echo "TARGET_ARCH=i386" >> $config_mak
707
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
708
  echo "#define TARGET_I386 1" >> $config_h
709
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
710
    echo "#define USE_KQEMU 1" >> $config_h
711
  fi
712
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
713
  echo "TARGET_ARCH=arm" >> $config_mak
714
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
715
  echo "#define TARGET_ARM 1" >> $config_h
716
elif test "$target_cpu" = "sparc" ; then
717
  echo "TARGET_ARCH=sparc" >> $config_mak
718
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
719
  echo "#define TARGET_SPARC 1" >> $config_h
720
elif test "$target_cpu" = "sparc64" ; then
721
  echo "TARGET_ARCH=sparc64" >> $config_mak
722
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
723
  echo "#define TARGET_SPARC 1" >> $config_h
724
  echo "#define TARGET_SPARC64 1" >> $config_h
725
elif test "$target_cpu" = "ppc" ; then
726
  echo "TARGET_ARCH=ppc" >> $config_mak
727
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
728
  echo "#define TARGET_PPC 1" >> $config_h
729
elif test "$target_cpu" = "ppc64" ; then
730
  echo "TARGET_ARCH=ppc64" >> $config_mak
731
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
732
  echo "#define TARGET_PPC 1" >> $config_h
733
  echo "#define TARGET_PPC64 1" >> $config_h
734
elif test "$target_cpu" = "x86_64" ; then
735
  echo "TARGET_ARCH=x86_64" >> $config_mak
736
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
737
  echo "#define TARGET_I386 1" >> $config_h
738
  echo "#define TARGET_X86_64 1" >> $config_h
739
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
740
    echo "#define USE_KQEMU 1" >> $config_h
741
  fi
742
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
743
  echo "TARGET_ARCH=mips" >> $config_mak
744
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
745
  echo "#define TARGET_MIPS 1" >> $config_h
746
else
747
  echo "Unsupported target CPU"
748
  exit 1
749
fi
750
if test "$target_bigendian" = "yes" ; then
751
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
752
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
753
fi
754
if test "$target_softmmu" = "yes" ; then
755
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
756
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
757
fi
758
if test "$target_user_only" = "yes" ; then
759
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
760
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
761
fi
762

    
763
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
764
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
765
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
766
fi
767
# sdl defines
768

    
769
if test "$target_user_only" = "no"; then
770
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
771
        sdl1=$sdl_static
772
    else
773
        sdl1=$sdl
774
    fi
775
    if test "$sdl1" = "yes" ; then
776
        echo "#define CONFIG_SDL 1" >> $config_h
777
        echo "CONFIG_SDL=yes" >> $config_mak
778
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
779
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
780
        else
781
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
782
        fi
783
        if [ "${aa}" = "yes" ] ; then
784
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
785
        else
786
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
787
        fi
788
    fi
789
fi
790

    
791
if test "$cocoa" = "yes" ; then
792
    echo "#define CONFIG_COCOA 1" >> $config_h
793
    echo "CONFIG_COCOA=yes" >> $config_mak
794
fi
795

    
796
done # for target in $targets
797

    
798
# build tree in object directory if source path is different from current one
799
if test "$source_path_used" = "yes" ; then
800
    DIRS="tests"
801
    FILES="Makefile tests/Makefile"
802
    for dir in $DIRS ; do
803
            mkdir -p $dir
804
    done
805
    for f in $FILES ; do
806
        ln -sf $source_path/$f $f
807
    done
808
fi
809

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