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

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

230 231 232 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
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 已提交
273 274 275 276
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"

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

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

B
bellard 已提交
304 305 306 307 308 309 310
if test -z "$cross_prefix" ; then

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

fi

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

B
bellard 已提交
343 344 345
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 已提交
346
fi
B
bellard 已提交
347

B
bellard 已提交
348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364
# 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 已提交
365 366 367 368 369 370 371
##########################################
# SDL probe

sdl_too_old=no

if test -z "$sdl" ; then

372 373
sdl_config="sdl-config"
sdl=no
B
bellard 已提交
374
sdl_static=no
375 376 377 378 379 380 381

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 已提交
382 383 384 385 386 387
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

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

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

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

B
bellard 已提交
409 410 411 412
fi # static link

fi # sdl compile test

413 414
fi # cross compilation
fi # -z $sdl
B
bellard 已提交
415 416 417 418 419 420

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

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

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

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

B
bellard 已提交
487
#echo "Creating $config_mak and $config_h"
B
bellard 已提交
488

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

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

620
# XXX: suppress that
B
bellard 已提交
621
if [ "$bsd" = "yes" ] ; then
622 623
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
B
bellard 已提交
624 625 626
  echo "#define _BSD 1" >> $config_h
fi

627
for target in $target_list; do
628 629 630 631 632 633

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

649
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
650
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
651 652 653 654 655 656
    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 已提交
657
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
658 659

mkdir -p $target_dir
B
bellard 已提交
660
mkdir -p $target_dir/fpu
661
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
B
bellard 已提交
662 663
  mkdir -p $target_dir/nwfpe
fi
B
bellard 已提交
664 665 666
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
B
bellard 已提交
667

668 669 670 671 672
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 已提交
673

674 675
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
676 677 678

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
679 680 681 682 683

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

B
bellard 已提交
738 739 740 741
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 已提交
742 743 744 745
# sdl defines

if test "$target_user_only" = "no"; then
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
B
bellard 已提交
746
        sdl1=$sdl_static
B
bellard 已提交
747
    else
B
bellard 已提交
748 749 750 751 752 753 754 755
        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 已提交
756 757
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
        fi
B
bellard 已提交
758 759 760 761 762
        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 已提交
763 764 765
    fi
fi

766 767 768 769 770
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi

771
done # for target in $targets
B
bellard 已提交
772 773 774 775 776 777 778 779 780 781 782 783 784

# 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

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