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
SunOS)
ths
authored
18 years ago
136
137
138
139
140
141
142
143
solaris = "yes"
make = "gmake"
install = "ginstall"
solarisrev = ` uname -r | cut -f2 -d.`
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
if test " $solarisrev " -ge 10 ; then
kqemu = "yes"
fi
ths
authored
18 years ago
144
145
fi
;;
146
* )
147
oss = "yes"
148
linux = "yes"
ths
authored
18 years ago
149
linux_user = "yes"
150
if [ " $cpu " = "i386" -o " $cpu " = "x86_64" ] ; then
151
152
kqemu = "yes"
fi
153
;;
154
155
esac
156
if [ " $bsd " = "yes" ] ; then
157
if [ " $darwin " != "yes" ] ; then
158
159
make = "gmake"
fi
160
161
fi
162
# find source path
163
164
source_path = ` dirname " $0 " `
if [ -z " $source_path " ] ; then
165
source_path = ` pwd `
166
167
168
169
else
source_path = ` cd " $source_path " ; pwd `
fi
if test " $source_path " = ` pwd ` ; then
170
source_path_used = "no"
171
172
else
source_path_used = "yes"
173
174
175
fi
for opt do
176
optarg = ` expr "x $opt " : 'x[^=]*=\(.*\)' `
177
case " $opt " in
178
179
--help|-h) show_help = yes
;;
180
--prefix= * ) prefix = " $optarg "
181
;;
182
--interp-prefix= * ) interp_prefix = " $optarg "
183
;;
184
--source-path= * ) source_path = " $optarg "
185
source_path_used = "yes"
186
;;
187
--cross-prefix= * ) cross_prefix = " $optarg "
188
;;
189
--cc= * ) cc = " $optarg "
190
gcc3_search = "no"
191
;;
192
--host-cc= * ) host_cc = " $optarg "
193
;;
194
--make= * ) make = " $optarg "
195
;;
196
197
--install= * ) install = " $optarg "
;;
198
--extra-cflags= * ) CFLAGS = " $optarg "
199
;;
200
--extra-ldflags= * ) LDFLAGS = " $optarg "
201
;;
202
--cpu= * ) cpu = " $optarg "
203
;;
204
--target-list= * ) target_list = " $optarg "
205
;;
206
207
--enable-gprof) gprof = "yes"
;;
208
209
--static) static = "yes"
;;
210
211
--disable-sdl) sdl = "no"
;;
212
213
214
215
216
217
--enable-coreaudio) coreaudio = "yes"
;;
--enable-alsa) alsa = "yes"
;;
--enable-dsound) dsound = "yes"
;;
218
219
--enable-fmod) fmod = "yes"
;;
220
--fmod-lib= * ) fmod_lib = " $optarg "
221
;;
222
--fmod-inc= * ) fmod_inc = " $optarg "
223
;;
224
--enable-mingw32) mingw32 = "yes" ; cross_prefix = "i386-mingw32-" ; user = "no"
225
;;
226
--disable-slirp) slirp = "no"
227
;;
228
--enable-adlib) adlib = "yes"
229
;;
230
--disable-kqemu) kqemu = "no"
231
;;
232
233
--enable-profiler) profiler = "yes"
;;
234
235
--enable-cocoa) cocoa = "yes" ; coreaudio = "yes" ; sdl = "no"
;;
236
237
--disable-gfx-check) check_gfx = "no"
;;
238
239
--disable-gcc-check) check_gcc = "no"
;;
240
--disable-system) softmmu = "no"
241
;;
242
--enable-system) softmmu = "yes"
243
;;
ths
authored
18 years ago
244
--disable-linux-user) linux_user = "no"
245
;;
ths
authored
18 years ago
246
247
248
249
250
--enable-linux-user) linux_user = "yes"
;;
--disable-darwin-user) darwin_user = "no"
;;
--enable-darwin-user) darwin_user = "yes"
251
;;
252
253
--enable-uname-release= * ) uname_release = " $optarg "
;;
254
255
256
esac
done
ths
authored
18 years ago
257
258
259
260
# default flags for all hosts
CFLAGS = " $CFLAGS -Wall -O2 -g -fno-strict-aliasing"
LDFLAGS = " $LDFLAGS -g"
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
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]"
284
echo " --install=INSTALL use specified install [$install]"
285
286
287
288
289
290
291
292
293
294
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
295
296
297
298
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"
299
300
echo " --fmod-lib path to FMOD library"
echo " --fmod-inc path to FMOD includes"
301
echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
302
echo ""
ths
authored
18 years ago
303
echo "NOTE: The object files are built at the place where configure is launched"
304
305
306
exit 1
fi
307
308
309
310
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
311
312
313
314
315
# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF
ths
authored
18 years ago
316
if $cc -c -o $TMPO $TMPC 2> /dev/null ; then
317
318
319
320
: C compiler works ok
else
echo "ERROR: \"$cc\" either does not exist or does not work"
exit 1
321
322
fi
323
if test "$mingw32" = "yes" ; then
324
linux="no"
325
EXESUF=".exe"
326
oss="no"
327
328
329
if [ "$cpu" = "i386" ] ; then
kqemu="yes"
fi
330
331
fi
332
333
334
335
336
337
338
339
340
# 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() {
ths
authored
18 years ago
341
which "$1" 2> /dev/null
342
343
344
return $?
}
ths
authored
18 years ago
345
if "$cc" -o $TMPE $TMPC 2> /dev/null ; then
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
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
371
372
373
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
#
# 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
412
413
if test -z "$target_list" ; then
# these targets are portable
414
415
416
if [ "$softmmu" = "yes" ] ; then
target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
fi
417
# the following are Linux specific
ths
authored
18 years ago
418
419
420
421
422
423
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"
424
fi
425
else
426
target_list=`echo "$target_list" | sed -e 's/,/ /g'`
427
fi
428
429
430
431
if test -z "$target_list" ; then
echo "No targets enabled"
exit 1
fi
432
433
434
435
436
437
438
439
if test -z "$cross_prefix" ; then
# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
440
441
volatile uint32_t i=0x01234567;
return (*((uint8_t*)(&i))) == 0x67;
442
443
444
}
EOF
ths
authored
18 years ago
445
if $cc -o $TMPE $TMPC 2> /dev/null ; then
446
447
448
449
450
451
452
453
$TMPE && bigendian="yes"
else
echo big/little test failed
fi
else
# if cross compiling, cannot launch a program, so make a static guess
454
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
455
456
457
458
459
bigendian="yes"
fi
fi
460
461
462
463
464
465
# host long bits test
hostlongbits="32"
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
hostlongbits="64"
fi
466
# check gcc options support
467
468
469
470
471
cat > $TMPC <<EOF
int main(void) {
}
EOF
472
473
474
have_gcc3_options="no"
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
have_gcc3_options="yes"
475
fi
476
477
478
479
480
481
482
483
##########################################
# SDL probe
sdl_too_old=no
if test -z "$sdl" ; then
484
485
sdl_config="sdl-config"
sdl=no
486
sdl_static=no
487
488
489
490
491
492
493
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
494
495
496
497
498
499
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
500
501
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'`
502
503
504
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
ths
authored
18 years ago
505
506
507
if test "$cocoa" = "no" ; then
sdl=yes
fi
508
fi
509
510
511
512
513
514
515
# 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
516
sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
517
518
519
520
fi
if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
sdl_static=yes
521
522
fi
523
524
525
526
fi # static link
fi # sdl compile test
527
fi # cross compilation
ths
authored
18 years ago
528
529
530
531
532
533
534
else
# Make sure to disable cocoa if sdl was set
if test "$sdl" = "yes" ; then
cocoa="no"
coreaudio="no"
fi
535
fi # -z $sdl
536
ths
authored
18 years ago
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
##########################################
# 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
556
# Check if tools are available to build documentation.
557
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
558
559
560
build_docs="yes"
fi
561
562
563
564
565
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
566
datadir="$prefix"
567
docdir="$prefix"
568
569
570
571
572
bindir="$prefix"
else
if test -z "$prefix" ; then
prefix="/usr/local"
fi
573
mandir="$prefix/share/man"
574
datadir="$prefix/share/qemu"
575
docdir="$prefix/share/doc/qemu"
576
577
bindir="$prefix/bin"
fi
578
579
echo "Install prefix $prefix"
580
echo "BIOS directory $datadir"
581
582
583
echo "binary directory $bindir"
if test "$mingw32" = "no" ; then
echo "Manual directory $mandir"
584
echo "ELF interp prefix $interp_prefix"
585
fi
586
echo "Source path $source_path"
587
echo "C compiler $cc"
588
echo "Host C compiler $host_cc"
589
echo "make $make"
590
echo "install $install"
591
echo "host CPU $cpu"
592
echo "host big endian $bigendian"
593
echo "target list $target_list"
594
echo "gprof enabled $gprof"
595
echo "profiler $profiler"
596
echo "static build $static"
597
598
599
if test "$darwin" = "yes" ; then
echo "Cocoa support $cocoa"
fi
600
echo "SDL support $sdl"
601
602
603
if test "$sdl" != "no" ; then
echo "SDL static link $sdl_static"
fi
604
echo "mingw32 support $mingw32"
605
echo "Adlib support $adlib"
606
607
608
609
610
611
612
613
614
615
616
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
617
618
619
fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
else
fmod_support=""
620
fi
621
echo "FMOD support $fmod $fmod_support"
622
echo "kqemu support $kqemu"
623
echo "Documentation $build_docs"
624
625
[ ! -z "$uname_release" ] && \
echo "uname -r $uname_release"
626
627
if test $sdl_too_old = "yes"; then
628
echo "-> Your SDL version is too old - please upgrade to have SDL support"
629
fi
630
631
632
#if test "$sdl_static" = "no"; then
# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
633
634
config_mak="config-host.mak"
config_h="config-host.h"
635
636
#echo "Creating $config_mak and $config_h"
637
638
echo "# Automatically generated by configure - do not modify" > $config_mak
639
echo "# Configured with: $0 $@" >> $config_mak
640
echo "/* Automatically generated by configure - do not modify */" > $config_h
641
642
echo "prefix=$prefix" >> $config_mak
643
echo "bindir=$bindir" >> $config_mak
644
echo "mandir=$mandir" >> $config_mak
645
echo "datadir=$datadir" >> $config_mak
646
echo "docdir=$docdir" >> $config_mak
647
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
648
echo "MAKE=$make" >> $config_mak
649
echo "INSTALL=$install" >> $config_mak
650
echo "CC=$cc" >> $config_mak
651
if test "$have_gcc3_options" = "yes" ; then
652
echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
653
fi
654
655
656
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
657
echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
658
659
echo "CFLAGS=$CFLAGS" >> $config_mak
echo "LDFLAGS=$LDFLAGS" >> $config_mak
660
echo "EXESUF=$EXESUF" >> $config_mak
661
662
663
if test "$cpu" = "i386" ; then
echo "ARCH=i386" >> $config_mak
echo "#define HOST_I386 1" >> $config_h
664
665
666
elif test "$cpu" = "x86_64" ; then
echo "ARCH=x86_64" >> $config_mak
echo "#define HOST_X86_64 1" >> $config_h
667
668
669
elif test "$cpu" = "armv4b" ; then
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
670
elif test "$cpu" = "armv4l" ; then
671
672
echo "ARCH=arm" >> $config_mak
echo "#define HOST_ARM 1" >> $config_h
673
elif test "$cpu" = "powerpc" ; then
674
675
echo "ARCH=ppc" >> $config_mak
echo "#define HOST_PPC 1" >> $config_h
676
elif test "$cpu" = "mips" ; then
677
678
echo "ARCH=mips" >> $config_mak
echo "#define HOST_MIPS 1" >> $config_h
679
elif test "$cpu" = "s390" ; then
680
681
echo "ARCH=s390" >> $config_mak
echo "#define HOST_S390 1" >> $config_h
682
elif test "$cpu" = "alpha" ; then
683
684
echo "ARCH=alpha" >> $config_mak
echo "#define HOST_ALPHA 1" >> $config_h
685
elif test "$cpu" = "sparc" ; then
686
687
echo "ARCH=sparc" >> $config_mak
echo "#define HOST_SPARC 1" >> $config_h
688
elif test "$cpu" = "sparc64" ; then
689
690
echo "ARCH=sparc64" >> $config_mak
echo "#define HOST_SPARC64 1" >> $config_h
691
elif test "$cpu" = "ia64" ; then
692
693
echo "ARCH=ia64" >> $config_mak
echo "#define HOST_IA64 1" >> $config_h
694
elif test "$cpu" = "m68k" ; then
695
696
echo "ARCH=m68k" >> $config_mak
echo "#define HOST_M68K 1" >> $config_h
697
698
699
700
701
else
echo "Unsupported CPU"
exit 1
fi
if test "$bigendian" = "yes" ; then
702
703
704
echo "WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
705
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
706
707
if test "$mingw32" = "yes" ; then
echo "CONFIG_WIN32=yes" >> $config_mak
708
echo "#define CONFIG_WIN32 1" >> $config_h
709
elif test -f "/usr/include/byteswap.h" ; then
710
711
echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
712
713
714
715
if test "$darwin" = "yes" ; then
echo "CONFIG_DARWIN=yes" >> $config_mak
echo "#define CONFIG_DARWIN 1" >> $config_h
fi
716
717
if test "$solaris" = "yes" ; then
echo "CONFIG_SOLARIS=yes" >> $config_mak
718
echo "#define HOST_SOLARIS $solarisrev" >> $config_h
719
fi
720
721
722
723
if test "$gdbstub" = "yes" ; then
echo "CONFIG_GDBSTUB=yes" >> $config_mak
echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
724
725
726
727
728
729
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
730
echo "#define CONFIG_STATIC 1" >> $config_h
731
fi
732
733
734
if test $profiler = "yes" ; then
echo "#define CONFIG_PROFILER 1" >> $config_h
fi
735
736
737
738
if test "$slirp" = "yes" ; then
echo "CONFIG_SLIRP=yes" >> $config_mak
echo "#define CONFIG_SLIRP 1" >> $config_h
fi
739
740
741
742
743
744
745
746
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
747
748
749
750
751
752
753
754
755
756
757
758
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
759
760
761
762
763
764
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
765
766
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
767
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
768
769
echo "SRC_PATH=$source_path" >> $config_mak
770
771
772
if [ "$source_path_used" = "yes" ]; then
echo "VPATH=$source_path" >> $config_mak
fi
773
echo "TARGET_DIRS=$target_list" >> $config_mak
774
775
776
if [ "$build_docs" = "yes" ] ; then
echo "BUILD_DOCS=yes" >> $config_mak
fi
777
778
# XXX: suppress that
779
if [ "$bsd" = "yes" ] ; then
780
781
echo "#define O_LARGEFILE 0" >> $config_h
echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
782
783
784
echo "#define _BSD 1" >> $config_h
fi
785
786
echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
787
for target in $target_list; do
788
789
790
791
792
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"
793
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
794
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
795
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
796
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
797
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
798
[ "$target_cpu" = "mips" ] && target_bigendian=yes
799
[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
800
[ "$target_cpu" = "m68k" ] && target_bigendian=yes
801
802
803
804
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
target_softmmu="yes"
fi
805
806
807
808
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
target_user_only="yes"
fi
809
ths
authored
18 years ago
810
811
812
813
814
815
816
817
818
819
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
820
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
821
-a "$sdl" = "no" -a "$cocoa" = "no" ; then
822
echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
823
echo "To build QEMU without graphical output configure with --disable-gfx-check"
824
825
826
827
echo "Note that this will disable all output from the virtual graphics card."
exit 1;
fi
828
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
829
830
mkdir -p $target_dir
831
mkdir -p $target_dir/fpu
ths
authored
18 years ago
832
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
833
834
mkdir -p $target_dir/nwfpe
fi
835
836
837
if test "$target_user_only" = "no" ; then
mkdir -p $target_dir/slirp
fi
838
839
840
841
842
843
844
#
# 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
845
846
847
848
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
849
850
851
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
852
853
bflt="no"
854
855
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
856
857
858
859
860
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
861
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
862
863
echo "#define USE_KQEMU 1" >> $config_h
fi
864
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
865
866
867
echo "TARGET_ARCH=arm" >> $config_mak
echo "#define TARGET_ARCH \"arm\"" >> $config_h
echo "#define TARGET_ARM 1" >> $config_h
868
bflt="yes"
869
870
871
872
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
873
874
875
876
877
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
878
879
880
881
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
882
883
884
885
886
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
887
888
889
890
891
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
892
893
894
if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
echo "#define USE_KQEMU 1" >> $config_h
fi
895
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
896
897
898
echo "TARGET_ARCH=mips" >> $config_mak
echo "#define TARGET_ARCH \"mips\"" >> $config_h
echo "#define TARGET_MIPS 1" >> $config_h
899
900
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
901
elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then
902
903
904
echo "TARGET_ARCH=sh4" >> $config_mak
echo "#define TARGET_ARCH \"sh4\"" >> $config_h
echo "#define TARGET_SH4 1" >> $config_h
905
bflt="yes"
906
907
908
909
910
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"
911
912
913
914
915
else
echo "Unsupported target CPU"
exit 1
fi
if test "$target_bigendian" = "yes" ; then
916
917
echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
918
fi
919
920
921
if test "$target_softmmu" = "yes" ; then
echo "CONFIG_SOFTMMU=yes" >> $config_mak
echo "#define CONFIG_SOFTMMU 1" >> $config_h
922
fi
923
924
925
926
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
927
928
929
930
931
932
933
934
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
935
936
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "m68k"; then
937
938
939
echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
940
941
942
943
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
944
945
946
947
# sdl defines
if test "$target_user_only" = "no"; then
if test "$target_softmmu" = "no" -o "$static" = "yes"; then
948
sdl1=$sdl_static
949
else
950
951
952
953
954
955
956
957
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
958
959
echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
fi
960
if [ "${aa}" = "yes" ] ; then
961
962
963
echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
else
echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
964
fi
965
966
967
fi
fi
968
969
970
971
972
if test "$cocoa" = "yes" ; then
echo "#define CONFIG_COCOA 1" >> $config_h
echo "CONFIG_COCOA=yes" >> $config_mak
fi
973
done # for target in $targets
974
975
976
977
978
979
980
981
# 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
982
# remove the link and recreate it, as not all "ln -sf" overwrite the link
983
for f in $FILES ; do
984
985
rm -f $f
ln -s $source_path/$f $f
986
987
988
done
fi
989
rm -f $TMPO $TMPC $TMPE $TMPS