configure 23.7 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"
  ;;
P
pbrook 已提交
54
  sparc|sun4[muv])
B
bellard 已提交
55 56 57 58 59
    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"
;;
B
bellard 已提交
128 129 130
SunOS)
solaris="yes"
;;
131
*)
B
bellard 已提交
132
oss="yes"
B
bellard 已提交
133
linux="yes"
134
user="yes"
B
bellard 已提交
135
if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
B
bellard 已提交
136 137
    kqemu="yes"
fi
B
bellard 已提交
138
;;
B
bellard 已提交
139 140
esac

B
bellard 已提交
141
if [ "$bsd" = "yes" ] ; then
142
  if [ "$darwin" != "yes" ] ; then
143 144
    make="gmake"
  fi
B
bellard 已提交
145 146
fi

B
bellard 已提交
147 148 149 150 151 152
if [ "$solaris" = "yes" ] ; then
    make="gmake"
    install="ginstall"
    solarisrev=`uname -r | cut -f2 -d.`
fi

B
bellard 已提交
153
# find source path
P
pbrook 已提交
154 155
source_path=`dirname "$0"`
if [ -z "$source_path" ]; then
B
bellard 已提交
156
    source_path=`pwd`
P
pbrook 已提交
157 158 159 160
else
    source_path=`cd "$source_path"; pwd`
fi
if test "$source_path" = `pwd` ; then
B
bellard 已提交
161
    source_path_used="no"
P
pbrook 已提交
162 163
else
    source_path_used="yes"
B
bellard 已提交
164 165 166
fi

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

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

248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271
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]"
272
echo "  --install=INSTALL        use specified install [$install]"
273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291
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 已提交
292 293 294 295
cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
strip="${cross_prefix}${strip}"

296 297 298 299 300 301 302 303 304 305
# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF

if $cc -c -o $TMPO $TMPC 2>/dev/null ; then
  : C compiler works ok
else
    echo "ERROR: \"$cc\" either does not exist or does not work"
    exit 1
B
bellard 已提交
306 307
fi

B
bellard 已提交
308
if test "$mingw32" = "yes" ; then
B
bellard 已提交
309
    linux="no"
B
bellard 已提交
310 311
    EXESUF=".exe"
    gdbstub="no"
B
bellard 已提交
312
    oss="no"
B
bellard 已提交
313 314 315
    if [ "$cpu" = "i386" ] ; then
        kqemu="yes"
    fi
B
bellard 已提交
316 317
fi

B
bellard 已提交
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
#
# Solaris specific configure tool chain decisions
#
if test "$solaris" = "yes" ; then
  #
  # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
  # override the check with --disable-gcc-check
  # 
  if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
    solgcc=`which $cc`
    if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
      echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
      echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
      echo "or get the latest patch from SunSolve for gcc"
      exit 1
    fi
  fi
  solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
  if test -z "$solinst" ; then
    echo "Solaris install program not found. Use --install=/usr/ucb/install or"
    echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
    echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
    exit 1
  fi
  if test "$solinst" = "/usr/sbin/install" ; then
    echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
    echo "try ginstall from the GNU fileutils available from www.blastwave.org"
    echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
    exit 1
  fi
  sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
  if test -z "$sol_ar" ; then
    echo "Error: No path includes ar"
    if test -f /usr/ccs/bin/ar ; then
      echo "Add /usr/ccs/bin to your path and rerun configure"
    fi
    exit 1
  fi
fi 


B
bellard 已提交
359 360
if test -z "$target_list" ; then
# these targets are portable
361 362 363
    if [ "$softmmu" = "yes" ] ; then
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
    fi
B
bellard 已提交
364
# the following are Linux specific
365
    if [ "$user" = "yes" ] ; then
366
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
B
bellard 已提交
367
    fi
368
else
369
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
B
bellard 已提交
370
fi
371 372 373 374
if test -z "$target_list" ; then
    echo "No targets enabled"
    exit 1
fi
B
bellard 已提交
375

B
bellard 已提交
376 377 378 379 380 381 382
if test -z "$cross_prefix" ; then

# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
383 384
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
B
bellard 已提交
385 386 387 388 389 390 391 392 393 394 395 396
}
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
397
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 已提交
398 399 400 401 402
    bigendian="yes"
fi

fi

B
bellard 已提交
403 404 405 406 407 408
# 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 已提交
409
# check gcc options support
B
bellard 已提交
410 411 412 413 414
cat > $TMPC <<EOF
int main(void) {
}
EOF

B
bellard 已提交
415 416 417
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 已提交
418
fi
B
bellard 已提交
419

420
# Check for gcc4, error if pre-gcc4 
B
bellard 已提交
421 422
if test "$check_gcc" = "yes" ; then
    cat > $TMPC <<EOF
423 424
#if __GNUC__ < 4
#error gcc3
B
bellard 已提交
425 426 427
#endif
int main(){return 0;}
EOF
428
    if $cc -o $TMPO $TMPC 2>/dev/null ; then
B
bellard 已提交
429 430 431 432 433 434 435 436
        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 已提交
437 438 439 440 441 442 443
##########################################
# SDL probe

sdl_too_old=no

if test -z "$sdl" ; then

444 445
sdl_config="sdl-config"
sdl=no
B
bellard 已提交
446
sdl_static=no
447 448 449 450 451 452 453

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 已提交
454 455 456 457 458 459
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

460 461
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 已提交
462 463 464 465 466
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
B
bellard 已提交
467 468 469 470 471 472 473

# 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 已提交
474
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
B
bellard 已提交
475 476 477 478
fi

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

B
bellard 已提交
481 482 483 484
fi # static link

fi # sdl compile test

485 486
fi # cross compilation
fi # -z $sdl
B
bellard 已提交
487

488
# Check if tools are available to build documentation.
P
pbrook 已提交
489
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
490 491 492
  build_docs="yes"
fi

B
bellard 已提交
493 494 495 496 497
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
    prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
B
bellard 已提交
498
datadir="$prefix"
B
bellard 已提交
499
docdir="$prefix"
B
bellard 已提交
500 501 502 503 504
bindir="$prefix"
else
if test -z "$prefix" ; then
    prefix="/usr/local"
fi
505
mandir="$prefix/share/man"
B
bellard 已提交
506
datadir="$prefix/share/qemu"
B
bellard 已提交
507
docdir="$prefix/share/doc/qemu"
B
bellard 已提交
508 509
bindir="$prefix/bin"
fi
510

B
bellard 已提交
511
echo "Install prefix    $prefix"
B
bellard 已提交
512
echo "BIOS directory    $datadir"
B
bellard 已提交
513 514 515
echo "binary directory  $bindir"
if test "$mingw32" = "no" ; then
echo "Manual directory  $mandir"
B
bellard 已提交
516
echo "ELF interp prefix $interp_prefix"
B
bellard 已提交
517
fi
518
echo "Source path       $source_path"
B
bellard 已提交
519
echo "C compiler        $cc"
B
bellard 已提交
520
echo "Host C compiler   $host_cc"
B
bellard 已提交
521
echo "make              $make"
522
echo "install           $install"
B
bellard 已提交
523
echo "host CPU          $cpu"
B
bellard 已提交
524
echo "host big endian   $bigendian"
525
echo "target list       $target_list"
B
bellard 已提交
526
echo "gprof enabled     $gprof"
527
echo "profiler          $profiler"
B
bellard 已提交
528
echo "static build      $static"
529 530 531
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
532
echo "SDL support       $sdl"
B
bellard 已提交
533 534 535
if test "$sdl" != "no" ; then
    echo "SDL static link   $sdl_static"
fi
B
bellard 已提交
536
echo "mingw32 support   $mingw32"
B
bellard 已提交
537
echo "Adlib support     $adlib"
538 539 540 541 542 543 544 545 546 547 548
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
549 550 551
    fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
else
    fmod_support=""
B
bellard 已提交
552
fi
553
echo "FMOD support      $fmod $fmod_support"
B
bellard 已提交
554
echo "kqemu support     $kqemu"
555
echo "Documentation     $build_docs"
B
bellard 已提交
556

557
if test $sdl_too_old = "yes"; then
B
bellard 已提交
558
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
559
fi
B
bellard 已提交
560 561 562
#if test "$sdl_static" = "no"; then
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
563 564
config_mak="config-host.mak"
config_h="config-host.h"
B
bellard 已提交
565

B
bellard 已提交
566
#echo "Creating $config_mak and $config_h"
B
bellard 已提交
567

568
echo "# Automatically generated by configure - do not modify" > $config_mak
P
pbrook 已提交
569
echo "# Configured with: $0 $@" >> $config_mak
570
echo "/* Automatically generated by configure - do not modify */" > $config_h
B
bellard 已提交
571

572
echo "prefix=$prefix" >> $config_mak
B
bellard 已提交
573
echo "bindir=$bindir" >> $config_mak
574
echo "mandir=$mandir" >> $config_mak
B
bellard 已提交
575
echo "datadir=$datadir" >> $config_mak
B
bellard 已提交
576
echo "docdir=$docdir" >> $config_mak
B
bellard 已提交
577
echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
578
echo "MAKE=$make" >> $config_mak
579
echo "INSTALL=$install" >> $config_mak
580
echo "CC=$cc" >> $config_mak
B
bellard 已提交
581
if test "$have_gcc3_options" = "yes" ; then
582
  echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
B
bellard 已提交
583
fi
584 585 586 587 588
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 已提交
589
echo "EXESUF=$EXESUF" >> $config_mak
590 591 592
if test "$cpu" = "i386" ; then
  echo "ARCH=i386" >> $config_mak
  echo "#define HOST_I386 1" >> $config_h
B
bellard 已提交
593 594 595
elif test "$cpu" = "x86_64" ; then
  echo "ARCH=x86_64" >> $config_mak
  echo "#define HOST_X86_64 1" >> $config_h
596 597 598
elif test "$cpu" = "armv4b" ; then
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
B
bellard 已提交
599
elif test "$cpu" = "armv4l" ; then
600 601
  echo "ARCH=arm" >> $config_mak
  echo "#define HOST_ARM 1" >> $config_h
B
bellard 已提交
602
elif test "$cpu" = "powerpc" ; then
603 604
  echo "ARCH=ppc" >> $config_mak
  echo "#define HOST_PPC 1" >> $config_h
B
bellard 已提交
605
elif test "$cpu" = "mips" ; then
606 607
  echo "ARCH=mips" >> $config_mak
  echo "#define HOST_MIPS 1" >> $config_h
B
bellard 已提交
608
elif test "$cpu" = "s390" ; then
609 610
  echo "ARCH=s390" >> $config_mak
  echo "#define HOST_S390 1" >> $config_h
B
bellard 已提交
611
elif test "$cpu" = "alpha" ; then
612 613
  echo "ARCH=alpha" >> $config_mak
  echo "#define HOST_ALPHA 1" >> $config_h
B
bellard 已提交
614
elif test "$cpu" = "sparc" ; then
615 616
  echo "ARCH=sparc" >> $config_mak
  echo "#define HOST_SPARC 1" >> $config_h
B
bellard 已提交
617
elif test "$cpu" = "sparc64" ; then
618 619
  echo "ARCH=sparc64" >> $config_mak
  echo "#define HOST_SPARC64 1" >> $config_h
B
bellard 已提交
620
elif test "$cpu" = "ia64" ; then
621 622
  echo "ARCH=ia64" >> $config_mak
  echo "#define HOST_IA64 1" >> $config_h
B
bellard 已提交
623
elif test "$cpu" = "m68k" ; then
B
bellard 已提交
624 625
  echo "ARCH=m68k" >> $config_mak
  echo "#define HOST_M68K 1" >> $config_h
B
bellard 已提交
626 627 628 629 630
else
  echo "Unsupported CPU"
  exit 1
fi
if test "$bigendian" = "yes" ; then
631 632 633
  echo "WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define WORDS_BIGENDIAN 1" >> $config_h
fi
B
bellard 已提交
634
echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
B
bellard 已提交
635 636
if test "$mingw32" = "yes" ; then
  echo "CONFIG_WIN32=yes" >> $config_mak
B
bellard 已提交
637
  echo "#define CONFIG_WIN32 1" >> $config_h
B
bellard 已提交
638
elif test -f "/usr/include/byteswap.h" ; then
B
bellard 已提交
639 640
  echo "#define HAVE_BYTESWAP_H 1" >> $config_h
fi
641 642 643 644
if test "$darwin" = "yes" ; then
  echo "CONFIG_DARWIN=yes" >> $config_mak
  echo "#define CONFIG_DARWIN 1" >> $config_h
fi
B
bellard 已提交
645 646
if test "$solaris" = "yes" ; then
  echo "CONFIG_SOLARIS=yes" >> $config_mak
B
bellard 已提交
647
  echo "#define HOST_SOLARIS $solarisrev" >> $config_h
B
bellard 已提交
648
fi
B
bellard 已提交
649 650 651 652
if test "$gdbstub" = "yes" ; then
  echo "CONFIG_GDBSTUB=yes" >> $config_mak
  echo "#define CONFIG_GDBSTUB 1" >> $config_h
fi
653 654 655 656 657 658
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 已提交
659
  echo "#define CONFIG_STATIC 1" >> $config_h
B
bellard 已提交
660
fi
661 662 663
if test $profiler = "yes" ; then
  echo "#define CONFIG_PROFILER 1" >> $config_h
fi
B
bellard 已提交
664 665 666 667
if test "$slirp" = "yes" ; then
  echo "CONFIG_SLIRP=yes" >> $config_mak
  echo "#define CONFIG_SLIRP 1" >> $config_h
fi
B
bellard 已提交
668 669 670 671 672 673 674 675
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
676 677 678 679 680 681 682 683 684 685 686 687
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 已提交
688 689 690 691 692 693
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
694 695
qemu_version=`head $source_path/VERSION`
echo "VERSION=$qemu_version" >>$config_mak
P
pbrook 已提交
696
echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
697 698

echo "SRC_PATH=$source_path" >> $config_mak
P
pbrook 已提交
699 700 701
if [ "$source_path_used" = "yes" ]; then
  echo "VPATH=$source_path" >> $config_mak
fi
702
echo "TARGET_DIRS=$target_list" >> $config_mak
703 704 705
if [ "$build_docs" = "yes" ] ; then
  echo "BUILD_DOCS=yes" >> $config_mak
fi
706

707
# XXX: suppress that
B
bellard 已提交
708
if [ "$bsd" = "yes" ] ; then
709 710
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
B
bellard 已提交
711 712 713
  echo "#define _BSD 1" >> $config_h
fi

714
for target in $target_list; do
715 716 717 718 719
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"
720
[ "$target_cpu" = "armeb" ] && target_bigendian=yes
721
[ "$target_cpu" = "sparc" ] && target_bigendian=yes
B
bellard 已提交
722
[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
723
[ "$target_cpu" = "ppc" ] && target_bigendian=yes
B
bellard 已提交
724
[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
B
bellard 已提交
725
[ "$target_cpu" = "mips" ] && target_bigendian=yes
726 727 728 729
target_softmmu="no"
if expr $target : '.*-softmmu' > /dev/null ; then
  target_softmmu="yes"
fi
B
bellard 已提交
730 731 732 733
target_user_only="no"
if expr $target : '.*-user' > /dev/null ; then
  target_user_only="yes"
fi
734

735
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
736
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
737
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
P
pbrook 已提交
738
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
739 740 741 742
    echo "Note that this will disable all output from the virtual graphics card."
    exit 1;
fi

B
bellard 已提交
743
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
744 745

mkdir -p $target_dir
B
bellard 已提交
746
mkdir -p $target_dir/fpu
747
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
B
bellard 已提交
748 749
  mkdir -p $target_dir/nwfpe
fi
B
bellard 已提交
750 751 752
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
B
bellard 已提交
753

B
bellard 已提交
754 755 756 757 758 759
#
# don't use ln -sf as not all "ln -sf" over write the file/link
#
rm -f $target_dir/Makefile
ln -s $source_path/Makefile.target $target_dir/Makefile

760 761 762 763

echo "# Automatically generated by configure - do not modify" > $config_mak
echo "/* Automatically generated by configure - do not modify */" > $config_h

B
bellard 已提交
764

765 766
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
767 768 769

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
770 771 772 773 774

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 已提交
775
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
B
bellard 已提交
776 777
    echo "#define USE_KQEMU 1" >> $config_h
  fi
778
elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
779 780 781
  echo "TARGET_ARCH=arm" >> $config_mak
  echo "#define TARGET_ARCH \"arm\"" >> $config_h
  echo "#define TARGET_ARM 1" >> $config_h
782 783 784 785
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 已提交
786 787 788 789 790
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
791 792 793 794
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 已提交
795 796 797 798 799
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 已提交
800 801 802 803 804
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 已提交
805 806 807
  if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"  ; then
    echo "#define USE_KQEMU 1" >> $config_h
  fi
B
bellard 已提交
808
elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
B
bellard 已提交
809 810 811
  echo "TARGET_ARCH=mips" >> $config_mak
  echo "#define TARGET_ARCH \"mips\"" >> $config_h
  echo "#define TARGET_MIPS 1" >> $config_h
B
bellard 已提交
812 813 814 815
elif test "$target_cpu" = "sh4" ; then
  echo "TARGET_ARCH=sh4" >> $config_mak
  echo "#define TARGET_ARCH \"sh4\"" >> $config_h
  echo "#define TARGET_SH4 1" >> $config_h
B
bellard 已提交
816 817 818 819 820
else
  echo "Unsupported target CPU"
  exit 1
fi
if test "$target_bigendian" = "yes" ; then
821 822
  echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
  echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
B
bellard 已提交
823
fi
824 825 826
if test "$target_softmmu" = "yes" ; then
  echo "CONFIG_SOFTMMU=yes" >> $config_mak
  echo "#define CONFIG_SOFTMMU 1" >> $config_h
B
bellard 已提交
827
fi
B
bellard 已提交
828 829 830 831
if test "$target_user_only" = "yes" ; then
  echo "CONFIG_USER_ONLY=yes" >> $config_mak
  echo "#define CONFIG_USER_ONLY 1" >> $config_h
fi
832

B
bellard 已提交
833 834 835 836
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 已提交
837 838 839 840
# sdl defines

if test "$target_user_only" = "no"; then
    if test "$target_softmmu" = "no" -o "$static" = "yes"; then
B
bellard 已提交
841
        sdl1=$sdl_static
B
bellard 已提交
842
    else
B
bellard 已提交
843 844 845 846 847 848 849 850
        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 已提交
851 852
            echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
        fi
B
bellard 已提交
853
        if [ "${aa}" = "yes" ] ; then
854 855 856
            echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
        else
            echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
B
bellard 已提交
857
        fi
B
bellard 已提交
858 859 860
    fi
fi

861 862 863 864 865
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi

866
done # for target in $targets
B
bellard 已提交
867 868 869 870 871 872 873 874

# 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
B
bellard 已提交
875
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
B
bellard 已提交
876
    for f in $FILES ; do
B
bellard 已提交
877 878
        rm -f $f
        ln -s $source_path/$f $f
B
bellard 已提交
879 880 881
    done
fi

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