configure 21.5 KB
Newer Older
B
bellard 已提交
1 2
#!/bin/sh
#
B
bellard 已提交
3
# qemu configure script (c) 2003 Fabrice Bellard
B
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

B
bellard 已提交
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"
B
bellard 已提交
18 19

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

# OS specific
targetos=`uname -s`
case $targetos in
B
bellard 已提交
102 103 104 105
CYGWIN*)
mingw32="yes"
CFLAGS="-O2 -mno-cygwin"
;;
B
bellard 已提交
106 107 108
MINGW32*)
mingw32="yes"
;;
B
bellard 已提交
109 110
FreeBSD)
bsd="yes"
B
bellard 已提交
111
oss="yes"
B
bellard 已提交
112
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
B
bellard 已提交
113 114
    kqemu="yes"
fi
B
bellard 已提交
115 116 117
;;
NetBSD)
bsd="yes"
B
bellard 已提交
118
oss="yes"
B
bellard 已提交
119 120 121
;;
OpenBSD)
bsd="yes"
B
bellard 已提交
122
oss="yes"
B
bellard 已提交
123
;;
124 125 126 127
Darwin)
bsd="yes"
darwin="yes"
;;
128
*)
B
bellard 已提交
129
oss="yes"
B
bellard 已提交
130
linux="yes"
131
user="yes"
B
bellard 已提交
132
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
B
bellard 已提交
133 134
    kqemu="yes"
fi
B
bellard 已提交
135
;;
B
bellard 已提交
136 137
esac

B
bellard 已提交
138
if [ "$bsd" = "yes" ] ; then
139
  if [ "$darwin" != "yes" ] ; then
140 141
    make="gmake"
  fi
B
bellard 已提交
142 143
fi

B
bellard 已提交
144
# find source path
P
pbrook 已提交
145 146
source_path=`dirname "$0"`
if [ -z "$source_path" ]; then
B
bellard 已提交
147
    source_path=`pwd`
P
pbrook 已提交
148 149 150 151
else
    source_path=`cd "$source_path"; pwd`
fi
if test "$source_path" = `pwd` ; then
B
bellard 已提交
152
    source_path_used="no"
P
pbrook 已提交
153 154
else
    source_path_used="yes"
B
bellard 已提交
155 156 157
fi

for opt do
158
  optarg=`expr "$opt" : '[^=]*=\(.*\)'`
B
bellard 已提交
159
  case "$opt" in
160 161
  --help|-h) show_help=yes
  ;;
162
  --prefix=*) prefix="$optarg"
B
bellard 已提交
163
  ;;
164
  --interp-prefix=*) interp_prefix="$optarg"
B
bellard 已提交
165
  ;;
166
  --source-path=*) source_path="$optarg"
P
pbrook 已提交
167
  source_path_used="yes"
B
bellard 已提交
168
  ;;
169
  --cross-prefix=*) cross_prefix="$optarg"
B
bellard 已提交
170
  ;;
171
  --cc=*) cc="$optarg"
B
bellard 已提交
172
  ;;
173
  --host-cc=*) host_cc="$optarg"
B
bellard 已提交
174
  ;;
175
  --make=*) make="$optarg"
B
bellard 已提交
176
  ;;
177 178
  --install=*) install="$optarg"
  ;;
179
  --extra-cflags=*) CFLAGS="$optarg"
B
bellard 已提交
180
  ;;
181
  --extra-ldflags=*) LDFLAGS="$optarg"
B
bellard 已提交
182
  ;;
183
  --cpu=*) cpu="$optarg"
B
bellard 已提交
184
  ;;
185
  --target-list=*) target_list="$optarg"
B
bellard 已提交
186
  ;;
B
bellard 已提交
187 188
  --enable-gprof) gprof="yes"
  ;;
B
bellard 已提交
189 190
  --static) static="yes"
  ;;
191 192
  --disable-sdl) sdl="no"
  ;;
193 194 195 196 197 198
  --enable-coreaudio) coreaudio="yes"
  ;;
  --enable-alsa) alsa="yes"
  ;;
  --enable-dsound) dsound="yes"
  ;;
B
bellard 已提交
199 200
  --enable-fmod) fmod="yes"
  ;;
201
  --fmod-lib=*) fmod_lib="$optarg"
B
bellard 已提交
202
  ;;
203
  --fmod-inc=*) fmod_inc="$optarg"
B
bellard 已提交
204
  ;;
B
bellard 已提交
205
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
206
  ;;
B
bellard 已提交
207
  --disable-slirp) slirp="no"
208
  ;;
B
bellard 已提交
209
  --enable-adlib) adlib="yes"
210
  ;;
B
bellard 已提交
211
  --disable-kqemu) kqemu="no"
212
  ;;
213 214
  --enable-profiler) profiler="yes"
  ;;
215
  --kernel-path=*) kernel_path="$optarg"
216 217 218
  ;;
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
  ;;
219 220
  --disable-gfx-check) check_gfx="no"
  ;;
B
bellard 已提交
221 222
  --disable-gcc-check) check_gcc="no"
  ;;
P
pbrook 已提交
223
  --disable-system) softmmu="no"
224
  ;;
P
pbrook 已提交
225
  --enable-system) softmmu="yes"
226 227 228 229 230
  ;;
  --disable-user) user="no"
  ;;
  --enable-user) user="yes"
  ;;
B
bellard 已提交
231 232 233 234 235 236 237 238
  esac
done

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

239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
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 "  --kernel-path=PATH       set the kernel path (configure probes it)"
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]"
263
echo "  --install=INSTALL        use specified install [$install]"
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282
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"
echo "  --enable-user            enable all linux usermode emulation targets"
echo "  --disable-user           disable all linux usermode emulation targets"
echo "  --fmod-lib               path to FMOD library"
echo "  --fmod-inc               path to FMOD includes"
echo ""
echo "NOTE: The object files are build at the place where configure is launched"
exit 1
fi

B
bellard 已提交
283 284 285 286
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"

B
bellard 已提交
287 288 289 290 291
if [ -z `which $cc` ] ; then
    echo "Compiler $cc could not be found"
    exit
fi

B
bellard 已提交
292
if test "$mingw32" = "yes" ; then
B
bellard 已提交
293
    linux="no"
B
bellard 已提交
294 295
    EXESUF=".exe"
    gdbstub="no"
B
bellard 已提交
296
    oss="no"
B
bellard 已提交
297 298 299
    if [ "$cpu" = "i386" ] ; then
        kqemu="yes"
    fi
B
bellard 已提交
300 301
fi

B
bellard 已提交
302 303
if test -z "$target_list" ; then
# these targets are portable
304 305 306
    if [ "$softmmu" = "yes" ] ; then
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
    fi
B
bellard 已提交
307
# the following are Linux specific
308
    if [ "$user" = "yes" ] ; then
B
bellard 已提交
309
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
B
bellard 已提交
310
    fi
311
else
312
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
B
bellard 已提交
313
fi
314 315 316 317
if test -z "$target_list" ; then
    echo "No targets enabled"
    exit 1
fi
B
bellard 已提交
318

B
bellard 已提交
319 320 321 322 323 324 325
if test -z "$cross_prefix" ; then

# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
326 327
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
B
bellard 已提交
328 329 330 331 332 333 334 335 336 337 338 339
}
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
340
if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
B
bellard 已提交
341 342 343 344 345
    bigendian="yes"
fi

fi

B
bellard 已提交
346 347 348 349 350 351
# host long bits test
hostlongbits="32"
if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
    hostlongbits="64"
fi

B
bellard 已提交
352
# check gcc options support
B
bellard 已提交
353 354 355 356 357
cat > $TMPC <<EOF
int main(void) {
}
EOF

B
bellard 已提交
358 359 360
have_gcc3_options="no"
if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
   have_gcc3_options="yes"
B
bellard 已提交
361
fi
B
bellard 已提交
362

363
# Check for gcc4, error if pre-gcc4 
B
bellard 已提交
364 365
if test "$check_gcc" = "yes" ; then
    cat > $TMPC <<EOF
366 367
#if __GNUC__ < 4
#error gcc3
B
bellard 已提交
368 369 370
#endif
int main(){return 0;}
EOF
371
    if $cc -o $TMPO $TMPC 2>/dev/null ; then
B
bellard 已提交
372 373 374 375 376 377 378 379
        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

B
bellard 已提交
380 381 382 383 384 385 386
##########################################
# SDL probe

sdl_too_old=no

if test -z "$sdl" ; then

387 388
sdl_config="sdl-config"
sdl=no
B
bellard 已提交
389
sdl_static=no
390 391 392 393 394 395 396

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
B
bellard 已提交
397 398 399 400 401 402
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

403 404
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'`
B
bellard 已提交
405 406 407 408 409
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
B
bellard 已提交
410 411 412 413 414 415 416

# 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
B
bellard 已提交
417
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
B
bellard 已提交
418 419 420 421
fi

if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
  sdl_static=yes
B
bellard 已提交
422 423
fi

B
bellard 已提交
424 425 426 427
fi # static link

fi # sdl compile test

428 429
fi # cross compilation
fi # -z $sdl
B
bellard 已提交
430

431 432 433 434 435
# Check if tools are available to build documentation.
if [ ! -z `which texi2html` ] && [ ! -z `which pod2man` ]; then
  build_docs="yes"
fi

B
bellard 已提交
436 437 438 439 440
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
    prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
B
bellard 已提交
441
datadir="$prefix"
B
bellard 已提交
442
docdir="$prefix"
B
bellard 已提交
443 444 445 446 447
bindir="$prefix"
else
if test -z "$prefix" ; then
    prefix="/usr/local"
fi
448
mandir="$prefix/share/man"
B
bellard 已提交
449
datadir="$prefix/share/qemu"
B
bellard 已提交
450
docdir="$prefix/share/doc/qemu"
B
bellard 已提交
451 452
bindir="$prefix/bin"
fi
453

B
bellard 已提交
454
echo "Install prefix    $prefix"
B
bellard 已提交
455
echo "BIOS directory    $datadir"
B
bellard 已提交
456 457 458
echo "binary directory  $bindir"
if test "$mingw32" = "no" ; then
echo "Manual directory  $mandir"
B
bellard 已提交
459
echo "ELF interp prefix $interp_prefix"
B
bellard 已提交
460
fi
461
echo "Source path       $source_path"
B
bellard 已提交
462
echo "C compiler        $cc"
B
bellard 已提交
463
echo "Host C compiler   $host_cc"
B
bellard 已提交
464
echo "make              $make"
465
echo "install           $install"
B
bellard 已提交
466
echo "host CPU          $cpu"
B
bellard 已提交
467
echo "host big endian   $bigendian"
468
echo "target list       $target_list"
B
bellard 已提交
469
echo "gprof enabled     $gprof"
470
echo "profiler          $profiler"
B
bellard 已提交
471
echo "static build      $static"
472 473 474
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
475
echo "SDL support       $sdl"
B
bellard 已提交
476 477 478
if test "$sdl" != "no" ; then
    echo "SDL static link   $sdl_static"
fi
B
bellard 已提交
479
echo "mingw32 support   $mingw32"
B
bellard 已提交
480
echo "Adlib support     $adlib"
481 482 483 484 485 486 487 488 489 490 491
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
492 493 494
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
else
    fmod_support=""
B
bellard 已提交
495
fi
496
echo "FMOD support      $fmod $fmod_support"
B
bellard 已提交
497
echo "kqemu support     $kqemu"
498
echo "Documentation     $build_docs"
B
bellard 已提交
499

500
if test $sdl_too_old = "yes"; then
B
bellard 已提交
501
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
502
fi
B
bellard 已提交
503 504 505
#if test "$sdl_static" = "no"; then
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
506 507
config_mak="config-host.mak"
config_h="config-host.h"
B
bellard 已提交
508

B
bellard 已提交
509
#echo "Creating $config_mak and $config_h"
B
bellard 已提交
510

511
echo "# Automatically generated by configure - do not modify" > $config_mak
P
pbrook 已提交
512
echo "# Configured with: $0 $@" >> $config_mak
513
echo "/* Automatically generated by configure - do not modify */" > $config_h
B
bellard 已提交
514

515
echo "prefix=$prefix" >> $config_mak
B
bellard 已提交
516
echo "bindir=$bindir" >> $config_mak
517
echo "mandir=$mandir" >> $config_mak
B
bellard 已提交
518
echo "datadir=$datadir" >> $config_mak
B
bellard 已提交
519
echo "docdir=$docdir" >> $config_mak
B
bellard 已提交
520
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
521
echo "MAKE=$make" >> $config_mak
522
echo "INSTALL=$install" >> $config_mak
523
echo "CC=$cc" >> $config_mak
B
bellard 已提交
524
if test "$have_gcc3_options" = "yes" ; then
525
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
B
bellard 已提交
526
fi
527 528 529 530 531
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
B
bellard 已提交
532
echo "EXESUF=$EXESUF" >> $config_mak
533 534 535
if test "$cpu" = "i386" ; then
  echo "ARCH=i386" >> $config_mak
  echo "#define HOST_I386 1" >> $config_h
B
bellard 已提交
536 537 538
elif test "$cpu" = "x86_64" ; then
  echo "ARCH=x86_64" >> $config_mak
  echo "#define HOST_X86_64 1" >> $config_h
539 540 541
elif test "$cpu" = "armv4b" ; then
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
B
bellard 已提交
542
elif test "$cpu" = "armv4l" ; then
543 544
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
B
bellard 已提交
545
elif test "$cpu" = "powerpc" ; then
546 547
  echo "ARCH=ppc" >> $config_mak
  echo "#define HOST_PPC 1" >> $config_h
B
bellard 已提交
548
elif test "$cpu" = "mips" ; then
549 550
  echo "ARCH=mips" >> $config_mak
  echo "#define HOST_MIPS 1" >> $config_h
B
bellard 已提交
551
elif test "$cpu" = "s390" ; then
552 553
  echo "ARCH=s390" >> $config_mak
  echo "#define HOST_S390 1" >> $config_h
B
bellard 已提交
554
elif test "$cpu" = "alpha" ; then
555 556
  echo "ARCH=alpha" >> $config_mak
  echo "#define HOST_ALPHA 1" >> $config_h
B
bellard 已提交
557
elif test "$cpu" = "sparc" ; then
558 559
  echo "ARCH=sparc" >> $config_mak
  echo "#define HOST_SPARC 1" >> $config_h
B
bellard 已提交
560
elif test "$cpu" = "sparc64" ; then
561 562
  echo "ARCH=sparc64" >> $config_mak
  echo "#define HOST_SPARC64 1" >> $config_h
B
bellard 已提交
563
elif test "$cpu" = "ia64" ; then
564 565
  echo "ARCH=ia64" >> $config_mak
  echo "#define HOST_IA64 1" >> $config_h
B
bellard 已提交
566
elif test "$cpu" = "m68k" ; then
B
bellard 已提交
567 568
  echo "ARCH=m68k" >> $config_mak
  echo "#define HOST_M68K 1" >> $config_h
B
bellard 已提交
569 570 571 572 573
else
  echo "Unsupported CPU"
  exit 1
fi
if test "$bigendian" = "yes" ; then
574 575 576
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
B
bellard 已提交
577
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
B
bellard 已提交
578 579
if test "$mingw32" = "yes" ; then
  echo "CONFIG_WIN32=yes" >> $config_mak
B
bellard 已提交
580
  echo "#define CONFIG_WIN32 1" >> $config_h
B
bellard 已提交
581
elif test -f "/usr/include/byteswap.h" ; then
B
bellard 已提交
582 583
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
584 585 586 587
if test "$darwin" = "yes" ; then
  echo "CONFIG_DARWIN=yes" >> $config_mak
  echo "#define CONFIG_DARWIN 1" >> $config_h
fi
B
bellard 已提交
588 589 590 591
if test "$gdbstub" = "yes" ; then
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
592 593 594 595 596 597
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
B
bellard 已提交
598
  echo "#define CONFIG_STATIC 1" >> $config_h
B
bellard 已提交
599
fi
600 601 602
if test $profiler = "yes" ; then
  echo "#define CONFIG_PROFILER 1" >> $config_h
fi
B
bellard 已提交
603 604 605 606
if test "$slirp" = "yes" ; then
  echo "CONFIG_SLIRP=yes" >> $config_mak
  echo "#define CONFIG_SLIRP 1" >> $config_h
fi
B
bellard 已提交
607 608 609 610 611 612 613 614
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
615 616 617 618 619 620 621 622 623 624 625 626
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
B
bellard 已提交
627 628 629 630 631 632
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
633 634
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
P
pbrook 已提交
635
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
636 637

echo "SRC_PATH=$source_path" >> $config_mak
P
pbrook 已提交
638 639 640
if [ "$source_path_used" = "yes" ]; then
  echo "VPATH=$source_path" >> $config_mak
fi
641
echo "TARGET_DIRS=$target_list" >> $config_mak
642 643 644
if [ "$build_docs" = "yes" ] ; then
  echo "BUILD_DOCS=yes" >> $config_mak
fi
645

646
# XXX: suppress that
B
bellard 已提交
647
if [ "$bsd" = "yes" ] ; then
648 649
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
B
bellard 已提交
650 651 652
  echo "#define _BSD 1" >> $config_h
fi

653
for target in $target_list; do
654 655 656 657 658
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"
659
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
660
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
B
bellard 已提交
661
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
662
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
B
bellard 已提交
663
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
B
bellard 已提交
664
[ "$target_cpu" = "mips" ] && target_bigendian=yes
665 666 667 668
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
  target_softmmu="yes"
fi
B
bellard 已提交
669 670 671 672
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
  target_user_only="yes"
fi
673

674
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
675
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
676
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
P
pbrook 已提交
677
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
678 679 680 681
    echo "Note that this will disable all output from the virtual graphics card."
    exit 1;
fi

B
bellard 已提交
682
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
683 684

mkdir -p $target_dir
B
bellard 已提交
685
mkdir -p $target_dir/fpu
686
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
B
bellard 已提交
687 688
  mkdir -p $target_dir/nwfpe
fi
B
bellard 已提交
689 690 691
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
B
bellard 已提交
692

693 694 695 696 697
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

B
bellard 已提交
698

699 700
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
701 702 703

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
704 705 706 707 708

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
B
bellard 已提交
709
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
B
bellard 已提交
710 711
    echo "#define USE_KQEMU 1" >> $config_h
  fi
712
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
713 714 715
  echo "TARGET_ARCH=arm" >> $config_mak
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
  echo "#define TARGET_ARM 1" >> $config_h
716 717 718 719
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
B
bellard 已提交
720 721 722 723 724
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
725 726 727 728
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
B
bellard 已提交
729 730 731 732 733
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
B
bellard 已提交
734 735 736 737 738
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
B
bellard 已提交
739 740 741
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
    echo "#define USE_KQEMU 1" >> $config_h
  fi
B
bellard 已提交
742
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
B
bellard 已提交
743 744 745
  echo "TARGET_ARCH=mips" >> $config_mak
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
  echo "#define TARGET_MIPS 1" >> $config_h
B
bellard 已提交
746 747 748 749 750
else
  echo "Unsupported target CPU"
  exit 1
fi
if test "$target_bigendian" = "yes" ; then
751 752
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
B
bellard 已提交
753
fi
754 755 756
if test "$target_softmmu" = "yes" ; then
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
B
bellard 已提交
757
fi
B
bellard 已提交
758 759 760 761
if test "$target_user_only" = "yes" ; then
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
fi
762

B
bellard 已提交
763 764 765 766
if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
  echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
  echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
fi
B
bellard 已提交
767 768 769 770
# sdl defines

if test "$target_user_only" = "no"; then
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
B
bellard 已提交
771
        sdl1=$sdl_static
B
bellard 已提交
772
    else
B
bellard 已提交
773 774 775 776 777 778 779 780
        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
B
bellard 已提交
781 782
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
        fi
B
bellard 已提交
783
        if [ "${aa}" = "yes" ] ; then
784 785 786
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
        else
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
B
bellard 已提交
787
        fi
B
bellard 已提交
788 789 790
    fi
fi

791 792 793 794 795
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi

796
done # for target in $targets
B
bellard 已提交
797 798 799 800 801 802 803 804 805 806 807 808 809

# 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

810
rm -f $TMPO $TMPC $TMPE $TMPS