Statistics
| Branch: | Revision:

root / configure @ 215cf0be

History | View | Annotate | Download (23.6 kB)

1
#!/bin/sh
2
#
3
# qemu configure script (c) 2003 Fabrice Bellard
4
#
5
# set temporary file name
6
if test ! -z "$TMPDIR" ; then
7
    TMPDIR1="${TMPDIR}"
8
elif test ! -z "$TEMPDIR" ; then
9
    TMPDIR1="${TEMPDIR}"
10
else
11
    TMPDIR1="/tmp"
12
fi
13

    
14
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
18

    
19
# default parameters
20
prefix=""
21
interp_prefix="/usr/gnemul/qemu-%M"
22
static="no"
23
cross_prefix=""
24
cc="gcc"
25
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|sun4[muv])
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
SunOS)
129
solaris="yes"
130
;;
131
*)
132
oss="yes"
133
linux="yes"
134
user="yes"
135
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136
    kqemu="yes"
137
fi
138
;;
139
esac
140

    
141
if [ "$bsd" = "yes" ] ; then
142
  if [ "$darwin" != "yes" ] ; then
143
    make="gmake"
144
  fi
145
fi
146

    
147
if [ "$solaris" = "yes" ] ; then
148
    make="gmake"
149
    install="ginstall"
150
    solarisrev=`uname -r | cut -f2 -d.`
151
fi
152

    
153
# find source path
154
source_path=`dirname "$0"`
155
if [ -z "$source_path" ]; then
156
    source_path=`pwd`
157
else
158
    source_path=`cd "$source_path"; pwd`
159
fi
160
if test "$source_path" = `pwd` ; then
161
    source_path_used="no"
162
else
163
    source_path_used="yes"
164
fi
165

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

    
243
# Checking for CFLAGS
244
if test -z "$CFLAGS"; then
245
    CFLAGS="-O2"
246
fi
247

    
248
if test x"$show_help" = x"yes" ; then
249
cat << EOF
250

    
251
Usage: configure [options]
252
Options: [defaults in brackets after descriptions]
253

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

    
292
cc="${cross_prefix}${cc}"
293
ar="${cross_prefix}${ar}"
294
strip="${cross_prefix}${strip}"
295

    
296
if [ ! -x "`which $cc`" ] ; then
297
    echo "Compiler $cc could not be found"
298
    exit
299
fi
300

    
301
if test "$mingw32" = "yes" ; then
302
    linux="no"
303
    EXESUF=".exe"
304
    gdbstub="no"
305
    oss="no"
306
    if [ "$cpu" = "i386" ] ; then
307
        kqemu="yes"
308
    fi
309
fi
310

    
311
#
312
# Solaris specific configure tool chain decisions
313
#
314
if test "$solaris" = "yes" ; then
315
  #
316
  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
317
  # override the check with --disable-gcc-check
318
  # 
319
  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
320
    solgcc=`which $cc`
321
    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
322
      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
323
      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
324
      echo "or get the latest patch from SunSolve for gcc"
325
      exit 1
326
    fi
327
  fi
328
  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
329
  if test -z "$solinst" ; then
330
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
331
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
332
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
333
    exit 1
334
  fi
335
  if test "$solinst" = "/usr/sbin/install" ; then
336
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
337
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
338
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
339
    exit 1
340
  fi
341
  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
342
  if test -z "$sol_ar" ; then
343
    echo "Error: No path includes ar"
344
    if test -f /usr/ccs/bin/ar ; then
345
      echo "Add /usr/ccs/bin to your path and rerun configure"
346
    fi
347
    exit 1
348
  fi
349
fi 
350

    
351

    
352
if test -z "$target_list" ; then
353
# these targets are portable
354
    if [ "$softmmu" = "yes" ] ; then
355
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
356
    fi
357
# the following are Linux specific
358
    if [ "$user" = "yes" ] ; then
359
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
360
    fi
361
else
362
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
363
fi
364
if test -z "$target_list" ; then
365
    echo "No targets enabled"
366
    exit 1
367
fi
368

    
369
if test -z "$cross_prefix" ; then
370

    
371
# ---
372
# big/little endian test
373
cat > $TMPC << EOF
374
#include <inttypes.h>
375
int main(int argc, char ** argv){
376
        volatile uint32_t i=0x01234567;
377
        return (*((uint8_t*)(&i))) == 0x67;
378
}
379
EOF
380

    
381
if $cc -o $TMPE $TMPC 2>/dev/null ; then
382
$TMPE && bigendian="yes"
383
else
384
echo big/little test failed
385
fi
386

    
387
else
388

    
389
# if cross compiling, cannot launch a program, so make a static guess
390
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
391
    bigendian="yes"
392
fi
393

    
394
fi
395

    
396
# host long bits test
397
hostlongbits="32"
398
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
399
    hostlongbits="64"
400
fi
401

    
402
# check gcc options support
403
cat > $TMPC <<EOF
404
int main(void) {
405
}
406
EOF
407

    
408
have_gcc3_options="no"
409
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
410
   have_gcc3_options="yes"
411
fi
412

    
413
# Check for gcc4, error if pre-gcc4 
414
if test "$check_gcc" = "yes" ; then
415
    cat > $TMPC <<EOF
416
#if __GNUC__ < 4
417
#error gcc3
418
#endif
419
int main(){return 0;}
420
EOF
421
    if $cc -o $TMPO $TMPC 2>/dev/null ; then
422
        echo "ERROR: \"$cc\" looks like gcc 4.x"
423
        echo "QEMU is known to have problems when compiled with gcc 4.x"
424
        echo "It is recommended that you use gcc 3.x to build QEMU"
425
        echo "To use this compiler anyway, configure with --disable-gcc-check"
426
        exit 1;
427
    fi
428
fi
429

    
430
##########################################
431
# SDL probe
432

    
433
sdl_too_old=no
434

    
435
if test -z "$sdl" ; then
436

    
437
sdl_config="sdl-config"
438
sdl=no
439
sdl_static=no
440

    
441
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
442
# win32 cross compilation case
443
    sdl_config="i386-mingw32msvc-sdl-config"
444
    sdl=yes
445
else
446
# normal SDL probe
447
cat > $TMPC << EOF
448
#include <SDL.h>
449
#undef main /* We don't want SDL to override our main() */
450
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
451
EOF
452

    
453
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
454
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
455
if test "$_sdlversion" -lt 121 ; then
456
sdl_too_old=yes
457
else
458
sdl=yes
459
fi
460

    
461
# static link with sdl ?
462
if test "$sdl" = "yes" ; then
463
aa="no"
464
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
465
sdl_static_libs=`$sdl_config --static-libs`
466
if [ "$aa" = "yes" ] ; then
467
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
468
fi
469

    
470
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
471
  sdl_static=yes
472
fi
473

    
474
fi # static link
475

    
476
fi # sdl compile test
477

    
478
fi # cross compilation
479
fi # -z $sdl
480

    
481
# Check if tools are available to build documentation.
482
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
483
  build_docs="yes"
484
fi
485

    
486
if test "$mingw32" = "yes" ; then
487
if test -z "$prefix" ; then
488
    prefix="/c/Program Files/Qemu"
489
fi
490
mandir="$prefix"
491
datadir="$prefix"
492
docdir="$prefix"
493
bindir="$prefix"
494
else
495
if test -z "$prefix" ; then
496
    prefix="/usr/local"
497
fi
498
mandir="$prefix/share/man"
499
datadir="$prefix/share/qemu"
500
docdir="$prefix/share/doc/qemu"
501
bindir="$prefix/bin"
502
fi
503

    
504
echo "Install prefix    $prefix"
505
echo "BIOS directory    $datadir"
506
echo "binary directory  $bindir"
507
if test "$mingw32" = "no" ; then
508
echo "Manual directory  $mandir"
509
echo "ELF interp prefix $interp_prefix"
510
fi
511
echo "Source path       $source_path"
512
echo "C compiler        $cc"
513
echo "Host C compiler   $host_cc"
514
echo "make              $make"
515
echo "install           $install"
516
echo "host CPU          $cpu"
517
echo "host big endian   $bigendian"
518
echo "target list       $target_list"
519
echo "gprof enabled     $gprof"
520
echo "profiler          $profiler"
521
echo "static build      $static"
522
if test "$darwin" = "yes" ; then
523
    echo "Cocoa support     $cocoa"
524
fi
525
echo "SDL support       $sdl"
526
if test "$sdl" != "no" ; then
527
    echo "SDL static link   $sdl_static"
528
fi
529
echo "mingw32 support   $mingw32"
530
echo "Adlib support     $adlib"
531
echo "CoreAudio support $coreaudio"
532
echo "ALSA support      $alsa"
533
echo "DSound support    $dsound"
534
if test "$fmod" = "yes"; then
535
    if test -z $fmod_lib || test -z $fmod_inc; then
536
        echo
537
        echo "Error: You must specify path to FMOD library and headers"
538
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
539
        echo
540
        exit 1
541
    fi
542
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
543
else
544
    fmod_support=""
545
fi
546
echo "FMOD support      $fmod $fmod_support"
547
echo "kqemu support     $kqemu"
548
echo "Documentation     $build_docs"
549

    
550
if test $sdl_too_old = "yes"; then
551
echo "-> Your SDL version is too old - please upgrade to have SDL support"
552
fi
553
#if test "$sdl_static" = "no"; then
554
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
555
#fi
556
config_mak="config-host.mak"
557
config_h="config-host.h"
558

    
559
#echo "Creating $config_mak and $config_h"
560

    
561
echo "# Automatically generated by configure - do not modify" > $config_mak
562
echo "# Configured with: $0 $@" >> $config_mak
563
echo "/* Automatically generated by configure - do not modify */" > $config_h
564

    
565
echo "prefix=$prefix" >> $config_mak
566
echo "bindir=$bindir" >> $config_mak
567
echo "mandir=$mandir" >> $config_mak
568
echo "datadir=$datadir" >> $config_mak
569
echo "docdir=$docdir" >> $config_mak
570
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
571
echo "MAKE=$make" >> $config_mak
572
echo "INSTALL=$install" >> $config_mak
573
echo "CC=$cc" >> $config_mak
574
if test "$have_gcc3_options" = "yes" ; then
575
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
576
fi
577
echo "HOST_CC=$host_cc" >> $config_mak
578
echo "AR=$ar" >> $config_mak
579
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
580
echo "CFLAGS=$CFLAGS" >> $config_mak
581
echo "LDFLAGS=$LDFLAGS" >> $config_mak
582
echo "EXESUF=$EXESUF" >> $config_mak
583
if test "$cpu" = "i386" ; then
584
  echo "ARCH=i386" >> $config_mak
585
  echo "#define HOST_I386 1" >> $config_h
586
elif test "$cpu" = "x86_64" ; then
587
  echo "ARCH=x86_64" >> $config_mak
588
  echo "#define HOST_X86_64 1" >> $config_h
589
elif test "$cpu" = "armv4b" ; then
590
  echo "ARCH=arm" >> $config_mak
591
  echo "#define HOST_ARM 1" >> $config_h
592
elif test "$cpu" = "armv4l" ; then
593
  echo "ARCH=arm" >> $config_mak
594
  echo "#define HOST_ARM 1" >> $config_h
595
elif test "$cpu" = "powerpc" ; then
596
  echo "ARCH=ppc" >> $config_mak
597
  echo "#define HOST_PPC 1" >> $config_h
598
elif test "$cpu" = "mips" ; then
599
  echo "ARCH=mips" >> $config_mak
600
  echo "#define HOST_MIPS 1" >> $config_h
601
elif test "$cpu" = "s390" ; then
602
  echo "ARCH=s390" >> $config_mak
603
  echo "#define HOST_S390 1" >> $config_h
604
elif test "$cpu" = "alpha" ; then
605
  echo "ARCH=alpha" >> $config_mak
606
  echo "#define HOST_ALPHA 1" >> $config_h
607
elif test "$cpu" = "sparc" ; then
608
  echo "ARCH=sparc" >> $config_mak
609
  echo "#define HOST_SPARC 1" >> $config_h
610
elif test "$cpu" = "sparc64" ; then
611
  echo "ARCH=sparc64" >> $config_mak
612
  echo "#define HOST_SPARC64 1" >> $config_h
613
elif test "$cpu" = "ia64" ; then
614
  echo "ARCH=ia64" >> $config_mak
615
  echo "#define HOST_IA64 1" >> $config_h
616
elif test "$cpu" = "m68k" ; then
617
  echo "ARCH=m68k" >> $config_mak
618
  echo "#define HOST_M68K 1" >> $config_h
619
else
620
  echo "Unsupported CPU"
621
  exit 1
622
fi
623
if test "$bigendian" = "yes" ; then
624
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
625
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
626
fi
627
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
628
if test "$mingw32" = "yes" ; then
629
  echo "CONFIG_WIN32=yes" >> $config_mak
630
  echo "#define CONFIG_WIN32 1" >> $config_h
631
elif test -f "/usr/include/byteswap.h" ; then
632
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
633
fi
634
if test "$darwin" = "yes" ; then
635
  echo "CONFIG_DARWIN=yes" >> $config_mak
636
  echo "#define CONFIG_DARWIN 1" >> $config_h
637
fi
638
if test "$solaris" = "yes" ; then
639
  echo "CONFIG_SOLARIS=yes" >> $config_mak
640
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
641
fi
642
if test "$gdbstub" = "yes" ; then
643
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
644
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
645
fi
646
if test "$gprof" = "yes" ; then
647
  echo "TARGET_GPROF=yes" >> $config_mak
648
  echo "#define HAVE_GPROF 1" >> $config_h
649
fi
650
if test "$static" = "yes" ; then
651
  echo "CONFIG_STATIC=yes" >> $config_mak
652
  echo "#define CONFIG_STATIC 1" >> $config_h
653
fi
654
if test $profiler = "yes" ; then
655
  echo "#define CONFIG_PROFILER 1" >> $config_h
656
fi
657
if test "$slirp" = "yes" ; then
658
  echo "CONFIG_SLIRP=yes" >> $config_mak
659
  echo "#define CONFIG_SLIRP 1" >> $config_h
660
fi
661
if test "$adlib" = "yes" ; then
662
  echo "CONFIG_ADLIB=yes" >> $config_mak
663
  echo "#define CONFIG_ADLIB 1" >> $config_h
664
fi
665
if test "$oss" = "yes" ; then
666
  echo "CONFIG_OSS=yes" >> $config_mak
667
  echo "#define CONFIG_OSS 1" >> $config_h
668
fi
669
if test "$coreaudio" = "yes" ; then
670
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
671
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
672
fi
673
if test "$alsa" = "yes" ; then
674
  echo "CONFIG_ALSA=yes" >> $config_mak
675
  echo "#define CONFIG_ALSA 1" >> $config_h
676
fi
677
if test "$dsound" = "yes" ; then
678
  echo "CONFIG_DSOUND=yes" >> $config_mak
679
  echo "#define CONFIG_DSOUND 1" >> $config_h
680
fi
681
if test "$fmod" = "yes" ; then
682
  echo "CONFIG_FMOD=yes" >> $config_mak
683
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
684
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
685
  echo "#define CONFIG_FMOD 1" >> $config_h
686
fi
687
qemu_version=`head $source_path/VERSION`
688
echo "VERSION=$qemu_version" >>$config_mak
689
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
690

    
691
echo "SRC_PATH=$source_path" >> $config_mak
692
if [ "$source_path_used" = "yes" ]; then
693
  echo "VPATH=$source_path" >> $config_mak
694
fi
695
echo "TARGET_DIRS=$target_list" >> $config_mak
696
if [ "$build_docs" = "yes" ] ; then
697
  echo "BUILD_DOCS=yes" >> $config_mak
698
fi
699

    
700
# XXX: suppress that
701
if [ "$bsd" = "yes" ] ; then
702
  echo "#define O_LARGEFILE 0" >> $config_h
703
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
704
  echo "#define _BSD 1" >> $config_h
705
fi
706

    
707
for target in $target_list; do
708
target_dir="$target"
709
config_mak=$target_dir/config.mak
710
config_h=$target_dir/config.h
711
target_cpu=`echo $target | cut -d '-' -f 1`
712
target_bigendian="no"
713
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
714
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
715
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
716
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
717
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
718
[ "$target_cpu" = "mips" ] && target_bigendian=yes
719
target_softmmu="no"
720
if expr $target : '.*-softmmu' > /dev/null ; then
721
  target_softmmu="yes"
722
fi
723
target_user_only="no"
724
if expr $target : '.*-user' > /dev/null ; then
725
  target_user_only="yes"
726
fi
727

    
728
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
729
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
730
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
731
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
732
    echo "Note that this will disable all output from the virtual graphics card."
733
    exit 1;
734
fi
735

    
736
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
737

    
738
mkdir -p $target_dir
739
mkdir -p $target_dir/fpu
740
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
741
  mkdir -p $target_dir/nwfpe
742
fi
743
if test "$target_user_only" = "no" ; then
744
  mkdir -p $target_dir/slirp
745
fi
746

    
747
#
748
# don't use ln -sf as not all "ln -sf" over write the file/link
749
#
750
rm -f $target_dir/Makefile
751
ln -s $source_path/Makefile.target $target_dir/Makefile
752

    
753

    
754
echo "# Automatically generated by configure - do not modify" > $config_mak
755
echo "/* Automatically generated by configure - do not modify */" > $config_h
756

    
757

    
758
echo "include ../config-host.mak" >> $config_mak
759
echo "#include \"../config-host.h\"" >> $config_h
760

    
761
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
762
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
763

    
764
if test "$target_cpu" = "i386" ; then
765
  echo "TARGET_ARCH=i386" >> $config_mak
766
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
767
  echo "#define TARGET_I386 1" >> $config_h
768
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
769
    echo "#define USE_KQEMU 1" >> $config_h
770
  fi
771
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
772
  echo "TARGET_ARCH=arm" >> $config_mak
773
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
774
  echo "#define TARGET_ARM 1" >> $config_h
775
elif test "$target_cpu" = "sparc" ; then
776
  echo "TARGET_ARCH=sparc" >> $config_mak
777
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
778
  echo "#define TARGET_SPARC 1" >> $config_h
779
elif test "$target_cpu" = "sparc64" ; then
780
  echo "TARGET_ARCH=sparc64" >> $config_mak
781
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
782
  echo "#define TARGET_SPARC 1" >> $config_h
783
  echo "#define TARGET_SPARC64 1" >> $config_h
784
elif test "$target_cpu" = "ppc" ; then
785
  echo "TARGET_ARCH=ppc" >> $config_mak
786
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
787
  echo "#define TARGET_PPC 1" >> $config_h
788
elif test "$target_cpu" = "ppc64" ; then
789
  echo "TARGET_ARCH=ppc64" >> $config_mak
790
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
791
  echo "#define TARGET_PPC 1" >> $config_h
792
  echo "#define TARGET_PPC64 1" >> $config_h
793
elif test "$target_cpu" = "x86_64" ; then
794
  echo "TARGET_ARCH=x86_64" >> $config_mak
795
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
796
  echo "#define TARGET_I386 1" >> $config_h
797
  echo "#define TARGET_X86_64 1" >> $config_h
798
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
799
    echo "#define USE_KQEMU 1" >> $config_h
800
  fi
801
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
802
  echo "TARGET_ARCH=mips" >> $config_mak
803
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
804
  echo "#define TARGET_MIPS 1" >> $config_h
805
elif test "$target_cpu" = "sh4" ; then
806
  echo "TARGET_ARCH=sh4" >> $config_mak
807
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
808
  echo "#define TARGET_SH4 1" >> $config_h
809
else
810
  echo "Unsupported target CPU"
811
  exit 1
812
fi
813
if test "$target_bigendian" = "yes" ; then
814
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
815
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
816
fi
817
if test "$target_softmmu" = "yes" ; then
818
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
819
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
820
fi
821
if test "$target_user_only" = "yes" ; then
822
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
823
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
824
fi
825

    
826
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
827
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
828
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
829
fi
830
# sdl defines
831

    
832
if test "$target_user_only" = "no"; then
833
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
834
        sdl1=$sdl_static
835
    else
836
        sdl1=$sdl
837
    fi
838
    if test "$sdl1" = "yes" ; then
839
        echo "#define CONFIG_SDL 1" >> $config_h
840
        echo "CONFIG_SDL=yes" >> $config_mak
841
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
842
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
843
        else
844
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
845
        fi
846
        if [ "${aa}" = "yes" ] ; then
847
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
848
        else
849
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
850
        fi
851
    fi
852
fi
853

    
854
if test "$cocoa" = "yes" ; then
855
    echo "#define CONFIG_COCOA 1" >> $config_h
856
    echo "CONFIG_COCOA=yes" >> $config_mak
857
fi
858

    
859
done # for target in $targets
860

    
861
# build tree in object directory if source path is different from current one
862
if test "$source_path_used" = "yes" ; then
863
    DIRS="tests"
864
    FILES="Makefile tests/Makefile"
865
    for dir in $DIRS ; do
866
            mkdir -p $dir
867
    done
868
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
869
    for f in $FILES ; do
870
        rm -f $f
871
        ln -s $source_path/$f $f
872
    done
873
fi
874

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