Statistics
| Branch: | Revision:

root / configure @ 6c041c54

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

    
102
# OS specific
103
targetos=`uname -s`
104
case $targetos in
105
CYGWIN*)
106
mingw32="yes"
107
OS_CFLAGS="-mno-cygwin"
108
;;
109
MINGW32*)
110
mingw32="yes"
111
;;
112
FreeBSD)
113
bsd="yes"
114
oss="yes"
115
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
116
    kqemu="yes"
117
fi
118
;;
119
NetBSD)
120
bsd="yes"
121
oss="yes"
122
;;
123
OpenBSD)
124
bsd="yes"
125
oss="yes"
126
;;
127
Darwin)
128
bsd="yes"
129
darwin="yes"
130
darwin_user="yes"
131
cocoa="yes"
132
coreaudio="yes"
133
OS_CFLAGS="-mdynamic-no-pic"
134
;;
135
SunOS)
136
    solaris="yes"
137
    make="gmake"
138
    install="ginstall"
139
    solarisrev=`uname -r | cut -f2 -d.`
140
    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
141
        if test "$solarisrev" -ge 10 ; then
142
            kqemu="yes"
143
        fi
144
    fi
145
;;
146
*)
147
oss="yes"
148
linux="yes"
149
linux_user="yes"
150
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
151
    kqemu="yes"
152
fi
153
;;
154
esac
155

    
156
if [ "$bsd" = "yes" ] ; then
157
  if [ "$darwin" != "yes" ] ; then
158
    make="gmake"
159
  fi
160
fi
161

    
162
if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$solaris" = "yes" -o "$mingw32" = "yes" ] ; then
163
    AIOLIBS=
164
else
165
    AIOLIBS="-lrt"
166
fi
167

    
168
# find source path
169
source_path=`dirname "$0"`
170
if [ -z "$source_path" ]; then
171
    source_path=`pwd`
172
else
173
    source_path=`cd "$source_path"; pwd`
174
fi
175
if test "$source_path" = `pwd` ; then
176
    source_path_used="no"
177
else
178
    source_path_used="yes"
179
fi
180

    
181
for opt do
182
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
183
  case "$opt" in
184
  --help|-h) show_help=yes
185
  ;;
186
  --prefix=*) prefix="$optarg"
187
  ;;
188
  --interp-prefix=*) interp_prefix="$optarg"
189
  ;;
190
  --source-path=*) source_path="$optarg"
191
  source_path_used="yes"
192
  ;;
193
  --cross-prefix=*) cross_prefix="$optarg"
194
  ;;
195
  --cc=*) cc="$optarg"
196
  gcc3_search="no"
197
  ;;
198
  --host-cc=*) host_cc="$optarg"
199
  ;;
200
  --make=*) make="$optarg"
201
  ;;
202
  --install=*) install="$optarg"
203
  ;;
204
  --extra-cflags=*) CFLAGS="$optarg"
205
  ;;
206
  --extra-ldflags=*) LDFLAGS="$optarg"
207
  ;;
208
  --cpu=*) cpu="$optarg"
209
  ;;
210
  --target-list=*) target_list="$optarg"
211
  ;;
212
  --enable-gprof) gprof="yes"
213
  ;;
214
  --static) static="yes"
215
  ;;
216
  --disable-sdl) sdl="no"
217
  ;;
218
  --enable-coreaudio) coreaudio="yes"
219
  ;;
220
  --enable-alsa) alsa="yes"
221
  ;;
222
  --enable-dsound) dsound="yes"
223
  ;;
224
  --enable-fmod) fmod="yes"
225
  ;;
226
  --fmod-lib=*) fmod_lib="$optarg"
227
  ;;
228
  --fmod-inc=*) fmod_inc="$optarg"
229
  ;;
230
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no"
231
  ;;
232
  --disable-slirp) slirp="no"
233
  ;;
234
  --enable-adlib) adlib="yes"
235
  ;;
236
  --disable-kqemu) kqemu="no"
237
  ;;
238
  --enable-profiler) profiler="yes"
239
  ;;
240
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
241
  ;;
242
  --disable-gfx-check) check_gfx="no"
243
  ;;
244
  --disable-gcc-check) check_gcc="no"
245
  ;;
246
  --disable-system) softmmu="no"
247
  ;;
248
  --enable-system) softmmu="yes"
249
  ;;
250
  --disable-linux-user) linux_user="no"
251
  ;;
252
  --enable-linux-user) linux_user="yes"
253
  ;;
254
  --disable-darwin-user) darwin_user="no"
255
  ;;
256
  --enable-darwin-user) darwin_user="yes"
257
  ;;
258
  --enable-uname-release=*) uname_release="$optarg"
259
  ;;
260
  esac
261
done
262

    
263
# default flags for all hosts
264
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
265
LDFLAGS="$LDFLAGS -g"
266

    
267
if test x"$show_help" = x"yes" ; then
268
cat << EOF
269

    
270
Usage: configure [options]
271
Options: [defaults in brackets after descriptions]
272

    
273
EOF
274
echo "Standard options:"
275
echo "  --help                   print this message"
276
echo "  --prefix=PREFIX          install in PREFIX [$prefix]"
277
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
278
echo "                           use %M for cpu name [$interp_prefix]"
279
echo "  --target-list=LIST       set target list [$target_list]"
280
echo ""
281
echo "kqemu kernel acceleration support:"
282
echo "  --disable-kqemu          disable kqemu support"
283
echo ""
284
echo "Advanced options (experts only):"
285
echo "  --source-path=PATH       path of source code [$source_path]"
286
echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]"
287
echo "  --cc=CC                  use C compiler CC [$cc]"
288
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
289
echo "  --make=MAKE              use specified make [$make]"
290
echo "  --install=INSTALL        use specified install [$install]"
291
echo "  --static                 enable static build [$static]"
292
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
293
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
294
echo "  --enable-adlib           enable Adlib emulation"
295
echo "  --enable-coreaudio       enable Coreaudio audio driver"
296
echo "  --enable-alsa            enable ALSA audio driver"
297
echo "  --enable-fmod            enable FMOD audio driver"
298
echo "  --enabled-dsound         enable DirectSound audio driver"
299
echo "  --enable-system          enable all system emulation targets"
300
echo "  --disable-system         disable all system emulation targets"
301
echo "  --enable-linux-user      enable all linux usermode emulation targets"
302
echo "  --disable-linux-user     disable all linux usermode emulation targets"
303
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
304
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
305
echo "  --fmod-lib               path to FMOD library"
306
echo "  --fmod-inc               path to FMOD includes"
307
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
308
echo ""
309
echo "NOTE: The object files are built at the place where configure is launched"
310
exit 1
311
fi
312

    
313
cc="${cross_prefix}${cc}"
314
ar="${cross_prefix}${ar}"
315
strip="${cross_prefix}${strip}"
316

    
317
# check that the C compiler works.
318
cat > $TMPC <<EOF
319
int main(void) {}
320
EOF
321

    
322
if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
323
  : C compiler works ok
324
else
325
    echo "ERROR: \"$cc\" either does not exist or does not work"
326
    exit 1
327
fi
328

    
329
if test "$mingw32" = "yes" ; then
330
    linux="no"
331
    EXESUF=".exe"
332
    oss="no"
333
    if [ "$cpu" = "i386" ] ; then
334
        kqemu="yes"
335
    fi
336
fi
337

    
338
# Check for gcc4, error if pre-gcc4 
339
if test "$check_gcc" = "yes" ; then
340
    cat > $TMPC <<EOF
341
#if __GNUC__ < 4
342
#error gcc3
343
#endif
344
int main(){return 0;}
345
EOF
346
    check_cc() {
347
	which "$1" 2> /dev/null
348
	return $?
349
    }
350

    
351
    if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
352
	echo "WARNING: \"$cc\" looks like gcc 4.x"
353
	found_compat_cc="no"
354
	if test "$gcc3_search" = "yes" ; then
355
	    echo "Looking for gcc 3.x"
356
	    for compat_cc in $gcc3_list ; do
357
		if check_cc "$cross_prefix$compat_cc" ; then
358
		    echo "Found \"$compat_cc\""
359
		    cc="$cross_prefix$compat_cc"
360
		    found_compat_cc="yes"
361
		    break
362
		fi
363
	    done
364
	    if test "$found_compat_cc" = "no" ; then
365
		echo "gcc 3.x not found!"
366
	    fi
367
	fi
368
	if test "$found_compat_cc" = "no" ; then
369
	    echo "QEMU is known to have problems when compiled with gcc 4.x"
370
	    echo "It is recommended that you use gcc 3.x to build QEMU"
371
	    echo "To use this compiler anyway, configure with --disable-gcc-check"
372
	    exit 1;
373
	fi
374
    fi
375
fi
376

    
377
#
378
# Solaris specific configure tool chain decisions
379
#
380
if test "$solaris" = "yes" ; then
381
  #
382
  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
383
  # override the check with --disable-gcc-check
384
  # 
385
  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
386
    solgcc=`which $cc`
387
    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
388
      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
389
      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
390
      echo "or get the latest patch from SunSolve for gcc"
391
      exit 1
392
    fi
393
  fi
394
  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
395
  if test -z "$solinst" ; then
396
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
397
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
398
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
399
    exit 1
400
  fi
401
  if test "$solinst" = "/usr/sbin/install" ; then
402
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
403
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
404
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
405
    exit 1
406
  fi
407
  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
408
  if test -z "$sol_ar" ; then
409
    echo "Error: No path includes ar"
410
    if test -f /usr/ccs/bin/ar ; then
411
      echo "Add /usr/ccs/bin to your path and rerun configure"
412
    fi
413
    exit 1
414
  fi
415
fi 
416

    
417

    
418
if test -z "$target_list" ; then
419
# these targets are portable
420
    if [ "$softmmu" = "yes" ] ; then
421
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu ppc64-softmmu"
422
    fi
423
# the following are Linux specific
424
    if [ "$linux_user" = "yes" ] ; then
425
        target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user ppc-linux-user mips-linux-user mipsel-linux-user m68k-linux-user $target_list"
426
    fi
427
# the following are Darwin specific
428
    if [ "$darwin_user" = "yes" ] ; then
429
        target_list="i386-darwin-user ppc-darwin-user $target_list"
430
    fi
431
else
432
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
433
fi
434
if test -z "$target_list" ; then
435
    echo "No targets enabled"
436
    exit 1
437
fi
438

    
439
if test -z "$cross_prefix" ; then
440

    
441
# ---
442
# big/little endian test
443
cat > $TMPC << EOF
444
#include <inttypes.h>
445
int main(int argc, char ** argv){
446
        volatile uint32_t i=0x01234567;
447
        return (*((uint8_t*)(&i))) == 0x67;
448
}
449
EOF
450

    
451
if $cc -o $TMPE $TMPC 2> /dev/null ; then
452
$TMPE && bigendian="yes"
453
else
454
echo big/little test failed
455
fi
456

    
457
else
458

    
459
# if cross compiling, cannot launch a program, so make a static guess
460
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
461
    bigendian="yes"
462
fi
463

    
464
fi
465

    
466
# host long bits test
467
hostlongbits="32"
468
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
469
    hostlongbits="64"
470
fi
471

    
472
# check gcc options support
473
cat > $TMPC <<EOF
474
int main(void) {
475
}
476
EOF
477

    
478
##########################################
479
# SDL probe
480

    
481
sdl_too_old=no
482

    
483
if test -z "$sdl" ; then
484

    
485
sdl_config="sdl-config"
486
sdl=no
487
sdl_static=no
488

    
489
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
490
# win32 cross compilation case
491
    sdl_config="i386-mingw32msvc-sdl-config"
492
    sdl=yes
493
else
494
# normal SDL probe
495
cat > $TMPC << EOF
496
#include <SDL.h>
497
#undef main /* We don't want SDL to override our main() */
498
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
499
EOF
500

    
501
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
502
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
503
if test "$_sdlversion" -lt 121 ; then
504
sdl_too_old=yes
505
else
506
 if test "$cocoa" = "no" ; then
507
   sdl=yes
508
 fi
509
fi
510

    
511
# static link with sdl ?
512
if test "$sdl" = "yes" ; then
513
aa="no"
514
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
515
sdl_static_libs=`$sdl_config --static-libs`
516
if [ "$aa" = "yes" ] ; then
517
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
518
fi
519

    
520
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
521
  sdl_static=yes
522
fi
523

    
524
fi # static link
525

    
526
fi # sdl compile test
527

    
528
fi # cross compilation
529

    
530
else
531
 # Make sure to disable cocoa if sdl was set
532
 if test "$sdl" = "yes" ; then
533
   cocoa="no"
534
   coreaudio="no"
535
 fi
536
fi # -z $sdl
537

    
538
##########################################
539
# alsa sound support libraries
540

    
541
if test "$alsa" = "yes" ; then
542
  cat > $TMPC << EOF
543
#include <alsa/asoundlib.h>
544
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
545
EOF
546
  if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
547
    :
548
  else
549
    echo
550
    echo "Error: Could not find alsa"
551
    echo "Make sure to have the alsa libs and headers installed."
552
    echo
553
    exit 1
554
  fi
555
fi
556

    
557
# Check if tools are available to build documentation.
558
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
559
  build_docs="yes"
560
fi
561

    
562
if test "$mingw32" = "yes" ; then
563
  if test -z "$prefix" ; then
564
      prefix="/c/Program Files/Qemu"
565
  fi
566
  mansuffix=""
567
  datasuffix=""
568
  docsuffix=""
569
  binsuffix=""
570
else
571
  if test -z "$prefix" ; then
572
      prefix="/usr/local"
573
  fi
574
  mansuffix="/share/man"
575
  datasuffix="/share/qemu"
576
  docsuffix="/share/doc/qemu"
577
  binsuffix="/bin"
578
fi
579

    
580
echo "Install prefix    $prefix"
581
echo "BIOS directory    $prefix$datasuffix"
582
echo "binary directory  $prefix$binsuffix"
583
if test "$mingw32" = "no" ; then
584
echo "Manual directory  $prefix$mansuffix"
585
echo "ELF interp prefix $interp_prefix"
586
fi
587
echo "Source path       $source_path"
588
echo "C compiler        $cc"
589
echo "Host C compiler   $host_cc"
590
echo "make              $make"
591
echo "install           $install"
592
echo "host CPU          $cpu"
593
echo "host big endian   $bigendian"
594
echo "target list       $target_list"
595
echo "gprof enabled     $gprof"
596
echo "profiler          $profiler"
597
echo "static build      $static"
598
if test "$darwin" = "yes" ; then
599
    echo "Cocoa support     $cocoa"
600
fi
601
echo "SDL support       $sdl"
602
if test "$sdl" != "no" ; then
603
    echo "SDL static link   $sdl_static"
604
fi
605
echo "mingw32 support   $mingw32"
606
echo "Adlib support     $adlib"
607
echo "CoreAudio support $coreaudio"
608
echo "ALSA support      $alsa"
609
echo "DSound support    $dsound"
610
if test "$fmod" = "yes"; then
611
    if test -z $fmod_lib || test -z $fmod_inc; then
612
        echo
613
        echo "Error: You must specify path to FMOD library and headers"
614
        echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
615
        echo
616
        exit 1
617
    fi
618
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
619
else
620
    fmod_support=""
621
fi
622
echo "FMOD support      $fmod $fmod_support"
623
echo "kqemu support     $kqemu"
624
echo "Documentation     $build_docs"
625
[ ! -z "$uname_release" ] && \
626
echo "uname -r          $uname_release"
627

    
628
if test $sdl_too_old = "yes"; then
629
echo "-> Your SDL version is too old - please upgrade to have SDL support"
630
fi
631
#if test "$sdl_static" = "no"; then
632
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
633
#fi
634
config_mak="config-host.mak"
635
config_h="config-host.h"
636

    
637
#echo "Creating $config_mak and $config_h"
638

    
639
echo "# Automatically generated by configure - do not modify" > $config_mak
640
echo "# Configured with: $0 $@" >> $config_mak
641
echo "/* Automatically generated by configure - do not modify */" > $config_h
642

    
643
echo "prefix=$prefix" >> $config_mak
644
echo "bindir=\${prefix}$binsuffix" >> $config_mak
645
echo "mandir=\${prefix}$mansuffix" >> $config_mak
646
echo "datadir=\${prefix}$datasuffix" >> $config_mak
647
echo "docdir=\${prefix}$docsuffix" >> $config_mak
648
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
649
echo "MAKE=$make" >> $config_mak
650
echo "INSTALL=$install" >> $config_mak
651
echo "CC=$cc" >> $config_mak
652
echo "HOST_CC=$host_cc" >> $config_mak
653
echo "AR=$ar" >> $config_mak
654
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
655
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
656
echo "CFLAGS=$CFLAGS" >> $config_mak
657
echo "LDFLAGS=$LDFLAGS" >> $config_mak
658
echo "EXESUF=$EXESUF" >> $config_mak
659
echo "AIOLIBS=$AIOLIBS" >> $config_mak
660
if test "$cpu" = "i386" ; then
661
  echo "ARCH=i386" >> $config_mak
662
  echo "#define HOST_I386 1" >> $config_h
663
elif test "$cpu" = "x86_64" ; then
664
  echo "ARCH=x86_64" >> $config_mak
665
  echo "#define HOST_X86_64 1" >> $config_h
666
elif test "$cpu" = "armv4b" ; then
667
  echo "ARCH=arm" >> $config_mak
668
  echo "#define HOST_ARM 1" >> $config_h
669
elif test "$cpu" = "armv4l" ; then
670
  echo "ARCH=arm" >> $config_mak
671
  echo "#define HOST_ARM 1" >> $config_h
672
elif test "$cpu" = "powerpc" ; then
673
  echo "ARCH=ppc" >> $config_mak
674
  echo "#define HOST_PPC 1" >> $config_h
675
elif test "$cpu" = "mips" ; then
676
  echo "ARCH=mips" >> $config_mak
677
  echo "#define HOST_MIPS 1" >> $config_h
678
elif test "$cpu" = "s390" ; then
679
  echo "ARCH=s390" >> $config_mak
680
  echo "#define HOST_S390 1" >> $config_h
681
elif test "$cpu" = "alpha" ; then
682
  echo "ARCH=alpha" >> $config_mak
683
  echo "#define HOST_ALPHA 1" >> $config_h
684
elif test "$cpu" = "sparc" ; then
685
  echo "ARCH=sparc" >> $config_mak
686
  echo "#define HOST_SPARC 1" >> $config_h
687
elif test "$cpu" = "sparc64" ; then
688
  echo "ARCH=sparc64" >> $config_mak
689
  echo "#define HOST_SPARC64 1" >> $config_h
690
elif test "$cpu" = "ia64" ; then
691
  echo "ARCH=ia64" >> $config_mak
692
  echo "#define HOST_IA64 1" >> $config_h
693
elif test "$cpu" = "m68k" ; then
694
  echo "ARCH=m68k" >> $config_mak
695
  echo "#define HOST_M68K 1" >> $config_h
696
else
697
  echo "Unsupported CPU"
698
  exit 1
699
fi
700
if test "$bigendian" = "yes" ; then
701
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
702
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
703
fi
704
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
705
if test "$mingw32" = "yes" ; then
706
  echo "CONFIG_WIN32=yes" >> $config_mak
707
  echo "#define CONFIG_WIN32 1" >> $config_h
708
else
709
  cat > $TMPC << EOF
710
#include <byteswap.h>
711
int main(void) { return bswap_32(0); }
712
EOF
713
  if $cc -o $TMPE $TMPC 2> /dev/null ; then
714
    echo "#define HAVE_BYTESWAP_H 1" >> $config_h
715
  fi
716
fi
717
if test "$darwin" = "yes" ; then
718
  echo "CONFIG_DARWIN=yes" >> $config_mak
719
  echo "#define CONFIG_DARWIN 1" >> $config_h
720
fi
721
if test "$solaris" = "yes" ; then
722
  echo "CONFIG_SOLARIS=yes" >> $config_mak
723
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
724
fi
725
if test "$gdbstub" = "yes" ; then
726
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
727
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
728
fi
729
if test "$gprof" = "yes" ; then
730
  echo "TARGET_GPROF=yes" >> $config_mak
731
  echo "#define HAVE_GPROF 1" >> $config_h
732
fi
733
if test "$static" = "yes" ; then
734
  echo "CONFIG_STATIC=yes" >> $config_mak
735
  echo "#define CONFIG_STATIC 1" >> $config_h
736
fi
737
if test $profiler = "yes" ; then
738
  echo "#define CONFIG_PROFILER 1" >> $config_h
739
fi
740
if test "$slirp" = "yes" ; then
741
  echo "CONFIG_SLIRP=yes" >> $config_mak
742
  echo "#define CONFIG_SLIRP 1" >> $config_h
743
fi
744
if test "$adlib" = "yes" ; then
745
  echo "CONFIG_ADLIB=yes" >> $config_mak
746
  echo "#define CONFIG_ADLIB 1" >> $config_h
747
fi
748
if test "$oss" = "yes" ; then
749
  echo "CONFIG_OSS=yes" >> $config_mak
750
  echo "#define CONFIG_OSS 1" >> $config_h
751
fi
752
if test "$coreaudio" = "yes" ; then
753
  echo "CONFIG_COREAUDIO=yes" >> $config_mak
754
  echo "#define CONFIG_COREAUDIO 1" >> $config_h
755
fi
756
if test "$alsa" = "yes" ; then
757
  echo "CONFIG_ALSA=yes" >> $config_mak
758
  echo "#define CONFIG_ALSA 1" >> $config_h
759
fi
760
if test "$dsound" = "yes" ; then
761
  echo "CONFIG_DSOUND=yes" >> $config_mak
762
  echo "#define CONFIG_DSOUND 1" >> $config_h
763
fi
764
if test "$fmod" = "yes" ; then
765
  echo "CONFIG_FMOD=yes" >> $config_mak
766
  echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
767
  echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
768
  echo "#define CONFIG_FMOD 1" >> $config_h
769
fi
770
qemu_version=`head $source_path/VERSION`
771
echo "VERSION=$qemu_version" >>$config_mak
772
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
773

    
774
echo "SRC_PATH=$source_path" >> $config_mak
775
if [ "$source_path_used" = "yes" ]; then
776
  echo "VPATH=$source_path" >> $config_mak
777
fi
778
echo "TARGET_DIRS=$target_list" >> $config_mak
779
if [ "$build_docs" = "yes" ] ; then
780
  echo "BUILD_DOCS=yes" >> $config_mak
781
fi
782

    
783
# XXX: suppress that
784
if [ "$bsd" = "yes" ] ; then
785
  echo "#define O_LARGEFILE 0" >> $config_h
786
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
787
  echo "#define _BSD 1" >> $config_h
788
fi
789

    
790
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
791

    
792
for target in $target_list; do
793
target_dir="$target"
794
config_mak=$target_dir/config.mak
795
config_h=$target_dir/config.h
796
target_cpu=`echo $target | cut -d '-' -f 1`
797
target_bigendian="no"
798
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
799
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
800
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
801
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
802
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
803
[ "$target_cpu" = "mips" ] && target_bigendian=yes
804
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
805
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
806
target_softmmu="no"
807
if expr $target : '.*-softmmu' > /dev/null ; then
808
  target_softmmu="yes"
809
fi
810
target_user_only="no"
811
if expr $target : '.*-user' > /dev/null ; then
812
  target_user_only="yes"
813
fi
814

    
815
target_linux_user="no"
816
if expr $target : '.*-linux-user' > /dev/null ; then
817
  target_linux_user="yes"
818
fi
819

    
820
target_darwin_user="no"
821
if expr $target : '.*-darwin-user' > /dev/null ; then
822
  target_darwin_user="yes"
823
fi
824

    
825
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
826
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
827
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
828
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
829
    echo "Note that this will disable all output from the virtual graphics card."
830
    exit 1;
831
fi
832

    
833
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
834

    
835
mkdir -p $target_dir
836
mkdir -p $target_dir/fpu
837
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
838
  mkdir -p $target_dir/nwfpe
839
fi
840
if test "$target_user_only" = "no" ; then
841
  mkdir -p $target_dir/slirp
842
fi
843

    
844
#
845
# don't use ln -sf as not all "ln -sf" over write the file/link
846
#
847
rm -f $target_dir/Makefile
848
ln -s $source_path/Makefile.target $target_dir/Makefile
849

    
850

    
851
echo "# Automatically generated by configure - do not modify" > $config_mak
852
echo "/* Automatically generated by configure - do not modify */" > $config_h
853

    
854

    
855
echo "include ../config-host.mak" >> $config_mak
856
echo "#include \"../config-host.h\"" >> $config_h
857

    
858
bflt="no"
859
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
860
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
861

    
862
if test "$target_cpu" = "i386" ; then
863
  echo "TARGET_ARCH=i386" >> $config_mak
864
  echo "#define TARGET_ARCH \"i386\"" >> $config_h
865
  echo "#define TARGET_I386 1" >> $config_h
866
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
867
    echo "#define USE_KQEMU 1" >> $config_h
868
  fi
869
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
870
  echo "TARGET_ARCH=arm" >> $config_mak
871
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
872
  echo "#define TARGET_ARM 1" >> $config_h
873
  bflt="yes"
874
elif test "$target_cpu" = "sparc" ; then
875
  echo "TARGET_ARCH=sparc" >> $config_mak
876
  echo "#define TARGET_ARCH \"sparc\"" >> $config_h
877
  echo "#define TARGET_SPARC 1" >> $config_h
878
elif test "$target_cpu" = "sparc64" ; then
879
  echo "TARGET_ARCH=sparc64" >> $config_mak
880
  echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
881
  echo "#define TARGET_SPARC 1" >> $config_h
882
  echo "#define TARGET_SPARC64 1" >> $config_h
883
elif test "$target_cpu" = "ppc" ; then
884
  echo "TARGET_ARCH=ppc" >> $config_mak
885
  echo "#define TARGET_ARCH \"ppc\"" >> $config_h
886
  echo "#define TARGET_PPC 1" >> $config_h
887
elif test "$target_cpu" = "ppc64" ; then
888
  echo "TARGET_ARCH=ppc64" >> $config_mak
889
  echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
890
  echo "#define TARGET_PPC 1" >> $config_h
891
  echo "#define TARGET_PPC64 1" >> $config_h
892
elif test "$target_cpu" = "x86_64" ; then
893
  echo "TARGET_ARCH=x86_64" >> $config_mak
894
  echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
895
  echo "#define TARGET_I386 1" >> $config_h
896
  echo "#define TARGET_X86_64 1" >> $config_h
897
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
898
    echo "#define USE_KQEMU 1" >> $config_h
899
  fi
900
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
901
  echo "TARGET_ARCH=mips" >> $config_mak
902
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
903
  echo "#define TARGET_MIPS 1" >> $config_h
904
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
905
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
906
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
907
  echo "TARGET_ARCH=sh4" >> $config_mak
908
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
909
  echo "#define TARGET_SH4 1" >> $config_h
910
  bflt="yes"
911
elif test "$target_cpu" = "m68k" ; then
912
  echo "TARGET_ARCH=m68k" >> $config_mak
913
  echo "#define TARGET_ARCH \"m68k\"" >> $config_h
914
  echo "#define TARGET_M68K 1" >> $config_h
915
  bflt="yes"
916
else
917
  echo "Unsupported target CPU"
918
  exit 1
919
fi
920
if test "$target_bigendian" = "yes" ; then
921
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
922
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
923
fi
924
if test "$target_softmmu" = "yes" ; then
925
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
926
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
927
fi
928
if test "$target_user_only" = "yes" ; then
929
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
930
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
931
fi
932
if test "$target_linux_user" = "yes" ; then
933
  echo "CONFIG_LINUX_USER=yes" >> $config_mak
934
  echo "#define CONFIG_LINUX_USER 1" >> $config_h
935
fi
936
if test "$target_darwin_user" = "yes" ; then
937
  echo "CONFIG_DARWIN_USER=yes" >> $config_mak
938
  echo "#define CONFIG_DARWIN_USER 1" >> $config_h
939
fi
940

    
941
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
942
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
943
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
944
fi
945
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
946
  echo "TARGET_HAS_BFLT=yes" >> $config_mak
947
  echo "#define TARGET_HAS_BFLT 1" >> $config_h
948
fi
949
# sdl defines
950

    
951
if test "$target_user_only" = "no"; then
952
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
953
        sdl1=$sdl_static
954
    else
955
        sdl1=$sdl
956
    fi
957
    if test "$sdl1" = "yes" ; then
958
        echo "#define CONFIG_SDL 1" >> $config_h
959
        echo "CONFIG_SDL=yes" >> $config_mak
960
        if test "$target_softmmu" = "no" -o "$static" = "yes"; then
961
            echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
962
        else
963
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
964
        fi
965
        if [ "${aa}" = "yes" ] ; then
966
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
967
        else
968
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
969
        fi
970
    fi
971
fi
972

    
973
if test "$cocoa" = "yes" ; then
974
    echo "#define CONFIG_COCOA 1" >> $config_h
975
    echo "CONFIG_COCOA=yes" >> $config_mak
976
fi
977

    
978
done # for target in $targets
979

    
980
# build tree in object directory if source path is different from current one
981
if test "$source_path_used" = "yes" ; then
982
    DIRS="tests"
983
    FILES="Makefile tests/Makefile"
984
    for dir in $DIRS ; do
985
            mkdir -p $dir
986
    done
987
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
988
    for f in $FILES ; do
989
        rm -f $f
990
        ln -s $source_path/$f $f
991
    done
992
fi
993

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