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
gcc3_search = "yes"
26
gcc3_list = "gcc-3.4 gcc34 gcc-3.3.6 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"
;;
ths
authored
18 years ago
53
54
55
mips64)
cpu = "mips64"
;;
ths
authored
18 years ago
56
s390* )
57
58
cpu = "s390"
;;
59
sparc|sun4[cdmuv])
60
61
62
63
64
cpu = "sparc"
;;
sparc64)
cpu = "sparc64"
;;
65
66
67
ia64)
cpu = "ia64"
;;
68
69
70
m68k)
cpu = "m68k"
;;
71
x86_64|amd64)
72
cpu = "x86_64"
73
;;
74
75
76
77
78
79
* )
cpu = "unknown"
;;
esac
gprof = "no"
bigendian = "no"
80
81
82
mingw32 = "no"
EXESUF = ""
gdbstub = "yes"
83
slirp = "yes"
84
85
adlib = "no"
oss = "no"
86
87
88
dsound = "no"
coreaudio = "no"
alsa = "no"
89
90
91
fmod = "no"
fmod_lib = ""
fmod_inc = ""
92
bsd = "no"
93
linux = "no"
94
kqemu = "no"
95
profiler = "no"
96
cocoa = "no"
97
check_gfx = "yes"
98
check_gcc = "yes"
99
softmmu = "yes"
ths
authored
18 years ago
100
101
linux_user = "no"
darwin_user = "no"
102
build_docs = "no"
103
uname_release = ""
104
105
106
107
# OS specific
targetos = ` uname -s`
case $targetos in
108
109
CYGWIN* )
mingw32 = "yes"
ths
authored
18 years ago
110
OS_CFLAGS = "-mno-cygwin"
ths
authored
18 years ago
111
112
113
114
VL_OS_LDFLAGS = "-mno-cygwin"
if [ " $cpu " = "i386" ] ; then
kqemu = "yes"
fi
115
;;
116
117
MINGW32* )
mingw32 = "yes"
ths
authored
18 years ago
118
119
120
if [ " $cpu " = "i386" ] ; then
kqemu = "yes"
fi
121
;;
ths
authored
18 years ago
122
123
124
125
126
127
GNU/kFreeBSD)
oss = "yes"
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
kqemu = "yes"
fi
;;
128
129
FreeBSD)
bsd = "yes"
130
oss = "yes"
131
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
132
133
kqemu = "yes"
fi
134
135
136
;;
NetBSD)
bsd = "yes"
137
oss = "yes"
138
139
140
;;
OpenBSD)
bsd = "yes"
141
oss = "yes"
142
;;
143
144
145
Darwin)
bsd = "yes"
darwin = "yes"
ths
authored
18 years ago
146
darwin_user = "yes"
ths
authored
18 years ago
147
148
cocoa = "yes"
coreaudio = "yes"
ths
authored
18 years ago
149
OS_CFLAGS = "-mdynamic-no-pic"
150
;;
151
SunOS)
ths
authored
18 years ago
152
153
154
solaris = "yes"
make = "gmake"
install = "ginstall"
ths
authored
18 years ago
155
needs_libsunmath = "no"
ths
authored
18 years ago
156
157
solarisrev = ` uname -r | cut -f2 -d.`
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
ths
authored
18 years ago
158
159
160
161
162
163
164
165
166
167
168
169
if test " $solarisrev " -le 9 ; then
if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
needs_libsunmath = "yes"
else
echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
echo "Studio 11 can be downloaded from www.sun.com."
exit 1
fi
fi
if test " $solarisrev " -ge 9 ; then
ths
authored
18 years ago
170
171
kqemu = "yes"
fi
ths
authored
18 years ago
172
fi
ths
authored
18 years ago
173
174
175
if test -f /usr/include/sys/soundcard.h ; then
oss = yes
fi
ths
authored
18 years ago
176
;;
177
* )
178
oss = "yes"
179
linux = "yes"
ths
authored
18 years ago
180
linux_user = "yes"
181
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
182
183
kqemu = "yes"
fi
184
;;
185
186
esac
187
if [ " $bsd " = "yes" ] ; then
188
if [ " $darwin " != "yes" ] ; then
189
190
make = "gmake"
fi
191
192
fi
193
# find source path
194
195
source_path = ` dirname " $0 " `
if [ -z " $source_path " ] ; then
196
source_path = ` pwd `
197
198
199
200
else
source_path = ` cd " $source_path " ; pwd `
fi
if test " $source_path " = ` pwd ` ; then
201
source_path_used = "no"
202
203
else
source_path_used = "yes"
204
205
206
fi
for opt do
207
optarg = ` expr "x $opt " : 'x[^=]*=\(.*\)' `
208
case " $opt " in
209
210
--help|-h) show_help = yes
;;
211
--prefix= * ) prefix = " $optarg "
212
;;
213
--interp-prefix= * ) interp_prefix = " $optarg "
214
;;
215
--source-path= * ) source_path = " $optarg "
216
source_path_used = "yes"
217
;;
218
--cross-prefix= * ) cross_prefix = " $optarg "
219
;;
220
--cc= * ) cc = " $optarg "
221
gcc3_search = "no"
222
;;
223
--host-cc= * ) host_cc = " $optarg "
224
;;
225
--make= * ) make = " $optarg "
226
;;
227
228
--install= * ) install = " $optarg "
;;
229
--extra-cflags= * ) CFLAGS = " $optarg "
230
;;
231
--extra-ldflags= * ) LDFLAGS = " $optarg "
232
;;
233
--cpu= * ) cpu = " $optarg "
234
;;
235
--target-list= * ) target_list = " $optarg "
236
;;
237
238
--enable-gprof) gprof = "yes"
;;
239
240
--static) static = "yes"
;;
241
242
--disable-sdl) sdl = "no"
;;
243
244
245
246
247
248
--enable-coreaudio) coreaudio = "yes"
;;
--enable-alsa) alsa = "yes"
;;
--enable-dsound) dsound = "yes"
;;
249
250
--enable-fmod) fmod = "yes"
;;
251
--fmod-lib= * ) fmod_lib = " $optarg "
252
;;
253
--fmod-inc= * ) fmod_inc = " $optarg "
254
;;
255
--enable-mingw32) mingw32 = "yes" ; cross_prefix = "i386-mingw32-" ; linux_user = "no"
256
;;
257
--disable-slirp) slirp = "no"
258
;;
259
--enable-adlib) adlib = "yes"
260
;;
261
--disable-kqemu) kqemu = "no"
262
;;
263
264
--enable-profiler) profiler = "yes"
;;
265
266
--enable-cocoa) cocoa = "yes" ; coreaudio = "yes" ; sdl = "no"
;;
267
268
--disable-gfx-check) check_gfx = "no"
;;
269
270
--disable-gcc-check) check_gcc = "no"
;;
271
--disable-system) softmmu = "no"
272
;;
273
--enable-system) softmmu = "yes"
274
;;
ths
authored
18 years ago
275
--disable-linux-user) linux_user = "no"
276
;;
ths
authored
18 years ago
277
278
279
280
281
--enable-linux-user) linux_user = "yes"
;;
--disable-darwin-user) darwin_user = "no"
;;
--enable-darwin-user) darwin_user = "yes"
282
;;
283
284
--enable-uname-release= * ) uname_release = " $optarg "
;;
285
286
287
288
289
290
291
292
293
294
295
296
--sparc_cpu= * )
sparc_cpu = " $optarg "
case $sparc_cpu in
v7|v8) SP_CFLAGS = "-m32 -mcpu= ${ sparc_cpu } -D__sparc_ ${ sparc_cpu } __" ; SP_LDFLAGS = "-m32"
target_cpu = "sparc" ; cpu = "sparc" ;;
v8plus|v8plusa) SP_CFLAGS = "-m32 -mcpu=ultrasparc -D__sparc_ ${ sparc_cpu } __" ; SP_LDFLAGS = "-m32"
target_cpu = "sparc" ; cpu = "sparc" ;;
v9) SP_CFLAGS = "-m64 -mcpu=ultrasparc -D__sparc_ ${ sparc_cpu } __" ; SP_LDFLAGS = "-m64"
target_cpu = "sparc64" ; cpu = "sparc64" ;;
* ) echo "undefined SPARC architecture. Exiting" ;exit 1;;
esac
;;
297
298
299
esac
done
ths
authored
18 years ago
300
301
302
303
304
305
if [ " $bsd " = "yes" -o " $darwin " = "yes" -o " $mingw32 " = "yes" ] ; then
AIOLIBS =
else
AIOLIBS = "-lrt"
fi
ths
authored
18 years ago
306
307
308
309
# default flags for all hosts
CFLAGS = " $CFLAGS -Wall -O2 -g -fno-strict-aliasing"
LDFLAGS = " $LDFLAGS -g"
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
#
# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
#
case $cpu in
sparc) if test -z " $sparc_cpu " ; then
ARCH_CFLAGS = "-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
ARCH_LDFLAGS = "-m32"
else
ARCH_CFLAGS = " ${ SP_CFLAGS } "
ARCH_LDFLAGS = " ${ SP_LDFLAGS } "
fi
;;
sparc64) if test -z " $sparc_cpu " ; then
ARCH_CFLAGS = "-m64 -mcpu=ultrasparc -D__sparc_v9__"
ARCH_LDFLAGS = "-m64"
else
ARCH_CFLAGS = " ${ SP_CFLAGS } "
ARCH_LDFLAGS = " ${ SP_LDFLAGS } "
fi
;;
esac
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
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]"
356
echo " --install=INSTALL use specified install [$install]"
357
358
359
360
361
362
363
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"
ths
authored
18 years ago
364
echo " --enable-dsound enable DirectSound audio driver"
365
366
echo " --enable-system enable all system emulation targets"
echo " --disable-system disable all system emulation targets"
ths
authored
18 years ago
367
368
369
370
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"
371
372
echo " --fmod-lib path to FMOD library"
echo " --fmod-inc path to FMOD includes"
373
echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
374
echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
375
echo ""
ths
authored
18 years ago
376
echo "NOTE: The object files are built at the place where configure is launched"
377
378
379
exit 1
fi
380
381
382
383
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
384
385
386
387
388
# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF
ths
authored
18 years ago
389
if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
390
391
392
393
: C compiler works ok
else
echo "ERROR: \"$cc\" either does not exist or does not work"
exit 1
394
395
fi
396
if test "$mingw32" = "yes" ; then
397
linux="no"
398
EXESUF=".exe"
399
oss="no"
400
401
fi
402
403
404
405
406
407
408
409
# 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
ths
authored
18 years ago
410
if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
411
412
413
414
415
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
416
if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
417
echo "Found \"$compat_cc\""
418
cc="$cross_prefix$compat_cc"
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
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
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
#
# 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
477
478
if test -z "$target_list" ; then
# these targets are portable
479
if [ "$softmmu" = "yes" ] ; then
480
target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc64-softmmu ppcemb-softmmu m68k-softmmu"
481
fi
482
# the following are Linux specific
ths
authored
18 years ago
483
if [ "$linux_user" = "yes" ] ; then
484
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 alpha-linux-user $target_list"
ths
authored
18 years ago
485
486
487
488
fi
# the following are Darwin specific
if [ "$darwin_user" = "yes" ] ; then
target_list="i386-darwin-user ppc-darwin-user $target_list"
489
fi
490
else
491
target_list=`echo "$target_list" | sed -e 's/,/ /g'`
492
fi
493
494
495
496
if test -z "$target_list" ; then
echo "No targets enabled"
exit 1
fi
497
498
499
500
501
502
503
504
if test -z "$cross_prefix" ; then
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
505
506
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
507
508
509
}
EOF
ths
authored
18 years ago
510
if $cc -o $TMPE $TMPC 2> /dev/null ; then
511
512
513
514
515
516
517
518
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
else
# if cross compiling, cannot launch a program, so make a static guess
ths
authored
18 years ago
519
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
520
521
522
523
524
bigendian="yes"
fi
fi
525
526
527
528
529
530
# host long bits test
hostlongbits="32"
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
hostlongbits="64"
fi
531
# check gcc options support
532
533
534
535
536
cat > $TMPC <<EOF
int main(void) {
}
EOF
537
538
539
540
541
542
##########################################
# SDL probe
sdl_too_old=no
if test -z "$sdl" ; then
ths
authored
18 years ago
543
544
545
546
547
548
549
550
551
552
sdl_config="sdl-config"
sdl=no
sdl_static=no
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
553
554
555
556
557
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
ths
authored
18 years ago
558
559
560
561
562
563
564
565
566
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
_sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
if test "$cocoa" = "no" ; then
sdl=yes
fi
fi
567
ths
authored
18 years ago
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
# static link with sdl ?
if test "$sdl" = "yes" ; then
aa="no"
`$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
if [ "$aa" = "yes" ] ; then
sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
fi
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
sdl_static=yes
fi
fi # static link
fi # sdl compile test
fi # cross compilation
ths
authored
18 years ago
583
else
ths
authored
18 years ago
584
585
586
587
588
# Make sure to disable cocoa if sdl was set
if test "$sdl" = "yes" ; then
cocoa="no"
coreaudio="no"
fi
589
fi # -z $sdl
590
ths
authored
18 years ago
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
##########################################
# 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
610
# Check if tools are available to build documentation.
ths
authored
18 years ago
611
612
if [ -x "`which texi2html 2>/dev/null`" ] && \
[ -x "`which pod2man 2>/dev/null`" ]; then
613
614
615
build_docs="yes"
fi
616
if test "$mingw32" = "yes" ; then
617
618
619
620
621
622
623
if test -z "$prefix" ; then
prefix="/c/Program Files/Qemu"
fi
mansuffix=""
datasuffix=""
docsuffix=""
binsuffix=""
624
else
625
626
627
628
629
630
631
if test -z "$prefix" ; then
prefix="/usr/local"
fi
mansuffix="/share/man"
datasuffix="/share/qemu"
docsuffix="/share/doc/qemu"
binsuffix="/bin"
632
fi
633
634
echo "Install prefix $prefix"
635
636
echo "BIOS directory $prefix$datasuffix"
echo "binary directory $prefix$binsuffix"
637
if test "$mingw32" = "no" ; then
638
echo "Manual directory $prefix$mansuffix"
639
echo "ELF interp prefix $interp_prefix"
640
fi
641
echo "Source path $source_path"
642
echo "C compiler $cc"
643
echo "Host C compiler $host_cc"
644
echo "make $make"
645
echo "install $install"
646
echo "host CPU $cpu"
647
echo "host big endian $bigendian"
648
echo "target list $target_list"
649
echo "gprof enabled $gprof"
650
echo "profiler $profiler"
651
echo "static build $static"
652
653
654
if test "$darwin" = "yes" ; then
echo "Cocoa support $cocoa"
fi
655
echo "SDL support $sdl"
656
657
658
if test "$sdl" != "no" ; then
echo "SDL static link $sdl_static"
fi
659
echo "mingw32 support $mingw32"
660
echo "Adlib support $adlib"
661
662
663
664
665
666
667
668
669
670
671
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
672
673
674
fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
else
fmod_support=""
675
fi
676
echo "FMOD support $fmod $fmod_support"
ths
authored
18 years ago
677
echo "OSS support $oss"
678
679
680
if test -n "$sparc_cpu"; then
echo "Target Sparc Arch $sparc_cpu"
fi
681
echo "kqemu support $kqemu"
682
echo "Documentation $build_docs"
683
684
[ ! -z "$uname_release" ] && \
echo "uname -r $uname_release"
685
686
if test $sdl_too_old = "yes"; then
687
echo "-> Your SDL version is too old - please upgrade to have SDL support"
688
fi
ths
authored
18 years ago
689
690
691
692
693
if [ -s /tmp/qemu-$$-sdl-config.log ]; then
echo "The error log from compiling the libSDL test is: "
cat /tmp/qemu-$$-sdl-config.log
fi
rm -f /tmp/qemu-$$-sdl-config.log
694
695
696
#if test "$sdl_static" = "no"; then
# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
697
698
config_mak="config-host.mak"
config_h="config-host.h"
699
700
#echo "Creating $config_mak and $config_h"
701
ths
authored
18 years ago
702
703
test -f $config_h && mv $config_h ${config_h}~
704
echo "# Automatically generated by configure - do not modify" > $config_mak
705
echo "# Configured with: $0 $@" >> $config_mak
706
echo "/* Automatically generated by configure - do not modify */" > $config_h
707
708
echo "prefix=$prefix" >> $config_mak
709
710
711
echo "bindir=\${prefix}$binsuffix" >> $config_mak
echo "mandir=\${prefix}$mansuffix" >> $config_mak
echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths
authored
18 years ago
712
echo "docdir=\${prefix}$docsuffix" >> $config_mak
713
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
714
echo "MAKE=$make" >> $config_mak
715
echo "INSTALL=$install" >> $config_mak
716
717
718
719
echo "CC=$cc" >> $config_mak
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
720
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
721
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
ths
authored
18 years ago
722
echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak
723
724
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
725
726
echo "CFLAGS=$CFLAGS" >> $config_mak
echo "LDFLAGS=$LDFLAGS" >> $config_mak
727
echo "EXESUF=$EXESUF" >> $config_mak
ths
authored
18 years ago
728
echo "AIOLIBS=$AIOLIBS" >> $config_mak
729
730
731
if test "$cpu" = "i386" ; then
echo "ARCH=i386" >> $config_mak
echo "#define HOST_I386 1" >> $config_h
732
733
734
elif test "$cpu" = "x86_64" ; then
echo "ARCH=x86_64" >> $config_mak
echo "#define HOST_X86_64 1" >> $config_h
735
736
737
elif test "$cpu" = "armv4b" ; then
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
738
elif test "$cpu" = "armv4l" ; then
739
740
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
741
elif test "$cpu" = "powerpc" ; then
742
743
echo "ARCH=ppc" >> $config_mak
echo "#define HOST_PPC 1" >> $config_h
744
elif test "$cpu" = "mips" ; then
745
746
echo "ARCH=mips" >> $config_mak
echo "#define HOST_MIPS 1" >> $config_h
ths
authored
18 years ago
747
748
749
elif test "$cpu" = "mips64" ; then
echo "ARCH=mips64" >> $config_mak
echo "#define HOST_MIPS64 1" >> $config_h
750
elif test "$cpu" = "s390" ; then
751
752
echo "ARCH=s390" >> $config_mak
echo "#define HOST_S390 1" >> $config_h
753
elif test "$cpu" = "alpha" ; then
754
755
echo "ARCH=alpha" >> $config_mak
echo "#define HOST_ALPHA 1" >> $config_h
756
elif test "$cpu" = "sparc" ; then
757
758
echo "ARCH=sparc" >> $config_mak
echo "#define HOST_SPARC 1" >> $config_h
759
elif test "$cpu" = "sparc64" ; then
760
761
echo "ARCH=sparc64" >> $config_mak
echo "#define HOST_SPARC64 1" >> $config_h
762
elif test "$cpu" = "ia64" ; then
763
764
echo "ARCH=ia64" >> $config_mak
echo "#define HOST_IA64 1" >> $config_h
765
elif test "$cpu" = "m68k" ; then
766
767
echo "ARCH=m68k" >> $config_mak
echo "#define HOST_M68K 1" >> $config_h
768
else
769
echo "Unsupported CPU = $cpu"
770
771
772
exit 1
fi
if test "$bigendian" = "yes" ; then
773
774
775
echo "WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
776
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
777
778
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=yes" >> $config_mak
779
echo "#define CONFIG_WIN32 1" >> $config_h
780
781
782
783
784
785
786
787
else
cat > $TMPC << EOF
#include <byteswap.h>
int main(void) { return bswap_32(0); }
EOF
if $cc -o $TMPE $TMPC 2> /dev/null ; then
echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
788
fi
789
790
791
792
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=yes" >> $config_mak
echo "#define CONFIG_DARWIN 1" >> $config_h
fi
793
794
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=yes" >> $config_mak
795
echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths
authored
18 years ago
796
797
798
799
if test "$needs_libsunmath" = "yes" ; then
echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
fi
800
fi
801
802
803
804
if test -n "$sparc_cpu"; then
echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
fi
805
806
807
808
if test "$gdbstub" = "yes" ; then
echo "CONFIG_GDBSTUB=yes" >> $config_mak
echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
809
810
811
812
813
814
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
815
echo "#define CONFIG_STATIC 1" >> $config_h
816
fi
817
818
819
if test $profiler = "yes" ; then
echo "#define CONFIG_PROFILER 1" >> $config_h
fi
820
821
822
823
if test "$slirp" = "yes" ; then
echo "CONFIG_SLIRP=yes" >> $config_mak
echo "#define CONFIG_SLIRP 1" >> $config_h
fi
824
825
826
827
828
829
830
831
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
832
833
834
835
836
837
838
839
840
841
842
843
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
844
845
846
847
848
849
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
850
851
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
852
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
853
854
echo "SRC_PATH=$source_path" >> $config_mak
855
856
857
if [ "$source_path_used" = "yes" ]; then
echo "VPATH=$source_path" >> $config_mak
fi
858
echo "TARGET_DIRS=$target_list" >> $config_mak
859
860
861
if [ "$build_docs" = "yes" ] ; then
echo "BUILD_DOCS=yes" >> $config_mak
fi
862
863
# XXX: suppress that
864
if [ "$bsd" = "yes" ] ; then
865
866
echo "#define O_LARGEFILE 0" >> $config_h
echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
867
868
869
echo "#define _BSD 1" >> $config_h
fi
870
871
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
ths
authored
18 years ago
872
873
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
874
for target in $target_list; do
875
876
877
878
879
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"
880
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
881
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
882
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
883
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
884
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
885
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
886
[ "$target_cpu" = "mips" ] && target_bigendian=yes
ths
authored
18 years ago
887
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
888
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
889
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
890
target_softmmu="no"
891
target_user_only="no"
ths
authored
18 years ago
892
893
target_linux_user="no"
target_darwin_user="no"
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
case "$target" in
${target_cpu}-softmmu)
target_softmmu="yes"
;;
${target_cpu}-linux-user)
target_user_only="yes"
target_linux_user="yes"
;;
${target_cpu}-darwin-user)
target_user_only="yes"
target_darwin_user="yes"
;;
*)
echo "ERROR: Target '$target' not recognised"
exit 1
;;
esac
ths
authored
18 years ago
911
912
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
913
-a "$sdl" = "no" -a "$cocoa" = "no" ; then
914
echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
915
echo "To build QEMU without graphical output configure with --disable-gfx-check"
916
917
918
919
echo "Note that this will disable all output from the virtual graphics card."
exit 1;
fi
920
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
921
ths
authored
18 years ago
922
923
test -f $config_h && mv $config_h ${config_h}~
924
mkdir -p $target_dir
925
mkdir -p $target_dir/fpu
ths
authored
18 years ago
926
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
927
928
mkdir -p $target_dir/nwfpe
fi
929
930
931
if test "$target_user_only" = "no" ; then
mkdir -p $target_dir/slirp
fi
932
933
934
935
936
937
938
#
# 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
939
940
941
942
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
943
944
945
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
946
947
bflt="no"
948
949
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
950
951
952
953
954
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
955
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
956
957
echo "#define USE_KQEMU 1" >> $config_h
fi
958
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
959
960
961
echo "TARGET_ARCH=arm" >> $config_mak
echo "#define TARGET_ARCH \"arm\"" >> $config_h
echo "#define TARGET_ARM 1" >> $config_h
962
bflt="yes"
963
964
965
966
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
967
968
969
970
971
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
972
973
974
975
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
976
977
978
979
980
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
981
982
983
984
985
elif test "$target_cpu" = "ppcemb" ; then
echo "TARGET_ARCH=ppcemb" >> $config_mak
echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
echo "#define TARGET_PPCEMB 1" >> $config_h
986
987
988
989
990
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
991
992
993
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
echo "#define USE_KQEMU 1" >> $config_h
fi
994
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
995
996
997
echo "TARGET_ARCH=mips" >> $config_mak
echo "#define TARGET_ARCH \"mips\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
998
999
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
ths
authored
18 years ago
1000
1001
1002
1003
1004
1005
1006
elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then
echo "TARGET_ARCH=mips64" >> $config_mak
echo "#define TARGET_ARCH \"mips64\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
echo "#define TARGET_MIPS64 1" >> $config_h
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1007
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
1008
1009
1010
echo "TARGET_ARCH=sh4" >> $config_mak
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
echo "#define TARGET_SH4 1" >> $config_h
1011
bflt="yes"
1012
1013
1014
1015
1016
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"
1017
1018
1019
1020
elif test "$target_cpu" = "alpha" ; then
echo "TARGET_ARCH=alpha" >> $config_mak
echo "#define TARGET_ARCH \"alpha\"" >> $config_h
echo "#define TARGET_ALPHA 1" >> $config_h
1021
1022
1023
1024
1025
else
echo "Unsupported target CPU"
exit 1
fi
if test "$target_bigendian" = "yes" ; then
1026
1027
echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1028
fi
1029
1030
1031
if test "$target_softmmu" = "yes" ; then
echo "CONFIG_SOFTMMU=yes" >> $config_mak
echo "#define CONFIG_SOFTMMU 1" >> $config_h
1032
fi
1033
1034
1035
1036
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
1037
1038
1039
1040
1041
1042
1043
1044
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
1045
1046
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
1047
1048
1049
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
1050
1051
1052
1053
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
1054
1055
1056
1057
# sdl defines
if test "$target_user_only" = "no"; then
if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1058
sdl1=$sdl_static
1059
else
1060
1061
1062
1063
1064
1065
1066
1067
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
1068
1069
echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
fi
1070
if [ "${aa}" = "yes" ] ; then
1071
1072
1073
echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
else
echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1074
fi
1075
1076
1077
fi
fi
1078
1079
1080
1081
1082
if test "$cocoa" = "yes" ; then
echo "#define CONFIG_COCOA 1" >> $config_h
echo "CONFIG_COCOA=yes" >> $config_mak
fi
ths
authored
18 years ago
1083
1084
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1085
done # for target in $targets
1086
1087
1088
1089
1090
1091
1092
1093
# 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
1094
# remove the link and recreate it, as not all "ln -sf" overwrite the link
1095
for f in $FILES ; do
1096
1097
rm -f $f
ln -s $source_path/$f $f
1098
1099
1100
done
fi
1101
rm -f $TMPO $TMPC $TMPE $TMPS