Statistics
| Branch: | Revision:

root / configure @ af5db58e

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-system) softmmu="no"
215
  ;;
216
  --enable-system) 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
if test x"$show_help" = x"yes" ; then
231
cat << EOF
232

    
233
Usage: configure [options]
234
Options: [defaults in brackets after descriptions]
235

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

    
273
cc="${cross_prefix}${cc}"
274
ar="${cross_prefix}${ar}"
275
strip="${cross_prefix}${strip}"
276

    
277
if test "$mingw32" = "yes" ; then
278
    linux="no"
279
    EXESUF=".exe"
280
    gdbstub="no"
281
    oss="no"
282
    if [ "$cpu" = "i386" ] ; then
283
        kqemu="yes"
284
    fi
285
fi
286

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

    
304
if test -z "$cross_prefix" ; then
305

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

    
316
if $cc -o $TMPE $TMPC 2>/dev/null ; then
317
$TMPE && bigendian="yes"
318
else
319
echo big/little test failed
320
fi
321

    
322
else
323

    
324
# if cross compiling, cannot launch a program, so make a static guess
325
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
326
    bigendian="yes"
327
fi
328

    
329
fi
330

    
331
# host long bits test
332
hostlongbits="32"
333
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
334
    hostlongbits="64"
335
fi
336

    
337
# check gcc options support
338
cat > $TMPC <<EOF
339
int main(void) {
340
}
341
EOF
342

    
343
have_gcc3_options="no"
344
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
345
   have_gcc3_options="yes"
346
fi
347

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

    
365
##########################################
366
# SDL probe
367

    
368
sdl_too_old=no
369

    
370
if test -z "$sdl" ; then
371

    
372
sdl_config="sdl-config"
373
sdl=no
374
sdl_static=no
375

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

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

    
396
# static link with sdl ?
397
if test "$sdl" = "yes" ; then
398
aa="no"
399
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
400
sdl_static_libs=`$sdl_config --static-libs`
401
if [ "$aa" = "yes" ] ; then
402
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
403
fi
404

    
405
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
406
  sdl_static=yes
407
fi
408

    
409
fi # static link
410

    
411
fi # sdl compile test
412

    
413
fi # cross compilation
414
fi # -z $sdl
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