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"
malc
authored
16 years ago
18
TMPI = " ${ TMPDIR1 } /qemu-conf- ${ RANDOM } - $$ - ${ RANDOM } .i"
malc
authored
16 years ago
19
TMPSDLLOG = " ${ TMPDIR1 } /qemu-conf-sdl- $$ - ${ RANDOM } .log"
20
malc
authored
16 years ago
21
trap "rm -f $TMPC $TMPO $TMPE $TMPS $TMPI $TMPSDLLOG ; exit" 0 2 3 15
malc
authored
16 years ago
22
23
# default parameters
24
prefix = ""
25
interp_prefix = "/usr/gnemul/qemu-%M"
26
static = "no"
27
28
cross_prefix = ""
cc = "gcc"
malc
authored
17 years ago
29
30
audio_drv_list = ""
audio_card_list = ""
31
32
33
host_cc = "gcc"
ar = "ar"
make = "make"
34
install = "install"
35
strip = "strip"
malc
authored
16 years ago
36
cpu = ` test $( uname -s) = AIX && uname -p || uname -m`
37
target_list = ""
38
39
case " $cpu " in
i386|i486|i586|i686|i86pc|BePC)
40
cpu = "i386"
41
;;
42
43
44
45
46
47
x86_64|amd64)
cpu = "x86_64"
;;
alpha)
cpu = "alpha"
;;
48
armv* b)
49
50
cpu = "armv4b"
;;
51
armv* l)
52
53
cpu = "armv4l"
;;
54
55
cris)
cpu = "cris"
56
;;
57
58
59
parisc|parisc64)
cpu = "hppa"
;;
60
61
62
63
64
ia64)
cpu = "ia64"
;;
m68k)
cpu = "m68k"
65
66
67
68
;;
mips)
cpu = "mips"
;;
ths
authored
18 years ago
69
70
71
mips64)
cpu = "mips64"
;;
malc
authored
16 years ago
72
"Power Macintosh" | ppc|ppc64|powerpc)
73
cpu = "powerpc"
ths
authored
17 years ago
74
;;
ths
authored
18 years ago
75
s390* )
76
77
cpu = "s390"
;;
78
sparc|sun4[cdmuv])
79
80
81
82
83
cpu = "sparc"
;;
sparc64)
cpu = "sparc64"
;;
84
85
86
87
88
* )
cpu = "unknown"
;;
esac
gprof = "no"
89
sparse = "no"
90
bigendian = "no"
91
92
93
mingw32 = "no"
EXESUF = ""
gdbstub = "yes"
94
slirp = "yes"
95
vde = "yes"
96
97
fmod_lib = ""
fmod_inc = ""
98
oss_lib = ""
ths
authored
18 years ago
99
vnc_tls = "yes"
100
bsd = "no"
101
linux = "no"
102
solaris = "no"
103
kqemu = "no"
104
profiler = "no"
105
cocoa = "no"
106
check_gfx = "yes"
107
softmmu = "yes"
ths
authored
18 years ago
108
109
linux_user = "no"
darwin_user = "no"
110
bsd_user = "no"
111
build_docs = "no"
112
uname_release = ""
113
curses = "yes"
114
aio = "yes"
115
nptl = "yes"
malc
authored
17 years ago
116
mixemu = "no"
117
bluez = "yes"
118
kvm = "yes"
119
kerneldir = ""
malc
authored
16 years ago
120
aix = "no"
ths
authored
16 years ago
121
blobs = "yes"
122
123
124
125
# OS specific
targetos = ` uname -s`
case $targetos in
126
127
CYGWIN* )
mingw32 = "yes"
ths
authored
18 years ago
128
OS_CFLAGS = "-mno-cygwin"
ths
authored
18 years ago
129
130
131
if [ " $cpu " = "i386" ] ; then
kqemu = "yes"
fi
malc
authored
17 years ago
132
audio_possible_drivers = "sdl"
133
;;
134
135
MINGW32* )
mingw32 = "yes"
ths
authored
18 years ago
136
137
138
if [ " $cpu " = "i386" ] ; then
kqemu = "yes"
fi
malc
authored
17 years ago
139
audio_possible_drivers = "dsound sdl fmod"
140
;;
ths
authored
18 years ago
141
GNU/kFreeBSD)
malc
authored
17 years ago
142
audio_drv_list = "oss"
143
audio_possible_drivers = "oss sdl esd pa"
ths
authored
18 years ago
144
145
146
147
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
kqemu = "yes"
fi
;;
148
149
FreeBSD)
bsd = "yes"
malc
authored
17 years ago
150
audio_drv_list = "oss"
151
audio_possible_drivers = "oss sdl esd pa"
152
aio_lib = "-lpthread"
153
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
154
155
kqemu = "yes"
fi
156
157
158
;;
NetBSD)
bsd = "yes"
malc
authored
17 years ago
159
audio_drv_list = "oss"
malc
authored
17 years ago
160
audio_possible_drivers = "oss sdl esd"
161
162
oss_lib = "-lossaudio"
aio_lib = "-lrt -lpthread"
163
164
165
;;
OpenBSD)
bsd = "yes"
166
openbsd = "yes"
malc
authored
17 years ago
167
audio_drv_list = "oss"
malc
authored
17 years ago
168
audio_possible_drivers = "oss sdl esd"
169
oss_lib = "-lossaudio"
170
aio_lib = "-lpthread"
171
;;
172
173
174
Darwin)
bsd = "yes"
darwin = "yes"
ths
authored
18 years ago
175
darwin_user = "yes"
ths
authored
18 years ago
176
cocoa = "yes"
malc
authored
17 years ago
177
audio_drv_list = "coreaudio"
malc
authored
17 years ago
178
audio_possible_drivers = "coreaudio sdl fmod"
ths
authored
18 years ago
179
OS_CFLAGS = "-mdynamic-no-pic"
ths
authored
17 years ago
180
OS_LDFLAGS = "-framework CoreFoundation -framework IOKit"
181
aio_lib = "-lpthread"
182
;;
183
SunOS)
ths
authored
18 years ago
184
185
186
solaris = "yes"
make = "gmake"
install = "ginstall"
ths
authored
18 years ago
187
needs_libsunmath = "no"
ths
authored
18 years ago
188
solarisrev = ` uname -r | cut -f2 -d.`
ths
authored
18 years ago
189
190
191
192
193
194
# have to select again, because `uname -m` returns i86pc
# even on an x86_64 box.
solariscpu = ` isainfo -k`
if test " ${ solariscpu } " = "amd64" ; then
cpu = "x86_64"
fi
ths
authored
18 years ago
195
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
ths
authored
18 years ago
196
197
198
199
200
201
202
203
204
205
206
207
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
208
209
kqemu = "yes"
fi
ths
authored
18 years ago
210
fi
ths
authored
18 years ago
211
if test -f /usr/include/sys/soundcard.h ; then
malc
authored
17 years ago
212
audio_drv_list = "oss"
ths
authored
18 years ago
213
fi
malc
authored
17 years ago
214
audio_possible_drivers = "oss sdl"
ths
authored
18 years ago
215
;;
malc
authored
16 years ago
216
217
218
219
AIX)
aix = "yes"
make = "gmake"
;;
220
* )
malc
authored
17 years ago
221
audio_drv_list = "oss"
malc
authored
17 years ago
222
audio_possible_drivers = "oss alsa sdl esd pa"
223
linux = "yes"
ths
authored
18 years ago
224
linux_user = "yes"
225
usb = "linux"
226
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
227
kqemu = "yes"
malc
authored
17 years ago
228
audio_possible_drivers = " $audio_possible_drivers fmod"
229
fi
230
;;
231
232
esac
233
if [ " $bsd " = "yes" ] ; then
234
if [ " $darwin " != "yes" ] ; then
235
make = "gmake"
236
usb = "bsd"
237
fi
238
bsd_user = "yes"
239
240
fi
241
# find source path
242
source_path = ` dirname " $0 " `
243
244
source_path_used = "no"
workdir = ` pwd `
245
if [ -z " $source_path " ] ; then
246
source_path = $workdir
247
248
else
source_path = ` cd " $source_path " ; pwd `
249
fi
250
[ -f " $workdir /vl.c" ] || source_path_used = "yes"
251
252
werror = "no"
253
254
255
256
# generate compile errors on warnings for development builds
#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
#werror="yes";
#fi
257
258
for opt do
259
optarg = ` expr "x $opt " : 'x[^=]*=\(.*\)' `
260
case " $opt " in
261
262
--help|-h) show_help = yes
;;
263
--prefix= * ) prefix = " $optarg "
264
;;
265
--interp-prefix= * ) interp_prefix = " $optarg "
266
;;
267
--source-path= * ) source_path = " $optarg "
268
source_path_used = "yes"
269
;;
270
--cross-prefix= * ) cross_prefix = " $optarg "
271
;;
272
--cc= * ) cc = " $optarg "
273
;;
274
--host-cc= * ) host_cc = " $optarg "
275
;;
276
--make= * ) make = " $optarg "
277
;;
278
279
--install= * ) install = " $optarg "
;;
280
--extra-cflags= * ) CFLAGS = " $optarg "
281
;;
282
--extra-ldflags= * ) LDFLAGS = " $optarg "
283
;;
284
--cpu= * ) cpu = " $optarg "
285
;;
286
--target-list= * ) target_list = " $optarg "
287
;;
288
289
--enable-gprof) gprof = "yes"
;;
290
291
--static) static = "yes"
;;
292
293
--disable-sdl) sdl = "no"
;;
malc
authored
17 years ago
294
--fmod-lib= * ) fmod_lib = " $optarg "
295
;;
malc
authored
17 years ago
296
297
--fmod-inc= * ) fmod_inc = " $optarg "
;;
298
299
--oss-lib= * ) oss_lib = " $optarg "
;;
malc
authored
17 years ago
300
--audio-card-list= * ) audio_card_list = ` echo " $optarg " | sed -e 's/,/ /g' `
301
;;
malc
authored
17 years ago
302
--audio-drv-list= * ) audio_drv_list = " $optarg "
303
;;
304
305
306
307
--enable-sparse) sparse = "yes"
;;
--disable-sparse) sparse = "no"
;;
ths
authored
18 years ago
308
309
--disable-vnc-tls) vnc_tls = "no"
;;
310
--disable-slirp) slirp = "no"
311
;;
312
--disable-vde) vde = "no"
ths
authored
17 years ago
313
;;
314
--disable-kqemu) kqemu = "no"
315
;;
316
317
--disable-brlapi) brlapi = "no"
;;
318
319
--disable-bluez) bluez = "no"
;;
320
321
--disable-kvm) kvm = "no"
;;
322
323
--enable-profiler) profiler = "yes"
;;
malc
authored
17 years ago
324
325
326
327
--enable-cocoa)
cocoa = "yes" ;
sdl = "no" ;
audio_drv_list = "coreaudio ` echo $audio_drv_list | sed s,coreaudio,,g` "
328
;;
329
330
--disable-gfx-check) check_gfx = "no"
;;
331
--disable-system) softmmu = "no"
332
;;
333
--enable-system) softmmu = "yes"
334
;;
ths
authored
18 years ago
335
--disable-linux-user) linux_user = "no"
336
;;
ths
authored
18 years ago
337
338
339
340
341
--enable-linux-user) linux_user = "yes"
;;
--disable-darwin-user) darwin_user = "no"
;;
--enable-darwin-user) darwin_user = "yes"
342
;;
343
344
345
346
--disable-bsd-user) bsd_user = "no"
;;
--enable-bsd-user) bsd_user = "yes"
;;
347
348
--enable-uname-release= * ) uname_release = " $optarg "
;;
349
350
351
352
353
354
355
356
357
358
359
360
--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
;;
361
362
363
364
--enable-werror) werror = "yes"
;;
--disable-werror) werror = "no"
;;
365
366
--disable-curses) curses = "no"
;;
367
368
--disable-nptl) nptl = "no"
;;
malc
authored
17 years ago
369
370
--enable-mixemu) mixemu = "yes"
;;
371
372
--disable-aio) aio = "no"
;;
ths
authored
16 years ago
373
374
--disable-blobs) blobs = "no"
;;
375
376
--kerneldir= * ) kerneldir = " $optarg "
;;
377
378
* ) echo "ERROR: unknown option $opt " ; show_help = "yes"
;;
379
380
381
esac
done
ths
authored
18 years ago
382
# default flags for all hosts
383
CFLAGS = " $CFLAGS -O2 -g -fno-strict-aliasing"
384
CFLAGS = " $CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls"
ths
authored
18 years ago
385
LDFLAGS = " $LDFLAGS -g"
386
387
388
if test " $werror " = "yes" ; then
CFLAGS = " $CFLAGS -Werror"
fi
ths
authored
18 years ago
389
390
391
392
393
if test " $solaris " = "no" ; then
if ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
LDFLAGS = " $LDFLAGS -Wl,--warn-common"
fi
394
395
fi
396
397
398
399
#
# 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)
#
400
case " $cpu " in
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
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
;;
ths
authored
17 years ago
417
418
419
s390)
ARCH_CFLAGS = "-march=z900"
;;
420
421
422
423
424
425
426
427
i386)
ARCH_CFLAGS = "-m32"
ARCH_LDFLAGS = "-m32"
;;
x86_64)
ARCH_CFLAGS = "-m64"
ARCH_LDFLAGS = "-m64"
;;
428
429
esac
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
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]"
453
echo " --install=INSTALL use specified install [$install]"
454
echo " --static enable static build [$static]"
455
456
echo " --enable-sparse enable sparse checker"
echo " --disable-sparse disable sparse checker (default)"
457
echo " --disable-werror disable compilation abort on warning"
458
echo " --disable-sdl disable SDL"
459
echo " --enable-cocoa enable COCOA (Mac OS X only)"
malc
authored
17 years ago
460
461
462
463
echo " --audio-drv-list=LIST set audio drivers list:"
echo " Available drivers: $audio_possible_drivers"
echo " --audio-card-list=LIST set list of additional emulated audio cards"
echo " Available cards: ac97 adlib cs4231a gus"
malc
authored
17 years ago
464
echo " --enable-mixemu enable mixer emulation"
465
echo " --disable-brlapi disable BrlAPI"
ths
authored
18 years ago
466
echo " --disable-vnc-tls disable TLS encryption for VNC server"
467
echo " --disable-curses disable curses output"
468
echo " --disable-bluez disable bluez stack connectivity"
469
echo " --disable-kvm disable KVM acceleration support"
470
echo " --disable-nptl disable usermode NPTL support"
471
472
echo " --enable-system enable all system emulation targets"
echo " --disable-system disable all system emulation targets"
ths
authored
18 years ago
473
474
475
476
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"
477
478
echo " --enable-bsd-user enable all BSD usermode emulation targets"
echo " --disable-bsd-user disable all BSD usermode emulation targets"
479
480
echo " --fmod-lib path to FMOD library"
echo " --fmod-inc path to FMOD includes"
481
echo " --oss-lib path to OSS library"
482
echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
483
echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
484
echo " --disable-vde disable support for vde network"
485
echo " --disable-aio disable AIO support"
ths
authored
16 years ago
486
echo " --disable-blobs disable installing provided firmware blobs"
487
echo " --kerneldir=PATH look for kernel includes in PATH"
488
echo ""
ths
authored
18 years ago
489
echo "NOTE: The object files are built at the place where configure is launched"
490
491
492
exit 1
fi
493
494
495
496
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
497
498
499
500
501
# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF
502
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
503
504
505
506
: C compiler works ok
else
echo "ERROR: \"$cc\" either does not exist or does not work"
exit 1
507
508
fi
509
510
511
512
513
514
515
516
517
# check compiler to see if we're on mingw32
cat > $TMPC <<EOF
#include <windows.h>
#ifndef _WIN32
#error not windows
#endif
int main(void) {}
EOF
518
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null ; then
519
520
521
mingw32="yes"
fi
522
if test "$mingw32" = "yes" ; then
523
linux="no"
524
EXESUF=".exe"
525
oss="no"
526
linux_user="no"
527
bsd_user="no"
528
529
fi
530
if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
531
AIOLIBS=
532
elif [ "$bsd" = "yes" ]; then
533
AIOLIBS="$aio_lib"
534
535
536
else
# Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
AIOLIBS="-lrt -lpthread"
537
538
fi
539
540
541
542
if test ! -x "$(which cgcc 2>/dev/null)"; then
sparse="no"
fi
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
#
# Solaris specific configure tool chain decisions
#
if test "$solaris" = "yes" ; then
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
ths
authored
18 years ago
568
fi
569
570
571
572
if test -z "$target_list" ; then
# these targets are portable
573
if [ "$softmmu" = "yes" ] ; then
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
target_list="\
i386-softmmu \
x86_64-softmmu \
arm-softmmu \
cris-softmmu \
m68k-softmmu \
mips-softmmu \
mipsel-softmmu \
mips64-softmmu \
mips64el-softmmu \
ppc-softmmu \
ppcemb-softmmu \
ppc64-softmmu \
sh4-softmmu \
sh4eb-softmmu \
sparc-softmmu \
"
591
fi
592
# the following are Linux specific
ths
authored
18 years ago
593
if [ "$linux_user" = "yes" ] ; then
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
target_list="${target_list}\
i386-linux-user \
x86_64-linux-user \
alpha-linux-user \
arm-linux-user \
armeb-linux-user \
cris-linux-user \
m68k-linux-user \
mips-linux-user \
mipsel-linux-user \
ppc-linux-user \
ppc64-linux-user \
ppc64abi32-linux-user \
sh4-linux-user \
sh4eb-linux-user \
sparc-linux-user \
sparc64-linux-user \
sparc32plus-linux-user \
"
ths
authored
18 years ago
613
614
615
fi
# the following are Darwin specific
if [ "$darwin_user" = "yes" ] ; then
616
target_list="$target_list i386-darwin-user ppc-darwin-user"
617
fi
618
619
620
621
622
623
# the following are BSD specific
if [ "$bsd_user" = "yes" ] ; then
target_list="${target_list}\
sparc64-bsd-user \
"
fi
624
else
625
target_list=`echo "$target_list" | sed -e 's/,/ /g'`
626
fi
627
628
629
630
if test -z "$target_list" ; then
echo "No targets enabled"
exit 1
fi
631
632
633
634
635
636
637
638
if test -z "$cross_prefix" ; then
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
639
640
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
641
642
643
}
EOF
644
if $cc $ARCH_CFLAGS -o $TMPE $TMPC > /dev/null 2> /dev/null ; then
645
646
647
648
649
650
651
652
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
else
# if cross compiling, cannot launch a program, so make a static guess
653
if test "$cpu" = "armv4b" \
654
-o "$cpu" = "hppa" \
655
656
657
658
659
660
661
-o "$cpu" = "m68k" \
-o "$cpu" = "mips" \
-o "$cpu" = "mips64" \
-o "$cpu" = "powerpc" \
-o "$cpu" = "s390" \
-o "$cpu" = "sparc" \
-o "$cpu" = "sparc64"; then
662
663
664
665
666
bigendian="yes"
fi
fi
667
668
# host long bits test
hostlongbits="32"
669
670
671
672
if test "$cpu" = "x86_64" \
-o "$cpu" = "alpha" \
-o "$cpu" = "ia64" \
-o "$cpu" = "sparc64"; then
673
674
675
hostlongbits="64"
fi
malc
authored
17 years ago
676
677
# ppc specific hostlongbits selection
if test "$cpu" = "powerpc" ; then
malc
authored
16 years ago
678
679
if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
grep -q __powerpc64__ $TMPI && hostlongbits=64
malc
authored
17 years ago
680
681
else
echo hostlongbits test failed
malc
authored
17 years ago
682
exit 1
malc
authored
17 years ago
683
684
685
fi
fi
686
# check gcc options support
687
688
689
690
691
cat > $TMPC <<EOF
int main(void) {
}
EOF
692
693
694
# Check host NPTL support
cat > $TMPC <<EOF
#include <sched.h>
695
#include <linux/futex.h>
696
697
698
699
700
701
702
703
704
705
706
707
708
709
void foo()
{
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
#error bork
#endif
}
EOF
if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
:
else
nptl="no"
fi
710
##########################################
711
712
713
714
715
716
# zlib check
cat > $TMPC << EOF
#include <zlib.h>
int main(void) { zlibVersion(); return 0; }
EOF
717
if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $TMPC -lz 2> /dev/null ; then
718
719
720
721
722
723
724
725
726
727
:
else
echo
echo "Error: zlib check failed"
echo "Make sure to have the zlib libs and headers installed."
echo
exit 1
fi
##########################################
728
729
730
731
732
# SDL probe
sdl_too_old=no
if test -z "$sdl" ; then
ths
authored
18 years ago
733
734
735
736
sdl_config="sdl-config"
sdl=no
sdl_static=no
737
738
739
740
741
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
malc
authored
16 years ago
742
if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> $TMPSDLLOG ; then
743
744
745
746
747
748
_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
ths
authored
18 years ago
749
fi
750
fi
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
# 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 ${OS_CFLAGS} `$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
ths
authored
18 years ago
766
else
ths
authored
18 years ago
767
768
769
# Make sure to disable cocoa if sdl was set
if test "$sdl" = "yes" ; then
cocoa="no"
malc
authored
17 years ago
770
audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
ths
authored
18 years ago
771
fi
772
fi # -z $sdl
773
ths
authored
18 years ago
774
##########################################
ths
authored
18 years ago
775
776
# VNC TLS detection
if test "$vnc_tls" = "yes" ; then
777
778
779
780
781
782
783
784
785
786
787
788
cat > $TMPC <<EOF
#include <gnutls/gnutls.h>
int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
EOF
vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
$vnc_tls_libs 2> /dev/null ; then
:
else
vnc_tls="no"
fi
ths
authored
18 years ago
789
790
791
fi
##########################################
ths
authored
17 years ago
792
793
794
795
# vde libraries probe
if test "$vde" = "yes" ; then
cat > $TMPC << EOF
#include <libvdeplug.h>
796
797
798
799
800
801
int main(void)
{
struct vde_open_args a = {0, 0, 0};
vde_open("", "", &a);
return 0;
}
ths
authored
17 years ago
802
EOF
803
if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
ths
authored
17 years ago
804
805
:
else
806
vde="no"
ths
authored
17 years ago
807
808
809
810
fi
fi
##########################################
malc
authored
17 years ago
811
# Sound support libraries probe
ths
authored
18 years ago
812
malc
authored
17 years ago
813
814
815
816
817
818
819
820
821
822
audio_drv_probe()
{
drv=$1
hdr=$2
lib=$3
exp=$4
cfl=$5
cat > $TMPC << EOF
#include <$hdr>
int main(void) { $exp }
ths
authored
18 years ago
823
EOF
malc
authored
17 years ago
824
825
826
827
828
829
830
831
832
833
834
if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
:
else
echo
echo "Error: $drv check failed"
echo "Make sure to have the $drv libs and headers installed."
echo
exit 1
fi
}
malc
authored
17 years ago
835
audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
malc
authored
17 years ago
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
for drv in $audio_drv_list; do
case $drv in
alsa)
audio_drv_probe $drv alsa/asoundlib.h -lasound \
"snd_pcm_t **handle; return snd_pcm_close(*handle);"
;;
fmod)
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
audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
;;
esd)
audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
;;
malc
authored
17 years ago
857
858
859
860
861
862
pa)
audio_drv_probe $drv pulse/simple.h -lpulse-simple \
"pa_simple *s = NULL; pa_simple_free(s); return 0;"
;;
863
864
865
866
oss|sdl|core|wav|dsound)
# XXX: Probes for CoreAudio, DirectSound, SDL(?)
;;
malc
authored
17 years ago
867
*)
malc
authored
17 years ago
868
echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
malc
authored
17 years ago
869
870
871
872
873
874
875
echo
echo "Error: Unknown driver '$drv' selected"
echo "Possible drivers are: $audio_possible_drivers"
echo
exit 1
}
;;
malc
authored
17 years ago
876
877
esac
done
ths
authored
18 years ago
878
879
##########################################
880
881
882
883
884
885
886
887
# BrlAPI probe
if test -z "$brlapi" ; then
brlapi=no
cat > $TMPC << EOF
#include <brlapi.h>
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
EOF
888
if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi > /dev/null 2> /dev/null ; then
889
890
891
892
893
brlapi=yes
fi # brlapi compile test
fi # -z $brlapi
##########################################
894
895
896
897
898
899
900
901
# curses probe
if test "$curses" = "yes" ; then
curses=no
cat > $TMPC << EOF
#include <curses.h>
int main(void) { return curses_version(); }
EOF
902
if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses > /dev/null 2> /dev/null ; then
903
904
905
906
curses=yes
fi
fi # test "$curses"
907
##########################################
908
909
910
911
912
# bluez support probe
if test "$bluez" = "yes" ; then
`pkg-config bluez` || bluez="no"
fi
if test "$bluez" = "yes" ; then
913
914
915
916
cat > $TMPC << EOF
#include <bluetooth/bluetooth.h>
int main(void) { return bt_error(0); }
EOF
917
918
bluez_cflags=`pkg-config --cflags bluez`
bluez_libs=`pkg-config --libs bluez`
919
if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $bluez_cflags $TMPC \
920
921
922
923
924
$bluez_libs 2> /dev/null ; then
:
else
bluez="no"
fi
925
926
927
fi
##########################################
928
929
930
931
932
933
934
935
# kvm probe
if test "$kvm" = "yes" ; then
cat > $TMPC <<EOF
#include <linux/kvm.h>
#if !defined(KVM_API_VERSION) || \
KVM_API_VERSION < 12 || \
KVM_API_VERSION > 12 || \
!defined(KVM_CAP_USER_MEMORY) || \
936
937
!defined(KVM_CAP_SET_TSS_ADDR) || \
!defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS)
938
939
940
941
#error Invalid KVM version
#endif
int main(void) { return 0; }
EOF
942
943
944
945
946
if test "$kerneldir" != "" ; then
kvm_cflags=-I"$kerneldir"/include
else
kvm_cflags=""
fi
947
948
949
950
951
952
953
954
955
if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $kvm_cflags $TMPC \
2>/dev/null ; then
:
else
kvm="no"
fi
fi
##########################################
956
957
958
959
960
961
962
963
964
965
966
967
# AIO probe
if test "$aio" = "yes" ; then
aio=no
cat > $TMPC << EOF
#include <aio.h>
int main(void) { return aio_write(NULL); }
EOF
if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
aio=yes
fi
fi
968
969
970
971
972
973
974
975
976
977
978
##########################################
# iovec probe
cat > $TMPC <<EOF
#include <sys/uio.h>
int main(void) { struct iovec iov; return 0; }
EOF
iovec=no
if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
iovec=yes
fi
979
# Check if tools are available to build documentation.
ths
authored
18 years ago
980
981
if [ -x "`which texi2html 2>/dev/null`" ] && \
[ -x "`which pod2man 2>/dev/null`" ]; then
982
983
984
build_docs="yes"
fi
985
if test "$mingw32" = "yes" ; then
986
if test -z "$prefix" ; then
987
prefix="c:\\\\Program Files\\\\Qemu"
988
989
990
991
992
fi
mansuffix=""
datasuffix=""
docsuffix=""
binsuffix=""
993
else
994
995
996
997
998
999
1000
if test -z "$prefix" ; then
prefix="/usr/local"
fi
mansuffix="/share/man"
datasuffix="/share/qemu"
docsuffix="/share/doc/qemu"
binsuffix="/bin"
1001
fi
1002
1003
echo "Install prefix $prefix"
1004
1005
echo "BIOS directory $prefix$datasuffix"
echo "binary directory $prefix$binsuffix"
1006
if test "$mingw32" = "no" ; then
1007
echo "Manual directory $prefix$mansuffix"
1008
echo "ELF interp prefix $interp_prefix"
1009
fi
1010
echo "Source path $source_path"
1011
echo "C compiler $cc"
1012
echo "Host C compiler $host_cc"
1013
echo "ARCH_CFLAGS $ARCH_CFLAGS"
1014
echo "make $make"
1015
echo "install $install"
1016
echo "host CPU $cpu"
1017
echo "host big endian $bigendian"
1018
echo "target list $target_list"
1019
echo "gprof enabled $gprof"
1020
echo "sparse enabled $sparse"
1021
echo "profiler $profiler"
1022
echo "static build $static"
1023
echo "-Werror enabled $werror"
1024
1025
1026
if test "$darwin" = "yes" ; then
echo "Cocoa support $cocoa"
fi
1027
echo "SDL support $sdl"
1028
1029
1030
if test "$sdl" != "no" ; then
echo "SDL static link $sdl_static"
fi
1031
echo "curses support $curses"
1032
echo "mingw32 support $mingw32"
malc
authored
17 years ago
1033
1034
echo "Audio drivers $audio_drv_list"
echo "Extra audio cards $audio_card_list"
malc
authored
17 years ago
1035
echo "Mixer emulation $mixemu"
ths
authored
18 years ago
1036
1037
1038
1039
1040
echo "VNC TLS support $vnc_tls"
if test "$vnc_tls" = "yes" ; then
echo " TLS CFLAGS $vnc_tls_cflags"
echo " TLS LIBS $vnc_tls_libs"
fi
1041
1042
1043
if test -n "$sparc_cpu"; then
echo "Target Sparc Arch $sparc_cpu"
fi
1044
echo "kqemu support $kqemu"
1045
echo "brlapi support $brlapi"
1046
echo "Documentation $build_docs"
1047
1048
[ ! -z "$uname_release" ] && \
echo "uname -r $uname_release"
1049
echo "NPTL support $nptl"
ths
authored
17 years ago
1050
echo "vde support $vde"
1051
echo "AIO support $aio"
ths
authored
16 years ago
1052
echo "Install blobs $blobs"
1053
echo "KVM support $kvm"
1054
1055
if test $sdl_too_old = "yes"; then
1056
echo "-> Your SDL version is too old - please upgrade to have SDL support"
1057
fi
malc
authored
16 years ago
1058
if [ -s $TMPSDLLOG ]; then
ths
authored
18 years ago
1059
echo "The error log from compiling the libSDL test is: "
malc
authored
16 years ago
1060
cat $TMPSDLLOG
ths
authored
18 years ago
1061
fi
1062
1063
1064
#if test "$sdl_static" = "no"; then
# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
1065
1066
config_mak="config-host.mak"
config_h="config-host.h"
1067
1068
#echo "Creating $config_mak and $config_h"
1069
ths
authored
18 years ago
1070
1071
test -f $config_h && mv $config_h ${config_h}~
1072
echo "# Automatically generated by configure - do not modify" > $config_mak
malc
authored
16 years ago
1073
1074
1075
echo -n "# Configured with:" >> $config_mak
printf " '%s'" "$0" "$@" >> $config_mak
echo >> $config_mak
1076
echo "/* Automatically generated by configure - do not modify */" > $config_h
1077
1078
echo "prefix=$prefix" >> $config_mak
1079
1080
1081
echo "bindir=\${prefix}$binsuffix" >> $config_mak
echo "mandir=\${prefix}$mansuffix" >> $config_mak
echo "datadir=\${prefix}$datasuffix" >> $config_mak
ths
authored
18 years ago
1082
echo "docdir=\${prefix}$docsuffix" >> $config_mak
1083
echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
1084
echo "MAKE=$make" >> $config_mak
1085
echo "INSTALL=$install" >> $config_mak
1086
1087
1088
1089
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
1090
1091
1092
# XXX: only use CFLAGS and LDFLAGS ?
# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
# compilation of dyngen tool (useful for win32 build on Linux host)
ths
authored
18 years ago
1093
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
1094
1095
1096
echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
1097
1098
echo "CFLAGS=$CFLAGS" >> $config_mak
echo "LDFLAGS=$LDFLAGS" >> $config_mak
1099
echo "EXESUF=$EXESUF" >> $config_mak
ths
authored
18 years ago
1100
echo "AIOLIBS=$AIOLIBS" >> $config_mak
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
case "$cpu" in
i386)
echo "ARCH=i386" >> $config_mak
echo "#define HOST_I386 1" >> $config_h
;;
x86_64)
echo "ARCH=x86_64" >> $config_mak
echo "#define HOST_X86_64 1" >> $config_h
;;
alpha)
echo "ARCH=alpha" >> $config_mak
echo "#define HOST_ALPHA 1" >> $config_h
;;
armv4b)
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
;;
armv4l)
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
;;
cris)
echo "ARCH=cris" >> $config_mak
echo "#define HOST_CRIS 1" >> $config_h
;;
hppa)
echo "ARCH=hppa" >> $config_mak
echo "#define HOST_HPPA 1" >> $config_h
;;
ia64)
echo "ARCH=ia64" >> $config_mak
echo "#define HOST_IA64 1" >> $config_h
;;
m68k)
echo "ARCH=m68k" >> $config_mak
echo "#define HOST_M68K 1" >> $config_h
;;
mips)
echo "ARCH=mips" >> $config_mak
echo "#define HOST_MIPS 1" >> $config_h
;;
mips64)
echo "ARCH=mips64" >> $config_mak
echo "#define HOST_MIPS64 1" >> $config_h
;;
powerpc)
malc
authored
17 years ago
1147
1148
1149
1150
1151
1152
1153
if test "$hostlongbits" = "32"; then
echo "ARCH=ppc" >> $config_mak
echo "#define HOST_PPC 1" >> $config_h
else
echo "ARCH=ppc64" >> $config_mak
echo "#define HOST_PPC64 1" >> $config_h
fi
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
;;
s390)
echo "ARCH=s390" >> $config_mak
echo "#define HOST_S390 1" >> $config_h
;;
sparc)
echo "ARCH=sparc" >> $config_mak
echo "#define HOST_SPARC 1" >> $config_h
;;
sparc64)
echo "ARCH=sparc64" >> $config_mak
echo "#define HOST_SPARC64 1" >> $config_h
;;
*)
echo "Unsupported CPU = $cpu"
exit 1
;;
esac
1172
1173
1174
1175
1176
if test "$sparse" = "yes" ; then
echo "CC := REAL_CC=\"\$(CC)\" cgcc" >> $config_mak
echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc" >> $config_mak
echo "CFLAGS += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_mak
fi
1177
if test "$bigendian" = "yes" ; then
1178
1179
1180
echo "WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
1181
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
1182
1183
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=yes" >> $config_mak
1184
echo "#define CONFIG_WIN32 1" >> $config_h
1185
1186
1187
1188
1189
else
cat > $TMPC << EOF
#include <byteswap.h>
int main(void) { return bswap_32(0); }
EOF
1190
if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
1191
1192
echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
1193
1194
1195
1196
1197
1198
cat > $TMPC << EOF
#include <sys/endian.h>
#include <sys/types.h>
#include <machine/bswap.h>
int main(void) { return bswap32(0); }
EOF
1199
if $cc $ARCH_CFLAGS -o $TMPE $TMPC >/dev/null 2> /dev/null ; then
1200
1201
echo "#define HAVE_MACHINE_BSWAP_H 1" >> $config_h
fi
1202
fi
1203
1204
1205
1206
1207
if [ "$openbsd" = "yes" ] ; then
echo "#define ENOTSUP 4096" >> $config_h
fi
1208
1209
1210
1211
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=yes" >> $config_mak
echo "#define CONFIG_DARWIN 1" >> $config_h
fi
malc
authored
16 years ago
1212
1213
1214
1215
1216
1217
if test "$aix" = "yes" ; then
echo "CONFIG_AIX=yes" >> $config_mak
echo "#define CONFIG_AIX 1" >> $config_h
fi
1218
1219
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=yes" >> $config_mak
1220
echo "#define HOST_SOLARIS $solarisrev" >> $config_h
ths
authored
18 years ago
1221
1222
1223
1224
if test "$needs_libsunmath" = "yes" ; then
echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
fi
1225
fi
1226
1227
1228
1229
if test -n "$sparc_cpu"; then
echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
fi
1230
1231
1232
1233
if test "$gdbstub" = "yes" ; then
echo "CONFIG_GDBSTUB=yes" >> $config_mak
echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
1234
1235
1236
1237
1238
1239
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
1240
echo "#define CONFIG_STATIC 1" >> $config_h
1241
fi
1242
1243
1244
if test $profiler = "yes" ; then
echo "#define CONFIG_PROFILER 1" >> $config_h
fi
1245
1246
1247
1248
if test "$slirp" = "yes" ; then
echo "CONFIG_SLIRP=yes" >> $config_mak
echo "#define CONFIG_SLIRP 1" >> $config_h
fi
ths
authored
17 years ago
1249
1250
1251
1252
1253
if test "$vde" = "yes" ; then
echo "CONFIG_VDE=yes" >> $config_mak
echo "#define CONFIG_VDE 1" >> $config_h
echo "VDE_LIBS=-lvdeplug" >> $config_mak
fi
malc
authored
17 years ago
1254
for card in $audio_card_list; do
1255
def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
malc
authored
17 years ago
1256
1257
1258
1259
1260
1261
echo "$def=yes" >> $config_mak
echo "#define $def 1" >> $config_h
done
echo "#define AUDIO_DRIVERS \\" >> $config_h
for drv in $audio_drv_list; do
echo " &${drv}_audio_driver, \\" >>$config_h
1262
def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
malc
authored
17 years ago
1263
echo "$def=yes" >> $config_mak
malc
authored
17 years ago
1264
if test "$drv" = "fmod"; then
malc
authored
17 years ago
1265
1266
echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
1267
1268
elif test "$drv" = "oss"; then
echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
malc
authored
17 years ago
1269
1270
1271
fi
done
echo "" >>$config_h
malc
authored
17 years ago
1272
1273
1274
1275
if test "$mixemu" = "yes" ; then
echo "CONFIG_MIXEMU=yes" >> $config_mak
echo "#define CONFIG_MIXEMU 1" >> $config_h
fi
ths
authored
18 years ago
1276
1277
1278
1279
1280
1281
if test "$vnc_tls" = "yes" ; then
echo "CONFIG_VNC_TLS=yes" >> $config_mak
echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
echo "#define CONFIG_VNC_TLS 1" >> $config_h
fi
1282
1283
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
1284
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
1285
1286
echo "SRC_PATH=$source_path" >> $config_mak
1287
1288
1289
if [ "$source_path_used" = "yes" ]; then
echo "VPATH=$source_path" >> $config_mak
fi
1290
echo "TARGET_DIRS=$target_list" >> $config_mak
1291
1292
1293
if [ "$build_docs" = "yes" ] ; then
echo "BUILD_DOCS=yes" >> $config_mak
fi
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
if test "$static" = "yes"; then
sdl1=$sdl_static
else
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
echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
fi
if [ "${aa}" = "yes" ] ; then
echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
else
echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
fi
fi
if test "$cocoa" = "yes" ; then
1314
1315
1316
1317
1318
1319
1320
echo "#define CONFIG_COCOA 1" >> $config_h
echo "CONFIG_COCOA=yes" >> $config_mak
fi
if test "$curses" = "yes" ; then
echo "#define CONFIG_CURSES 1" >> $config_h
echo "CONFIG_CURSES=yes" >> $config_mak
echo "CURSES_LIBS=-lcurses" >> $config_mak
1321
fi
1322
1323
1324
1325
1326
if test "$brlapi" = "yes" ; then
echo "CONFIG_BRLAPI=yes" >> $config_mak
echo "#define CONFIG_BRLAPI 1" >> $config_h
echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
fi
1327
1328
1329
1330
1331
1332
if test "$bluez" = "yes" ; then
echo "CONFIG_BLUEZ=yes" >> $config_mak
echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
echo "#define CONFIG_BLUEZ 1" >> $config_h
fi
1333
1334
if test "$aio" = "yes" ; then
echo "#define CONFIG_AIO 1" >> $config_h
1335
echo "CONFIG_AIO=yes" >> $config_mak
1336
fi
ths
authored
16 years ago
1337
1338
1339
if test "$blobs" = "yes" ; then
echo "INSTALL_BLOBS=yes" >> $config_mak
fi
1340
1341
1342
if test "$iovec" = "yes" ; then
echo "#define HAVE_IOVEC 1" >> $config_h
fi
1343
1344
# XXX: suppress that
1345
if [ "$bsd" = "yes" ] ; then
1346
1347
echo "#define O_LARGEFILE 0" >> $config_h
echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
1348
1349
1350
echo "#define _BSD 1" >> $config_h
fi
1351
1352
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
# USB host support
case "$usb" in
linux)
echo "HOST_USB=linux" >> $config_mak
;;
bsd)
echo "HOST_USB=bsd" >> $config_mak
;;
*)
echo "HOST_USB=stub" >> $config_mak
;;
esac
1366
1367
1368
tools=
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
tools="qemu-img\$(EXESUF) $tools"
1369
1370
1371
if [ "$linux" = "yes" ] ; then
tools="qemu-nbd\$(EXESUF) $tools"
fi
1372
1373
1374
fi
echo "TOOLS=$tools" >> $config_mak
ths
authored
18 years ago
1375
1376
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1377
for target in $target_list; do
1378
1379
1380
1381
1382
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"
1383
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
1384
1385
1386
1387
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
[ "$target_cpu" = "mips" ] && target_bigendian=yes
[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
[ "$target_cpu" = "mips64" ] && target_bigendian=yes
1388
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
1389
[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
1390
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
1391
[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
1392
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
1393
1394
1395
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
1396
target_softmmu="no"
1397
target_user_only="no"
ths
authored
18 years ago
1398
1399
target_linux_user="no"
target_darwin_user="no"
1400
target_bsd_user="no"
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
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"
;;
1413
1414
1415
1416
${target_cpu}-bsd-user)
target_user_only="yes"
target_bsd_user="yes"
;;
1417
1418
1419
1420
1421
*)
echo "ERROR: Target '$target' not recognised"
exit 1
;;
esac
ths
authored
18 years ago
1422
1423
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1424
-a "$sdl" = "no" -a "$cocoa" = "no" ; then
1425
echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1426
echo "To build QEMU without graphical output configure with --disable-gfx-check"
1427
1428
echo "Note that this will disable all output from the virtual graphics card"
echo "except through VNC or curses."
1429
1430
1431
exit 1;
fi
1432
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1433
ths
authored
18 years ago
1434
1435
test -f $config_h && mv $config_h ${config_h}~
1436
mkdir -p $target_dir
1437
mkdir -p $target_dir/fpu
1438
mkdir -p $target_dir/tcg
1439
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
1440
1441
1442
mkdir -p $target_dir/nwfpe
fi
1443
1444
1445
1446
1447
1448
#
# 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
1449
1450
1451
1452
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
1453
1454
1455
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
1456
1457
bflt="no"
1458
elfload32="no"
1459
target_nptl="no"
1460
1461
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
1462
gdb_xml_files=""
1463
1464
1465
1466
1467
# Make sure the target and host cpus are compatible
if test "$kvm" = "yes" -a ! \( "$target_cpu" = "$cpu" -o \
\( "$target_cpu" = "x86_64" -a "$cpu" = "i386" \) -o \
\( "$target_cpu" = "i386" -a "$cpu" = "x86_64" \) \) ; then
1468
1469
1470
1471
1472
1473
1474
kvm="no"
fi
# Disable KVM for linux-user
if test "$kvm" = "yes" -a "$target_softmmu" = "no" ; then
kvm="no"
fi
1475
1476
1477
1478
1479
case "$target_cpu" in
i386)
echo "TARGET_ARCH=i386" >> $config_mak
echo "#define TARGET_ARCH \"i386\"" >> $config_h
echo "#define TARGET_I386 1" >> $config_h
1480
if test $kqemu = "yes" -a "$target_softmmu" = "yes"
1481
1482
1483
then
echo "#define USE_KQEMU 1" >> $config_h
fi
1484
1485
1486
if test "$kvm" = "yes" ; then
echo "CONFIG_KVM=yes" >> $config_mak
echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
1487
echo "#define CONFIG_KVM 1" >> $config_h
1488
fi
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
;;
x86_64)
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
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
then
echo "#define USE_KQEMU 1" >> $config_h
fi
1499
1500
1501
1502
1503
if test "$kvm" = "yes" ; then
echo "CONFIG_KVM=yes" >> $config_mak
echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
echo "#define CONFIG_KVM 1" >> $config_h
fi
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
;;
alpha)
echo "TARGET_ARCH=alpha" >> $config_mak
echo "#define TARGET_ARCH \"alpha\"" >> $config_h
echo "#define TARGET_ALPHA 1" >> $config_h
;;
arm|armeb)
echo "TARGET_ARCH=arm" >> $config_mak
echo "#define TARGET_ARCH \"arm\"" >> $config_h
echo "#define TARGET_ARM 1" >> $config_h
bflt="yes"
1515
target_nptl="yes"
1516
gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
;;
cris)
echo "TARGET_ARCH=cris" >> $config_mak
echo "#define TARGET_ARCH \"cris\"" >> $config_h
echo "#define TARGET_CRIS 1" >> $config_h
;;
m68k)
echo "TARGET_ARCH=m68k" >> $config_mak
echo "#define TARGET_ARCH \"m68k\"" >> $config_h
echo "#define TARGET_M68K 1" >> $config_h
bflt="yes"
1528
gdb_xml_files="cf-core.xml cf-fp.xml"
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
;;
mips|mipsel)
echo "TARGET_ARCH=mips" >> $config_mak
echo "#define TARGET_ARCH \"mips\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
;;
mipsn32|mipsn32el)
echo "TARGET_ARCH=mipsn32" >> $config_mak
echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
;;
mips64|mips64el)
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 "#define TARGET_ABI_MIPSN64 1" >> $config_h
;;
ppc)
echo "TARGET_ARCH=ppc" >> $config_mak
echo "#define TARGET_ARCH \"ppc\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
;;
ppcemb)
echo "TARGET_ARCH=ppcemb" >> $config_mak
echo "TARGET_ABI_DIR=ppc" >> $config_mak
echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
echo "#define TARGET_PPCEMB 1" >> $config_h
;;
ppc64)
echo "TARGET_ARCH=ppc64" >> $config_mak
echo "TARGET_ABI_DIR=ppc" >> $config_mak
echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
echo "#define TARGET_PPC64 1" >> $config_h
;;
ppc64abi32)
echo "TARGET_ARCH=ppc64" >> $config_mak
echo "TARGET_ABI_DIR=ppc" >> $config_mak
echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
echo "#define TARGET_PPC 1" >> $config_h
echo "#define TARGET_PPC64 1" >> $config_h
echo "#define TARGET_ABI32 1" >> $config_h
;;
sh4|sh4eb)
echo "TARGET_ARCH=sh4" >> $config_mak
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
echo "#define TARGET_SH4 1" >> $config_h
bflt="yes"
1582
target_nptl="yes"
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
;;
sparc)
echo "TARGET_ARCH=sparc" >> $config_mak
echo "#define TARGET_ARCH \"sparc\"" >> $config_h
echo "#define TARGET_SPARC 1" >> $config_h
;;
sparc64)
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
elfload32="yes"
;;
sparc32plus)
echo "TARGET_ARCH=sparc64" >> $config_mak
echo "TARGET_ABI_DIR=sparc" >> $config_mak
echo "TARGET_ARCH2=sparc32plus" >> $config_mak
echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
echo "#define TARGET_SPARC 1" >> $config_h
echo "#define TARGET_SPARC64 1" >> $config_h
echo "#define TARGET_ABI32 1" >> $config_h
;;
*)
echo "Unsupported target CPU"
exit 1
;;
esac
1610
if test "$target_bigendian" = "yes" ; then
1611
1612
echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
1613
fi
1614
1615
1616
if test "$target_softmmu" = "yes" ; then
echo "CONFIG_SOFTMMU=yes" >> $config_mak
echo "#define CONFIG_SOFTMMU 1" >> $config_h
1617
fi
1618
1619
1620
1621
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
1622
1623
1624
1625
1626
1627
1628
1629
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
1630
1631
1632
1633
1634
1635
1636
list=""
if test ! -z "$gdb_xml_files" ; then
for x in $gdb_xml_files; do
list="$list $source_path/gdb-xml/$x"
done
fi
echo "TARGET_XML_FILES=$list" >> $config_mak
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
if test "$target_cpu" = "arm" \
-o "$target_cpu" = "armeb" \
-o "$target_cpu" = "m68k" \
-o "$target_cpu" = "mips" \
-o "$target_cpu" = "mipsel" \
-o "$target_cpu" = "mipsn32" \
-o "$target_cpu" = "mipsn32el" \
-o "$target_cpu" = "mips64" \
-o "$target_cpu" = "mips64el" \
-o "$target_cpu" = "sparc" \
-o "$target_cpu" = "sparc64" \
-o "$target_cpu" = "sparc32plus"; then
1650
1651
1652
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
1653
1654
1655
1656
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
1657
1658
1659
1660
if test "$target_user_only" = "yes" \
-a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
echo "#define USE_NPTL 1" >> $config_h
fi
1661
1662
1663
1664
1665
# 32 bit ELF loader in addition to native 64 bit loader?
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
fi
1666
1667
1668
1669
if test "$target_bsd_user" = "yes" ; then
echo "CONFIG_BSD_USER=yes" >> $config_mak
echo "#define CONFIG_BSD_USER 1" >> $config_h
fi
1670
ths
authored
18 years ago
1671
1672
test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1673
done # for target in $targets
1674
1675
1676
# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
1677
DIRS="tests tests/cris slirp audio"
1678
FILES="Makefile tests/Makefile"
ths
authored
17 years ago
1679
FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
1680
FILES="$FILES tests/test-mmap.c"
1681
1682
1683
for dir in $DIRS ; do
mkdir -p $dir
done
1684
# remove the link and recreate it, as not all "ln -sf" overwrite the link
1685
for f in $FILES ; do
1686
1687
rm -f $f
ln -s $source_path/$f $f
1688
1689
done
fi