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 mipsel-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
echo "# Automatically generated by configure - do not modify" > $config_mak
pbrook authored
469
echo "# Configured with: $0 $@" >> $config_mak
470
echo "/* Automatically generated by configure - do not modify */" > $config_h
bellard authored
471
472
echo "prefix=$prefix" >> $config_mak
bellard authored
473
echo "bindir=$bindir" >> $config_mak
474
echo "mandir=$mandir" >> $config_mak
bellard authored
475
echo "datadir=$datadir" >> $config_mak
bellard authored
476
echo "docdir=$docdir" >> $config_mak
bellard authored
477
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
478
479
echo "MAKE=$make" >> $config_mak
echo "CC=$cc" >> $config_mak
480
if test "$have_gcc3_options" = "yes" ; then
481
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
482
fi
483
484
485
486
487
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
488
echo "EXESUF=$EXESUF" >> $config_mak
489
490
491
if test "$cpu" = "i386" ; then
  echo "ARCH=i386" >> $config_mak
  echo "#define HOST_I386 1" >> $config_h
bellard authored
492
493
494
elif test "$cpu" = "x86_64" ; then
  echo "ARCH=x86_64" >> $config_mak
  echo "#define HOST_X86_64 1" >> $config_h
495
496
497
elif test "$cpu" = "armv4b" ; then
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
bellard authored
498
elif test "$cpu" = "armv4l" ; then
499
500
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
bellard authored
501
elif test "$cpu" = "powerpc" ; then
502
503
  echo "ARCH=ppc" >> $config_mak
  echo "#define HOST_PPC 1" >> $config_h
bellard authored
504
elif test "$cpu" = "mips" ; then
505
506
  echo "ARCH=mips" >> $config_mak
  echo "#define HOST_MIPS 1" >> $config_h
bellard authored
507
elif test "$cpu" = "s390" ; then
508
509
  echo "ARCH=s390" >> $config_mak
  echo "#define HOST_S390 1" >> $config_h
bellard authored
510
elif test "$cpu" = "alpha" ; then
511
512
  echo "ARCH=alpha" >> $config_mak
  echo "#define HOST_ALPHA 1" >> $config_h
513
elif test "$cpu" = "sparc" ; then
514
515
  echo "ARCH=sparc" >> $config_mak
  echo "#define HOST_SPARC 1" >> $config_h
516
elif test "$cpu" = "sparc64" ; then
517
518
  echo "ARCH=sparc64" >> $config_mak
  echo "#define HOST_SPARC64 1" >> $config_h
bellard authored
519
elif test "$cpu" = "ia64" ; then
520
521
  echo "ARCH=ia64" >> $config_mak
  echo "#define HOST_IA64 1" >> $config_h
522
elif test "$cpu" = "m68k" ; then
bellard authored
523
524
  echo "ARCH=m68k" >> $config_mak
  echo "#define HOST_M68K 1" >> $config_h
bellard authored
525
526
527
528
529
else
  echo "Unsupported CPU"
  exit 1
fi
if test "$bigendian" = "yes" ; then
530
531
532
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
533
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
534
535
if test "$mingw32" = "yes" ; then
  echo "CONFIG_WIN32=yes" >> $config_mak
bellard authored
536
  echo "#define CONFIG_WIN32 1" >> $config_h
bellard authored
537
elif test -f "/usr/include/byteswap.h" ; then
538
539
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
540
541
542
543
if test "$darwin" = "yes" ; then
  echo "CONFIG_DARWIN=yes" >> $config_mak
  echo "#define CONFIG_DARWIN 1" >> $config_h
fi
544
545
546
547
if test "$gdbstub" = "yes" ; then
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
548
549
550
551
552
553
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
554
  echo "#define CONFIG_STATIC 1" >> $config_h
bellard authored
555
fi
556
557
558
if test $profiler = "yes" ; then
  echo "#define CONFIG_PROFILER 1" >> $config_h
fi
559
560
561
562
if test "$slirp" = "yes" ; then
  echo "CONFIG_SLIRP=yes" >> $config_mak
  echo "#define CONFIG_SLIRP 1" >> $config_h
fi
563
564
565
566
567
568
569
570
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
571
572
573
574
575
576
577
578
579
580
581
582
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
583
584
585
586
587
588
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
589
590
591
592
593
594
595
596
597
598
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
599
# XXX: suppress that
bellard authored
600
if [ "$bsd" = "yes" ] ; then
601
602
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
bellard authored
603
604
605
  echo "#define _BSD 1" >> $config_h
fi
606
for target in $target_list; do
607
608
609
610
611
612

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"
613
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
614
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
bellard authored
615
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
616
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
bellard authored
617
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
bellard authored
618
[ "$target_cpu" = "mips" ] && target_bigendian=yes
619
620
621
622
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
  target_softmmu="yes"
fi
bellard authored
623
624
625
626
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
  target_user_only="yes"
fi
627
628
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
629
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
630
631
632
633
634
635
    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
636
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
637
638

mkdir -p $target_dir
bellard authored
639
mkdir -p $target_dir/fpu
640
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
bellard authored
641
642
  mkdir -p $target_dir/nwfpe
fi
bellard authored
643
644
645
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
bellard authored
646
647
648
649
650
651
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
652
653
654
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
655
656
657

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

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

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

# 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
764
rm -f $TMPO $TMPC $TMPE $TMPS