1
2
#!/bin/sh
#
3
# qemu configure script (c) 2003 Fabrice Bellard
4
5
6
7
8
9
10
11
12
13
#
# set temporary file name
if test ! -z " $TMPDIR " ; then
TMPDIR1 = " ${ TMPDIR } "
elif test ! -z " $TEMPDIR " ; then
TMPDIR1 = " ${ TEMPDIR } "
else
TMPDIR1 = "/tmp"
fi
14
15
16
17
TMPC = " ${ TMPDIR1 } /qemu-conf- ${ RANDOM } - $$ - ${ RANDOM } .c"
TMPO = " ${ TMPDIR1 } /qemu-conf- ${ RANDOM } - $$ - ${ RANDOM } .o"
TMPE = " ${ TMPDIR1 } /qemu-conf- ${ RANDOM } - $$ - ${ RANDOM } "
TMPS = " ${ TMPDIR1 } /qemu-conf- ${ RANDOM } - $$ - ${ RANDOM } .S"
18
19
# default parameters
20
prefix = ""
21
interp_prefix = "/usr/gnemul/qemu-%M"
22
static = "no"
23
24
cross_prefix = ""
cc = "gcc"
25
26
gcc3_search = "yes"
gcc3_list = "gcc-3.4 gcc34 gcc-3.3 gcc33 gcc-3.2 gcc32"
27
28
29
host_cc = "gcc"
ar = "ar"
make = "make"
30
install = "install"
31
32
strip = "strip"
cpu = ` uname -m`
33
target_list = ""
34
35
case " $cpu " in
i386|i486|i586|i686|i86pc|BePC)
36
cpu = "i386"
37
;;
38
armv* b)
39
40
cpu = "armv4b"
;;
41
armv* l)
42
43
44
45
46
cpu = "armv4l"
;;
alpha)
cpu = "alpha"
;;
47
"Power Macintosh" | ppc|ppc64)
48
49
50
51
52
cpu = "powerpc"
;;
mips)
cpu = "mips"
;;
53
54
55
s390)
cpu = "s390"
;;
56
sparc|sun4[muv])
57
58
59
60
61
cpu = "sparc"
;;
sparc64)
cpu = "sparc64"
;;
62
63
64
ia64)
cpu = "ia64"
;;
65
66
67
m68k)
cpu = "m68k"
;;
68
x86_64|amd64)
69
cpu = "x86_64"
70
;;
71
72
73
74
75
76
* )
cpu = "unknown"
;;
esac
gprof = "no"
bigendian = "no"
77
78
79
mingw32 = "no"
EXESUF = ""
gdbstub = "yes"
80
slirp = "yes"
81
82
adlib = "no"
oss = "no"
83
84
85
dsound = "no"
coreaudio = "no"
alsa = "no"
86
87
88
fmod = "no"
fmod_lib = ""
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"
ths
authored
18 years ago
97
98
linux_user = "no"
darwin_user = "no"
99
build_docs = "no"
100
uname_release = ""
101
102
103
104
# OS specific
targetos = ` uname -s`
case $targetos in
105
106
CYGWIN* )
mingw32 = "yes"
ths
authored
18 years ago
107
OS_CFLAGS = "-mno-cygwin"
108
;;
109
110
111
MINGW32* )
mingw32 = "yes"
;;
112
113
FreeBSD)
bsd = "yes"
114
oss = "yes"
115
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
116
117
kqemu = "yes"
fi
118
119
120
;;
NetBSD)
bsd = "yes"
121
oss = "yes"
122
123
124
;;
OpenBSD)
bsd = "yes"
125
oss = "yes"
126
;;
127
128
129
Darwin)
bsd = "yes"
darwin = "yes"
ths
authored
18 years ago
130
darwin_user = "yes"
ths
authored
18 years ago
131
132
cocoa = "yes"
coreaudio = "yes"
ths
authored
18 years ago
133
OS_CFLAGS = "-mdynamic-no-pic"
134
;;
135
136
137
SunOS)
solaris = "yes"
;;
138
* )
139
oss = "yes"
140
linux = "yes"
ths
authored
18 years ago
141
linux_user = "yes"
142
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
143
144
kqemu = "yes"
fi
145
;;
146
147
esac
148
if [ " $bsd " = "yes" ] ; then
149
if [ " $darwin " != "yes" ] ; then
150
151
make = "gmake"
fi
152
153
fi
154
155
156
157
if [ " $solaris " = "yes" ] ; then
make = "gmake"
install = "ginstall"
solarisrev = ` uname -r | cut -f2 -d.`
ths
authored
18 years ago
158
159
160
161
162
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
if test " $solarisrev " -gt 10 ; then
kqemu = "yes"
fi
fi
163
164
fi
165
# find source path
166
167
source_path = ` dirname " $0 " `
if [ -z " $source_path " ] ; then
168
source_path = ` pwd `
169
170
171
172
else
source_path = ` cd " $source_path " ; pwd `
fi
if test " $source_path " = ` pwd ` ; then
173
source_path_used = "no"
174
175
else
source_path_used = "yes"
176
177
178
fi
for opt do
179
optarg = ` expr "x $opt " : 'x[^=]*=\(.*\)' `
180
case " $opt " in
181
182
--help|-h) show_help = yes
;;
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
200
--install= * ) install = " $optarg "
;;
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
210
--enable-gprof) gprof = "yes"
;;
211
212
--static) static = "yes"
;;
213
214
--disable-sdl) sdl = "no"
;;
215
216
217
218
219
220
--enable-coreaudio) coreaudio = "yes"
;;
--enable-alsa) alsa = "yes"
;;
--enable-dsound) dsound = "yes"
;;
221
222
--enable-fmod) fmod = "yes"
;;
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
236
--enable-profiler) profiler = "yes"
;;
237
238
--enable-cocoa) cocoa = "yes" ; coreaudio = "yes" ; sdl = "no"
;;
239
240
--disable-gfx-check) check_gfx = "no"
;;
241
242
--disable-gcc-check) check_gcc = "no"
;;
243
--disable-system) softmmu = "no"
244
;;
245
--enable-system) softmmu = "yes"
246
;;
ths
authored
18 years ago
247
--disable-linux-user) linux_user = "no"
248
;;
ths
authored
18 years ago
249
250
251
252
253
--enable-linux-user) linux_user = "yes"
;;
--disable-darwin-user) darwin_user = "no"
;;
--enable-darwin-user) darwin_user = "yes"
254
;;
255
256
--enable-uname-release= * ) uname_release = " $optarg "
;;
257
258
259
esac
done
ths
authored
18 years ago
260
261
262
263
# default flags for all hosts
CFLAGS = " $CFLAGS -Wall -O2 -g -fno-strict-aliasing"
LDFLAGS = " $LDFLAGS -g"
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
if test x" $show_help " = x"yes" ; then
cat << EOF
Usage: configure [options]
Options: [defaults in brackets after descriptions]
EOF
echo "Standard options:"
echo " --help print this message"
echo " --prefix=PREFIX install in PREFIX [$prefix]"
echo " --interp-prefix=PREFIX where to find shared libraries, etc."
echo " use %M for cpu name [$interp_prefix]"
echo " --target-list=LIST set target list [$target_list]"
echo ""
echo "kqemu kernel acceleration support:"
echo " --disable-kqemu disable kqemu support"
echo ""
echo "Advanced options (experts only):"
echo " --source-path=PATH path of source code [$source_path]"
echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
echo " --cc=CC use C compiler CC [$cc]"
echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
echo " --make=MAKE use specified make [$make]"
287
echo " --install=INSTALL use specified install [$install]"
288
289
290
291
292
293
294
295
296
297
echo " --static enable static build [$static]"
echo " --enable-cocoa enable COCOA (Mac OS X only)"
echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
echo " --enable-adlib enable Adlib emulation"
echo " --enable-coreaudio enable Coreaudio audio driver"
echo " --enable-alsa enable ALSA audio driver"
echo " --enable-fmod enable FMOD audio driver"
echo " --enabled-dsound enable DirectSound audio driver"
echo " --enable-system enable all system emulation targets"
echo " --disable-system disable all system emulation targets"
ths
authored
18 years ago
298
299
300
301
echo " --enable-linux-user enable all linux usermode emulation targets"
echo " --disable-linux-user disable all linux usermode emulation targets"
echo " --enable-darwin-user enable all darwin usermode emulation targets"
echo " --disable-darwin-user disable all darwin usermode emulation targets"
302
303
echo " --fmod-lib path to FMOD library"
echo " --fmod-inc path to FMOD includes"
304
echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
305
echo ""
ths
authored
18 years ago
306
echo "NOTE: The object files are built at the place where configure is launched"
307
308
309
exit 1
fi
310
311
312
313
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
314
315
316
317
318
319
320
321
322
323
# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF
if $cc -c -o $TMPO $TMPC 2>/dev/null ; then
: C compiler works ok
else
echo "ERROR: \"$cc\" either does not exist or does not work"
exit 1
324
325
fi
326
if test "$mingw32" = "yes" ; then
327
linux="no"
328
EXESUF=".exe"
329
oss="no"
330
331
332
if [ "$cpu" = "i386" ] ; then
kqemu="yes"
fi
333
334
fi
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
# Check for gcc4, error if pre-gcc4
if test "$check_gcc" = "yes" ; then
cat > $TMPC <<EOF
#if __GNUC__ < 4
#error gcc3
#endif
int main(){return 0;}
EOF
check_cc() {
which "$1" >&/dev/null
return $?
}
if "$cc" -o $TMPE $TMPC 2>/dev/null ; then
echo "WARNING: \"$cc\" looks like gcc 4.x"
found_compat_cc="no"
if test "$gcc3_search" = "yes" ; then
echo "Looking for gcc 3.x"
for compat_cc in $gcc3_list ; do
if check_cc "$compat_cc" ; then
echo "Found \"$compat_cc\""
cc="$compat_cc"
found_compat_cc="yes"
break
fi
done
if test "$found_compat_cc" = "no" ; then
echo "gcc 3.x not found!"
fi
fi
if test "$found_compat_cc" = "no" ; then
echo "QEMU is known to have problems when compiled with gcc 4.x"
echo "It is recommended that you use gcc 3.x to build QEMU"
echo "To use this compiler anyway, configure with --disable-gcc-check"
exit 1;
fi
fi
fi
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
#
# Solaris specific configure tool chain decisions
#
if test "$solaris" = "yes" ; then
#
# gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
# override the check with --disable-gcc-check
#
if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
solgcc=`which $cc`
if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
echo "or get the latest patch from SunSolve for gcc"
exit 1
fi
fi
solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
if test -z "$solinst" ; then
echo "Solaris install program not found. Use --install=/usr/ucb/install or"
echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
exit 1
fi
if test "$solinst" = "/usr/sbin/install" ; then
echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
echo "try ginstall from the GNU fileutils available from www.blastwave.org"
echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
exit 1
fi
sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
if test -z "$sol_ar" ; then
echo "Error: No path includes ar"
if test -f /usr/ccs/bin/ar ; then
echo "Add /usr/ccs/bin to your path and rerun configure"
fi
exit 1
fi
fi
415
416
if test -z "$target_list" ; then
# these targets are portable
417
418
419
if [ "$softmmu" = "yes" ] ; then
target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
fi
420
# the following are Linux specific
ths
authored
18 years ago
421
422
423
424
425
426
if [ "$linux_user" = "yes" ] ; then
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"
fi
# the following are Darwin specific
if [ "$darwin_user" = "yes" ] ; then
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
432
433
434
if test -z "$target_list" ; then
echo "No targets enabled"
exit 1
fi
435
436
437
438
439
440
441
442
if test -z "$cross_prefix" ; then
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
443
444
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
445
446
447
448
449
450
451
452
453
454
455
456
}
EOF
if $cc -o $TMPE $TMPC 2>/dev/null ; then
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
else
# 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
459
460
461
462
bigendian="yes"
fi
fi
463
464
465
466
467
468
# host long bits test
hostlongbits="32"
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
hostlongbits="64"
fi
469
# check gcc options support
470
471
472
473
474
cat > $TMPC <<EOF
int main(void) {
}
EOF
475
476
477
have_gcc3_options="no"
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
have_gcc3_options="yes"
478
fi
479
480
481
482
483
484
485
486
##########################################
# SDL probe
sdl_too_old=no
if test -z "$sdl" ; then
487
488
sdl_config="sdl-config"
sdl=no
489
sdl_static=no
490
491
492
493
494
495
496
if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
# win32 cross compilation case
sdl_config="i386-mingw32msvc-sdl-config"
sdl=yes
else
# normal SDL probe
497
498
499
500
501
502
cat > $TMPC << EOF
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
503
504
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
505
506
507
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
ths
authored
18 years ago
508
509
510
if test "$cocoa" = "no" ; then
sdl=yes
fi
511
fi
512
513
514
515
516
517
518
# static link with sdl ?
if test "$sdl" = "yes" ; then
aa="no"
`$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
sdl_static_libs=`$sdl_config --static-libs`
if [ "$aa" = "yes" ] ; then
519
sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
520
521
522
523
fi
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
sdl_static=yes
524
525
fi
526
527
528
529
fi # static link
fi # sdl compile test
530
fi # cross compilation
ths
authored
18 years ago
531
532
533
534
535
536
537
else
# Make sure to disable cocoa if sdl was set
if test "$sdl" = "yes" ; then
cocoa="no"
coreaudio="no"
fi
538
fi # -z $sdl
539
ths
authored
18 years ago
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
##########################################
# alsa sound support libraries
if test "$alsa" = "yes" ; then
cat > $TMPC << EOF
#include <alsa/asoundlib.h>
int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); }
EOF
if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then
:
else
echo
echo "Error: Could not find alsa"
echo "Make sure to have the alsa libs and headers installed."
echo
exit 1
fi
fi
559
# Check if tools are available to build documentation.
560
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
561
562
563
build_docs="yes"
fi
564
565
566
567
568
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
569
datadir="$prefix"
570
docdir="$prefix"
571
572
573
574
575
bindir="$prefix"
else
if test -z "$prefix" ; then
prefix="/usr/local"
fi
576
mandir="$prefix/share/man"
577
datadir="$prefix/share/qemu"
578
docdir="$prefix/share/doc/qemu"
579
580
bindir="$prefix/bin"
fi
581
582
echo "Install prefix $prefix"
583
echo "BIOS directory $datadir"
584
585
586
echo "binary directory $bindir"
if test "$mingw32" = "no" ; then
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
601
602
if test "$darwin" = "yes" ; then
echo "Cocoa support $cocoa"
fi
603
echo "SDL support $sdl"
604
605
606
if test "$sdl" != "no" ; then
echo "SDL static link $sdl_static"
fi
607
echo "mingw32 support $mingw32"
608
echo "Adlib support $adlib"
609
610
611
612
613
614
615
616
617
618
619
echo "CoreAudio support $coreaudio"
echo "ALSA support $alsa"
echo "DSound support $dsound"
if test "$fmod" = "yes"; then
if test -z $fmod_lib || test -z $fmod_inc; then
echo
echo "Error: You must specify path to FMOD library and headers"
echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
echo
exit 1
fi
620
621
622
fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
else
fmod_support=""
623
fi
624
echo "FMOD support $fmod $fmod_support"
625
echo "kqemu support $kqemu"
626
echo "Documentation $build_docs"
627
628
[ ! -z "$uname_release" ] && \
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
634
635
#if test "$sdl_static" = "no"; then
# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
636
637
config_mak="config-host.mak"
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
658
659
echo "HOST_CC=$host_cc" >> $config_mak
echo "AR=$ar" >> $config_mak
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
ths
authored
18 years ago
660
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
661
662
echo "CFLAGS=$CFLAGS" >> $config_mak
echo "LDFLAGS=$LDFLAGS" >> $config_mak
663
echo "EXESUF=$EXESUF" >> $config_mak
664
665
666
if test "$cpu" = "i386" ; then
echo "ARCH=i386" >> $config_mak
echo "#define HOST_I386 1" >> $config_h
667
668
669
elif test "$cpu" = "x86_64" ; then
echo "ARCH=x86_64" >> $config_mak
echo "#define HOST_X86_64 1" >> $config_h
670
671
672
elif test "$cpu" = "armv4b" ; then
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
673
elif test "$cpu" = "armv4l" ; then
674
675
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
676
elif test "$cpu" = "powerpc" ; then
677
678
echo "ARCH=ppc" >> $config_mak
echo "#define HOST_PPC 1" >> $config_h
679
elif test "$cpu" = "mips" ; then
680
681
echo "ARCH=mips" >> $config_mak
echo "#define HOST_MIPS 1" >> $config_h
682
elif test "$cpu" = "s390" ; then
683
684
echo "ARCH=s390" >> $config_mak
echo "#define HOST_S390 1" >> $config_h
685
elif test "$cpu" = "alpha" ; then
686
687
echo "ARCH=alpha" >> $config_mak
echo "#define HOST_ALPHA 1" >> $config_h
688
elif test "$cpu" = "sparc" ; then
689
690
echo "ARCH=sparc" >> $config_mak
echo "#define HOST_SPARC 1" >> $config_h
691
elif test "$cpu" = "sparc64" ; then
692
693
echo "ARCH=sparc64" >> $config_mak
echo "#define HOST_SPARC64 1" >> $config_h
694
elif test "$cpu" = "ia64" ; then
695
696
echo "ARCH=ia64" >> $config_mak
echo "#define HOST_IA64 1" >> $config_h
697
elif test "$cpu" = "m68k" ; then
698
699
echo "ARCH=m68k" >> $config_mak
echo "#define HOST_M68K 1" >> $config_h
700
701
702
703
704
else
echo "Unsupported CPU"
exit 1
fi
if test "$bigendian" = "yes" ; then
705
706
707
echo "WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
708
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
709
710
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=yes" >> $config_mak
711
echo "#define CONFIG_WIN32 1" >> $config_h
712
elif test -f "/usr/include/byteswap.h" ; then
713
714
echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
715
716
717
718
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=yes" >> $config_mak
echo "#define CONFIG_DARWIN 1" >> $config_h
fi
719
720
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=yes" >> $config_mak
721
echo "#define HOST_SOLARIS $solarisrev" >> $config_h
722
fi
723
724
725
726
if test "$gdbstub" = "yes" ; then
echo "CONFIG_GDBSTUB=yes" >> $config_mak
echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
727
728
729
730
731
732
if test "$gprof" = "yes" ; then
echo "TARGET_GPROF=yes" >> $config_mak
echo "#define HAVE_GPROF 1" >> $config_h
fi
if test "$static" = "yes" ; then
echo "CONFIG_STATIC=yes" >> $config_mak
733
echo "#define CONFIG_STATIC 1" >> $config_h
734
fi
735
736
737
if test $profiler = "yes" ; then
echo "#define CONFIG_PROFILER 1" >> $config_h
fi
738
739
740
741
if test "$slirp" = "yes" ; then
echo "CONFIG_SLIRP=yes" >> $config_mak
echo "#define CONFIG_SLIRP 1" >> $config_h
fi
742
743
744
745
746
747
748
749
if test "$adlib" = "yes" ; then
echo "CONFIG_ADLIB=yes" >> $config_mak
echo "#define CONFIG_ADLIB 1" >> $config_h
fi
if test "$oss" = "yes" ; then
echo "CONFIG_OSS=yes" >> $config_mak
echo "#define CONFIG_OSS 1" >> $config_h
fi
750
751
752
753
754
755
756
757
758
759
760
761
if test "$coreaudio" = "yes" ; then
echo "CONFIG_COREAUDIO=yes" >> $config_mak
echo "#define CONFIG_COREAUDIO 1" >> $config_h
fi
if test "$alsa" = "yes" ; then
echo "CONFIG_ALSA=yes" >> $config_mak
echo "#define CONFIG_ALSA 1" >> $config_h
fi
if test "$dsound" = "yes" ; then
echo "CONFIG_DSOUND=yes" >> $config_mak
echo "#define CONFIG_DSOUND 1" >> $config_h
fi
762
763
764
765
766
767
if test "$fmod" = "yes" ; then
echo "CONFIG_FMOD=yes" >> $config_mak
echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
echo "#define CONFIG_FMOD 1" >> $config_h
fi
768
769
qemu_version=`head $source_path/VERSION`
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
774
775
if [ "$source_path_used" = "yes" ]; then
echo "VPATH=$source_path" >> $config_mak
fi
776
echo "TARGET_DIRS=$target_list" >> $config_mak
777
778
779
if [ "$build_docs" = "yes" ] ; then
echo "BUILD_DOCS=yes" >> $config_mak
fi
780
781
# XXX: suppress that
782
if [ "$bsd" = "yes" ] ; then
783
784
echo "#define O_LARGEFILE 0" >> $config_h
echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
785
786
787
echo "#define _BSD 1" >> $config_h
fi
788
789
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
790
for target in $target_list; do
791
792
793
794
795
target_dir="$target"
config_mak=$target_dir/config.mak
config_h=$target_dir/config.h
target_cpu=`echo $target | cut -d '-' -f 1`
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
805
806
807
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
target_softmmu="yes"
fi
808
809
810
811
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
target_user_only="yes"
fi
812
ths
authored
18 years ago
813
814
815
816
817
818
819
820
821
822
target_linux_user="no"
if expr $target : '.*-linux-user' > /dev/null ; then
target_linux_user="yes"
fi
target_darwin_user="no"
if expr $target : '.*-darwin-user' > /dev/null ; then
target_darwin_user="yes"
fi
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
828
829
830
echo "Note that this will disable all output from the virtual graphics card."
exit 1;
fi
831
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
832
833
mkdir -p $target_dir
834
mkdir -p $target_dir/fpu
ths
authored
18 years ago
835
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
836
837
mkdir -p $target_dir/nwfpe
fi
838
839
840
if test "$target_user_only" = "no" ; then
mkdir -p $target_dir/slirp
fi
841
842
843
844
845
846
847
#
# don't use ln -sf as not all "ln -sf" over write the file/link
#
rm -f $target_dir/Makefile
ln -s $source_path/Makefile.target $target_dir/Makefile
848
849
850
851
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
852
853
854
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
855
856
bflt="no"
857
858
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
859
860
861
862
863
if test "$target_cpu" = "i386" ; then
echo "TARGET_ARCH=i386" >> $config_mak
echo "#define TARGET_ARCH \"i386\"" >> $config_h
echo "#define TARGET_I386 1" >> $config_h
864
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
865
866
echo "#define USE_KQEMU 1" >> $config_h
fi
867
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
868
869
870
echo "TARGET_ARCH=arm" >> $config_mak
echo "#define TARGET_ARCH \"arm\"" >> $config_h
echo "#define TARGET_ARM 1" >> $config_h
871
bflt="yes"
872
873
874
875
elif test "$target_cpu" = "sparc" ; then
echo "TARGET_ARCH=sparc" >> $config_mak
echo "#define TARGET_ARCH \"sparc\"" >> $config_h
echo "#define TARGET_SPARC 1" >> $config_h
876
877
878
879
880
elif test "$target_cpu" = "sparc64" ; then
echo "TARGET_ARCH=sparc64" >> $config_mak
echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
echo "#define TARGET_SPARC 1" >> $config_h
echo "#define TARGET_SPARC64 1" >> $config_h
881
882
883
884
elif test "$target_cpu" = "ppc" ; then
echo "TARGET_ARCH=ppc" >> $config_mak
echo "#define TARGET_ARCH \"ppc\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
885
886
887
888
889
elif test "$target_cpu" = "ppc64" ; then
echo "TARGET_ARCH=ppc64" >> $config_mak
echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
echo "#define TARGET_PPC64 1" >> $config_h
890
891
892
893
894
elif test "$target_cpu" = "x86_64" ; then
echo "TARGET_ARCH=x86_64" >> $config_mak
echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
echo "#define TARGET_I386 1" >> $config_h
echo "#define TARGET_X86_64 1" >> $config_h
895
896
897
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
echo "#define USE_KQEMU 1" >> $config_h
fi
898
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
899
900
901
echo "TARGET_ARCH=mips" >> $config_mak
echo "#define TARGET_ARCH \"mips\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
902
903
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
904
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
905
906
907
echo "TARGET_ARCH=sh4" >> $config_mak
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
echo "#define TARGET_SH4 1" >> $config_h
908
bflt="yes"
909
910
911
912
913
elif test "$target_cpu" = "m68k" ; then
echo "TARGET_ARCH=m68k" >> $config_mak
echo "#define TARGET_ARCH \"m68k\"" >> $config_h
echo "#define TARGET_M68K 1" >> $config_h
bflt="yes"
914
915
916
917
918
else
echo "Unsupported target CPU"
exit 1
fi
if test "$target_bigendian" = "yes" ; then
919
920
echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
921
fi
922
923
924
if test "$target_softmmu" = "yes" ; then
echo "CONFIG_SOFTMMU=yes" >> $config_mak
echo "#define CONFIG_SOFTMMU 1" >> $config_h
925
fi
926
927
928
929
if test "$target_user_only" = "yes" ; then
echo "CONFIG_USER_ONLY=yes" >> $config_mak
echo "#define CONFIG_USER_ONLY 1" >> $config_h
fi
ths
authored
18 years ago
930
931
932
933
934
935
936
937
if test "$target_linux_user" = "yes" ; then
echo "CONFIG_LINUX_USER=yes" >> $config_mak
echo "#define CONFIG_LINUX_USER 1" >> $config_h
fi
if test "$target_darwin_user" = "yes" ; then
echo "CONFIG_DARWIN_USER=yes" >> $config_mak
echo "#define CONFIG_DARWIN_USER 1" >> $config_h
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
941
942
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
943
944
945
946
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
echo "TARGET_HAS_BFLT=yes" >> $config_mak
echo "#define TARGET_HAS_BFLT 1" >> $config_h
fi
947
948
949
950
# sdl defines
if test "$target_user_only" = "no"; then
if test "$target_softmmu" = "no" -o "$static" = "yes"; then
951
sdl1=$sdl_static
952
else
953
954
955
956
957
958
959
960
sdl1=$sdl
fi
if test "$sdl1" = "yes" ; then
echo "#define CONFIG_SDL 1" >> $config_h
echo "CONFIG_SDL=yes" >> $config_mak
if test "$target_softmmu" = "no" -o "$static" = "yes"; then
echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
else
961
962
echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
fi
963
if [ "${aa}" = "yes" ] ; then
964
965
966
echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
else
echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
967
fi
968
969
970
fi
fi
971
972
973
974
975
if test "$cocoa" = "yes" ; then
echo "#define CONFIG_COCOA 1" >> $config_h
echo "CONFIG_COCOA=yes" >> $config_mak
fi
976
done # for target in $targets
977
978
979
980
981
982
983
984
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
DIRS="tests"
FILES="Makefile tests/Makefile"
for dir in $DIRS ; do
mkdir -p $dir
done
985
# remove the link and recreate it, as not all "ln -sf" overwrite the link
986
for f in $FILES ; do
987
988
rm -f $f
ln -s $source_path/$f $f
989
990
991
done
fi
992
rm -f $TMPO $TMPC $TMPE $TMPS