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

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

B
bellard 已提交
135
if [ "$bsd" = "yes" ] ; then
136 137 138
  if [ ! "$darwin" = "yes" ] ; then
    make="gmake"
  fi
B
bellard 已提交
139 140
fi

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

for opt do
  case "$opt" in
156 157
  --help|-h) show_help=yes
  ;;
B
bellard 已提交
158 159
  --prefix=*) prefix=`echo $opt | cut -d '=' -f 2`
  ;;
B
bellard 已提交
160 161
  --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
B
bellard 已提交
162
  --source-path=*) source_path=`echo $opt | cut -d '=' -f 2`
P
pbrook 已提交
163
  source_path_used="yes"
B
bellard 已提交
164 165 166 167 168
  ;;
  --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2`
  ;;
  --cc=*) cc=`echo $opt | cut -d '=' -f 2`
  ;;
B
bellard 已提交
169 170
  --host-cc=*) host_cc=`echo $opt | cut -d '=' -f 2`
  ;;
B
bellard 已提交
171 172 173 174 175 176 177 178
  --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`
  ;;
179
  --target-list=*) target_list=${opt#--target-list=}
B
bellard 已提交
180
  ;;
B
bellard 已提交
181 182
  --enable-gprof) gprof="yes"
  ;;
B
bellard 已提交
183 184
  --static) static="yes"
  ;;
185 186
  --disable-sdl) sdl="no"
  ;;
187 188 189 190 191 192
  --enable-coreaudio) coreaudio="yes"
  ;;
  --enable-alsa) alsa="yes"
  ;;
  --enable-dsound) dsound="yes"
  ;;
B
bellard 已提交
193 194 195 196 197 198
  --enable-fmod) fmod="yes"
  ;;
  --fmod-lib=*) fmod_lib=${opt#--fmod-lib=}
  ;;
  --fmod-inc=*) fmod_inc=${opt#--fmod-inc=}
  ;;
B
bellard 已提交
199
  --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
200
  ;;
B
bellard 已提交
201
  --disable-slirp) slirp="no"
202
  ;;
B
bellard 已提交
203
  --enable-adlib) adlib="yes"
204
  ;;
B
bellard 已提交
205
  --disable-kqemu) kqemu="no"
206
  ;;
207 208
  --enable-profiler) profiler="yes"
  ;;
B
bellard 已提交
209
  --kernel-path=*) kernel_path=${opt#--kernel-path=}
210 211 212
  ;;
  --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
  ;;
213 214
  --disable-gfx-check) check_gfx="no"
  ;;
B
bellard 已提交
215 216
  --disable-gcc-check) check_gcc="no"
  ;;
P
pbrook 已提交
217
  --disable-system) softmmu="no"
218
  ;;
P
pbrook 已提交
219
  --enable-system) softmmu="yes"
220 221 222 223 224
  ;;
  --disable-user) user="no"
  ;;
  --enable-user) user="yes"
  ;;
B
bellard 已提交
225 226 227 228 229 230 231 232
  esac
done

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

233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275
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]"
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 已提交
276 277 278 279
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"

B
bellard 已提交
280
if test "$mingw32" = "yes" ; then
B
bellard 已提交
281
    linux="no"
B
bellard 已提交
282 283
    EXESUF=".exe"
    gdbstub="no"
B
bellard 已提交
284
    oss="no"
B
bellard 已提交
285 286 287
    if [ "$cpu" = "i386" ] ; then
        kqemu="yes"
    fi
B
bellard 已提交
288 289
fi

B
bellard 已提交
290 291
if test -z "$target_list" ; then
# these targets are portable
292 293 294
    if [ "$softmmu" = "yes" ] ; then
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
    fi
B
bellard 已提交
295
# the following are Linux specific
296
    if [ "$user" = "yes" ] ; then
B
bellard 已提交
297
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
B
bellard 已提交
298
    fi
299 300
else
    target_list=$(echo "$target_list" | sed -e 's/,/ /g')
B
bellard 已提交
301
fi
302 303 304 305
if test -z "$target_list" ; then
    echo "No targets enabled"
    exit 1
fi
B
bellard 已提交
306

B
bellard 已提交
307 308 309 310 311 312 313
if test -z "$cross_prefix" ; then

# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
314 315
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
B
bellard 已提交
316 317 318 319 320 321 322 323 324 325 326 327
}
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
328
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 已提交
329 330 331 332 333
    bigendian="yes"
fi

fi

B
bellard 已提交
334 335 336 337 338 339
# 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 已提交
340
# check gcc options support
B
bellard 已提交
341 342 343 344 345
cat > $TMPC <<EOF
int main(void) {
}
EOF

B
bellard 已提交
346 347 348
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 已提交
349
fi
B
bellard 已提交
350

B
bellard 已提交
351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367
# 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

B
bellard 已提交
368 369 370 371 372 373 374
##########################################
# SDL probe

sdl_too_old=no

if test -z "$sdl" ; then

375 376
sdl_config="sdl-config"
sdl=no
B
bellard 已提交
377
sdl_static=no
378 379 380 381 382 383 384

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 已提交
385 386 387 388 389 390
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

391 392
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 已提交
393 394 395 396 397
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
B
bellard 已提交
398 399 400 401 402 403 404

# 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 已提交
405
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
B
bellard 已提交
406 407 408 409
fi

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

B
bellard 已提交
412 413 414 415
fi # static link

fi # sdl compile test

416 417
fi # cross compilation
fi # -z $sdl
B
bellard 已提交
418 419 420 421 422 423

if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
    prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
B
bellard 已提交
424
datadir="$prefix"
B
bellard 已提交
425
docdir="$prefix"
B
bellard 已提交
426 427 428 429 430
bindir="$prefix"
else
if test -z "$prefix" ; then
    prefix="/usr/local"
fi
431
mandir="$prefix/share/man"
B
bellard 已提交
432
datadir="$prefix/share/qemu"
B
bellard 已提交
433
docdir="$prefix/share/doc/qemu"
B
bellard 已提交
434 435
bindir="$prefix/bin"
fi
436

B
bellard 已提交
437
echo "Install prefix    $prefix"
B
bellard 已提交
438
echo "BIOS directory    $datadir"
B
bellard 已提交
439 440 441
echo "binary directory  $bindir"
if test "$mingw32" = "no" ; then
echo "Manual directory  $mandir"
B
bellard 已提交
442
echo "ELF interp prefix $interp_prefix"
B
bellard 已提交
443
fi
444
echo "Source path       $source_path"
B
bellard 已提交
445
echo "C compiler        $cc"
B
bellard 已提交
446
echo "Host C compiler   $host_cc"
B
bellard 已提交
447 448
echo "make              $make"
echo "host CPU          $cpu"
B
bellard 已提交
449
echo "host big endian   $bigendian"
450
echo "target list       $target_list"
B
bellard 已提交
451
echo "gprof enabled     $gprof"
452
echo "profiler          $profiler"
B
bellard 已提交
453
echo "static build      $static"
454 455 456
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
457
echo "SDL support       $sdl"
B
bellard 已提交
458 459 460
if test "$sdl" != "no" ; then
    echo "SDL static link   $sdl_static"
fi
B
bellard 已提交
461
echo "mingw32 support   $mingw32"
B
bellard 已提交
462
echo "Adlib support     $adlib"
463 464 465
echo "CoreAudio support $coreaudio"
echo "ALSA support      $alsa"
echo "DSound support    $dsound"
B
bellard 已提交
466
echo -n "FMOD support      $fmod"
467 468 469 470 471 472 473 474
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
B
bellard 已提交
475 476 477
    echo -n " (lib='$fmod_lib' include='$fmod_inc')"
fi
echo ""
B
bellard 已提交
478
echo "kqemu support     $kqemu"
B
bellard 已提交
479

480
if test $sdl_too_old = "yes"; then
B
bellard 已提交
481
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
482
fi
B
bellard 已提交
483 484 485
#if test "$sdl_static" = "no"; then
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
486 487 488

config_mak="config-host.mak"
config_h="config-host.h"
B
bellard 已提交
489

B
bellard 已提交
490
#echo "Creating $config_mak and $config_h"
B
bellard 已提交
491

492
echo "# Automatically generated by configure - do not modify" > $config_mak
P
pbrook 已提交
493
echo "# Configured with: $0 $@" >> $config_mak
494
echo "/* Automatically generated by configure - do not modify */" > $config_h
B
bellard 已提交
495

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

626
# XXX: suppress that
B
bellard 已提交
627
if [ "$bsd" = "yes" ] ; then
628 629
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
B
bellard 已提交
630 631 632
  echo "#define _BSD 1" >> $config_h
fi

633
for target in $target_list; do
634 635 636 637 638 639

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"
640
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
641
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
B
bellard 已提交
642
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
643
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
B
bellard 已提交
644
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
B
bellard 已提交
645
[ "$target_cpu" = "mips" ] && target_bigendian=yes
646 647 648 649
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
  target_softmmu="yes"
fi
B
bellard 已提交
650 651 652 653
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
  target_user_only="yes"
fi
654

655
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
656
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
657 658 659 660 661 662
    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

B
bellard 已提交
663
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
664 665

mkdir -p $target_dir
B
bellard 已提交
666
mkdir -p $target_dir/fpu
667
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
B
bellard 已提交
668 669
  mkdir -p $target_dir/nwfpe
fi
B
bellard 已提交
670 671 672
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
B
bellard 已提交
673

674 675 676 677 678
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 已提交
679

680 681
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
682 683 684

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
685 686 687 688 689

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 已提交
690
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
B
bellard 已提交
691 692
    echo "#define USE_KQEMU 1" >> $config_h
  fi
693
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
694 695 696
  echo "TARGET_ARCH=arm" >> $config_mak
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
  echo "#define TARGET_ARM 1" >> $config_h
697 698 699 700
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 已提交
701 702 703 704 705
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
706 707 708 709
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 已提交
710 711 712 713 714
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 已提交
715 716 717 718 719
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 已提交
720 721 722
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
    echo "#define USE_KQEMU 1" >> $config_h
  fi
B
bellard 已提交
723
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
B
bellard 已提交
724 725 726
  echo "TARGET_ARCH=mips" >> $config_mak
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
  echo "#define TARGET_MIPS 1" >> $config_h
B
bellard 已提交
727 728 729 730 731
else
  echo "Unsupported target CPU"
  exit 1
fi
if test "$target_bigendian" = "yes" ; then
732 733
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
B
bellard 已提交
734
fi
735 736 737
if test "$target_softmmu" = "yes" ; then
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
B
bellard 已提交
738
fi
B
bellard 已提交
739 740 741 742
if test "$target_user_only" = "yes" ; then
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
fi
743

B
bellard 已提交
744 745 746 747
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 已提交
748 749 750 751
# sdl defines

if test "$target_user_only" = "no"; then
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
B
bellard 已提交
752
        sdl1=$sdl_static
B
bellard 已提交
753
    else
B
bellard 已提交
754 755 756 757 758 759 760 761
        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 已提交
762 763
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
        fi
B
bellard 已提交
764 765 766 767 768
        echo -n "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
        if [ "${aa}" = "yes" ] ; then
            echo -n " `aalib-config --cflags`" >> $config_mak ;
        fi
        echo "" >> $config_mak
B
bellard 已提交
769 770 771
    fi
fi

772 773 774 775 776
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi

777
done # for target in $targets
B
bellard 已提交
778 779 780 781 782 783 784 785 786 787 788 789 790

# 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

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