Statistics
| Branch: | Revision:

root / configure @ ea785922

History | View | Annotate | Download (27 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
;;
138
*)
139
oss="yes"
140
linux="yes"
141
linux_user="yes"
142
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
143
    kqemu="yes"
144
fi
145
;;
146
esac
147

    
148
if [ "$bsd" = "yes" ] ; then
149
  if [ "$darwin" != "yes" ] ; then
150
    make="gmake"
151
  fi
152
fi
153

    
154
if [ "$solaris" = "yes" ] ; then
155
    make="gmake"
156
    install="ginstall"
157
    solarisrev=`uname -r | cut -f2 -d.`
158
    if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
159
        if test "$solarisrev" -gt 10 ; then
160
            kqemu="yes"
161
        fi
162
    fi
163
fi
164

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

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

    
260
# default flags for all hosts
261
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
262
LDFLAGS="$LDFLAGS -g"
263

    
264
if test x"$show_help" = x"yes" ; then
265
cat << EOF
266

    
267
Usage: configure [options]
268
Options: [defaults in brackets after descriptions]
269

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

    
310
cc="${cross_prefix}${cc}"
311
ar="${cross_prefix}${ar}"
312
strip="${cross_prefix}${strip}"
313

    
314
# check that the C compiler works.
315
cat > $TMPC <<EOF
316
int main(void) {}
317
EOF
318

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

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

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

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

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

    
414

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

    
436
if test -z "$cross_prefix" ; then
437

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

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

    
454
else
455

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

    
461
fi
462

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

    
469
# check gcc options support
470
cat > $TMPC <<EOF
471
int main(void) {
472
}
473
EOF
474

    
475
have_gcc3_options="no"
476
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
477
   have_gcc3_options="yes"
478
fi
479

    
480
##########################################
481
# SDL probe
482

    
483
sdl_too_old=no
484

    
485
if test -z "$sdl" ; then
486

    
487
sdl_config="sdl-config"
488
sdl=no
489
sdl_static=no
490

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

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

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

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

    
526
fi # static link
527

    
528
fi # sdl compile test
529

    
530
fi # cross compilation
531

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

    
540
##########################################
541
# alsa sound support libraries
542

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

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

    
564
if test "$mingw32" = "yes" ; then
565
if test -z "$prefix" ; then
566
    prefix="/c/Program Files/Qemu"
567
fi
568
mandir="$prefix"
569
datadir="$prefix"
570
docdir="$prefix"
571
bindir="$prefix"
572
else
573
if test -z "$prefix" ; then
574
    prefix="/usr/local"
575
fi
576
mandir="$prefix/share/man"
577
datadir="$prefix/share/qemu"
578
docdir="$prefix/share/doc/qemu"
579
bindir="$prefix/bin"
580
fi
581

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

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

    
639
#echo "Creating $config_mak and $config_h"
640

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

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

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

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

    
788
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
789

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

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

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

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

    
831
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
832

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

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

    
848

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

    
852

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

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

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

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

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

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

    
976
done # for target in $targets
977

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

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