Statistics
| Branch: | Revision:

root / configure @ d4b8f039

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

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

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

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

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

    
230
# Checking for CFLAGS
231
if test -z "$CFLAGS"; then
232
    CFLAGS="-O2"
233
fi
234

    
235
if test x"$show_help" = x"yes" ; then
236
cat << EOF
237

    
238
Usage: configure [options]
239
Options: [defaults in brackets after descriptions]
240

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

    
278
cc="${cross_prefix}${cc}"
279
ar="${cross_prefix}${ar}"
280
strip="${cross_prefix}${strip}"
281

    
282
if test "$mingw32" = "yes" ; then
283
    linux="no"
284
    EXESUF=".exe"
285
    gdbstub="no"
286
    oss="no"
287
    if [ "$cpu" = "i386" ] ; then
288
        kqemu="yes"
289
    fi
290
fi
291

    
292
if test -z "$target_list" ; then
293
# these targets are portable
294
    if [ "$softmmu" = "yes" ] ; then
295
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
296
    fi
297
# the following are Linux specific
298
    if [ "$user" = "yes" ] ; then
299
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
300
    fi
301
else
302
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
303
fi
304
if test -z "$target_list" ; then
305
    echo "No targets enabled"
306
    exit 1
307
fi
308

    
309
if test -z "$cross_prefix" ; then
310

    
311
# ---
312
# big/little endian test
313
cat > $TMPC << EOF
314
#include <inttypes.h>
315
int main(int argc, char ** argv){
316
        volatile uint32_t i=0x01234567;
317
        return (*((uint8_t*)(&i))) == 0x67;
318
}
319
EOF
320

    
321
if $cc -o $TMPE $TMPC 2>/dev/null ; then
322
$TMPE && bigendian="yes"
323
else
324
echo big/little test failed
325
fi
326

    
327
else
328

    
329
# if cross compiling, cannot launch a program, so make a static guess
330
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
331
    bigendian="yes"
332
fi
333

    
334
fi
335

    
336
# host long bits test
337
hostlongbits="32"
338
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
339
    hostlongbits="64"
340
fi
341

    
342
# check gcc options support
343
cat > $TMPC <<EOF
344
int main(void) {
345
}
346
EOF
347

    
348
have_gcc3_options="no"
349
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
350
   have_gcc3_options="yes"
351
fi
352

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

    
370
##########################################
371
# SDL probe
372

    
373
sdl_too_old=no
374

    
375
if test -z "$sdl" ; then
376

    
377
sdl_config="sdl-config"
378
sdl=no
379
sdl_static=no
380

    
381
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
382
# win32 cross compilation case
383
    sdl_config="i386-mingw32msvc-sdl-config"
384
    sdl=yes
385
else
386
# normal SDL probe
387
cat > $TMPC << EOF
388
#include <SDL.h>
389
#undef main /* We don't want SDL to override our main() */
390
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
391
EOF
392

    
393
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
394
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
395
if test "$_sdlversion" -lt 121 ; then
396
sdl_too_old=yes
397
else
398
sdl=yes
399
fi
400

    
401
# static link with sdl ?
402
if test "$sdl" = "yes" ; then
403
aa="no"
404
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
405
sdl_static_libs=`$sdl_config --static-libs`
406
if [ "$aa" = "yes" ] ; then
407
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
408
fi
409

    
410
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
411
  sdl_static=yes
412
fi
413

    
414
fi # static link
415

    
416
fi # sdl compile test
417

    
418
fi # cross compilation
419
fi # -z $sdl
420

    
421
if test "$mingw32" = "yes" ; then
422
if test -z "$prefix" ; then
423
    prefix="/c/Program Files/Qemu"
424
fi
425
mandir="$prefix"
426
datadir="$prefix"
427
docdir="$prefix"
428
bindir="$prefix"
429
else
430
if test -z "$prefix" ; then
431
    prefix="/usr/local"
432
fi
433
mandir="$prefix/share/man"
434
datadir="$prefix/share/qemu"
435
docdir="$prefix/share/doc/qemu"
436
bindir="$prefix/bin"
437
fi
438

    
439
echo "Install prefix    $prefix"
440
echo "BIOS directory    $datadir"
441
echo "binary directory  $bindir"
442
if test "$mingw32" = "no" ; then
443
echo "Manual directory  $mandir"
444
echo "ELF interp prefix $interp_prefix"
445
fi
446
echo "Source path       $source_path"
447
echo "C compiler        $cc"
448
echo "Host C compiler   $host_cc"
449
echo "make              $make"
450
echo "host CPU          $cpu"
451
echo "host big endian   $bigendian"
452
echo "target list       $target_list"
453
echo "gprof enabled     $gprof"
454
echo "profiler          $profiler"
455
echo "static build      $static"
456
if test "$darwin" = "yes" ; then
457
    echo "Cocoa support     $cocoa"
458
fi
459
echo "SDL support       $sdl"
460
if test "$sdl" != "no" ; then
461
    echo "SDL static link   $sdl_static"
462
fi
463
echo "mingw32 support   $mingw32"
464
echo "Adlib support     $adlib"
465
echo "CoreAudio support $coreaudio"
466
echo "ALSA support      $alsa"
467
echo "DSound support    $dsound"
468
if test "$fmod" = "yes"; then
469
    if test -z $fmod_lib || test -z $fmod_inc; then
470
        echo
471
        echo "Error: You must specify path to FMOD library and headers"
472
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
473
        echo
474
        exit 1
475
    fi
476
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
477
else
478
    fmod_support=""
479
fi
480
echo "FMOD support      $fmod $fmod_support"
481
echo "kqemu support     $kqemu"
482

    
483
if test $sdl_too_old = "yes"; then
484
echo "-> Your SDL version is too old - please upgrade to have SDL support"
485
fi
486
#if test "$sdl_static" = "no"; then
487
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
488
#fi
489
config_mak="config-host.mak"
490
config_h="config-host.h"
491

    
492
#echo "Creating $config_mak and $config_h"
493

    
494
echo "# Automatically generated by configure - do not modify" > $config_mak
495
echo "# Configured with: $0 $@" >> $config_mak
496
echo "/* Automatically generated by configure - do not modify */" > $config_h
497

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

    
619
echo "SRC_PATH=$source_path" >> $config_mak
620
if [ "$source_path_used" = "yes" ]; then
621
  echo "VPATH=$source_path" >> $config_mak
622
fi
623
echo "TARGET_DIRS=$target_list" >> $config_mak
624

    
625
# XXX: suppress that
626
if [ "$bsd" = "yes" ] ; then
627
  echo "#define O_LARGEFILE 0" >> $config_h
628
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
629
  echo "#define _BSD 1" >> $config_h
630
fi
631

    
632
for target in $target_list; do
633
target_dir="$target"
634
config_mak=$target_dir/config.mak
635
config_h=$target_dir/config.h
636
target_cpu=`echo $target | cut -d '-' -f 1`
637
target_bigendian="no"
638
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
639
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
640
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
641
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
642
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
643
[ "$target_cpu" = "mips" ] && target_bigendian=yes
644
target_softmmu="no"
645
if expr $target : '.*-softmmu' > /dev/null ; then
646
  target_softmmu="yes"
647
fi
648
target_user_only="no"
649
if expr $target : '.*-user' > /dev/null ; then
650
  target_user_only="yes"
651
fi
652

    
653
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
654
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
655
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
656
    echo "To build QEMU with graphical output configure with --disable-gfx-check"
657
    echo "Note that this will disable all output from the virtual graphics card."
658
    exit 1;
659
fi
660

    
661
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
662

    
663
mkdir -p $target_dir
664
mkdir -p $target_dir/fpu
665
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
666
  mkdir -p $target_dir/nwfpe
667
fi
668
if test "$target_user_only" = "no" ; then
669
  mkdir -p $target_dir/slirp
670
fi
671

    
672
ln -sf $source_path/Makefile.target $target_dir/Makefile
673

    
674
echo "# Automatically generated by configure - do not modify" > $config_mak
675
echo "/* Automatically generated by configure - do not modify */" > $config_h
676

    
677

    
678
echo "include ../config-host.mak" >> $config_mak
679
echo "#include \"../config-host.h\"" >> $config_h
680

    
681
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
682
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
683

    
684
if test "$target_cpu" = "i386" ; then
685
  echo "TARGET_ARCH=i386" >> $config_mak
686
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
687
  echo "#define TARGET_I386 1" >> $config_h
688
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
689
    echo "#define USE_KQEMU 1" >> $config_h
690
  fi
691
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
692
  echo "TARGET_ARCH=arm" >> $config_mak
693
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
694
  echo "#define TARGET_ARM 1" >> $config_h
695
elif test "$target_cpu" = "sparc" ; then
696
  echo "TARGET_ARCH=sparc" >> $config_mak
697
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
698
  echo "#define TARGET_SPARC 1" >> $config_h
699
elif test "$target_cpu" = "sparc64" ; then
700
  echo "TARGET_ARCH=sparc64" >> $config_mak
701
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
702
  echo "#define TARGET_SPARC 1" >> $config_h
703
  echo "#define TARGET_SPARC64 1" >> $config_h
704
elif test "$target_cpu" = "ppc" ; then
705
  echo "TARGET_ARCH=ppc" >> $config_mak
706
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
707
  echo "#define TARGET_PPC 1" >> $config_h
708
elif test "$target_cpu" = "ppc64" ; then
709
  echo "TARGET_ARCH=ppc64" >> $config_mak
710
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
711
  echo "#define TARGET_PPC 1" >> $config_h
712
  echo "#define TARGET_PPC64 1" >> $config_h
713
elif test "$target_cpu" = "x86_64" ; then
714
  echo "TARGET_ARCH=x86_64" >> $config_mak
715
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
716
  echo "#define TARGET_I386 1" >> $config_h
717
  echo "#define TARGET_X86_64 1" >> $config_h
718
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
719
    echo "#define USE_KQEMU 1" >> $config_h
720
  fi
721
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
722
  echo "TARGET_ARCH=mips" >> $config_mak
723
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
724
  echo "#define TARGET_MIPS 1" >> $config_h
725
else
726
  echo "Unsupported target CPU"
727
  exit 1
728
fi
729
if test "$target_bigendian" = "yes" ; then
730
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
731
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
732
fi
733
if test "$target_softmmu" = "yes" ; then
734
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
735
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
736
fi
737
if test "$target_user_only" = "yes" ; then
738
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
739
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
740
fi
741

    
742
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
743
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
744
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
745
fi
746
# sdl defines
747

    
748
if test "$target_user_only" = "no"; then
749
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
750
        sdl1=$sdl_static
751
    else
752
        sdl1=$sdl
753
    fi
754
    if test "$sdl1" = "yes" ; then
755
        echo "#define CONFIG_SDL 1" >> $config_h
756
        echo "CONFIG_SDL=yes" >> $config_mak
757
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
758
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
759
        else
760
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
761
        fi
762
        if [ "${aa}" = "yes" ] ; then
763
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
764
        else
765
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
766
        fi
767
    fi
768
fi
769

    
770
if test "$cocoa" = "yes" ; then
771
    echo "#define CONFIG_COCOA 1" >> $config_h
772
    echo "CONFIG_COCOA=yes" >> $config_mak
773
fi
774

    
775
done # for target in $targets
776

    
777
# build tree in object directory if source path is different from current one
778
if test "$source_path_used" = "yes" ; then
779
    DIRS="tests"
780
    FILES="Makefile tests/Makefile"
781
    for dir in $DIRS ; do
782
            mkdir -p $dir
783
    done
784
    for f in $FILES ; do
785
        ln -sf $source_path/$f $f
786
    done
787
fi
788

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