configure 23.6 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}"

P
pbrook 已提交
296
if [ ! -x "`which $cc`" ] ; then
B
bellard 已提交
297 298 299 300
    echo "Compiler $cc could not be found"
    exit
fi

B
bellard 已提交
301
if test "$mingw32" = "yes" ; then
B
bellard 已提交
302
    linux="no"
B
bellard 已提交
303 304
    EXESUF=".exe"
    gdbstub="no"
B
bellard 已提交
305
    oss="no"
B
bellard 已提交
306 307 308
    if [ "$cpu" = "i386" ] ; then
        kqemu="yes"
    fi
B
bellard 已提交
309 310
fi

B
bellard 已提交
311 312 313 314 315 316 317 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
#
# 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 已提交
352 353
if test -z "$target_list" ; then
# these targets are portable
354 355 356
    if [ "$softmmu" = "yes" ] ; then
        target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
    fi
B
bellard 已提交
357
# the following are Linux specific
358
    if [ "$user" = "yes" ] ; then
359
        target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
B
bellard 已提交
360
    fi
361
else
362
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
B
bellard 已提交
363
fi
364 365 366 367
if test -z "$target_list" ; then
    echo "No targets enabled"
    exit 1
fi
B
bellard 已提交
368

B
bellard 已提交
369 370 371 372 373 374 375
if test -z "$cross_prefix" ; then

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

fi

B
bellard 已提交
396 397 398 399 400 401
# 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 已提交
402
# check gcc options support
B
bellard 已提交
403 404 405 406 407
cat > $TMPC <<EOF
int main(void) {
}
EOF

B
bellard 已提交
408 409 410
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 已提交
411
fi
B
bellard 已提交
412

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

sdl_too_old=no

if test -z "$sdl" ; then

437 438
sdl_config="sdl-config"
sdl=no
B
bellard 已提交
439
sdl_static=no
440 441 442 443 444 445 446

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 已提交
447 448 449 450 451 452
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

453 454
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 已提交
455 456 457 458 459
if test "$_sdlversion" -lt 121 ; then
sdl_too_old=yes
else
sdl=yes
fi
B
bellard 已提交
460 461 462 463 464 465 466

# 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 已提交
467
  sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
B
bellard 已提交
468 469 470 471
fi

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

B
bellard 已提交
474 475 476 477
fi # static link

fi # sdl compile test

478 479
fi # cross compilation
fi # -z $sdl
B
bellard 已提交
480

481
# Check if tools are available to build documentation.
P
pbrook 已提交
482
if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
483 484 485
  build_docs="yes"
fi

B
bellard 已提交
486 487 488 489 490
if test "$mingw32" = "yes" ; then
if test -z "$prefix" ; then
    prefix="/c/Program Files/Qemu"
fi
mandir="$prefix"
B
bellard 已提交
491
datadir="$prefix"
B
bellard 已提交
492
docdir="$prefix"
B
bellard 已提交
493 494 495 496 497
bindir="$prefix"
else
if test -z "$prefix" ; then
    prefix="/usr/local"
fi
498
mandir="$prefix/share/man"
B
bellard 已提交
499
datadir="$prefix/share/qemu"
B
bellard 已提交
500
docdir="$prefix/share/doc/qemu"
B
bellard 已提交
501 502
bindir="$prefix/bin"
fi
503

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

550
if test $sdl_too_old = "yes"; then
B
bellard 已提交
551
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
552
fi
B
bellard 已提交
553 554 555
#if test "$sdl_static" = "no"; then
#  echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
#fi
556 557
config_mak="config-host.mak"
config_h="config-host.h"
B
bellard 已提交
558

B
bellard 已提交
559
#echo "Creating $config_mak and $config_h"
B
bellard 已提交
560

561
echo "# Automatically generated by configure - do not modify" > $config_mak
P
pbrook 已提交
562
echo "# Configured with: $0 $@" >> $config_mak
563
echo "/* Automatically generated by configure - do not modify */" > $config_h
B
bellard 已提交
564

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

echo "SRC_PATH=$source_path" >> $config_mak
P
pbrook 已提交
692 693 694
if [ "$source_path_used" = "yes" ]; then
  echo "VPATH=$source_path" >> $config_mak
fi
695
echo "TARGET_DIRS=$target_list" >> $config_mak
696 697 698
if [ "$build_docs" = "yes" ] ; then
  echo "BUILD_DOCS=yes" >> $config_mak
fi
699

700
# XXX: suppress that
B
bellard 已提交
701
if [ "$bsd" = "yes" ] ; then
702 703
  echo "#define O_LARGEFILE 0" >> $config_h
  echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
B
bellard 已提交
704 705 706
  echo "#define _BSD 1" >> $config_h
fi

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

728
if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
729
        -a "$sdl" = "no" -a "$cocoa" = "no" ; then
730
    echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
P
pbrook 已提交
731
    echo "To build QEMU without graphical output configure with --disable-gfx-check"
732 733 734 735
    echo "Note that this will disable all output from the virtual graphics card."
    exit 1;
fi

B
bellard 已提交
736
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
737 738

mkdir -p $target_dir
B
bellard 已提交
739
mkdir -p $target_dir/fpu
740
if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
B
bellard 已提交
741 742
  mkdir -p $target_dir/nwfpe
fi
B
bellard 已提交
743 744 745
if test "$target_user_only" = "no" ; then
  mkdir -p $target_dir/slirp
fi
B
bellard 已提交
746

B
bellard 已提交
747 748 749 750 751 752
#
# 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

753 754 755 756

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

B
bellard 已提交
757

758 759
echo "include ../config-host.mak" >> $config_mak
echo "#include \"../config-host.h\"" >> $config_h
760 761 762

interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
763 764 765 766 767

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

B
bellard 已提交
826 827 828 829
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 已提交
830 831 832 833
# sdl defines

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

854 855 856 857 858
if test "$cocoa" = "yes" ; then
    echo "#define CONFIG_COCOA 1" >> $config_h
    echo "CONFIG_COCOA=yes" >> $config_mak
fi

859
done # for target in $targets
B
bellard 已提交
860 861 862 863 864 865 866 867

# 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 已提交
868
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
B
bellard 已提交
869
    for f in $FILES ; do
B
bellard 已提交
870 871
        rm -f $f
        ln -s $source_path/$f $f
B
bellard 已提交
872 873 874
    done
fi

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