Blame view

configure 20.5 KB
bellard authored
1
2
#!/bin/sh
#
bellard authored
3
# qemu configure script (c) 2003 Fabrice Bellard
bellard authored
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
bellard authored
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"
bellard authored
18
19

# default parameters
bellard authored
20
prefix=""
21
interp_prefix="/usr/gnemul/qemu-%M"
bellard authored
22
static="no"
bellard authored
23
24
25
26
27
28
29
cross_prefix=""
cc="gcc"
host_cc="gcc"
ar="ar"
make="make"
strip="strip"
cpu=`uname -m`
bellard authored
30
target_list=""
bellard authored
31
32
case "$cpu" in
  i386|i486|i586|i686|i86pc|BePC)
33
    cpu="i386"
bellard authored
34
  ;;
35
  armv*b)
36
37
    cpu="armv4b"
  ;;
38
  armv*l)
bellard authored
39
40
41
42
43
    cpu="armv4l"
  ;;
  alpha)
    cpu="alpha"
  ;;
bellard authored
44
  "Power Macintosh"|ppc|ppc64)
bellard authored
45
46
47
48
49
    cpu="powerpc"
  ;;
  mips)
    cpu="mips"
  ;;
bellard authored
50
51
52
  s390)
    cpu="s390"
  ;;
53
54
55
56
57
58
  sparc)
    cpu="sparc"
  ;;
  sparc64)
    cpu="sparc64"
  ;;
bellard authored
59
60
61
  ia64)
    cpu="ia64"
  ;;
62
63
64
  m68k)
    cpu="m68k"
  ;;
65
  x86_64|amd64)
bellard authored
66
    cpu="x86_64"
67
  ;;
bellard authored
68
69
70
71
72
73
  *)
    cpu="unknown"
  ;;
esac
gprof="no"
bigendian="no"
74
75
76
mingw32="no"
EXESUF=""
gdbstub="yes"
bellard authored
77
slirp="yes"
78
79
adlib="no"
oss="no"
80
81
82
dsound="no"
coreaudio="no"
alsa="no"
83
84
85
fmod="no"
fmod_lib=""
fmod_inc=""
bellard authored
86
linux="no"
bellard authored
87
kqemu="no"
88
profiler="no"
bellard authored
89
kernel_path=""
90
cocoa="no"
91
check_gfx="yes"
bellard authored
92
check_gcc="yes"
bellard authored
93
94
95
96

# OS specific
targetos=`uname -s`
case $targetos in
97
98
99
100
CYGWIN*)
mingw32="yes"
CFLAGS="-O2 -mno-cygwin"
;;
101
102
103
MINGW32*)
mingw32="yes"
;;
bellard authored
104
105
FreeBSD)
bsd="yes"
106
oss="yes"
bellard authored
107
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard authored
108
109
    kqemu="yes"
fi
bellard authored
110
111
112
;;
NetBSD)
bsd="yes"
113
oss="yes"
bellard authored
114
115
116
;;
OpenBSD)
bsd="yes"
117
oss="yes"
bellard authored
118
;;
119
120
121
122
Darwin)
bsd="yes"
darwin="yes"
;;
123
*)
124
oss="yes"
bellard authored
125
linux="yes"
bellard authored
126
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
bellard authored
127
128
    kqemu="yes"
fi
129
;;
bellard authored
130
131
esac
bellard authored
132
if [ "$bsd" = "yes" ] ; then
133
134
135
  if [ ! "$darwin" = "yes" ] ; then
    make="gmake"
  fi
bellard authored
136
137
fi
bellard authored
138
# find source path
139
# XXX: we assume an absolute path is given when launching configure,
bellard authored
140
141
142
143
144
145
146
147
148
149
150
# except in './configure' case.
source_path=${0%configure}
source_path=${source_path%/}
source_path_used="yes"
if test -z "$source_path" -o "$source_path" = "." ; then
    source_path=`pwd`
    source_path_used="no"
fi

for opt do
  case "$opt" in
151
152
  --help|-h) show_help=yes
  ;;
bellard authored
153
154
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
  ;;
bellard authored
155
156
  --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
bellard authored
157
158
159
160
161
162
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
  ;;
bellard authored
163
164
  --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2`
  ;;
bellard authored
165
166
167
168
169
170
171
172
  --make=*) make=`echo $opt | cut -d '=' -f 2`
  ;;
  --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}"
  ;;
  --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}"
  ;;
  --cpu=*) cpu=`echo $opt | cut -d '=' -f 2`
  ;;
173
  --target-list=*) target_list=${opt#--target-list=}
bellard authored
174
  ;;
bellard authored
175
176
  --enable-gprof) gprof="yes"
  ;;
bellard authored
177
178
  --static) static="yes"
  ;;
179
180
  --disable-sdl) sdl="no"
  ;;
181
182
183
184
185
186
  --enable-coreaudio) coreaudio="yes"
  ;;
  --enable-alsa) alsa="yes"
  ;;
  --enable-dsound) dsound="yes"
  ;;
187
188
189
190
191
192
  --enable-fmod) fmod="yes"
  ;;
  --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
  ;;
  --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
  ;;
193
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
194
  ;;
bellard authored
195
  --disable-slirp) slirp="no"
196
  ;;
197
  --enable-adlib) adlib="yes"
198
  ;;
bellard authored
199
  --disable-kqemu) kqemu="no"
200
  ;;
201
202
  --enable-profiler) profiler="yes"
  ;;
bellard authored
203
  --kernel-path=*) kernel_path=${opt#--kernel-path=}
204
205
206
  ;;
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
  ;;
207
208
  --disable-gfx-check) check_gfx="no"
  ;;
bellard authored
209
210
  --disable-gcc-check) check_gcc="no"
  ;;
bellard authored
211
212
213
214
215
216
217
218
219
220
221
222
  esac
done

# Checking for CFLAGS
if test -z "$CFLAGS"; then
    CFLAGS="-O2"
fi

cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"
223
if test "$mingw32" = "yes" ; then
bellard authored
224
    linux="no"
225
226
    EXESUF=".exe"
    gdbstub="no"
bellard authored
227
    oss="no"
bellard authored
228
229
230
    if [ "$cpu" = "i386" ] ; then
        kqemu="yes"
    fi
231
232
fi
bellard authored
233
234
if test -z "$target_list" ; then
# these targets are portable
235
    target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu arm-softmmu"
bellard authored
236
237
# the following are Linux specific
    if [ "$linux" = "yes" ] ; then
bellard authored
238
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
bellard authored
239
    fi
240
241
else
    target_list=$(echo "$target_list" | sed -e 's/,/ /g')
bellard authored
242
243
fi
bellard authored
244
245
246
247
248
249
250
if test -z "$cross_prefix" ; then

# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
251
252
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
bellard authored
253
254
255
256
257
258
259
260
261
262
263
264
}
EOF

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

else

# if cross compiling, cannot launch a program, so make a static guess
265
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
bellard authored
266
267
268
269
270
    bigendian="yes"
fi

fi
271
272
273
274
275
276
# host long bits test
hostlongbits="32"
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
    hostlongbits="64"
fi
277
# check gcc options support
bellard authored
278
279
280
281
282
cat > $TMPC <<EOF
int main(void) {
}
EOF
283
284
285
have_gcc3_options="no"
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
   have_gcc3_options="yes"
bellard authored
286
fi
bellard authored
287
bellard authored
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
# Check for gcc4
if test "$check_gcc" = "yes" ; then
    cat > $TMPC <<EOF
#if __GNUC__ >= 4
#error gcc4
#endif
int main(){return 0;}
EOF
    if ! $cc -o $TMPO $TMPC 2>/dev/null ; then
        echo "ERROR: \"$cc\" looks like gcc 4.x"
        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
bellard authored
305
306
307
308
309
310
311
##########################################
# SDL probe

sdl_too_old=no

if test -z "$sdl" ; then
312
313
sdl_config="sdl-config"
sdl=no
bellard authored
314
sdl_static=no
315
316
317
318
319
320
321

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
bellard authored
322
323
324
325
326
327
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
328
329
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'`
bellard authored
330
331
332
333
334
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
bellard authored
335
336
337
338
339
340
341

# 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
342
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
bellard authored
343
344
345
346
fi

if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
  sdl_static=yes
bellard authored
347
348
fi
bellard authored
349
350
351
352
fi # static link

fi # sdl compile test
353
354
fi # cross compilation
fi # -z $sdl
bellard authored
355
356
if test x"$show_help" = x"yes" ; then
bellard authored
357
358
359
360
361
362
363
364
365
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]"
366
367
echo "  --interp-prefix=PREFIX   where to find shared libraries, etc."
echo "                           use %M for cpu name [$interp_prefix]"
368
echo "  --target-list=LIST       set target list [$target_list]"
bellard authored
369
echo ""
bellard authored
370
echo "kqemu kernel acceleration support:"
371
echo "  --disable-kqemu          disable kqemu support"
bellard authored
372
373
echo "  --kernel-path=PATH       set the kernel path (configure probes it)"
echo ""
bellard authored
374
375
376
377
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]"
378
echo "  --host-cc=CC             use C compiler CC [$host_cc] for dyngen etc."
bellard authored
379
echo "  --make=MAKE              use specified make [$make]"
bellard authored
380
echo "  --static                 enable static build [$static]"
381
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
382
echo "  --enable-mingw32         enable Win32 cross compilation with mingw32"
bellard authored
383
echo "  --enable-adlib           enable Adlib emulation"
384
385
386
387
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"
388
389
echo "  --fmod-lib               path to FMOD library"
echo "  --fmod-inc               path to FMOD includes"
bellard authored
390
391
392
393
394
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
fi
bellard authored
395
396
397
398
399
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
    prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
bellard authored
400
datadir="$prefix"
bellard authored
401
docdir="$prefix"
bellard authored
402
403
404
405
406
bindir="$prefix"
else
if test -z "$prefix" ; then
    prefix="/usr/local"
fi
407
mandir="$prefix/share/man"
bellard authored
408
datadir="$prefix/share/qemu"
bellard authored
409
docdir="$prefix/share/doc/qemu"
bellard authored
410
411
bindir="$prefix/bin"
fi
412
bellard authored
413
echo "Install prefix    $prefix"
bellard authored
414
echo "BIOS directory    $datadir"
bellard authored
415
416
417
echo "binary directory  $bindir"
if test "$mingw32" = "no" ; then
echo "Manual directory  $mandir"
bellard authored
418
echo "ELF interp prefix $interp_prefix"
bellard authored
419
fi
420
echo "Source path       $source_path"
bellard authored
421
echo "C compiler        $cc"
bellard authored
422
echo "Host C compiler   $host_cc"
bellard authored
423
424
echo "make              $make"
echo "host CPU          $cpu"
bellard authored
425
echo "host big endian   $bigendian"
426
echo "target list       $target_list"
bellard authored
427
echo "gprof enabled     $gprof"
428
echo "profiler          $profiler"
bellard authored
429
echo "static build      $static"
430
431
432
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
433
echo "SDL support       $sdl"
bellard authored
434
435
436
if test "$sdl" != "no" ; then
    echo "SDL static link   $sdl_static"
fi
437
echo "mingw32 support   $mingw32"
438
echo "Adlib support     $adlib"
439
440
441
echo "CoreAudio support $coreaudio"
echo "ALSA support      $alsa"
echo "DSound support    $dsound"
442
echo -n "FMOD support      $fmod"
443
444
445
446
447
448
449
450
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
451
452
453
    echo -n " (lib='$fmod_lib' include='$fmod_inc')"
fi
echo ""
bellard authored
454
echo "kqemu support     $kqemu"
455
456
if test $sdl_too_old = "yes"; then
457
echo "-> Your SDL version is too old - please upgrade to have SDL support"
bellard authored
458
fi
459
460
461
#if test "$sdl_static" = "no"; then
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
462
463
464

config_mak="config-host.mak"
config_h="config-host.h"
bellard authored
465
bellard authored
466
#echo "Creating $config_mak and $config_h"
bellard authored
467
468
469
echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
bellard authored
470
471
echo "prefix=$prefix" >> $config_mak
bellard authored
472
echo "bindir=$bindir" >> $config_mak
473
echo "mandir=$mandir" >> $config_mak
bellard authored
474
echo "datadir=$datadir" >> $config_mak
bellard authored
475
echo "docdir=$docdir" >> $config_mak
bellard authored
476
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
477
478
echo "MAKE=$make" >> $config_mak
echo "CC=$cc" >> $config_mak
479
if test "$have_gcc3_options" = "yes" ; then
480
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
481
fi
482
483
484
485
486
echo "HOST_CC=$host_cc" >> $config_mak
echo "AR=$ar" >> $config_mak
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
echo "CFLAGS=$CFLAGS" >> $config_mak
echo "LDFLAGS=$LDFLAGS" >> $config_mak
487
echo "EXESUF=$EXESUF" >> $config_mak
488
489
490
if test "$cpu" = "i386" ; then
  echo "ARCH=i386" >> $config_mak
  echo "#define HOST_I386 1" >> $config_h
bellard authored
491
492
493
elif test "$cpu" = "x86_64" ; then
  echo "ARCH=x86_64" >> $config_mak
  echo "#define HOST_X86_64 1" >> $config_h
494
495
496
elif test "$cpu" = "armv4b" ; then
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
bellard authored
497
elif test "$cpu" = "armv4l" ; then
498
499
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
bellard authored
500
elif test "$cpu" = "powerpc" ; then
501
502
  echo "ARCH=ppc" >> $config_mak
  echo "#define HOST_PPC 1" >> $config_h
bellard authored
503
elif test "$cpu" = "mips" ; then
504
505
  echo "ARCH=mips" >> $config_mak
  echo "#define HOST_MIPS 1" >> $config_h
bellard authored
506
elif test "$cpu" = "s390" ; then
507
508
  echo "ARCH=s390" >> $config_mak
  echo "#define HOST_S390 1" >> $config_h
bellard authored
509
elif test "$cpu" = "alpha" ; then
510
511
  echo "ARCH=alpha" >> $config_mak
  echo "#define HOST_ALPHA 1" >> $config_h
512
elif test "$cpu" = "sparc" ; then
513
514
  echo "ARCH=sparc" >> $config_mak
  echo "#define HOST_SPARC 1" >> $config_h
515
elif test "$cpu" = "sparc64" ; then
516
517
  echo "ARCH=sparc64" >> $config_mak
  echo "#define HOST_SPARC64 1" >> $config_h
bellard authored
518
elif test "$cpu" = "ia64" ; then
519
520
  echo "ARCH=ia64" >> $config_mak
  echo "#define HOST_IA64 1" >> $config_h
521
elif test "$cpu" = "m68k" ; then
bellard authored
522
523
  echo "ARCH=m68k" >> $config_mak
  echo "#define HOST_M68K 1" >> $config_h
bellard authored
524
525
526
527
528
else
  echo "Unsupported CPU"
  exit 1
fi
if test "$bigendian" = "yes" ; then
529
530
531
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
532
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
533
534
if test "$mingw32" = "yes" ; then
  echo "CONFIG_WIN32=yes" >> $config_mak
bellard authored
535
  echo "#define CONFIG_WIN32 1" >> $config_h
bellard authored
536
elif test -f "/usr/include/byteswap.h" ; then
537
538
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
539
540
541
542
if test "$darwin" = "yes" ; then
  echo "CONFIG_DARWIN=yes" >> $config_mak
  echo "#define CONFIG_DARWIN 1" >> $config_h
fi
543
544
545
546
if test "$gdbstub" = "yes" ; then
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
547
548
549
550
551
552
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
bellard authored
553
  echo "#define CONFIG_STATIC 1" >> $config_h
bellard authored
554
fi
555
556
557
if test $profiler = "yes" ; then
  echo "#define CONFIG_PROFILER 1" >> $config_h
fi
558
559
560
561
if test "$slirp" = "yes" ; then
  echo "CONFIG_SLIRP=yes" >> $config_mak
  echo "#define CONFIG_SLIRP 1" >> $config_h
fi
562
563
564
565
566
567
568
569
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
570
571
572
573
574
575
576
577
578
579
580
581
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
582
583
584
585
586
587
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
588
589
590
591
592
593
594
595
596
597
echo -n "VERSION=" >>$config_mak
head $source_path/VERSION >>$config_mak
echo "" >>$config_mak
echo -n "#define QEMU_VERSION \"" >> $config_h
head $source_path/VERSION >> $config_h
echo "\"" >> $config_h

echo "SRC_PATH=$source_path" >> $config_mak
echo "TARGET_DIRS=$target_list" >> $config_mak
598
# XXX: suppress that
bellard authored
599
if [ "$bsd" = "yes" ] ; then
600
601
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard authored
602
603
604
  echo "#define _BSD 1" >> $config_h
fi
605
for target in $target_list; do
606
607
608
609
610
611

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"
612
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
613
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard authored
614
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
615
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellard authored
616
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellard authored
617
[ "$target_cpu" = "mips" ] && target_bigendian=yes
618
619
620
621
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
  target_softmmu="yes"
fi
bellard authored
622
623
624
625
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
  target_user_only="yes"
fi
626
627
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
628
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
629
630
631
632
633
634
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
    echo "To build QEMU with graphical output configure with --disable-gfx-check"
    echo "Note that this will disable all output from the virtual graphics card."
    exit 1;
fi
bellard authored
635
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
636
637

mkdir -p $target_dir
bellard authored
638
mkdir -p $target_dir/fpu
639
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard authored
640
641
  mkdir -p $target_dir/nwfpe
fi
bellard authored
642
643
644
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
bellard authored
645
646
647
648
649
650
ln -sf $source_path/Makefile.target $target_dir/Makefile

echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h
bellard authored
651
652
653
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
654
655
656

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
657
658
659
660
661

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
bellard authored
662
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
bellard authored
663
664
    echo "#define USE_KQEMU 1" >> $config_h
  fi
665
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
666
667
668
  echo "TARGET_ARCH=arm" >> $config_mak
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
  echo "#define TARGET_ARM 1" >> $config_h
669
670
671
672
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
bellard authored
673
674
675
676
677
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
678
679
680
681
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
bellard authored
682
683
684
685
686
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
bellard authored
687
688
689
690
691
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
bellard authored
692
693
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
    echo "#define USE_KQEMU 1" >> $config_h
694
695
696
    if test $kqemu_profile = "yes" ; then
      echo "#define CONFIG_KQEMU_PROFILE 1" >> $config_h
    fi
bellard authored
697
  fi
bellard authored
698
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
bellard authored
699
700
701
  echo "TARGET_ARCH=mips" >> $config_mak
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
  echo "#define TARGET_MIPS 1" >> $config_h
bellard authored
702
703
704
705
706
else
  echo "Unsupported target CPU"
  exit 1
fi
if test "$target_bigendian" = "yes" ; then
707
708
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
bellard authored
709
fi
710
711
712
if test "$target_softmmu" = "yes" ; then
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
bellard authored
713
fi
bellard authored
714
715
716
717
if test "$target_user_only" = "yes" ; then
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
fi
718
bellard authored
719
720
721
722
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
bellard authored
723
724
725
726
# sdl defines

if test "$target_user_only" = "no"; then
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
bellard authored
727
        sdl1=$sdl_static
bellard authored
728
    else
bellard authored
729
730
731
732
733
734
735
736
        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
bellard authored
737
738
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
        fi
bellard authored
739
740
741
742
743
        echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
        if [ "${aa}" = "yes" ] ; then
            echo -n " `aalib-config --cflags`" >> $config_mak ;
        fi
        echo "" >> $config_mak
bellard authored
744
745
746
    fi
fi
747
748
749
750
751
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi
752
done # for target in $targets
bellard authored
753
754
755
756
757
758
759
760
761
762
763
764
765

# 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
    for f in $FILES ; do
        ln -sf $source_path/$f $f
    done
fi
766
rm -f $TMPO $TMPC $TMPE $TMPS