Statistics
| Branch: | Revision:

root / configure @ 4ad5b06d

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
# find source path
163
source_path=`dirname "$0"`
164
if [ -z "$source_path" ]; then
165
    source_path=`pwd`
166
else
167
    source_path=`cd "$source_path"; pwd`
168
fi
169
if test "$source_path" = `pwd` ; then
170
    source_path_used="no"
171
else
172
    source_path_used="yes"
173
fi
174

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

    
257
# default flags for all hosts
258
CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing"
259
LDFLAGS="$LDFLAGS -g"
260

    
261
if test x"$show_help" = x"yes" ; then
262
cat << EOF
263

    
264
Usage: configure [options]
265
Options: [defaults in brackets after descriptions]
266

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

    
307
cc="${cross_prefix}${cc}"
308
ar="${cross_prefix}${ar}"
309
strip="${cross_prefix}${strip}"
310

    
311
# check that the C compiler works.
312
cat > $TMPC <<EOF
313
int main(void) {}
314
EOF
315

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

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

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

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

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

    
411

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

    
433
if test -z "$cross_prefix" ; then
434

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

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

    
451
else
452

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

    
458
fi
459

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

    
466
# check gcc options support
467
cat > $TMPC <<EOF
468
int main(void) {
469
}
470
EOF
471

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

    
477
##########################################
478
# SDL probe
479

    
480
sdl_too_old=no
481

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

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

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

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

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

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

    
523
fi # static link
524

    
525
fi # sdl compile test
526

    
527
fi # cross compilation
528

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

    
537
##########################################
538
# alsa sound support libraries
539

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    
851

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

    
855

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

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

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

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

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

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

    
979
done # for target in $targets
980

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

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