Statistics
| Branch: | Revision:

root / configure @ 0a8e90f4

History | View | Annotate | Download (21.1 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
linux="no"
87
kqemu="no"
88
profiler="no"
89
kernel_path=""
90
cocoa="no"
91
check_gfx="yes"
92
check_gcc="yes"
93
softmmu="yes"
94
user="no"
95

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

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

    
141
# find source path
142
# XXX: we assume an absolute path is given when launching configure,
143
# except in './configure' case.
144
source_path=${0%configure}
145
source_path=${source_path%/}
146
source_path_used="yes"
147
if test -z "$source_path" -o "$source_path" = "." ; then
148
    source_path=`pwd`
149
    source_path_used="no"
150
fi
151

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

    
225
# Checking for CFLAGS
226
if test -z "$CFLAGS"; then
227
    CFLAGS="-O2"
228
fi
229

    
230
cc="${cross_prefix}${cc}"
231
ar="${cross_prefix}${ar}"
232
strip="${cross_prefix}${strip}"
233

    
234
if test "$mingw32" = "yes" ; then
235
    linux="no"
236
    EXESUF=".exe"
237
    gdbstub="no"
238
    oss="no"
239
    if [ "$cpu" = "i386" ] ; then
240
        kqemu="yes"
241
    fi
242
fi
243

    
244
if test -z "$target_list" ; then
245
# these targets are portable
246
    if [ "$softmmu" = "yes" ] ; then
247
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
248
    fi
249
# the following are Linux specific
250
    if [ "$user" = "yes" ] ; then
251
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
252
    fi
253
else
254
    target_list=$(echo "$target_list" | sed -e 's/,/ /g')
255
fi
256
if test -z "$target_list" ; then
257
    echo "No targets enabled"
258
    exit 1
259
fi
260

    
261
if test -z "$cross_prefix" ; then
262

    
263
# ---
264
# big/little endian test
265
cat > $TMPC << EOF
266
#include <inttypes.h>
267
int main(int argc, char ** argv){
268
        volatile uint32_t i=0x01234567;
269
        return (*((uint8_t*)(&i))) == 0x67;
270
}
271
EOF
272

    
273
if $cc -o $TMPE $TMPC 2>/dev/null ; then
274
$TMPE && bigendian="yes"
275
else
276
echo big/little test failed
277
fi
278

    
279
else
280

    
281
# if cross compiling, cannot launch a program, so make a static guess
282
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
283
    bigendian="yes"
284
fi
285

    
286
fi
287

    
288
# host long bits test
289
hostlongbits="32"
290
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
291
    hostlongbits="64"
292
fi
293

    
294
# check gcc options support
295
cat > $TMPC <<EOF
296
int main(void) {
297
}
298
EOF
299

    
300
have_gcc3_options="no"
301
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
302
   have_gcc3_options="yes"
303
fi
304

    
305
# Check for gcc4
306
if test "$check_gcc" = "yes" ; then
307
    cat > $TMPC <<EOF
308
#if __GNUC__ >= 4
309
#error gcc4
310
#endif
311
int main(){return 0;}
312
EOF
313
    if ! $cc -o $TMPO $TMPC 2>/dev/null ; then
314
        echo "ERROR: \"$cc\" looks like gcc 4.x"
315
        echo "QEMU is known to have problems when compiled with gcc 4.x"
316
        echo "It is recommended that you use gcc 3.x to build QEMU"
317
        echo "To use this compiler anyway, configure with --disable-gcc-check"
318
        exit 1;
319
    fi
320
fi
321

    
322
##########################################
323
# SDL probe
324

    
325
sdl_too_old=no
326

    
327
if test -z "$sdl" ; then
328

    
329
sdl_config="sdl-config"
330
sdl=no
331
sdl_static=no
332

    
333
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
334
# win32 cross compilation case
335
    sdl_config="i386-mingw32msvc-sdl-config"
336
    sdl=yes
337
else
338
# normal SDL probe
339
cat > $TMPC << EOF
340
#include <SDL.h>
341
#undef main /* We don't want SDL to override our main() */
342
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
343
EOF
344

    
345
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
346
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
347
if test "$_sdlversion" -lt 121 ; then
348
sdl_too_old=yes
349
else
350
sdl=yes
351
fi
352

    
353
# static link with sdl ?
354
if test "$sdl" = "yes" ; then
355
aa="no"
356
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
357
sdl_static_libs=`$sdl_config --static-libs`
358
if [ "$aa" = "yes" ] ; then
359
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
360
fi
361

    
362
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
363
  sdl_static=yes
364
fi
365

    
366
fi # static link
367

    
368
fi # sdl compile test
369

    
370
fi # cross compilation
371
fi # -z $sdl
372

    
373
if test x"$show_help" = x"yes" ; then
374
cat << EOF
375

    
376
Usage: configure [options]
377
Options: [defaults in brackets after descriptions]
378

    
379
EOF
380
echo "Standard options:"
381
echo "  --help                   print this message"
382
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
383
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
384
echo "                           use %M for cpu name [$interp_prefix]"
385
echo "  --target-list=LIST       set target list [$target_list]"
386
echo ""
387
echo "kqemu kernel acceleration support:"
388
echo "  --disable-kqemu          disable kqemu support"
389
echo "  --kernel-path=PATH       set the kernel path (configure probes it)"
390
echo ""
391
echo "Advanced options (experts only):"
392
echo "  --source-path=PATH       path of source code [$source_path]"
393
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
394
echo "  --cc=CC                  use C compiler CC [$cc]"
395
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
396
echo "  --make=MAKE              use specified make [$make]"
397
echo "  --static                 enable static build [$static]"
398
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
399
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
400
echo "  --enable-adlib           enable Adlib emulation"
401
echo "  --enable-coreaudio       enable Coreaudio audio driver"
402
echo "  --enable-alsa            enable ALSA audio driver"
403
echo "  --enable-fmod            enable FMOD audio driver"
404
echo "  --enabled-dsound         enable DirectSound audio driver"
405
echo "  --enable-system          enable all system emulation targets"
406
echo "  --disable-system         disable all system emulation targets"
407
echo "  --enable-user            enable all linux usermode emulation targets"
408
echo "  --disable-user           disable all linux usermode emulation targets"
409
echo "  --fmod-lib               path to FMOD library"
410
echo "  --fmod-inc               path to FMOD includes"
411
echo ""
412
echo "NOTE: The object files are build at the place where configure is launched"
413
exit 1
414
fi
415

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

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

    
477
if test $sdl_too_old = "yes"; then
478
echo "-> Your SDL version is too old - please upgrade to have SDL support"
479
fi
480
#if test "$sdl_static" = "no"; then
481
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
482
#fi
483

    
484
config_mak="config-host.mak"
485
config_h="config-host.h"
486

    
487
#echo "Creating $config_mak and $config_h"
488

    
489
echo "# Automatically generated by configure - do not modify" > $config_mak
490
echo "# Configured with: $0 $@" >> $config_mak
491
echo "/* Automatically generated by configure - do not modify */" > $config_h
492

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

    
617
echo "SRC_PATH=$source_path" >> $config_mak
618
echo "TARGET_DIRS=$target_list" >> $config_mak
619

    
620
# XXX: suppress that
621
if [ "$bsd" = "yes" ] ; then
622
  echo "#define O_LARGEFILE 0" >> $config_h
623
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
624
  echo "#define _BSD 1" >> $config_h
625
fi
626

    
627
for target in $target_list; do
628

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

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

    
657
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
658

    
659
mkdir -p $target_dir
660
mkdir -p $target_dir/fpu
661
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
662
  mkdir -p $target_dir/nwfpe
663
fi
664
if test "$target_user_only" = "no" ; then
665
  mkdir -p $target_dir/slirp
666
fi
667

    
668
ln -sf $source_path/Makefile.target $target_dir/Makefile
669

    
670
echo "# Automatically generated by configure - do not modify" > $config_mak
671
echo "/* Automatically generated by configure - do not modify */" > $config_h
672

    
673

    
674
echo "include ../config-host.mak" >> $config_mak
675
echo "#include \"../config-host.h\"" >> $config_h
676

    
677
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
678
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
679

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

    
738
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
739
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
740
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
741
fi
742
# sdl defines
743

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

    
766
if test "$cocoa" = "yes" ; then
767
    echo "#define CONFIG_COCOA 1" >> $config_h
768
    echo "CONFIG_COCOA=yes" >> $config_mak
769
fi
770

    
771
done # for target in $targets
772

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

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