configure 56.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
TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
B
bellard 已提交
17

J
Juan Quintela 已提交
18
trap "rm -f $TMPC $TMPO $TMPE ; exit" 0 2 3 15
19

20
compile_object() {
J
Juan Quintela 已提交
21
  $cc $QEMU_CFLAGS -c -o $TMPO $TMPC > /dev/null 2> /dev/null
22 23 24 25 26
}

compile_prog() {
  local_cflags="$1"
  local_ldflags="$2"
J
Juan Quintela 已提交
27
  $cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags > /dev/null 2> /dev/null
28 29
}

B
bellard 已提交
30
# default parameters
31
cpu=""
B
bellard 已提交
32
prefix=""
33
interp_prefix="/usr/gnemul/qemu-%M"
B
bellard 已提交
34
static="no"
35
sparc_cpu=""
B
bellard 已提交
36 37
cross_prefix=""
cc="gcc"
M
malc 已提交
38
audio_drv_list=""
M
malc 已提交
39 40
audio_card_list="ac97 es1370 sb16"
audio_possible_cards="ac97 es1370 sb16 cs4231a adlib gus"
B
bellard 已提交
41 42 43
host_cc="gcc"
ar="ar"
make="make"
44
install="install"
45 46
objcopy="objcopy"
ld="ld"
J
Juan Quintela 已提交
47
helper_cflags=""
J
Juan Quintela 已提交
48
libs_softmmu=""
J
Juan Quintela 已提交
49
libs_tools=""
50
audio_pt_int=""
51 52 53 54 55 56 57 58 59

# parse CC options first
for opt do
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  case "$opt" in
  --cross-prefix=*) cross_prefix="$optarg"
  ;;
  --cc=*) cc="$optarg"
  ;;
60 61
  --cpu=*) cpu="$optarg"
  ;;
J
Juan Quintela 已提交
62
  --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
63 64 65
  ;;
  --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
  ;;
66 67 68
  --sparc_cpu=*)
    sparc_cpu="$optarg"
    case $sparc_cpu in
69
    v7|v8|v8plus|v8plusa)
70 71 72 73 74 75 76 77 78 79 80
      cpu="sparc"
    ;;
    v9)
      cpu="sparc64"
    ;;
    *)
      echo "undefined SPARC architecture. Exiting";
      exit 1
    ;;
    esac
  ;;
81 82 83 84 85 86 87 88
  esac
done
# OS specific
# Using uname is really, really broken.  Once we have the right set of checks
# we can eliminate it's usage altogether

cc="${cross_prefix}${cc}"
ar="${cross_prefix}${ar}"
89 90
objcopy="${cross_prefix}${objcopy}"
ld="${cross_prefix}${ld}"
91 92 93 94 95 96

# check that the C compiler works.
cat > $TMPC <<EOF
int main(void) {}
EOF

97
if compile_object ; then
98 99 100 101 102 103 104 105 106 107 108 109 110
  : C compiler works ok
else
    echo "ERROR: \"$cc\" either does not exist or does not work"
    exit 1
fi

check_define() {
cat > $TMPC <<EOF
#if !defined($1)
#error Not defined
#endif
int main(void) { return 0; }
EOF
111
  compile_object
112 113
}

114 115 116 117
if test ! -z "$cpu" ; then
  # command line argument
  :
elif check_define __i386__ ; then
118 119 120
  cpu="i386"
elif check_define __x86_64__ ; then
  cpu="x86_64"
B
blueswir1 已提交
121 122 123 124 125 126 127 128
elif check_define __sparc__ ; then
  # We can't check for 64 bit (when gcc is biarch) or V8PLUSA
  # They must be specified using --sparc_cpu
  if check_define __arch64__ ; then
    cpu="sparc64"
  else
    cpu="sparc"
  fi
M
malc 已提交
129 130 131 132 133 134
elif check_define _ARCH_PPC ; then
  if check_define _ARCH_PPC64 ; then
    cpu="ppc64"
  else
    cpu="ppc"
  fi
135
else
M
malc 已提交
136
  cpu=`uname -m`
137 138
fi

B
bellard 已提交
139
target_list=""
B
bellard 已提交
140
case "$cpu" in
141 142 143
  alpha|cris|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|sparc64)
    cpu="$cpu"
  ;;
B
bellard 已提交
144
  i386|i486|i586|i686|i86pc|BePC)
145
    cpu="i386"
B
bellard 已提交
146
  ;;
A
aurel32 已提交
147 148 149
  x86_64|amd64)
    cpu="x86_64"
  ;;
B
bellard 已提交
150
  armv*b)
151 152
    cpu="armv4b"
  ;;
B
bellard 已提交
153
  armv*l)
B
bellard 已提交
154 155
    cpu="armv4l"
  ;;
A
aurel32 已提交
156 157 158
  parisc|parisc64)
    cpu="hppa"
  ;;
T
ths 已提交
159
  s390*)
B
bellard 已提交
160 161
    cpu="s390"
  ;;
162
  sparc|sun4[cdmuv])
B
bellard 已提交
163 164
    cpu="sparc"
  ;;
B
bellard 已提交
165 166 167 168
  *)
    cpu="unknown"
  ;;
esac
J
Juan Quintela 已提交
169 170 171 172 173 174 175 176 177 178 179

# Default value for a variable defining feature "foo"
#  * foo="no", feature will only be used if --enable-foo arg is given
#  * foo="", feature will be searched for, and if found, will be used
#  * foo="yes", this value vill only be set by --enable-foo flag.
#                   feature will searched for, if not found, configure exits with error
#
# Always add --enable-foo and --disable-foo command line args.  Distributions want
# to ensure that several features are compiled in, and it is impossible without a
# --enable-foo that exits if feature is not found

180
brlapi=""
181
vde=""
182
vnc_tls=""
183
vnc_sasl=""
184

B
bellard 已提交
185
gprof="no"
186
debug_tcg="no"
P
Paul Brook 已提交
187
debug="no"
188
sparse="no"
189
strip_opt="yes"
B
bellard 已提交
190
bigendian="no"
B
bellard 已提交
191 192
mingw32="no"
EXESUF=""
B
bellard 已提交
193
slirp="yes"
B
bellard 已提交
194 195
fmod_lib=""
fmod_inc=""
B
blueswir1 已提交
196
oss_lib=""
197
bsd="no"
B
bellard 已提交
198
linux="no"
B
blueswir1 已提交
199
solaris="no"
200
profiler="no"
201
cocoa="no"
202
softmmu="yes"
203 204
linux_user="no"
darwin_user="no"
B
blueswir1 已提交
205
bsd_user="no"
P
Paul Brook 已提交
206
guest_base=""
207
build_docs="yes"
208
uname_release=""
B
balrog 已提交
209
curses="yes"
A
Alexander Graf 已提交
210
curl="yes"
211
io_thread="no"
212
nptl="yes"
213
mixemu="no"
B
balrog 已提交
214
bluez="yes"
215
kvm="no"
A
aliguori 已提交
216
kerneldir=""
M
malc 已提交
217
aix="no"
T
ths 已提交
218
blobs="yes"
219
fdt="yes"
220
sdl="yes"
221
xen="yes"
P
pbrook 已提交
222
pkgversion=""
B
bellard 已提交
223 224

# OS specific
225 226 227 228
if check_define __linux__ ; then
  targetos="Linux"
elif check_define _WIN32 ; then
  targetos='MINGW32'
229 230 231 232
elif check_define __OpenBSD__ ; then
  targetos='OpenBSD'
elif check_define __sun__ ; then
  targetos='SunOS'
233 234 235
else
  targetos=`uname -s`
fi
236

B
bellard 已提交
237
case $targetos in
B
bellard 已提交
238
CYGWIN*)
239
  mingw32="yes"
J
Juan Quintela 已提交
240
  QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
241
  audio_possible_drivers="sdl"
B
bellard 已提交
242
;;
B
bellard 已提交
243
MINGW32*)
244 245
  mingw32="yes"
  audio_possible_drivers="dsound sdl fmod"
B
bellard 已提交
246
;;
T
ths 已提交
247
GNU/kFreeBSD)
248 249
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
T
ths 已提交
250
;;
B
bellard 已提交
251
FreeBSD)
252 253 254
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
B
bellard 已提交
255
;;
256
DragonFly)
257 258 259
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
260
;;
B
bellard 已提交
261
NetBSD)
262 263 264 265
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd"
  oss_lib="-lossaudio"
B
bellard 已提交
266 267
;;
OpenBSD)
268 269 270 271
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd"
  oss_lib="-lossaudio"
B
bellard 已提交
272
;;
273
Darwin)
274 275 276 277 278
  bsd="yes"
  darwin="yes"
  # on Leopard most of the system is 32-bit, so we have to ask the kernel it if we can
  # run 64-bit userspace code
  if [ "$cpu" = "i386" ] ; then
M
malc 已提交
279 280
    is_x86_64=`sysctl -n hw.optional.x86_64`
    [ "$is_x86_64" = "1" ] && cpu=x86_64
281 282
  fi
  if [ "$cpu" = "x86_64" ] ; then
J
Juan Quintela 已提交
283
    QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
284
    LDFLAGS="-arch x86_64 $LDFLAGS"
285
  else
J
Juan Quintela 已提交
286
    QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
287 288 289 290 291 292
  fi
  darwin_user="yes"
  cocoa="yes"
  audio_drv_list="coreaudio"
  audio_possible_drivers="coreaudio sdl fmod"
  LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
293
  libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
294
;;
B
bellard 已提交
295
SunOS)
296 297 298 299 300 301 302 303 304 305 306 307 308 309 310
  solaris="yes"
  make="gmake"
  install="ginstall"
  needs_libsunmath="no"
  solarisrev=`uname -r | cut -f2 -d.`
  # have to select again, because `uname -m` returns i86pc
  # even on an x86_64 box.
  solariscpu=`isainfo -k`
  if test "${solariscpu}" = "amd64" ; then
    cpu="x86_64"
  fi
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
    if test "$solarisrev" -le 9 ; then
      if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
        needs_libsunmath="yes"
311 312 313
        QEMU_CFLAGS="-I/opt/SUNWspro/prod/include/cc $QEMU_CFLAGS"
        LDFLAGS="-L/opt/SUNWspro/prod/lib -R/opt/SUNWspro/prod/lib $LDFLAGS"
        LIBS="-lsunmath $LIBS"
314 315 316 317 318 319 320
      else
        echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
        echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
        echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
        echo "Studio 11 can be downloaded from www.sun.com."
        exit 1
      fi
T
ths 已提交
321
    fi
322 323 324 325 326
  fi
  if test -f /usr/include/sys/soundcard.h ; then
    audio_drv_list="oss"
  fi
  audio_possible_drivers="oss sdl"
J
Juan Quintela 已提交
327
  QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
328
  LIBS="-lsocket -lnsl -lresolv $LIBS"
T
ths 已提交
329
;;
M
malc 已提交
330
AIX)
331 332
  aix="yes"
  make="gmake"
M
malc 已提交
333
;;
334
*)
335 336 337 338 339 340 341
  audio_drv_list="oss"
  audio_possible_drivers="oss alsa sdl esd pa"
  linux="yes"
  linux_user="yes"
  usb="linux"
  kvm="yes"
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
342
    audio_possible_drivers="$audio_possible_drivers fmod"
343
  fi
B
bellard 已提交
344
;;
B
bellard 已提交
345 346
esac

B
bellard 已提交
347
if [ "$bsd" = "yes" ] ; then
348
  if [ "$darwin" != "yes" ] ; then
349
    make="gmake"
350
    usb="bsd"
351
  fi
B
blueswir1 已提交
352
  bsd_user="yes"
B
bellard 已提交
353 354
fi

355 356
if test "$mingw32" = "yes" ; then
  EXESUF=".exe"
J
Juan Quintela 已提交
357
  QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
358
  LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
359 360
fi

B
bellard 已提交
361
# find source path
P
pbrook 已提交
362
source_path=`dirname "$0"`
363 364
source_path_used="no"
workdir=`pwd`
P
pbrook 已提交
365
if [ -z "$source_path" ]; then
366
    source_path=$workdir
P
pbrook 已提交
367 368
else
    source_path=`cd "$source_path"; pwd`
B
bellard 已提交
369
fi
P
pbrook 已提交
370
[ -f "$workdir/vl.c" ] || source_path_used="yes"
B
bellard 已提交
371

372
werror=""
373

B
bellard 已提交
374
for opt do
P
pbrook 已提交
375
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
B
bellard 已提交
376
  case "$opt" in
377 378
  --help|-h) show_help=yes
  ;;
379
  --prefix=*) prefix="$optarg"
B
bellard 已提交
380
  ;;
381
  --interp-prefix=*) interp_prefix="$optarg"
B
bellard 已提交
382
  ;;
383
  --source-path=*) source_path="$optarg"
P
pbrook 已提交
384
  source_path_used="yes"
B
bellard 已提交
385
  ;;
386
  --cross-prefix=*)
B
bellard 已提交
387
  ;;
388
  --cc=*)
B
bellard 已提交
389
  ;;
390
  --host-cc=*) host_cc="$optarg"
B
bellard 已提交
391
  ;;
392
  --make=*) make="$optarg"
B
bellard 已提交
393
  ;;
394 395
  --install=*) install="$optarg"
  ;;
396
  --extra-cflags=*)
B
bellard 已提交
397
  ;;
398
  --extra-ldflags=*)
B
bellard 已提交
399
  ;;
400
  --cpu=*)
B
bellard 已提交
401
  ;;
402
  --target-list=*) target_list="$optarg"
B
bellard 已提交
403
  ;;
B
bellard 已提交
404 405
  --enable-gprof) gprof="yes"
  ;;
B
bellard 已提交
406 407
  --static) static="yes"
  ;;
408 409
  --disable-sdl) sdl="no"
  ;;
M
malc 已提交
410
  --fmod-lib=*) fmod_lib="$optarg"
411
  ;;
412 413
  --fmod-inc=*) fmod_inc="$optarg"
  ;;
B
blueswir1 已提交
414 415
  --oss-lib=*) oss_lib="$optarg"
  ;;
416
  --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
B
bellard 已提交
417
  ;;
M
malc 已提交
418
  --audio-drv-list=*) audio_drv_list="$optarg"
B
bellard 已提交
419
  ;;
420 421 422 423
  --enable-debug-tcg) debug_tcg="yes"
  ;;
  --disable-debug-tcg) debug_tcg="no"
  ;;
P
Paul Brook 已提交
424 425 426 427 428 429
  --enable-debug)
      # Enable debugging options that aren't excessively noisy
      debug_tcg="yes"
      debug="yes"
      strip_opt="no"
  ;;
430 431 432 433
  --enable-sparse) sparse="yes"
  ;;
  --disable-sparse) sparse="no"
  ;;
434 435
  --disable-strip) strip_opt="no"
  ;;
436 437
  --disable-vnc-tls) vnc_tls="no"
  ;;
438 439
  --enable-vnc-tls) vnc_tls="yes"
  ;;
440 441
  --disable-vnc-sasl) vnc_sasl="no"
  ;;
442 443
  --enable-vnc-sasl) vnc_sasl="yes"
  ;;
B
bellard 已提交
444
  --disable-slirp) slirp="no"
445
  ;;
446
  --disable-vde) vde="no"
447
  ;;
448 449
  --enable-vde) vde="yes"
  ;;
450 451
  --disable-xen) xen="no"
  ;;
A
aurel32 已提交
452 453
  --disable-brlapi) brlapi="no"
  ;;
454 455
  --enable-brlapi) brlapi="yes"
  ;;
B
balrog 已提交
456 457
  --disable-bluez) bluez="no"
  ;;
A
aliguori 已提交
458 459
  --disable-kvm) kvm="no"
  ;;
460 461
  --enable-profiler) profiler="yes"
  ;;
462 463 464 465
  --enable-cocoa)
      cocoa="yes" ;
      sdl="no" ;
      audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
466
  ;;
P
pbrook 已提交
467
  --disable-system) softmmu="no"
468
  ;;
P
pbrook 已提交
469
  --enable-system) softmmu="yes"
470
  ;;
471 472 473 474 475 476
  --disable-user)
      linux_user="no" ;
      bsd_user="no" ;
      darwin_user="no"
  ;;
  --enable-user) ;;
477
  --disable-linux-user) linux_user="no"
478
  ;;
479 480 481 482 483
  --enable-linux-user) linux_user="yes"
  ;;
  --disable-darwin-user) darwin_user="no"
  ;;
  --enable-darwin-user) darwin_user="yes"
484
  ;;
B
blueswir1 已提交
485 486 487 488
  --disable-bsd-user) bsd_user="no"
  ;;
  --enable-bsd-user) bsd_user="yes"
  ;;
P
Paul Brook 已提交
489 490 491 492
  --enable-guest-base) guest_base="yes"
  ;;
  --disable-guest-base) guest_base="no"
  ;;
493 494
  --enable-uname-release=*) uname_release="$optarg"
  ;;
495 496
  --sparc_cpu=*)
  ;;
497 498 499 500
  --enable-werror) werror="yes"
  ;;
  --disable-werror) werror="no"
  ;;
B
balrog 已提交
501 502
  --disable-curses) curses="no"
  ;;
A
Alexander Graf 已提交
503 504
  --disable-curl) curl="no"
  ;;
505 506
  --disable-nptl) nptl="no"
  ;;
507 508
  --enable-mixemu) mixemu="yes"
  ;;
509 510
  --enable-io-thread) io_thread="yes"
  ;;
T
ths 已提交
511 512
  --disable-blobs) blobs="no"
  ;;
A
aliguori 已提交
513 514
  --kerneldir=*) kerneldir="$optarg"
  ;;
P
pbrook 已提交
515 516
  --with-pkgversion=*) pkgversion=" ($optarg)"
  ;;
517 518
  --disable-docs) build_docs="no"
  ;;
519 520
  *) echo "ERROR: unknown option $opt"; show_help="yes"
  ;;
B
bellard 已提交
521 522 523
  esac
done

524 525
#
# If cpu ~= sparc and  sparc_cpu hasn't been defined, plug in the right
J
Juan Quintela 已提交
526
# QEMU_CFLAGS/LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
527
#
P
Paul Brook 已提交
528
host_guest_base="no"
529
case "$cpu" in
530 531
    sparc) case $sparc_cpu in
           v7|v8)
J
Juan Quintela 已提交
532
             QEMU_CFLAGS="-mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
533 534
           ;;
           v8plus|v8plusa)
J
Juan Quintela 已提交
535
             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_${sparc_cpu}__ $QEMU_CFLAGS"
536 537
           ;;
           *) # sparc_cpu not defined in the command line
J
Juan Quintela 已提交
538
             QEMU_CFLAGS="-mcpu=ultrasparc -D__sparc_v8plus__ $QEMU_CFLAGS"
539 540
           esac
           LDFLAGS="-m32 $LDFLAGS"
J
Juan Quintela 已提交
541
           QEMU_CFLAGS="-m32 -ffixed-g2 -ffixed-g3 $QEMU_CFLAGS"
542
           if test "$solaris" = "no" ; then
J
Juan Quintela 已提交
543
             QEMU_CFLAGS="-ffixed-g1 -ffixed-g6 $QEMU_CFLAGS"
J
Juan Quintela 已提交
544
             helper_cflags="-ffixed-i0"
545
           fi
546
           ;;
547
    sparc64)
J
Juan Quintela 已提交
548
           QEMU_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__ $QEMU_CFLAGS"
549
           LDFLAGS="-m64 $LDFLAGS"
J
Juan Quintela 已提交
550
           QEMU_CFLAGS="-ffixed-g5 -ffixed-g6 -ffixed-g7 $QEMU_CFLAGS"
551
           if test "$solaris" != "no" ; then
J
Juan Quintela 已提交
552
             QEMU_CFLAGS="-ffixed-g1 $QEMU_CFLAGS"
553
           fi
554
           ;;
555
    s390)
J
Juan Quintela 已提交
556
           QEMU_CFLAGS="-march=z900 $QEMU_CFLAGS"
557
           ;;
558
    i386)
J
Juan Quintela 已提交
559
           QEMU_CFLAGS="-m32 $QEMU_CFLAGS"
560
           LDFLAGS="-m32 $LDFLAGS"
J
Juan Quintela 已提交
561
           helper_cflags="-fomit-frame-pointer"
P
Paul Brook 已提交
562
           host_guest_base="yes"
563 564
           ;;
    x86_64)
J
Juan Quintela 已提交
565
           QEMU_CFLAGS="-m64 $QEMU_CFLAGS"
566
           LDFLAGS="-m64 $LDFLAGS"
P
Paul Brook 已提交
567 568 569 570
           host_guest_base="yes"
           ;;
    arm*)
           host_guest_base="yes"
571
           ;;
M
malc 已提交
572 573 574
    ppc*)
           host_guest_base="yes"
           ;;
575 576
esac

P
Paul Brook 已提交
577 578
[ -z "$guest_base" ] && guest_base="$host_guest_base"

579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597
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 "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."
J
Juan Quintela 已提交
598
echo "  --extra-cflags=CFLAGS    append extra C compiler flags QEMU_CFLAGS"
599
echo "  --extra-ldflags=LDFLAGS  append extra linker flags LDFLAGS"
600
echo "  --make=MAKE              use specified make [$make]"
601
echo "  --install=INSTALL        use specified install [$install]"
602
echo "  --static                 enable static build [$static]"
603 604
echo "  --enable-debug-tcg       enable TCG debugging"
echo "  --disable-debug-tcg      disable TCG debugging (default)"
605
echo "  --enable-debug           enable common debug build options"
606 607
echo "  --enable-sparse          enable sparse checker"
echo "  --disable-sparse         disable sparse checker (default)"
608
echo "  --disable-strip          disable stripping binaries"
609
echo "  --disable-werror         disable compilation abort on warning"
610
echo "  --disable-sdl            disable SDL"
611
echo "  --enable-cocoa           enable COCOA (Mac OS X only)"
612 613
echo "  --audio-drv-list=LIST    set audio drivers list:"
echo "                           Available drivers: $audio_possible_drivers"
M
malc 已提交
614 615
echo "  --audio-card-list=LIST   set list of emulated audio cards [$audio_card_list]"
echo "                           Available cards: $audio_possible_cards"
616
echo "  --enable-mixemu          enable mixer emulation"
617
echo "  --disable-xen            disable xen backend driver support"
A
aurel32 已提交
618
echo "  --disable-brlapi         disable BrlAPI"
619
echo "  --enable-brlapi          enable BrlAPI"
620
echo "  --disable-vnc-tls        disable TLS encryption for VNC server"
621
echo "  --enable-vnc-tls         enable TLS encryption for VNC server"
622
echo "  --disable-vnc-sasl       disable SASL encryption for VNC server"
623
echo "  --enable-vnc-sasl        enable SASL encryption for VNC server"
P
pbrook 已提交
624
echo "  --disable-curses         disable curses output"
A
Alexander Graf 已提交
625
echo "  --disable-curl           disable curl connectivity"
B
balrog 已提交
626
echo "  --disable-bluez          disable bluez stack connectivity"
A
aliguori 已提交
627
echo "  --disable-kvm            disable KVM acceleration support"
628
echo "  --disable-nptl           disable usermode NPTL support"
629 630
echo "  --enable-system          enable all system emulation targets"
echo "  --disable-system         disable all system emulation targets"
631 632
echo "  --enable-user            enable supported user emulation targets"
echo "  --disable-user           disable all user emulation targets"
633 634 635 636
echo "  --enable-linux-user      enable all linux usermode emulation targets"
echo "  --disable-linux-user     disable all linux usermode emulation targets"
echo "  --enable-darwin-user     enable all darwin usermode emulation targets"
echo "  --disable-darwin-user    disable all darwin usermode emulation targets"
B
blueswir1 已提交
637 638
echo "  --enable-bsd-user        enable all BSD usermode emulation targets"
echo "  --disable-bsd-user       disable all BSD usermode emulation targets"
P
Paul Brook 已提交
639 640 641
echo "  --enable-guest-base      enable GUEST_BASE support for usermode"
echo "                           emulation targets"
echo "  --disable-guest-base     disable GUEST_BASE support"
642 643
echo "  --fmod-lib               path to FMOD library"
echo "  --fmod-inc               path to FMOD includes"
B
blueswir1 已提交
644
echo "  --oss-lib                path to OSS library"
645
echo "  --enable-uname-release=R Return R for uname -r in usermode emulation"
646
echo "  --sparc_cpu=V            Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
647
echo "  --disable-vde            disable support for vde network"
648
echo "  --enable-vde             enable support for vde network"
649
echo "  --enable-io-thread       enable IO thread"
T
ths 已提交
650
echo "  --disable-blobs          disable installing provided firmware blobs"
A
aliguori 已提交
651
echo "  --kerneldir=PATH         look for kernel includes in PATH"
652
echo ""
T
ths 已提交
653
echo "NOTE: The object files are built at the place where configure is launched"
654 655 656
exit 1
fi

657 658 659 660
if test ! -x "$(which cgcc 2>/dev/null)"; then
    sparse="no"
fi

B
bellard 已提交
661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685
#
# Solaris specific configure tool chain decisions
#
if test "$solaris" = "yes" ; then
  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
686
fi
B
bellard 已提交
687 688


B
bellard 已提交
689 690
if test -z "$target_list" ; then
# these targets are portable
691
    if [ "$softmmu" = "yes" ] ; then
A
aurel32 已提交
692 693 694 695 696 697
        target_list="\
i386-softmmu \
x86_64-softmmu \
arm-softmmu \
cris-softmmu \
m68k-softmmu \
698
microblaze-softmmu \
A
aurel32 已提交
699 700 701 702 703 704 705 706 707 708
mips-softmmu \
mipsel-softmmu \
mips64-softmmu \
mips64el-softmmu \
ppc-softmmu \
ppcemb-softmmu \
ppc64-softmmu \
sh4-softmmu \
sh4eb-softmmu \
sparc-softmmu \
709
sparc64-softmmu \
A
aurel32 已提交
710
"
711
    fi
B
bellard 已提交
712
# the following are Linux specific
713
    if [ "$linux_user" = "yes" ] ; then
A
aurel32 已提交
714 715 716 717 718 719 720 721
        target_list="${target_list}\
i386-linux-user \
x86_64-linux-user \
alpha-linux-user \
arm-linux-user \
armeb-linux-user \
cris-linux-user \
m68k-linux-user \
722
microblaze-linux-user \
A
aurel32 已提交
723 724 725 726 727 728 729 730 731 732 733
mips-linux-user \
mipsel-linux-user \
ppc-linux-user \
ppc64-linux-user \
ppc64abi32-linux-user \
sh4-linux-user \
sh4eb-linux-user \
sparc-linux-user \
sparc64-linux-user \
sparc32plus-linux-user \
"
734 735 736
    fi
# the following are Darwin specific
    if [ "$darwin_user" = "yes" ] ; then
M
malc 已提交
737
        target_list="$target_list i386-darwin-user ppc-darwin-user "
B
bellard 已提交
738
    fi
B
blueswir1 已提交
739 740 741
# the following are BSD specific
    if [ "$bsd_user" = "yes" ] ; then
        target_list="${target_list}\
742 743 744
i386-bsd-user \
x86_64-bsd-user \
sparc-bsd-user \
B
blueswir1 已提交
745 746 747
sparc64-bsd-user \
"
    fi
748
else
749
    target_list=`echo "$target_list" | sed -e 's/,/ /g'`
B
bellard 已提交
750
fi
751 752 753 754
if test -z "$target_list" ; then
    echo "No targets enabled"
    exit 1
fi
B
bellard 已提交
755

756 757 758 759 760 761 762 763 764 765
feature_not_found() {
  feature=$1

  echo "ERROR"
  echo "ERROR: User requested feature $feature"
  echo "ERROR: configure was not able to found it"
  echo "ERROR"
  exit 1;
}

B
bellard 已提交
766 767 768 769 770 771 772
if test -z "$cross_prefix" ; then

# ---
# big/little endian test
cat > $TMPC << EOF
#include <inttypes.h>
int main(int argc, char ** argv){
773 774
        volatile uint32_t i=0x01234567;
        return (*((uint8_t*)(&i))) == 0x67;
B
bellard 已提交
775 776 777
}
EOF

778
if compile_prog "" "" ; then
B
bellard 已提交
779 780 781 782 783 784 785 786
$TMPE && bigendian="yes"
else
echo big/little test failed
fi

else

# if cross compiling, cannot launch a program, so make a static guess
787 788 789 790 791
case "$cpu" in
  armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
    bigendian=yes
  ;;
esac
B
bellard 已提交
792 793 794

fi

B
bellard 已提交
795 796
# host long bits test
hostlongbits="32"
797 798 799 800 801
case "$cpu" in
  x86_64|alpha|ia64|sparc64|ppc64)
    hostlongbits=64
  ;;
esac
B
bellard 已提交
802

803 804 805
# Check host NPTL support
cat > $TMPC <<EOF
#include <sched.h>
P
pbrook 已提交
806
#include <linux/futex.h>
807 808 809 810 811 812 813 814
void foo()
{
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
#error bork
#endif
}
EOF

815
if compile_object ; then
816 817 818 819 820
  :
else
   nptl="no"
fi

821 822 823 824 825 826 827
##########################################
# zlib check

cat > $TMPC << EOF
#include <zlib.h>
int main(void) { zlibVersion(); return 0; }
EOF
828
if compile_prog "" "-lz" ; then
829 830 831 832 833 834 835 836 837
    :
else
    echo
    echo "Error: zlib check failed"
    echo "Make sure to have the zlib libs and headers installed."
    echo
    exit 1
fi

838 839 840 841
##########################################
# xen probe

if test "$xen" = "yes" ; then
842 843
  xen_libs="-lxenstore -lxenctrl -lxenguest"
  cat > $TMPC <<EOF
844 845
#include <xenctrl.h>
#include <xs.h>
846
int main(void) { xs_daemon_open(); xc_interface_open(); return 0; }
847
EOF
848
  if compile_prog "" "$xen_libs" ; then
J
Juan Quintela 已提交
849
    libs_softmmu="$xen_libs $libs_softmmu"
850 851 852
  else
    xen="no"
  fi
853 854
fi

B
bellard 已提交
855 856 857 858 859
##########################################
# SDL probe

sdl_too_old=no

860
if test "$sdl" = "yes" ; then
J
Juan Quintela 已提交
861 862
  sdl=no
  cat > $TMPC << EOF
B
bellard 已提交
863 864 865 866
#include <SDL.h>
#undef main /* We don't want SDL to override our main() */
int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
EOF
J
Juan Quintela 已提交
867 868
  sdl_cflags=`sdl-config --cflags 2> /dev/null`
  sdl_libs=`sdl-config --libs 2> /dev/null`
869
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
870 871 872 873 874 875 876 877
    _sdlversion=`sdl-config --version | sed 's/[^0-9]//g'`
    if test "$_sdlversion" -lt 121 ; then
      sdl_too_old=yes
    else
      if test "$cocoa" = "no" ; then
        sdl=yes
      fi
    fi
A
aliguori 已提交
878

J
Juan Quintela 已提交
879 880 881 882 883 884 885
    # static link with sdl ?
    if test "$sdl" = "yes" -a "$static" = "yes" ; then
      sdl_libs=`sdl-config --static-libs 2>/dev/null`
      if test `sdl-config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` ; then
         sdl_libs="$sdl_libs `aalib-config --static-libs >2 /dev/null`"
         sdl_cflags="$sd_cflags `aalib-config --cflags >2 /dev/null`"
      fi
886
      if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
887 888 889 890 891 892
	:
      else
        sdl=no
      fi
    fi # static link
  fi # sdl compile test
893
fi
B
bellard 已提交
894

895
if test "$sdl" = "yes" ; then
J
Juan Quintela 已提交
896
  cat > $TMPC <<EOF
897 898 899 900 901 902 903 904
#include <SDL.h>
#if defined(SDL_VIDEO_DRIVER_X11)
#include <X11/XKBlib.h>
#else
#error No x11 support
#endif
int main(void) { return 0; }
EOF
905
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
906 907
    sdl_libs="$sdl_libs -lX11"
  fi
908 909 910
  if test "$mingw32" = "yes" ; then
    sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole"
  fi
J
Juan Quintela 已提交
911
  libs_softmmu="$sdl_libs $libs_softmmu"
912 913
fi

914 915
##########################################
# VNC TLS detection
916 917
if test "$vnc_tls" != "no" ; then
  cat > $TMPC <<EOF
918 919 920
#include <gnutls/gnutls.h>
int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
EOF
921 922 923 924 925 926 927 928
  vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
  vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
  if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
    vnc_tls=yes
    libs_softmmu="$vnc_tls_libs $libs_softmmu"
  else
    if test "$vnc_tls" = "yes" ; then
      feature_not_found "vnc-tls"
929
    fi
930 931
    vnc_tls=no
  fi
932 933
fi

934 935 936
##########################################
# VNC SASL detection
if test "$vnc_sasl" = "yes" ; then
937
  cat > $TMPC <<EOF
938 939 940 941
#include <sasl/sasl.h>
#include <stdio.h>
int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
EOF
942 943 944 945 946 947 948 949 950
  # Assuming Cyrus-SASL installed in /usr prefix
  vnc_sasl_cflags=""
  vnc_sasl_libs="-lsasl2"
  if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
    vnc_sasl=yes
    libs_softmmu="$vnc_sasl_libs $libs_softmmu"
  else
    if test "$vnc_sasl" = "yes" ; then
      feature_not_found "vnc-sasl"
951
    fi
952 953
    vnc_sasl=no
  fi
954 955
fi

956 957 958 959 960 961 962 963 964 965 966
##########################################
# fnmatch() probe, used for ACL routines
fnmatch="no"
cat > $TMPC << EOF
#include <fnmatch.h>
int main(void)
{
    fnmatch("foo", "foo", 0);
    return 0;
}
EOF
967
if compile_prog "" "" ; then
968 969 970
   fnmatch="yes"
fi

971 972
##########################################
# vde libraries probe
973
if test "$vde" != "no" ; then
J
Juan Quintela 已提交
974
  vde_libs="-lvdeplug"
975 976
  cat > $TMPC << EOF
#include <libvdeplug.h>
P
pbrook 已提交
977 978 979 980 981 982
int main(void)
{
    struct vde_open_args a = {0, 0, 0};
    vde_open("", "", &a);
    return 0;
}
983
EOF
984
  if compile_prog "" "$vde_libs" ; then
J
Juan Quintela 已提交
985
    vde=yes
986 987
    libs_softmmu="$vde_libs $libs_softmmu"
    libs_tools="$vde_libs $libs_tools"
988 989 990 991 992
  else
    if test "$vde" = "yes" ; then
      feature_not_found "vde"
    fi
    vde=no
J
Juan Quintela 已提交
993
  fi
994 995
fi

996
##########################################
997
# Sound support libraries probe
998

999 1000 1001 1002 1003 1004 1005 1006 1007 1008
audio_drv_probe()
{
    drv=$1
    hdr=$2
    lib=$3
    exp=$4
    cfl=$5
        cat > $TMPC << EOF
#include <$hdr>
int main(void) { $exp }
1009
EOF
1010
    if compile_prog "$cfl" "$lib" ; then
1011 1012 1013 1014 1015 1016 1017 1018 1019 1020
        :
    else
        echo
        echo "Error: $drv check failed"
        echo "Make sure to have the $drv libs and headers installed."
        echo
        exit 1
    fi
}

1021
audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
1022 1023 1024 1025 1026
for drv in $audio_drv_list; do
    case $drv in
    alsa)
    audio_drv_probe $drv alsa/asoundlib.h -lasound \
        "snd_pcm_t **handle; return snd_pcm_close(*handle);"
1027
    libs_softmmu="-lasound $libs_softmmu"
1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038
    ;;

    fmod)
    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
    audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
1039
    libs_softmmu="$fmod_lib $libs_softmmu"
1040 1041 1042 1043
    ;;

    esd)
    audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
1044
    libs_softmmu="-lesd $libs_softmmu"
1045
    audio_pt_int="yes"
1046
    ;;
M
malc 已提交
1047 1048 1049 1050

    pa)
    audio_drv_probe $drv pulse/simple.h -lpulse-simple \
        "pa_simple *s = NULL; pa_simple_free(s); return 0;"
1051
    libs_softmmu="-lpulse-simple $libs_softmmu"
1052
    audio_pt_int="yes"
M
malc 已提交
1053 1054
    ;;

1055 1056 1057 1058
    coreaudio)
      libs_softmmu="-framework CoreAudio $libs_softmmu"
    ;;

1059 1060 1061 1062 1063 1064 1065 1066 1067
    dsound)
      libs_softmmu="-lole32 -ldxguid $libs_softmmu"
    ;;

    oss)
      libs_softmmu="$oss_lib $libs_softmmu"
    ;;

    sdl|wav)
B
blueswir1 已提交
1068 1069 1070
    # XXX: Probes for CoreAudio, DirectSound, SDL(?)
    ;;

M
malc 已提交
1071
    *)
M
malc 已提交
1072
    echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
M
malc 已提交
1073 1074 1075 1076 1077 1078 1079
        echo
        echo "Error: Unknown driver '$drv' selected"
        echo "Possible drivers are: $audio_possible_drivers"
        echo
        exit 1
    }
    ;;
1080 1081
    esac
done
1082

A
aurel32 已提交
1083 1084 1085
##########################################
# BrlAPI probe

1086
if test "$brlapi" != "no" ; then
J
Juan Quintela 已提交
1087 1088
  brlapi_libs="-lbrlapi"
  cat > $TMPC << EOF
A
aurel32 已提交
1089 1090 1091
#include <brlapi.h>
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
EOF
1092
  if compile_prog "" "$brlapi_libs" ; then
J
Juan Quintela 已提交
1093
    brlapi=yes
1094
    libs_softmmu="$brlapi_libs $libs_softmmu"
1095 1096 1097 1098 1099
  else
    if test "$brlapi" = "yes" ; then
      feature_not_found "brlapi"
    fi
    brlapi=no
J
Juan Quintela 已提交
1100 1101
  fi
fi
A
aurel32 已提交
1102

B
balrog 已提交
1103 1104
##########################################
# curses probe
1105
curses_list="-lncurses -lcurses"
B
balrog 已提交
1106 1107

if test "$curses" = "yes" ; then
1108
  curses=no
B
balrog 已提交
1109 1110
  cat > $TMPC << EOF
#include <curses.h>
1111 1112 1113 1114
#ifdef __OpenBSD__
#define resize_term resizeterm
#endif
int main(void) { resize_term(0, 0); return curses_version(); }
B
balrog 已提交
1115
EOF
1116 1117 1118 1119 1120 1121 1122 1123
  for curses_lib in $curses_list; do
    if compile_prog "" "$curses_lib" ; then
      curses=yes
      libs_softmmu="$curses_lib $libs_softmmu"
      break
    fi
  done
fi
B
balrog 已提交
1124

A
Alexander Graf 已提交
1125 1126 1127 1128 1129 1130 1131 1132 1133
##########################################
# curl probe

if test "$curl" = "yes" ; then
  curl=no
  cat > $TMPC << EOF
#include <curl/curl.h>
int main(void) { return curl_easy_init(); }
EOF
J
Juan Quintela 已提交
1134
  curl_cflags=`curl-config --cflags 2>/dev/null`
1135
  curl_libs=`curl-config --libs 2>/dev/null`
J
Juan Quintela 已提交
1136
  if compile_prog "$curl_cflags" "$curl_libs" ; then
A
Alexander Graf 已提交
1137
    curl=yes
1138 1139
    libs_tools="$curl_libs $libs_tools"
    libs_softmmu="$curl_libs $libs_softmmu"
A
Alexander Graf 已提交
1140 1141 1142
  fi
fi # test "$curl"

B
balrog 已提交
1143 1144 1145
##########################################
# bluez support probe
if test "$bluez" = "yes" ; then
1146
  `pkg-config bluez 2> /dev/null` || bluez="no"
B
balrog 已提交
1147 1148
fi
if test "$bluez" = "yes" ; then
1149 1150 1151 1152
  cat > $TMPC << EOF
#include <bluetooth/bluetooth.h>
int main(void) { return bt_error(0); }
EOF
1153 1154
  bluez_cflags=`pkg-config --cflags bluez 2> /dev/null`
  bluez_libs=`pkg-config --libs bluez 2> /dev/null`
1155
  if compile_prog "$bluez_cflags" "$bluez_libs" ; then
1156
    libs_softmmu="$bluez_libs $libs_softmmu"
1157 1158 1159
  else
    bluez="no"
  fi
B
balrog 已提交
1160 1161
fi

A
aliguori 已提交
1162 1163 1164 1165 1166
##########################################
# kvm probe
if test "$kvm" = "yes" ; then
    cat > $TMPC <<EOF
#include <linux/kvm.h>
1167
#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
A
aliguori 已提交
1168 1169
#error Invalid KVM version
#endif
1170 1171 1172 1173 1174 1175 1176 1177 1178
#if !defined(KVM_CAP_USER_MEMORY)
#error Missing KVM capability KVM_CAP_USER_MEMORY
#endif
#if !defined(KVM_CAP_SET_TSS_ADDR)
#error Missing KVM capability KVM_CAP_SET_TSS_ADDR
#endif
#if !defined(KVM_CAP_DESTROY_MEMORY_REGION_WORKS)
#error Missing KVM capability KVM_CAP_DESTROY_MEMORY_REGION_WORKS
#endif
A
aliguori 已提交
1179 1180
int main(void) { return 0; }
EOF
A
aliguori 已提交
1181 1182
  if test "$kerneldir" != "" ; then
      kvm_cflags=-I"$kerneldir"/include
1183 1184 1185
      if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) \
         -a -d "$kerneldir/arch/x86/include" ; then
            kvm_cflags="$kvm_cflags -I$kerneldir/arch/x86/include"
A
aliguori 已提交
1186 1187
	elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
	    kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
1188 1189 1190
        elif test -d "$kerneldir/arch/$cpu/include" ; then
            kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
      fi
A
aliguori 已提交
1191 1192 1193
  else
      kvm_cflags=""
  fi
1194
  if compile_prog "$kvm_cflags" "" ; then
A
aliguori 已提交
1195 1196
    :
  else
1197 1198 1199
    kvm="no";
    if [ -x "`which awk 2>/dev/null`" ] && \
       [ -x "`which grep 2>/dev/null`" ]; then
J
Juan Quintela 已提交
1200
      kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \
1201 1202 1203
	| grep "error: " \
	| awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
      if test "$kvmerr" != "" ; then
1204 1205 1206
        kvm="no - (${kvmerr})\n\
    NOTE: To enable KVM support, update your kernel to 2.6.29+ or install \
recent kvm-kmod from http://sourceforge.net/projects/kvm."
1207 1208
      fi
    fi
A
aliguori 已提交
1209 1210 1211
  fi
fi

1212
##########################################
1213
# pthread probe
1214
PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
1215

C
Christoph Hellwig 已提交
1216
pthread=no
1217
cat > $TMPC << EOF
1218
#include <pthread.h>
1219
int main(void) { pthread_create(0,0,0,0); return 0; }
1220
EOF
C
Christoph Hellwig 已提交
1221 1222 1223 1224 1225 1226 1227
for pthread_lib in $PTHREADLIBS_LIST; do
  if compile_prog "" "$pthread_lib" ; then
    pthread=yes
    LIBS="$pthread_lib $LIBS"
    break
  fi
done
1228

1229
if test "$pthread" = no; then
C
Christoph Hellwig 已提交
1230 1231 1232 1233 1234
  echo
  echo "Error: pthread check failed"
  echo "Make sure to have the pthread libs and headers installed."
  echo
  exit 1
1235 1236
fi

A
aliguori 已提交
1237 1238 1239
##########################################
# iovec probe
cat > $TMPC <<EOF
B
blueswir1 已提交
1240
#include <sys/types.h>
A
aliguori 已提交
1241
#include <sys/uio.h>
B
blueswir1 已提交
1242
#include <unistd.h>
A
aliguori 已提交
1243 1244 1245
int main(void) { struct iovec iov; return 0; }
EOF
iovec=no
1246
if compile_prog "" "" ; then
A
aliguori 已提交
1247 1248 1249
  iovec=yes
fi

1250 1251 1252 1253 1254 1255 1256 1257 1258
##########################################
# preadv probe
cat > $TMPC <<EOF
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
int main(void) { preadv; }
EOF
preadv=no
1259
if compile_prog "" "" ; then
1260 1261 1262
  preadv=yes
fi

1263 1264 1265
##########################################
# fdt probe
if test "$fdt" = "yes" ; then
J
Juan Quintela 已提交
1266 1267 1268
  fdt=no
  fdt_libs="-lfdt"
  cat > $TMPC << EOF
1269 1270
int main(void) { return 0; }
EOF
1271
  if compile_prog "" "$fdt_libs" ; then
1272
    fdt=yes
J
Juan Quintela 已提交
1273
    libs_softmmu="$fdt_libs $libs_softmmu"
1274 1275 1276
  fi
fi

1277 1278 1279 1280 1281 1282
#
# Check for xxxat() functions when we are building linux-user
# emulator.  This is done because older glibc versions don't
# have syscall stubs for these implemented.
#
atfile=no
1283
cat > $TMPC << EOF
1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295
#define _ATFILE_SOURCE
#include <sys/types.h>
#include <fcntl.h>
#include <unistd.h>

int
main(void)
{
	/* try to unlink nonexisting file */
	return (unlinkat(AT_FDCWD, "nonexistent_file", 0));
}
EOF
1296
if compile_prog "" "" ; then
1297
  atfile=yes
1298 1299
fi

A
aurel32 已提交
1300
# Check for inotify functions when we are building linux-user
1301 1302 1303 1304 1305
# emulator.  This is done because older glibc versions don't
# have syscall stubs for these implemented.  In that case we
# don't provide them even if kernel supports them.
#
inotify=no
1306
cat > $TMPC << EOF
1307 1308 1309 1310 1311 1312
#include <sys/inotify.h>

int
main(void)
{
	/* try to start inotify */
A
aurel32 已提交
1313
	return inotify_init();
1314 1315
}
EOF
1316
if compile_prog "" "" ; then
1317
  inotify=yes
1318 1319
fi

R
Riku Voipio 已提交
1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334
# check if utimensat and futimens are supported
utimens=no
cat > $TMPC << EOF
#define _ATFILE_SOURCE
#define _GNU_SOURCE
#include <stddef.h>
#include <fcntl.h>

int main(void)
{
    utimensat(AT_FDCWD, "foo", NULL, 0);
    futimens(0, NULL);
    return 0;
}
EOF
1335
if compile_prog "" "" ; then
R
Riku Voipio 已提交
1336 1337 1338
  utimens=yes
fi

R
Riku Voipio 已提交
1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352
# check if pipe2 is there
pipe2=no
cat > $TMPC << EOF
#define _GNU_SOURCE
#include <unistd.h>
#include <fcntl.h>

int main(void)
{
    int pipefd[2];
    pipe2(pipefd, O_CLOEXEC);
    return 0;
}
EOF
1353
if compile_prog "" "" ; then
R
Riku Voipio 已提交
1354 1355 1356
  pipe2=yes
fi

1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
# check if tee/splice is there. vmsplice was added same time.
splice=no
cat > $TMPC << EOF
#define _GNU_SOURCE
#include <unistd.h>
#include <fcntl.h>
#include <limits.h>

int main(void)
{
    int len, fd;
    len = tee(STDIN_FILENO, STDOUT_FILENO, INT_MAX, SPLICE_F_NONBLOCK);
    splice(STDIN_FILENO, NULL, fd, NULL, len, SPLICE_F_MOVE);
    return 0;
}
EOF
1373
if compile_prog "" "" ; then
1374 1375 1376
  splice=yes
fi

1377
# Check if tools are available to build documentation.
1378 1379
if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then
  build_docs="no"
1380 1381
fi

1382 1383 1384 1385 1386 1387
# Search for bsawp_32 function
byteswap_h=no
cat > $TMPC << EOF
#include <byteswap.h>
int main(void) { return bswap_32(0); }
EOF
1388
if compile_prog "" "" ; then
1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399
  byteswap_h=yes
fi

# Search for bsawp_32 function
bswap_h=no
cat > $TMPC << EOF
#include <sys/endian.h>
#include <sys/types.h>
#include <machine/bswap.h>
int main(void) { return bswap32(0); }
EOF
1400
if compile_prog "" "" ; then
1401 1402 1403
  bswap_h=yes
fi

A
aliguori 已提交
1404 1405 1406 1407 1408 1409 1410 1411
##########################################
# Do we need librt
cat > $TMPC <<EOF
#include <signal.h>
#include <time.h>
int main(void) { clockid_t id; return clock_gettime(id, NULL); }
EOF

1412
if compile_prog "" "" ; then
1413
  :
1414
elif compile_prog "" "-lrt" ; then
1415
  LIBS="-lrt $LIBS"
A
aliguori 已提交
1416 1417
fi

1418 1419 1420 1421 1422 1423 1424
# Determine what linker flags to use to force archive inclusion
check_linker_flags()
{
    w2=
    if test "$2" ; then
	w2=-Wl,$2
    fi
1425
    compile_prog "" "-Wl,$1 ${w2}"
1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448
}

cat > $TMPC << EOF
int main(void) { }
EOF
if check_linker_flags --whole-archive --no-whole-archive ; then
    # GNU ld
    arlibs_begin="-Wl,--whole-archive"
    arlibs_end="-Wl,--no-whole-archive"
elif check_linker_flags -z,allextract -z,defaultextract ; then
    # Solaris ld
    arlibs_begin"=-Wl,-z,allextract"
    arlibs_end="-Wl,-z,defaultextract"
elif check_linker_flags -all_load ; then
    # Mac OS X
    arlibs_begin="-all_load"
    arlibs_end=""
else
    echo "Error: your linker does not support --whole-archive or -z."
    echo "Please report to qemu-devel@nongnu.org"
    exit 1
fi

1449 1450 1451 1452 1453
if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaries" != yes -a \
        "$aix" != "yes" ; then
    libs_softmmu="-lutil $libs_softmmu"
fi

1454 1455 1456 1457
# End of CC checks
# After here, no more $cc or $ld runs

# default flags for all hosts
J
Juan Quintela 已提交
1458 1459
QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
CFLAGS="-g $CFLAGS"
1460
if test "$debug" = "no" ; then
1461
  CFLAGS="-O2 $CFLAGS"
1462
fi
J
Juan Quintela 已提交
1463 1464
QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
1465 1466 1467
QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
QEMU_CFLAGS="-U_FORTIFY_SOURCE $QEMU_CFLAGS"
QEMU_CFLAGS="-I. -I\$(SRC_PATH) -MMD -MP -MT \$@ $QEMU_CFLAGS"
1468
LDFLAGS="-g $LDFLAGS"
1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482

# Consult white-list to determine whether to enable werror
# by default.  Only enable by default for git builds
if test -z "$werror" ; then
    z_version=`cut -f3 -d. $source_path/VERSION`
    if test "$z_version" = "50" -a \
        "$linux" = "yes" ; then
        werror="yes"
    else
        werror="no"
    fi
fi

if test "$werror" = "yes" ; then
J
Juan Quintela 已提交
1483
    QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
1484 1485 1486 1487
fi

if test "$solaris" = "no" ; then
    if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
1488
        LDFLAGS="-Wl,--warn-common $LDFLAGS"
1489 1490 1491
    fi
fi

B
bellard 已提交
1492
if test "$mingw32" = "yes" ; then
P
pbrook 已提交
1493
  if test -z "$prefix" ; then
S
Stefan Weil 已提交
1494
      prefix="c:/Program Files/Qemu"
P
pbrook 已提交
1495 1496 1497 1498 1499
  fi
  mansuffix=""
  datasuffix=""
  docsuffix=""
  binsuffix=""
B
bellard 已提交
1500
else
P
pbrook 已提交
1501 1502 1503 1504 1505 1506 1507
  if test -z "$prefix" ; then
      prefix="/usr/local"
  fi
  mansuffix="/share/man"
  datasuffix="/share/qemu"
  docsuffix="/share/doc/qemu"
  binsuffix="/bin"
B
bellard 已提交
1508
fi
1509

B
bellard 已提交
1510
echo "Install prefix    $prefix"
P
pbrook 已提交
1511 1512
echo "BIOS directory    $prefix$datasuffix"
echo "binary directory  $prefix$binsuffix"
B
bellard 已提交
1513
if test "$mingw32" = "no" ; then
P
pbrook 已提交
1514
echo "Manual directory  $prefix$mansuffix"
B
bellard 已提交
1515
echo "ELF interp prefix $interp_prefix"
B
bellard 已提交
1516
fi
1517
echo "Source path       $source_path"
B
bellard 已提交
1518
echo "C compiler        $cc"
B
bellard 已提交
1519
echo "Host C compiler   $host_cc"
1520
echo "CFLAGS            $CFLAGS"
J
Juan Quintela 已提交
1521
echo "QEMU_CFLAGS       $QEMU_CFLAGS"
1522
echo "LDFLAGS           $LDFLAGS"
B
bellard 已提交
1523
echo "make              $make"
1524
echo "install           $install"
B
bellard 已提交
1525
echo "host CPU          $cpu"
B
bellard 已提交
1526
echo "host big endian   $bigendian"
1527
echo "target list       $target_list"
1528
echo "tcg debug enabled $debug_tcg"
B
bellard 已提交
1529
echo "gprof enabled     $gprof"
1530
echo "sparse enabled    $sparse"
1531
echo "strip binaries    $strip_opt"
1532
echo "profiler          $profiler"
B
bellard 已提交
1533
echo "static build      $static"
1534
echo "-Werror enabled   $werror"
1535 1536 1537
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
1538
echo "SDL support       $sdl"
B
balrog 已提交
1539
echo "curses support    $curses"
A
Alexander Graf 已提交
1540
echo "curl support      $curl"
B
bellard 已提交
1541
echo "mingw32 support   $mingw32"
M
malc 已提交
1542 1543
echo "Audio drivers     $audio_drv_list"
echo "Extra audio cards $audio_card_list"
1544
echo "Mixer emulation   $mixemu"
1545
echo "VNC TLS support   $vnc_tls"
1546
echo "VNC SASL support  $vnc_sasl"
1547 1548 1549
if test -n "$sparc_cpu"; then
    echo "Target Sparc Arch $sparc_cpu"
fi
1550
echo "xen support       $xen"
A
aurel32 已提交
1551
echo "brlapi support    $brlapi"
1552
echo "Documentation     $build_docs"
1553 1554
[ ! -z "$uname_release" ] && \
echo "uname -r          $uname_release"
1555
echo "NPTL support      $nptl"
P
Paul Brook 已提交
1556
echo "GUEST_BASE        $guest_base"
1557
echo "vde support       $vde"
1558
echo "IO thread         $io_thread"
T
ths 已提交
1559
echo "Install blobs     $blobs"
1560
echo -e "KVM support       $kvm"
1561
echo "fdt support       $fdt"
1562
echo "preadv support    $preadv"
B
bellard 已提交
1563

1564
if test $sdl_too_old = "yes"; then
B
bellard 已提交
1565
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
1566
fi
B
bellard 已提交
1567

1568 1569
config_host_mak="config-host.mak"
config_host_h="config-host.h"
1570
config_host_ld="config-host.ld"
1571 1572 1573 1574 1575 1576 1577 1578 1579 1580

#echo "Creating $config_host_mak and $config_host_h"

test -f $config_host_h && mv $config_host_h ${config_host_h}~

echo "# Automatically generated by configure - do not modify" > $config_host_mak
printf "# Configured with:" >> $config_host_mak
printf " '%s'" "$0" "$@" >> $config_host_mak
echo >> $config_host_mak

1581
echo "CONFIG_QEMU_SHAREDIR=\"$prefix$datasuffix\"" >> $config_host_mak
1582

A
aurel32 已提交
1583
case "$cpu" in
1584
  i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
1585
    ARCH=$cpu
A
aurel32 已提交
1586
  ;;
1587
  armv4b|armv4l)
1588
    ARCH=arm
A
aurel32 已提交
1589 1590 1591 1592 1593 1594
  ;;
  *)
    echo "Unsupported CPU = $cpu"
    exit 1
  ;;
esac
1595
echo "ARCH=$ARCH" >> $config_host_mak
1596
if test "$debug_tcg" = "yes" ; then
1597
  echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
1598
fi
P
Paul Brook 已提交
1599
if test "$debug" = "yes" ; then
1600
  echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
P
Paul Brook 已提交
1601
fi
1602
if test "$strip_opt" = "yes" ; then
1603
  echo "STRIP_OPT=-s" >> $config_host_mak
1604
fi
B
bellard 已提交
1605
if test "$bigendian" = "yes" ; then
1606
  echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
1607
fi
1608
echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
B
bellard 已提交
1609
if test "$mingw32" = "yes" ; then
1610
  echo "CONFIG_WIN32=y" >> $config_host_mak
1611
else
J
Juan Quintela 已提交
1612
  echo "CONFIG_POSIX=y" >> $config_host_mak
B
bellard 已提交
1613
fi
1614

1615
if test "$darwin" = "yes" ; then
1616
  echo "CONFIG_DARWIN=y" >> $config_host_mak
1617
fi
M
malc 已提交
1618 1619

if test "$aix" = "yes" ; then
1620
  echo "CONFIG_AIX=y" >> $config_host_mak
M
malc 已提交
1621 1622
fi

B
bellard 已提交
1623
if test "$solaris" = "yes" ; then
1624
  echo "CONFIG_SOLARIS=y" >> $config_host_mak
1625
  echo "CONFIG_SOLARIS_VERSION=$solarisrev" >> $config_host_mak
T
ths 已提交
1626
  if test "$needs_libsunmath" = "yes" ; then
1627
    echo "CONFIG_NEEDS_LIBSUNMATH=y" >> $config_host_mak
T
ths 已提交
1628
  fi
B
bellard 已提交
1629
fi
1630
if test "$static" = "yes" ; then
1631
  echo "CONFIG_STATIC=y" >> $config_host_mak
1632
  LDFLAGS="-static $LDFLAGS"
B
bellard 已提交
1633
fi
1634
if test $profiler = "yes" ; then
1635
  echo "CONFIG_PROFILER=y" >> $config_host_mak
1636
fi
B
bellard 已提交
1637
if test "$slirp" = "yes" ; then
1638
  echo "CONFIG_SLIRP=y" >> $config_host_mak
1639
  CFLAGS="-I\$(SRC_PATH)/slirp $CFLAGS"
B
bellard 已提交
1640
fi
1641
if test "$vde" = "yes" ; then
1642
  echo "CONFIG_VDE=y" >> $config_host_mak
1643
fi
M
malc 已提交
1644
for card in $audio_card_list; do
P
pbrook 已提交
1645
    def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
1646
    echo "$def=y" >> $config_host_mak
M
malc 已提交
1647
done
1648
echo "CONFIG_AUDIO_DRIVERS=$audio_drv_list" >> $config_host_mak
M
malc 已提交
1649
for drv in $audio_drv_list; do
P
pbrook 已提交
1650
    def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
1651
    echo "$def=y" >> $config_host_mak
M
malc 已提交
1652
    if test "$drv" = "fmod"; then
1653
        echo "FMOD_CFLAGS=-I$fmod_inc" >> $config_host_mak
M
malc 已提交
1654 1655
    fi
done
1656 1657 1658
if test "$audio_pt_int" = "yes" ; then
  echo "CONFIG_AUDIO_PT_INT=y" >> $config_host_mak
fi
1659
if test "$mixemu" = "yes" ; then
1660
  echo "CONFIG_MIXEMU=y" >> $config_host_mak
1661
fi
1662
if test "$vnc_tls" = "yes" ; then
1663
  echo "CONFIG_VNC_TLS=y" >> $config_host_mak
1664
  echo "VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_host_mak
1665
fi
1666
if test "$vnc_sasl" = "yes" ; then
1667
  echo "CONFIG_VNC_SASL=y" >> $config_host_mak
1668
  echo "VNC_SASL_CFLAGS=$vnc_sasl_cflags" >> $config_host_mak
1669
fi
1670
if test "$fnmatch" = "yes" ; then
1671
  echo "CONFIG_FNMATCH=y" >> $config_host_mak
1672
fi
1673
qemu_version=`head $source_path/VERSION`
1674
echo "VERSION=$qemu_version" >>$config_host_mak
1675
echo "PKGVERSION=$pkgversion" >>$config_host_mak
1676
echo "SRC_PATH=$source_path" >> $config_host_mak
P
pbrook 已提交
1677
if [ "$source_path_used" = "yes" ]; then
1678
  echo "VPATH=$source_path" >> $config_host_mak
P
pbrook 已提交
1679
fi
1680
echo "TARGET_DIRS=$target_list" >> $config_host_mak
1681
if [ "$build_docs" = "yes" ] ; then
1682
  echo "BUILD_DOCS=yes" >> $config_host_mak
1683
fi
1684
if test "$sdl" = "yes" ; then
1685
  echo "CONFIG_SDL=y" >> $config_host_mak
1686
  echo "SDL_CFLAGS=$sdl_cflags" >> $config_host_mak
1687 1688
fi
if test "$cocoa" = "yes" ; then
1689
  echo "CONFIG_COCOA=y" >> $config_host_mak
B
balrog 已提交
1690 1691
fi
if test "$curses" = "yes" ; then
1692
  echo "CONFIG_CURSES=y" >> $config_host_mak
1693
fi
1694
if test "$atfile" = "yes" ; then
1695
  echo "CONFIG_ATFILE=y" >> $config_host_mak
1696
fi
R
Riku Voipio 已提交
1697
if test "$utimens" = "yes" ; then
1698
  echo "CONFIG_UTIMENSAT=y" >> $config_host_mak
R
Riku Voipio 已提交
1699
fi
R
Riku Voipio 已提交
1700
if test "$pipe2" = "yes" ; then
1701
  echo "CONFIG_PIPE2=y" >> $config_host_mak
R
Riku Voipio 已提交
1702
fi
1703
if test "$splice" = "yes" ; then
1704
  echo "CONFIG_SPLICE=y" >> $config_host_mak
1705
fi
1706
if test "$inotify" = "yes" ; then
1707
  echo "CONFIG_INOTIFY=y" >> $config_host_mak
1708
fi
1709 1710 1711 1712 1713 1714
if test "$byteswap_h" = "yes" ; then
  echo "CONFIG_BYTESWAP_H=y" >> $config_host_mak
fi
if test "$bswap_h" = "yes" ; then
  echo "CONFIG_MACHINE_BSWAP_H=y" >> $config_host_mak
fi
A
Alexander Graf 已提交
1715
if test "$curl" = "yes" ; then
1716
  echo "CONFIG_CURL=y" >> $config_host_mak
J
Juan Quintela 已提交
1717
  echo "CURL_CFLAGS=$curl_cflags" >> $config_host_mak
A
Alexander Graf 已提交
1718
fi
A
aurel32 已提交
1719
if test "$brlapi" = "yes" ; then
1720
  echo "CONFIG_BRLAPI=y" >> $config_host_mak
A
aurel32 已提交
1721
fi
B
balrog 已提交
1722
if test "$bluez" = "yes" ; then
1723
  echo "CONFIG_BLUEZ=y" >> $config_host_mak
1724
  echo "BLUEZ_CFLAGS=$bluez_cflags" >> $config_host_mak
B
balrog 已提交
1725
fi
1726
if test "$xen" = "yes" ; then
J
Juan Quintela 已提交
1727
  echo "CONFIG_XEN=y" >> $config_host_mak
1728
fi
1729
if test "$io_thread" = "yes" ; then
1730
  echo "CONFIG_IOTHREAD=y" >> $config_host_mak
1731
fi
T
ths 已提交
1732
if test "$blobs" = "yes" ; then
1733
  echo "INSTALL_BLOBS=yes" >> $config_host_mak
T
ths 已提交
1734
fi
A
aliguori 已提交
1735
if test "$iovec" = "yes" ; then
1736
  echo "CONFIG_IOVEC=y" >> $config_host_mak
A
aliguori 已提交
1737
fi
1738
if test "$preadv" = "yes" ; then
1739
  echo "CONFIG_PREADV=y" >> $config_host_mak
1740
fi
1741
if test "$fdt" = "yes" ; then
1742
  echo "CONFIG_FDT=y" >> $config_host_mak
1743
fi
1744

1745
# XXX: suppress that
B
bellard 已提交
1746
if [ "$bsd" = "yes" ] ; then
1747
  echo "CONFIG_BSD=y" >> $config_host_mak
B
bellard 已提交
1748 1749
fi

1750
echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
1751

1752 1753 1754
# USB host support
case "$usb" in
linux)
1755
  echo "HOST_USB=linux" >> $config_host_mak
1756 1757
;;
bsd)
1758
  echo "HOST_USB=bsd" >> $config_host_mak
1759 1760
;;
*)
1761
  echo "HOST_USB=stub" >> $config_host_mak
1762 1763 1764
;;
esac

1765 1766
tools=
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
A
aliguori 已提交
1767
  tools="qemu-img\$(EXESUF) $tools"
B
bellard 已提交
1768
  if [ "$linux" = "yes" ] ; then
A
aliguori 已提交
1769
      tools="qemu-nbd\$(EXESUF) qemu-io\$(EXESUF) $tools"
B
bellard 已提交
1770
  fi
1771
fi
1772
echo "TOOLS=$tools" >> $config_host_mak
1773

1774
# Mac OS X ships with a broken assembler
A
Alexander Graf 已提交
1775
roms=
1776 1777
if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
        "$targetos" != "Darwin" ; then
P
Paul Brook 已提交
1778
  roms="optionrom"
A
Alexander Graf 已提交
1779
fi
1780
echo "ROMS=$roms" >> $config_host_mak
A
Alexander Graf 已提交
1781

1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796
echo "prefix=$prefix" >> $config_host_mak
echo "bindir=\${prefix}$binsuffix" >> $config_host_mak
echo "mandir=\${prefix}$mansuffix" >> $config_host_mak
echo "datadir=\${prefix}$datasuffix" >> $config_host_mak
echo "docdir=\${prefix}$docsuffix" >> $config_host_mak
echo "MAKE=$make" >> $config_host_mak
echo "INSTALL=$install" >> $config_host_mak
echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_host_mak
echo "INSTALL_DATA=$install -m0644 -p" >> $config_host_mak
echo "INSTALL_PROG=$install -m0755 -p" >> $config_host_mak
echo "CC=$cc" >> $config_host_mak
echo "HOST_CC=$host_cc" >> $config_host_mak
if test "$sparse" = "yes" ; then
  echo "CC      := REAL_CC=\"\$(CC)\" cgcc"       >> $config_host_mak
  echo "HOST_CC := REAL_CC=\"\$(HOST_CC)\" cgcc"  >> $config_host_mak
J
Juan Quintela 已提交
1797
  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
1798 1799 1800 1801
fi
echo "AR=$ar" >> $config_host_mak
echo "OBJCOPY=$objcopy" >> $config_host_mak
echo "LD=$ld" >> $config_host_mak
1802
echo "CFLAGS=$CFLAGS" >> $config_host_mak
J
Juan Quintela 已提交
1803
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
J
Juan Quintela 已提交
1804
echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
1805
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
1806 1807
echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
J
Juan Quintela 已提交
1808
echo "LIBS+=$LIBS" >> $config_host_mak
J
Juan Quintela 已提交
1809
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
1810 1811
echo "EXESUF=$EXESUF" >> $config_host_mak

1812 1813
echo "/* Automatically generated by configure - do not modify */" > $config_host_h

1814
/bin/sh $source_path/create_config < $config_host_mak >> $config_host_h
1815

1816 1817 1818
if test -f ${config_host_h}~ ; then
  if cmp -s $config_host_h ${config_host_h}~ ; then
    mv ${config_host_h}~ $config_host_h
P
Paul Brook 已提交
1819
  else
1820
    rm ${config_host_h}~
P
Paul Brook 已提交
1821 1822 1823
  fi
fi

1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835
# generate list of library paths for linker script

$ld --verbose -v 2> /dev/null | grep SEARCH_DIR > ${config_host_ld}

if test -f ${config_host_ld}~ ; then
  if cmp -s $config_host_ld ${config_host_ld}~ ; then
    mv ${config_host_ld}~ $config_host_ld
  else
    rm ${config_host_ld}~
  fi
fi

1836
for target in $target_list; do
1837 1838 1839
target_dir="$target"
config_mak=$target_dir/config.mak
config_h=$target_dir/config.h
B
Blue Swirl 已提交
1840
target_arch2=`echo $target | cut -d '-' -f 1`
1841
target_bigendian="no"
1842 1843 1844 1845 1846
case "$target_arch2" in
  armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|sh4eb|sparc|sparc64|sparc32plus)
  target_bigendian=yes
  ;;
esac
1847
target_softmmu="no"
B
bellard 已提交
1848
target_user_only="no"
1849 1850
target_linux_user="no"
target_darwin_user="no"
B
blueswir1 已提交
1851
target_bsd_user="no"
P
pbrook 已提交
1852
case "$target" in
B
Blue Swirl 已提交
1853
  ${target_arch2}-softmmu)
P
pbrook 已提交
1854 1855
    target_softmmu="yes"
    ;;
B
Blue Swirl 已提交
1856
  ${target_arch2}-linux-user)
P
pbrook 已提交
1857 1858 1859
    target_user_only="yes"
    target_linux_user="yes"
    ;;
B
Blue Swirl 已提交
1860
  ${target_arch2}-darwin-user)
P
pbrook 已提交
1861 1862 1863
    target_user_only="yes"
    target_darwin_user="yes"
    ;;
B
Blue Swirl 已提交
1864
  ${target_arch2}-bsd-user)
B
blueswir1 已提交
1865 1866 1867
    target_user_only="yes"
    target_bsd_user="yes"
    ;;
P
pbrook 已提交
1868 1869 1870 1871 1872
  *)
    echo "ERROR: Target '$target' not recognised"
    exit 1
    ;;
esac
1873

B
bellard 已提交
1874
#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
1875

1876 1877
test -f $config_h && mv $config_h ${config_h}~

1878
mkdir -p $target_dir
B
bellard 已提交
1879
mkdir -p $target_dir/fpu
B
bellard 已提交
1880
mkdir -p $target_dir/tcg
B
blueswir1 已提交
1881
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
B
bellard 已提交
1882 1883 1884
  mkdir -p $target_dir/nwfpe
fi

B
bellard 已提交
1885 1886 1887 1888 1889 1890
#
# 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

1891 1892

echo "# Automatically generated by configure - do not modify" > $config_mak
B
bellard 已提交
1893

1894
echo "include ../config-host.mak" >> $config_mak
1895

P
pbrook 已提交
1896
bflt="no"
1897
elfload32="no"
1898
target_nptl="no"
B
Blue Swirl 已提交
1899
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
1900
echo "CONFIG_QEMU_PREFIX=\"$interp_prefix1\"" >> $config_mak
P
pbrook 已提交
1901
gdb_xml_files=""
A
aliguori 已提交
1902

1903
TARGET_ARCH="$target_arch2"
1904
TARGET_BASE_ARCH=""
1905
TARGET_ABI_DIR=""
1906

B
Blue Swirl 已提交
1907
case "$target_arch2" in
A
aurel32 已提交
1908
  i386)
P
Paul Brook 已提交
1909
    target_phys_bits=32
A
aurel32 已提交
1910 1911
  ;;
  x86_64)
1912
    TARGET_BASE_ARCH=i386
P
Paul Brook 已提交
1913
    target_phys_bits=64
A
aurel32 已提交
1914 1915
  ;;
  alpha)
P
Paul Brook 已提交
1916
    target_phys_bits=64
A
aurel32 已提交
1917 1918
  ;;
  arm|armeb)
J
Juan Quintela 已提交
1919
    TARGET_ARCH=arm
A
aurel32 已提交
1920
    bflt="yes"
1921
    target_nptl="yes"
P
pbrook 已提交
1922
    gdb_xml_files="arm-core.xml arm-vfp.xml arm-vfp3.xml arm-neon.xml"
P
Paul Brook 已提交
1923
    target_phys_bits=32
A
aurel32 已提交
1924 1925
  ;;
  cris)
E
edgar_igl 已提交
1926
    target_nptl="yes"
P
Paul Brook 已提交
1927
    target_phys_bits=32
A
aurel32 已提交
1928 1929 1930
  ;;
  m68k)
    bflt="yes"
P
pbrook 已提交
1931
    gdb_xml_files="cf-core.xml cf-fp.xml"
P
Paul Brook 已提交
1932
    target_phys_bits=32
A
aurel32 已提交
1933
  ;;
1934 1935 1936 1937 1938
  microblaze)
    bflt="yes"
    target_nptl="yes"
    target_phys_bits=32
  ;;
J
Juan Quintela 已提交
1939
  mips|mipsel)
J
Juan Quintela 已提交
1940
    TARGET_ARCH=mips
1941
    echo "TARGET_ABI_MIPSO32=y" >> $config_mak
P
Paul Brook 已提交
1942
    target_nptl="yes"
P
Paul Brook 已提交
1943
    target_phys_bits=64
A
aurel32 已提交
1944 1945
  ;;
  mipsn32|mipsn32el)
J
Juan Quintela 已提交
1946
    TARGET_ARCH=mipsn32
1947
    TARGET_BASE_ARCH=mips
1948
    echo "TARGET_ABI_MIPSN32=y" >> $config_mak
P
Paul Brook 已提交
1949
    target_phys_bits=64
A
aurel32 已提交
1950 1951
  ;;
  mips64|mips64el)
J
Juan Quintela 已提交
1952
    TARGET_ARCH=mips64
1953
    TARGET_BASE_ARCH=mips
1954
    echo "TARGET_ABI_MIPSN64=y" >> $config_mak
P
Paul Brook 已提交
1955
    target_phys_bits=64
A
aurel32 已提交
1956 1957
  ;;
  ppc)
1958
    gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
P
Paul Brook 已提交
1959
    target_phys_bits=32
1960
    target_nptl="yes"
A
aurel32 已提交
1961 1962
  ;;
  ppcemb)
1963
    TARGET_BASE_ARCH=ppc
1964
    TARGET_ABI_DIR=ppc
1965
    gdb_xml_files="power-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
P
Paul Brook 已提交
1966
    target_phys_bits=64
1967
    target_nptl="yes"
A
aurel32 已提交
1968 1969
  ;;
  ppc64)
1970
    TARGET_BASE_ARCH=ppc
1971
    TARGET_ABI_DIR=ppc
1972
    gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
P
Paul Brook 已提交
1973
    target_phys_bits=64
A
aurel32 已提交
1974 1975
  ;;
  ppc64abi32)
J
Juan Quintela 已提交
1976
    TARGET_ARCH=ppc64
1977
    TARGET_BASE_ARCH=ppc
1978
    TARGET_ABI_DIR=ppc
1979
    echo "TARGET_ABI32=y" >> $config_mak
1980
    gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml"
P
Paul Brook 已提交
1981
    target_phys_bits=64
A
aurel32 已提交
1982 1983
  ;;
  sh4|sh4eb)
J
Juan Quintela 已提交
1984
    TARGET_ARCH=sh4
A
aurel32 已提交
1985
    bflt="yes"
A
aurel32 已提交
1986
    target_nptl="yes"
P
Paul Brook 已提交
1987
    target_phys_bits=32
A
aurel32 已提交
1988 1989
  ;;
  sparc)
P
Paul Brook 已提交
1990
    target_phys_bits=64
A
aurel32 已提交
1991 1992
  ;;
  sparc64)
1993
    TARGET_BASE_ARCH=sparc
A
aurel32 已提交
1994
    elfload32="yes"
P
Paul Brook 已提交
1995
    target_phys_bits=64
A
aurel32 已提交
1996 1997
  ;;
  sparc32plus)
J
Juan Quintela 已提交
1998
    TARGET_ARCH=sparc64
1999
    TARGET_BASE_ARCH=sparc
2000
    TARGET_ABI_DIR=sparc
2001
    echo "TARGET_ABI32=y" >> $config_mak
P
Paul Brook 已提交
2002
    target_phys_bits=64
A
aurel32 已提交
2003 2004 2005 2006 2007 2008
  ;;
  *)
    echo "Unsupported target CPU"
    exit 1
  ;;
esac
J
Juan Quintela 已提交
2009
echo "TARGET_ARCH=$TARGET_ARCH" >> $config_mak
2010 2011
target_arch_name="`echo $TARGET_ARCH | tr '[:lower:]' '[:upper:]'`"
echo "TARGET_$target_arch_name=y" >> $config_mak
J
Juan Quintela 已提交
2012
echo "TARGET_ARCH2=$target_arch2" >> $config_mak
2013
# TARGET_BASE_ARCH needs to be defined after TARGET_ARCH
2014 2015 2016 2017
if [ "$TARGET_BASE_ARCH" = "" ]; then
  TARGET_BASE_ARCH=$TARGET_ARCH
fi
echo "TARGET_BASE_ARCH=$TARGET_BASE_ARCH" >> $config_mak
2018 2019 2020 2021
if [ "$TARGET_ABI_DIR" = "" ]; then
  TARGET_ABI_DIR=$TARGET_ARCH
fi
echo "TARGET_ABI_DIR=$TARGET_ABI_DIR" >> $config_mak
P
Paul Brook 已提交
2022 2023 2024
if [ $target_phys_bits -lt $hostlongbits ] ; then
  target_phys_bits=$hostlongbits
fi
J
Juan Quintela 已提交
2025 2026 2027 2028 2029 2030
case "$target_arch2" in
  i386|x86_64)
    if test "$xen" = "yes" -a "$target_softmmu" = "yes" ; then
      echo "CONFIG_XEN=y" >> $config_mak
    fi
esac
J
Juan Quintela 已提交
2031
case "$target_arch2" in
A
Alexander Graf 已提交
2032
  i386|x86_64|ppcemb|ppc|ppc64)
J
Juan Quintela 已提交
2033 2034 2035 2036
    # Make sure the target and host cpus are compatible
    if test "$kvm" = "yes" -a "$target_softmmu" = "yes" -a \
      \( "$target_arch2" = "$cpu" -o \
      \( "$target_arch2" = "ppcemb" -a "$cpu" = "ppc" \) -o \
A
Alexander Graf 已提交
2037
      \( "$target_arch2" = "ppc64"  -a "$cpu" = "ppc" \) -o \
J
Juan Quintela 已提交
2038 2039 2040 2041 2042 2043
      \( "$target_arch2" = "x86_64" -a "$cpu" = "i386"   \) -o \
      \( "$target_arch2" = "i386"   -a "$cpu" = "x86_64" \) \) ; then
      echo "CONFIG_KVM=y" >> $config_mak
      echo "KVM_CFLAGS=$kvm_cflags" >> $config_mak
    fi
esac
P
Paul Brook 已提交
2044
echo "HWLIB=../libhw$target_phys_bits/libqemuhw$target_phys_bits.a" >> $config_mak
2045
echo "TARGET_PHYS_ADDR_BITS=$target_phys_bits" >> $config_mak
P
Paul Brook 已提交
2046
echo "subdir-$target: subdir-libhw$target_phys_bits" >> $config_host_mak
B
bellard 已提交
2047
if test "$target_bigendian" = "yes" ; then
2048
  echo "TARGET_WORDS_BIGENDIAN=y" >> $config_mak
B
bellard 已提交
2049
fi
2050
if test "$target_softmmu" = "yes" ; then
2051
  echo "CONFIG_SOFTMMU=y" >> $config_mak
J
Juan Quintela 已提交
2052
  echo "LIBS+=$libs_softmmu" >> $config_mak
B
bellard 已提交
2053
fi
B
bellard 已提交
2054
if test "$target_user_only" = "yes" ; then
2055
  echo "CONFIG_USER_ONLY=y" >> $config_mak
B
bellard 已提交
2056
fi
2057
if test "$target_linux_user" = "yes" ; then
2058
  echo "CONFIG_LINUX_USER=y" >> $config_mak
2059 2060
fi
if test "$target_darwin_user" = "yes" ; then
2061
  echo "CONFIG_DARWIN_USER=y" >> $config_mak
2062
fi
P
pbrook 已提交
2063 2064 2065 2066 2067 2068 2069
list=""
if test ! -z "$gdb_xml_files" ; then
  for x in $gdb_xml_files; do
    list="$list $source_path/gdb-xml/$x"
  done
fi
echo "TARGET_XML_FILES=$list" >> $config_mak
2070

2071 2072 2073 2074
case "$target_arch2" in
  arm|armeb|m68k|microblaze|mips|mipsel|mipsn32|mipsn32el|mips64|mips64el|ppc|ppc64|ppc64abi32|ppcemb|sparc|sparc64|sparc32plus)
    echo "CONFIG_SOFTFLOAT=y" >> $config_mak
    ;;
2075 2076 2077
  *)
    echo "CONFIG_NOSOFTFLOAT=y" >> $config_mak
    ;;
2078 2079
esac

P
pbrook 已提交
2080
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
2081
  echo "TARGET_HAS_BFLT=y" >> $config_mak
P
pbrook 已提交
2082
fi
2083 2084
if test "$target_user_only" = "yes" \
        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
2085
  echo "CONFIG_USE_NPTL=y" >> $config_mak
2086
fi
2087 2088
# 32 bit ELF loader in addition to native 64 bit loader?
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
2089
  echo "TARGET_HAS_ELFLOAD32=y" >> $config_mak
2090
fi
P
Paul Brook 已提交
2091 2092 2093
if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
  echo "CONFIG_USE_GUEST_BASE=y" >> $config_mak
fi
B
blueswir1 已提交
2094
if test "$target_bsd_user" = "yes" ; then
2095
  echo "CONFIG_BSD_USER=y" >> $config_mak
B
blueswir1 已提交
2096
fi
2097

2098
# generate QEMU_CFLAGS/LDFLAGS for targets
2099

2100
cflags=""
2101
ldflags=""
2102

J
Juan Quintela 已提交
2103 2104 2105 2106 2107 2108 2109 2110
if test "$ARCH" = "sparc64" ; then
  cflags="-I\$(SRC_PATH)/tcg/sparc $cflags"
else
  cflags="-I\$(SRC_PATH)/tcg/\$(ARCH) $cflags"
fi
cflags="-I\$(SRC_PATH)/tcg $cflags"
cflags="-I\$(SRC_PATH)/fpu $cflags"

2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151
for i in $ARCH $TARGET_BASE_ARCH ; do
  case "$i" in
  alpha)
    echo "CONFIG_ALPHA_DIS=y"  >> $config_mak
  ;;
  arm)
    echo "CONFIG_ARM_DIS=y"  >> $config_mak
  ;;
  cris)
    echo "CONFIG_CRIS_DIS=y"  >> $config_mak
  ;;
  hppa)
    echo "CONFIG_HPPA_DIS=y"  >> $config_mak
  ;;
  i386|x86_64)
    echo "CONFIG_I386_DIS=y"  >> $config_mak
  ;;
  m68k)
    echo "CONFIG_M68K_DIS=y"  >> $config_mak
  ;;
  microblaze)
    echo "CONFIG_MICROBLAZE_DIS=y"  >> $config_mak
  ;;
  mips*)
    echo "CONFIG_MIPS_DIS=y"  >> $config_mak
  ;;
  ppc*)
    echo "CONFIG_PPC_DIS=y"  >> $config_mak
  ;;
  s390)
    echo "CONFIG_S390_DIS=y"  >> $config_mak
  ;;
  sh4)
    echo "CONFIG_SH4_DIS=y"  >> $config_mak
  ;;
  sparc*)
    echo "CONFIG_SPARC_DIS=y"  >> $config_mak
  ;;
  esac
done

2152 2153 2154 2155 2156
case "$ARCH" in
alpha)
  # Ensure there's only a single GP
  cflags="-msmall-data $cflags"
;;
2157 2158 2159
ia64)
  cflags="-mno-sdata $cflags"
;;
2160 2161
esac

2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172
if test "$target_softmmu" = "yes" ; then
  case "$TARGET_BASE_ARCH" in
  arm)
    cflags="-DHAS_AUDIO $cflags"
  ;;
  i386|mips|ppc)
    cflags="-DHAS_AUDIO -DHAS_AUDIO_CHOICE $cflags"
  ;;
  esac
fi

2173 2174 2175 2176 2177 2178
if test "$target_softmmu" = "yes" -a \( \
        "$TARGET_ARCH" = "microblaze" -o \
        "$TARGET_ARCH" = "cris" \) ; then
  echo "CONFIG_NEED_MMU=y" >> $config_mak
fi

2179 2180 2181 2182 2183 2184 2185 2186
if test "$gprof" = "yes" ; then
  echo "TARGET_GPROF=yes" >> $config_mak
  if test "$target_linux_user" = "yes" ; then
    cflags="-p $cflags"
    ldflags="-p $ldflags"
  fi
  if test "$target_softmmu" = "yes" ; then
    ldflags="-p $ldflags"
2187
    echo "GPROF_CFLAGS=-p" >> $config_mak
2188 2189 2190
  fi
fi

2191
linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
2192
if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
2193 2194 2195
  case "$ARCH" in
  i386)
    if test "$gprof" = "yes" -o "$static" = "yes" ; then
2196
      ldflags="$linker_script $ldflags"
2197 2198 2199 2200
    else
      # WARNING: this LDFLAGS is _very_ tricky : qemu is an ELF shared object
      # that the kernel ELF loader considers as an executable. I think this
      # is the simplest way to make it self virtualizable!
2201
      ldflags="-Wl,-shared $ldflags"
2202 2203 2204 2205
    fi
    ;;
  sparc)
    # -static is used to avoid g1/g3 usage by the dynamic linker
2206
    ldflags="$linker_script -static $ldflags"
2207 2208
    ;;
  ia64)
2209
    ldflags="-Wl,-G0 $linker_script -static $ldflags"
2210 2211
    ;;
  x86_64|ppc|ppc64|s390|sparc64|alpha|arm|m68k|mips|mips64)
2212
    ldflags="$linker_script $ldflags"
2213 2214 2215 2216 2217 2218
    ;;
  esac
fi
if test "$target_softmmu" = "yes" ; then
  case "$ARCH" in
  ia64)
2219
    ldflags="-Wl,-G0 $linker_script -static $ldflags"
2220 2221 2222 2223
    ;;
  esac
fi

2224
echo "LDFLAGS+=$ldflags" >> $config_mak
2225
echo "QEMU_CFLAGS+=$cflags" >> $config_mak
2226

2227 2228 2229
echo "/* Automatically generated by configure - do not modify */" > $config_h
echo "#include \"../config-host.h\"" >> $config_h

2230
/bin/sh $source_path/create_config < $config_mak >> $config_h
2231

2232 2233 2234 2235 2236 2237 2238
if test -f ${config_h}~ ; then
  if cmp -s $config_h ${config_h}~ ; then
    mv ${config_h}~ $config_h
  else
    rm ${config_h}~
  fi
fi
2239

2240
done # for target in $targets
B
bellard 已提交
2241 2242 2243

# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
A
Alexander Graf 已提交
2244
    DIRS="tests tests/cris slirp audio block pc-bios/optionrom"
B
bellard 已提交
2245
    FILES="Makefile tests/Makefile"
2246
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
E
edgar_igl 已提交
2247
    FILES="$FILES tests/test-mmap.c"
2248 2249 2250 2251
    FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps pc-bios/video.x"
    for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.dtb $source_path/pc-bios/openbios-*; do
        FILES="$FILES pc-bios/`basename $bios_file`"
    done
B
bellard 已提交
2252 2253 2254
    for dir in $DIRS ; do
            mkdir -p $dir
    done
B
bellard 已提交
2255
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
B
bellard 已提交
2256
    for f in $FILES ; do
B
bellard 已提交
2257 2258
        rm -f $f
        ln -s $source_path/$f $f
B
bellard 已提交
2259 2260
    done
fi
P
Paul Brook 已提交
2261 2262 2263 2264 2265 2266 2267

for hwlib in 32 64; do
  d=libhw$hwlib
  mkdir -p $d
  rm -f $d/Makefile
  ln -s $source_path/Makefile.hw $d/Makefile
  echo "HWLIB=libqemuhw$hwlib.a" > $d/config.mak
J
Juan Quintela 已提交
2268
  echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" >> $d/config.mak
P
Paul Brook 已提交
2269
done