configure 56.2 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

M
malc 已提交
18 19
THISSHELL=${_:-/bin/sh}

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

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

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

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

# parse CC options first
for opt do
  optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
  case "$opt" in
  --cross-prefix=*) cross_prefix="$optarg"
  ;;
  --cc=*) cc="$optarg"
  ;;
62 63
  --cpu=*) cpu="$optarg"
  ;;
J
Juan Quintela 已提交
64
  --extra-cflags=*) QEMU_CFLAGS="$optarg $QEMU_CFLAGS"
65 66 67
  ;;
  --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
  ;;
68 69 70
  --sparc_cpu=*)
    sparc_cpu="$optarg"
    case $sparc_cpu in
71
    v7|v8|v8plus|v8plusa)
72 73 74 75 76 77 78 79 80 81 82
      cpu="sparc"
    ;;
    v9)
      cpu="sparc64"
    ;;
    *)
      echo "undefined SPARC architecture. Exiting";
      exit 1
    ;;
    esac
  ;;
83 84 85 86 87 88 89 90
  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}"
91 92
objcopy="${cross_prefix}${objcopy}"
ld="${cross_prefix}${ld}"
93 94 95 96 97 98

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

99
if compile_object ; then
100 101 102 103 104 105 106 107 108 109 110 111 112
  : 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
113
  compile_object
114 115
}

116 117 118 119
if test ! -z "$cpu" ; then
  # command line argument
  :
elif check_define __i386__ ; then
120 121 122
  cpu="i386"
elif check_define __x86_64__ ; then
  cpu="x86_64"
B
blueswir1 已提交
123 124 125 126 127 128 129 130
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 已提交
131 132 133 134 135 136
elif check_define _ARCH_PPC ; then
  if check_define _ARCH_PPC64 ; then
    cpu="ppc64"
  else
    cpu="ppc"
  fi
137
else
M
malc 已提交
138
  cpu=`uname -m`
139 140
fi

B
bellard 已提交
141
target_list=""
B
bellard 已提交
142
case "$cpu" in
143 144 145
  alpha|cris|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|sparc64)
    cpu="$cpu"
  ;;
B
bellard 已提交
146
  i386|i486|i586|i686|i86pc|BePC)
147
    cpu="i386"
B
bellard 已提交
148
  ;;
A
aurel32 已提交
149 150 151
  x86_64|amd64)
    cpu="x86_64"
  ;;
B
bellard 已提交
152
  armv*b)
153 154
    cpu="armv4b"
  ;;
B
bellard 已提交
155
  armv*l)
B
bellard 已提交
156 157
    cpu="armv4l"
  ;;
A
aurel32 已提交
158 159 160
  parisc|parisc64)
    cpu="hppa"
  ;;
T
ths 已提交
161
  s390*)
B
bellard 已提交
162 163
    cpu="s390"
  ;;
164
  sparc|sun4[cdmuv])
B
bellard 已提交
165 166
    cpu="sparc"
  ;;
B
bellard 已提交
167 168 169 170
  *)
    cpu="unknown"
  ;;
esac
J
Juan Quintela 已提交
171
brlapi="yes"
B
bellard 已提交
172
gprof="no"
173
debug_tcg="no"
P
Paul Brook 已提交
174
debug="no"
175
sparse="no"
176
strip_opt="yes"
B
bellard 已提交
177
bigendian="no"
B
bellard 已提交
178 179
mingw32="no"
EXESUF=""
B
bellard 已提交
180
slirp="yes"
181
vde="yes"
B
bellard 已提交
182 183
fmod_lib=""
fmod_inc=""
B
blueswir1 已提交
184
oss_lib=""
185
vnc_tls="yes"
186
vnc_sasl="yes"
187
bsd="no"
B
bellard 已提交
188
linux="no"
B
blueswir1 已提交
189
solaris="no"
B
bellard 已提交
190
kqemu="no"
191
profiler="no"
192
cocoa="no"
193
softmmu="yes"
194 195
linux_user="no"
darwin_user="no"
B
blueswir1 已提交
196
bsd_user="no"
P
Paul Brook 已提交
197
guest_base=""
198
build_docs="yes"
199
uname_release=""
B
balrog 已提交
200
curses="yes"
A
Alexander Graf 已提交
201
curl="yes"
202
pthread="yes"
203
aio="yes"
204
io_thread="no"
205
nptl="yes"
206
mixemu="no"
B
balrog 已提交
207
bluez="yes"
208
kvm="no"
A
aliguori 已提交
209
kerneldir=""
M
malc 已提交
210
aix="no"
T
ths 已提交
211
blobs="yes"
212
fdt="yes"
213
sdl="yes"
214
xen="yes"
P
pbrook 已提交
215
pkgversion=""
B
bellard 已提交
216 217

# OS specific
218 219 220 221
if check_define __linux__ ; then
  targetos="Linux"
elif check_define _WIN32 ; then
  targetos='MINGW32'
222 223 224 225
elif check_define __OpenBSD__ ; then
  targetos='OpenBSD'
elif check_define __sun__ ; then
  targetos='SunOS'
226 227 228
else
  targetos=`uname -s`
fi
229

B
bellard 已提交
230
case $targetos in
B
bellard 已提交
231
CYGWIN*)
232
  mingw32="yes"
J
Juan Quintela 已提交
233
  QEMU_CFLAGS="-mno-cygwin $QEMU_CFLAGS"
234
  audio_possible_drivers="sdl"
B
bellard 已提交
235
;;
B
bellard 已提交
236
MINGW32*)
237 238
  mingw32="yes"
  audio_possible_drivers="dsound sdl fmod"
B
bellard 已提交
239
;;
T
ths 已提交
240
GNU/kFreeBSD)
241 242 243
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
T
ths 已提交
244
    kqemu="yes"
245
  fi
T
ths 已提交
246
;;
B
bellard 已提交
247
FreeBSD)
248 249 250 251
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
B
bellard 已提交
252
    kqemu="yes"
253
  fi
B
bellard 已提交
254
;;
255
DragonFly)
256 257 258 259
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd pa"
  if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
260
    kqemu="yes"
261 262
  fi
  aio="no"
263
;;
B
bellard 已提交
264
NetBSD)
265 266 267 268
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd"
  oss_lib="-lossaudio"
B
bellard 已提交
269 270
;;
OpenBSD)
271 272 273 274
  bsd="yes"
  audio_drv_list="oss"
  audio_possible_drivers="oss sdl esd"
  oss_lib="-lossaudio"
B
bellard 已提交
275
;;
276
Darwin)
277 278 279 280 281
  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 已提交
282 283
    is_x86_64=`sysctl -n hw.optional.x86_64`
    [ "$is_x86_64" = "1" ] && cpu=x86_64
284 285
  fi
  if [ "$cpu" = "x86_64" ] ; then
J
Juan Quintela 已提交
286
    QEMU_CFLAGS="-arch x86_64 $QEMU_CFLAGS"
287
    LDFLAGS="-arch x86_64 $LDFLAGS"
288
  else
J
Juan Quintela 已提交
289
    QEMU_CFLAGS="-mdynamic-no-pic $QEMU_CFLAGS"
290 291 292 293 294 295
  fi
  darwin_user="yes"
  cocoa="yes"
  audio_drv_list="coreaudio"
  audio_possible_drivers="coreaudio sdl fmod"
  LDFLAGS="-framework CoreFoundation -framework IOKit $LDFLAGS"
296
  libs_softmmu="-F/System/Library/Frameworks -framework Cocoa -framework IOKit $libs_softmmu"
297
;;
B
bellard 已提交
298
SunOS)
299 300 301 302 303 304 305 306 307 308 309 310 311 312 313
  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"
314 315 316
        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"
317 318 319 320 321 322 323
      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 已提交
324
    fi
325 326
    if test "$solarisrev" -ge 9 ; then
      kqemu="yes"
T
ths 已提交
327
    fi
328 329 330 331 332
  fi
  if test -f /usr/include/sys/soundcard.h ; then
    audio_drv_list="oss"
  fi
  audio_possible_drivers="oss sdl"
J
Juan Quintela 已提交
333
  QEMU_CFLAGS="-std=gnu99 $QEMU_CFLAGS"
334
  LIBS="-lsocket -lnsl -lresolv $LIBS"
T
ths 已提交
335
;;
M
malc 已提交
336
AIX)
337 338
  aix="yes"
  make="gmake"
M
malc 已提交
339
;;
340
*)
341 342 343 344 345 346 347
  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
B
bellard 已提交
348
    kqemu="yes"
349
    audio_possible_drivers="$audio_possible_drivers fmod"
350
  fi
B
bellard 已提交
351
;;
B
bellard 已提交
352 353
esac

B
bellard 已提交
354
if [ "$bsd" = "yes" ] ; then
355
  if [ "$darwin" != "yes" ] ; then
356
    make="gmake"
357
    usb="bsd"
358
  fi
B
blueswir1 已提交
359
  bsd_user="yes"
B
bellard 已提交
360 361
fi

362
if test "$mingw32" = "yes" ; then
363 364 365
  if [ "$cpu" = "i386" ] ; then
    kqemu="yes"
  fi
366
  EXESUF=".exe"
J
Juan Quintela 已提交
367
  QEMU_CFLAGS="-DWIN32_LEAN_AND_MEAN -DWINVER=0x501 $QEMU_CFLAGS"
368
  LIBS="-lwinmm -lws2_32 -liphlpapi $LIBS"
J
Juan Quintela 已提交
369
  aio=no
370 371
fi

B
bellard 已提交
372
# find source path
P
pbrook 已提交
373
source_path=`dirname "$0"`
374 375
source_path_used="no"
workdir=`pwd`
P
pbrook 已提交
376
if [ -z "$source_path" ]; then
377
    source_path=$workdir
P
pbrook 已提交
378 379
else
    source_path=`cd "$source_path"; pwd`
B
bellard 已提交
380
fi
P
pbrook 已提交
381
[ -f "$workdir/vl.c" ] || source_path_used="yes"
B
bellard 已提交
382

383
werror=""
384

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

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

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

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

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

B
bellard 已提交
663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687
#
# 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
688
fi
B
bellard 已提交
689 690


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

B
bellard 已提交
758 759 760 761 762 763 764
if test -z "$cross_prefix" ; then

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

770
if compile_prog "" "" ; then
B
bellard 已提交
771 772 773 774 775 776 777 778
$TMPE && bigendian="yes"
else
echo big/little test failed
fi

else

# if cross compiling, cannot launch a program, so make a static guess
779 780 781 782 783
case "$cpu" in
  armv4b|hppa|m68k|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
    bigendian=yes
  ;;
esac
B
bellard 已提交
784 785 786

fi

B
bellard 已提交
787 788
# host long bits test
hostlongbits="32"
789 790 791 792 793
case "$cpu" in
  x86_64|alpha|ia64|sparc64|ppc64)
    hostlongbits=64
  ;;
esac
B
bellard 已提交
794

795 796 797
# Check host NPTL support
cat > $TMPC <<EOF
#include <sched.h>
P
pbrook 已提交
798
#include <linux/futex.h>
799 800 801 802 803 804 805 806
void foo()
{
#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
#error bork
#endif
}
EOF

807
if compile_object ; then
808 809 810 811 812
  :
else
   nptl="no"
fi

813 814 815 816 817 818 819
##########################################
# zlib check

cat > $TMPC << EOF
#include <zlib.h>
int main(void) { zlibVersion(); return 0; }
EOF
820
if compile_prog "" "-lz" ; then
821 822 823 824 825 826 827 828 829
    :
else
    echo
    echo "Error: zlib check failed"
    echo "Make sure to have the zlib libs and headers installed."
    echo
    exit 1
fi

830 831 832 833
##########################################
# xen probe

if test "$xen" = "yes" ; then
834 835
  xen_libs="-lxenstore -lxenctrl -lxenguest"
  cat > $TMPC <<EOF
836 837
#include <xenctrl.h>
#include <xs.h>
838
int main(void) { xs_daemon_open(); xc_interface_open(); return 0; }
839
EOF
840
  if compile_prog "" "$xen_libs" ; then
J
Juan Quintela 已提交
841
    libs_softmmu="$xen_libs $libs_softmmu"
842 843 844
  else
    xen="no"
  fi
845 846
fi

B
bellard 已提交
847 848 849 850 851
##########################################
# SDL probe

sdl_too_old=no

852
if test "$sdl" = "yes" ; then
J
Juan Quintela 已提交
853 854
  sdl=no
  cat > $TMPC << EOF
B
bellard 已提交
855 856 857 858
#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 已提交
859 860
  sdl_cflags=`sdl-config --cflags 2> /dev/null`
  sdl_libs=`sdl-config --libs 2> /dev/null`
861
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
862 863 864 865 866 867 868 869
    _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 已提交
870

J
Juan Quintela 已提交
871 872 873 874 875 876 877
    # 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
878
      if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
879 880 881 882 883 884
	:
      else
        sdl=no
      fi
    fi # static link
  fi # sdl compile test
885
fi
B
bellard 已提交
886

887
if test "$sdl" = "yes" ; then
J
Juan Quintela 已提交
888
  cat > $TMPC <<EOF
889 890 891 892 893 894 895 896
#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
897
  if compile_prog "$sdl_cflags" "$sdl_libs" ; then
J
Juan Quintela 已提交
898 899
    sdl_libs="$sdl_libs -lX11"
  fi
900 901 902
  if test "$mingw32" = "yes" ; then
    sdl_libs="`echo $sdl_libs | sed s/-mwindows//g` -mconsole"
  fi
J
Juan Quintela 已提交
903
  libs_softmmu="$sdl_libs $libs_softmmu"
904 905
fi

906 907 908
##########################################
# VNC TLS detection
if test "$vnc_tls" = "yes" ; then
909 910 911 912 913 914
cat > $TMPC <<EOF
#include <gnutls/gnutls.h>
int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
EOF
    vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
    vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
915
    if compile_prog "$vnc_tls_cflags" "$vnc_tls_libs" ; then
916
	libs_softmmu="$vnc_tls_libs $libs_softmmu"
917 918 919
    else
	vnc_tls="no"
    fi
920 921
fi

922 923 924 925 926 927 928 929 930 931 932
##########################################
# VNC SASL detection
if test "$vnc_sasl" = "yes" ; then
cat > $TMPC <<EOF
#include <sasl/sasl.h>
#include <stdio.h>
int main(void) { sasl_server_init(NULL, "qemu"); return 0; }
EOF
    # Assuming Cyrus-SASL installed in /usr prefix
    vnc_sasl_cflags=""
    vnc_sasl_libs="-lsasl2"
933
    if compile_prog "$vnc_sasl_cflags" "$vnc_sasl_libs" ; then
934
	libs_softmmu="$vnc_sasl_libs $libs_softmmu"
935 936 937 938 939
    else
	vnc_sasl="no"
    fi
fi

940 941 942 943 944 945 946 947 948 949 950
##########################################
# fnmatch() probe, used for ACL routines
fnmatch="no"
cat > $TMPC << EOF
#include <fnmatch.h>
int main(void)
{
    fnmatch("foo", "foo", 0);
    return 0;
}
EOF
951
if compile_prog "" "" ; then
952 953 954
   fnmatch="yes"
fi

955 956 957
##########################################
# vde libraries probe
if test "$vde" = "yes" ; then
J
Juan Quintela 已提交
958 959
  vde=no
  vde_libs="-lvdeplug"
960 961
  cat > $TMPC << EOF
#include <libvdeplug.h>
P
pbrook 已提交
962 963 964 965 966 967
int main(void)
{
    struct vde_open_args a = {0, 0, 0};
    vde_open("", "", &a);
    return 0;
}
968
EOF
969
  if compile_prog "" "$vde_libs" ; then
J
Juan Quintela 已提交
970
    vde=yes
971 972
    libs_softmmu="$vde_libs $libs_softmmu"
    libs_tools="$vde_libs $libs_tools"
J
Juan Quintela 已提交
973
  fi
974 975
fi

976
##########################################
977
# Sound support libraries probe
978

979 980 981 982 983 984 985 986 987 988
audio_drv_probe()
{
    drv=$1
    hdr=$2
    lib=$3
    exp=$4
    cfl=$5
        cat > $TMPC << EOF
#include <$hdr>
int main(void) { $exp }
989
EOF
990
    if compile_prog "$cfl" "$lib" ; then
991 992 993 994 995 996 997 998 999 1000
        :
    else
        echo
        echo "Error: $drv check failed"
        echo "Make sure to have the $drv libs and headers installed."
        echo
        exit 1
    fi
}

1001
audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
1002 1003 1004 1005 1006
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);"
1007
    libs_softmmu="-lasound $libs_softmmu"
1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
    ;;

    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"
1019
    libs_softmmu="$fmod_lib $libs_softmmu"
1020 1021 1022 1023
    ;;

    esd)
    audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
1024
    libs_softmmu="-lesd $libs_softmmu"
1025
    audio_pt_int="yes"
1026
    ;;
M
malc 已提交
1027 1028 1029 1030

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

1035 1036 1037 1038
    coreaudio)
      libs_softmmu="-framework CoreAudio $libs_softmmu"
    ;;

1039 1040 1041 1042 1043 1044 1045 1046 1047
    dsound)
      libs_softmmu="-lole32 -ldxguid $libs_softmmu"
    ;;

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

    sdl|wav)
B
blueswir1 已提交
1048 1049 1050
    # XXX: Probes for CoreAudio, DirectSound, SDL(?)
    ;;

M
malc 已提交
1051
    *)
M
malc 已提交
1052
    echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
M
malc 已提交
1053 1054 1055 1056 1057 1058 1059
        echo
        echo "Error: Unknown driver '$drv' selected"
        echo "Possible drivers are: $audio_possible_drivers"
        echo
        exit 1
    }
    ;;
1060 1061
    esac
done
1062

A
aurel32 已提交
1063 1064 1065
##########################################
# BrlAPI probe

J
Juan Quintela 已提交
1066 1067 1068 1069
if test "$brlapi" = "yes" ; then
  brlapi=no
  brlapi_libs="-lbrlapi"
  cat > $TMPC << EOF
A
aurel32 已提交
1070 1071 1072
#include <brlapi.h>
int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
EOF
1073
  if compile_prog "" "$brlapi_libs" ; then
J
Juan Quintela 已提交
1074
    brlapi=yes
1075
    libs_softmmu="$brlapi_libs $libs_softmmu"
J
Juan Quintela 已提交
1076 1077
  fi
fi
A
aurel32 已提交
1078

B
balrog 已提交
1079 1080 1081 1082 1083 1084
##########################################
# curses probe

if test "$curses" = "yes" ; then
  cat > $TMPC << EOF
#include <curses.h>
1085 1086 1087 1088
#ifdef __OpenBSD__
#define resize_term resizeterm
#endif
int main(void) { resize_term(0, 0); return curses_version(); }
B
balrog 已提交
1089
EOF
1090
  if compile_prog "" "-lncurses" ; then
1091
    libs_softmmu="-lncurses $libs_softmmu"
1092
  elif compile_prog "" "-lcurses" ; then
1093
    libs_softmmu="-lcurses $libs_softmmu"
1094 1095
  else
    curses=no
B
balrog 已提交
1096 1097 1098
  fi
fi # test "$curses"

A
Alexander Graf 已提交
1099 1100 1101 1102 1103 1104 1105 1106 1107
##########################################
# 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 已提交
1108
  curl_cflags=`curl-config --cflags 2>/dev/null`
1109
  curl_libs=`curl-config --libs 2>/dev/null`
J
Juan Quintela 已提交
1110
  if compile_prog "$curl_cflags" "$curl_libs" ; then
A
Alexander Graf 已提交
1111
    curl=yes
1112 1113
    libs_tools="$curl_libs $libs_tools"
    libs_softmmu="$curl_libs $libs_softmmu"
A
Alexander Graf 已提交
1114 1115 1116
  fi
fi # test "$curl"

B
balrog 已提交
1117 1118 1119
##########################################
# bluez support probe
if test "$bluez" = "yes" ; then
1120
  `pkg-config bluez 2> /dev/null` || bluez="no"
B
balrog 已提交
1121 1122
fi
if test "$bluez" = "yes" ; then
1123 1124 1125 1126
  cat > $TMPC << EOF
#include <bluetooth/bluetooth.h>
int main(void) { return bt_error(0); }
EOF
1127 1128
  bluez_cflags=`pkg-config --cflags bluez 2> /dev/null`
  bluez_libs=`pkg-config --libs bluez 2> /dev/null`
1129
  if compile_prog "$bluez_cflags" "$bluez_libs" ; then
1130
    libs_softmmu="$bluez_libs $libs_softmmu"
1131 1132 1133
  else
    bluez="no"
  fi
B
balrog 已提交
1134 1135
fi

A
aliguori 已提交
1136 1137 1138 1139 1140
##########################################
# kvm probe
if test "$kvm" = "yes" ; then
    cat > $TMPC <<EOF
#include <linux/kvm.h>
1141
#if !defined(KVM_API_VERSION) || KVM_API_VERSION < 12 || KVM_API_VERSION > 12
A
aliguori 已提交
1142 1143
#error Invalid KVM version
#endif
1144 1145 1146 1147 1148 1149 1150 1151 1152
#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 已提交
1153 1154
int main(void) { return 0; }
EOF
A
aliguori 已提交
1155 1156
  if test "$kerneldir" != "" ; then
      kvm_cflags=-I"$kerneldir"/include
1157 1158 1159
      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 已提交
1160 1161
	elif test "$cpu" = "ppc" -a -d "$kerneldir/arch/powerpc/include" ; then
	    kvm_cflags="$kvm_cflags -I$kerneldir/arch/powerpc/include"
1162 1163 1164
        elif test -d "$kerneldir/arch/$cpu/include" ; then
            kvm_cflags="$kvm_cflags -I$kerneldir/arch/$cpu/include"
      fi
A
aliguori 已提交
1165 1166 1167
  else
      kvm_cflags=""
  fi
1168
  if compile_prog "$kvm_cflags" "" ; then
A
aliguori 已提交
1169 1170
    :
  else
1171 1172 1173
    kvm="no";
    if [ -x "`which awk 2>/dev/null`" ] && \
       [ -x "`which grep 2>/dev/null`" ]; then
J
Juan Quintela 已提交
1174
      kvmerr=`LANG=C $cc $QEMU_CFLAGS -o $TMPE $kvm_cflags $TMPC 2>&1 \
1175 1176 1177
	| grep "error: " \
	| awk -F "error: " '{if (NR>1) printf(", "); printf("%s",$2);}'`
      if test "$kvmerr" != "" ; then
1178 1179 1180
        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."
1181 1182
      fi
    fi
A
aliguori 已提交
1183 1184 1185
  fi
fi

1186
##########################################
1187
# pthread probe
1188
PTHREADLIBS_LIST="-lpthread -lpthreadGC2"
1189

1190 1191 1192
if test "$pthread" = yes; then
  pthread=no
cat > $TMPC << EOF
1193
#include <pthread.h>
1194
int main(void) { pthread_create(0,0,0,0); return 0; }
1195
EOF
1196
  for pthread_lib in $PTHREADLIBS_LIST; do
1197
    if compile_prog "" "$pthread_lib" ; then
1198
      pthread=yes
1199
      LIBS="$pthread_lib $LIBS"
1200 1201 1202
      break
    fi
  done
1203 1204
fi

1205 1206 1207 1208 1209
if test "$pthread" = no; then
   aio=no
   io_thread=no
fi

A
aliguori 已提交
1210 1211 1212
##########################################
# iovec probe
cat > $TMPC <<EOF
B
blueswir1 已提交
1213
#include <sys/types.h>
A
aliguori 已提交
1214
#include <sys/uio.h>
B
blueswir1 已提交
1215
#include <unistd.h>
A
aliguori 已提交
1216 1217 1218
int main(void) { struct iovec iov; return 0; }
EOF
iovec=no
1219
if compile_prog "" "" ; then
A
aliguori 已提交
1220 1221 1222
  iovec=yes
fi

1223 1224 1225 1226 1227 1228 1229 1230 1231
##########################################
# preadv probe
cat > $TMPC <<EOF
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
int main(void) { preadv; }
EOF
preadv=no
1232
if compile_prog "" "" ; then
1233 1234 1235
  preadv=yes
fi

1236 1237 1238
##########################################
# fdt probe
if test "$fdt" = "yes" ; then
J
Juan Quintela 已提交
1239 1240 1241
  fdt=no
  fdt_libs="-lfdt"
  cat > $TMPC << EOF
1242 1243
int main(void) { return 0; }
EOF
1244
  if compile_prog "" "$fdt_libs" ; then
1245
    fdt=yes
J
Juan Quintela 已提交
1246
    libs_softmmu="$fdt_libs $libs_softmmu"
1247 1248 1249
  fi
fi

1250 1251 1252 1253 1254 1255
#
# 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
1256
cat > $TMPC << EOF
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268
#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
1269
if compile_prog "" "" ; then
1270
  atfile=yes
1271 1272
fi

A
aurel32 已提交
1273
# Check for inotify functions when we are building linux-user
1274 1275 1276 1277 1278
# 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
1279
cat > $TMPC << EOF
1280 1281 1282 1283 1284 1285
#include <sys/inotify.h>

int
main(void)
{
	/* try to start inotify */
A
aurel32 已提交
1286
	return inotify_init();
1287 1288
}
EOF
1289
if compile_prog "" "" ; then
1290
  inotify=yes
1291 1292
fi

R
Riku Voipio 已提交
1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307
# 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
1308
if compile_prog "" "" ; then
R
Riku Voipio 已提交
1309 1310 1311
  utimens=yes
fi

R
Riku Voipio 已提交
1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
# 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
1326
if compile_prog "" "" ; then
R
Riku Voipio 已提交
1327 1328 1329
  pipe2=yes
fi

1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345
# 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
1346
if compile_prog "" "" ; then
1347 1348 1349
  splice=yes
fi

1350
# Check if tools are available to build documentation.
1351 1352
if test "$build_docs" = "yes" -a \( ! -x "`which texi2html 2>/dev/null`" -o ! -x "`which pod2man 2>/dev/null`" \) ; then
  build_docs="no"
1353 1354
fi

1355 1356 1357 1358 1359 1360
# Search for bsawp_32 function
byteswap_h=no
cat > $TMPC << EOF
#include <byteswap.h>
int main(void) { return bswap_32(0); }
EOF
1361
if compile_prog "" "" ; then
1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
  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
1373
if compile_prog "" "" ; then
1374 1375 1376
  bswap_h=yes
fi

A
aliguori 已提交
1377 1378 1379 1380 1381 1382 1383 1384
##########################################
# 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

1385
if compile_prog "" "" ; then
1386
  :
1387
elif compile_prog "" "-lrt" ; then
1388
  LIBS="-lrt $LIBS"
A
aliguori 已提交
1389 1390
fi

1391 1392 1393 1394 1395 1396 1397
# Determine what linker flags to use to force archive inclusion
check_linker_flags()
{
    w2=
    if test "$2" ; then
	w2=-Wl,$2
    fi
1398
    compile_prog "" "-Wl,$1 ${w2}"
1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421
}

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

1422 1423 1424 1425 1426
if test "$darwin" != "yes" -a "$mingw32" != "yes" -a "$solaries" != yes -a \
        "$aix" != "yes" ; then
    libs_softmmu="-lutil $libs_softmmu"
fi

1427 1428 1429 1430
# End of CC checks
# After here, no more $cc or $ld runs

# default flags for all hosts
J
Juan Quintela 已提交
1431 1432
QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
CFLAGS="-g $CFLAGS"
1433
if test "$debug" = "no" ; then
1434
  CFLAGS="-O2 $CFLAGS"
1435
fi
J
Juan Quintela 已提交
1436 1437
QEMU_CFLAGS="-Wall -Wundef -Wendif-labels -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
1438 1439 1440
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"
1441
LDFLAGS="-g $LDFLAGS"
1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455

# 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 已提交
1456
    QEMU_CFLAGS="-Werror $QEMU_CFLAGS"
1457 1458 1459 1460
fi

if test "$solaris" = "no" ; then
    if $ld --version 2>/dev/null | grep "GNU ld" >/dev/null 2>/dev/null ; then
1461
        LDFLAGS="-Wl,--warn-common $LDFLAGS"
1462 1463 1464
    fi
fi

B
bellard 已提交
1465
if test "$mingw32" = "yes" ; then
P
pbrook 已提交
1466
  if test -z "$prefix" ; then
S
Stefan Weil 已提交
1467
      prefix="c:/Program Files/Qemu"
P
pbrook 已提交
1468 1469 1470 1471 1472
  fi
  mansuffix=""
  datasuffix=""
  docsuffix=""
  binsuffix=""
B
bellard 已提交
1473
else
P
pbrook 已提交
1474 1475 1476 1477 1478 1479 1480
  if test -z "$prefix" ; then
      prefix="/usr/local"
  fi
  mansuffix="/share/man"
  datasuffix="/share/qemu"
  docsuffix="/share/doc/qemu"
  binsuffix="/bin"
B
bellard 已提交
1481
fi
1482

B
bellard 已提交
1483
echo "Install prefix    $prefix"
P
pbrook 已提交
1484 1485
echo "BIOS directory    $prefix$datasuffix"
echo "binary directory  $prefix$binsuffix"
B
bellard 已提交
1486
if test "$mingw32" = "no" ; then
P
pbrook 已提交
1487
echo "Manual directory  $prefix$mansuffix"
B
bellard 已提交
1488
echo "ELF interp prefix $interp_prefix"
B
bellard 已提交
1489
fi
1490
echo "Source path       $source_path"
B
bellard 已提交
1491
echo "C compiler        $cc"
B
bellard 已提交
1492
echo "Host C compiler   $host_cc"
1493
echo "CFLAGS            $CFLAGS"
J
Juan Quintela 已提交
1494
echo "QEMU_CFLAGS       $QEMU_CFLAGS"
1495
echo "LDFLAGS           $LDFLAGS"
B
bellard 已提交
1496
echo "make              $make"
1497
echo "install           $install"
B
bellard 已提交
1498
echo "host CPU          $cpu"
B
bellard 已提交
1499
echo "host big endian   $bigendian"
1500
echo "target list       $target_list"
1501
echo "tcg debug enabled $debug_tcg"
B
bellard 已提交
1502
echo "gprof enabled     $gprof"
1503
echo "sparse enabled    $sparse"
1504
echo "strip binaries    $strip_opt"
1505
echo "profiler          $profiler"
B
bellard 已提交
1506
echo "static build      $static"
1507
echo "-Werror enabled   $werror"
1508 1509 1510
if test "$darwin" = "yes" ; then
    echo "Cocoa support     $cocoa"
fi
1511
echo "SDL support       $sdl"
B
balrog 已提交
1512
echo "curses support    $curses"
A
Alexander Graf 已提交
1513
echo "curl support      $curl"
B
bellard 已提交
1514
echo "mingw32 support   $mingw32"
M
malc 已提交
1515 1516
echo "Audio drivers     $audio_drv_list"
echo "Extra audio cards $audio_card_list"
1517
echo "Mixer emulation   $mixemu"
1518 1519 1520 1521 1522
echo "VNC TLS support   $vnc_tls"
if test "$vnc_tls" = "yes" ; then
    echo "    TLS CFLAGS    $vnc_tls_cflags"
    echo "    TLS LIBS      $vnc_tls_libs"
fi
1523 1524 1525 1526 1527
echo "VNC SASL support  $vnc_sasl"
if test "$vnc_sasl" = "yes" ; then
    echo "    SASL CFLAGS    $vnc_sasl_cflags"
    echo "    SASL LIBS      $vnc_sasl_libs"
fi
1528 1529 1530
if test -n "$sparc_cpu"; then
    echo "Target Sparc Arch $sparc_cpu"
fi
B
bellard 已提交
1531
echo "kqemu support     $kqemu"
1532
echo "xen support       $xen"
A
aurel32 已提交
1533
echo "brlapi support    $brlapi"
1534
echo "Documentation     $build_docs"
1535 1536
[ ! -z "$uname_release" ] && \
echo "uname -r          $uname_release"
1537
echo "NPTL support      $nptl"
P
Paul Brook 已提交
1538
echo "GUEST_BASE        $guest_base"
1539
echo "vde support       $vde"
1540
echo "AIO support       $aio"
1541
echo "IO thread         $io_thread"
T
ths 已提交
1542
echo "Install blobs     $blobs"
1543
echo -e "KVM support       $kvm"
1544
echo "fdt support       $fdt"
1545
echo "preadv support    $preadv"
B
bellard 已提交
1546

1547
if test $sdl_too_old = "yes"; then
B
bellard 已提交
1548
echo "-> Your SDL version is too old - please upgrade to have SDL support"
B
bellard 已提交
1549
fi
B
bellard 已提交
1550

1551 1552
config_host_mak="config-host.mak"
config_host_h="config-host.h"
1553
config_host_ld="config-host.ld"
1554 1555 1556 1557 1558 1559 1560 1561 1562 1563

#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

1564
echo "CONFIG_QEMU_SHAREDIR=\"$prefix$datasuffix\"" >> $config_host_mak
1565

A
aurel32 已提交
1566
case "$cpu" in
1567
  i386|x86_64|alpha|cris|hppa|ia64|m68k|microblaze|mips|mips64|ppc|ppc64|s390|sparc|sparc64)
1568
    ARCH=$cpu
A
aurel32 已提交
1569
  ;;
1570
  armv4b|armv4l)
1571
    ARCH=arm
A
aurel32 已提交
1572 1573 1574 1575 1576 1577
  ;;
  *)
    echo "Unsupported CPU = $cpu"
    exit 1
  ;;
esac
1578
echo "ARCH=$ARCH" >> $config_host_mak
1579
if test "$debug_tcg" = "yes" ; then
1580
  echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak
1581
fi
P
Paul Brook 已提交
1582
if test "$debug" = "yes" ; then
1583
  echo "CONFIG_DEBUG_EXEC=y" >> $config_host_mak
P
Paul Brook 已提交
1584
fi
1585
if test "$strip_opt" = "yes" ; then
1586
  echo "STRIP_OPT=-s" >> $config_host_mak
1587
fi
B
bellard 已提交
1588
if test "$bigendian" = "yes" ; then
1589
  echo "HOST_WORDS_BIGENDIAN=y" >> $config_host_mak
1590
fi
1591
echo "HOST_LONG_BITS=$hostlongbits" >> $config_host_mak
B
bellard 已提交
1592
if test "$mingw32" = "yes" ; then
1593
  echo "CONFIG_WIN32=y" >> $config_host_mak
1594
else
J
Juan Quintela 已提交
1595
  echo "CONFIG_POSIX=y" >> $config_host_mak
B
bellard 已提交
1596
fi
1597

1598
if test "$darwin" = "yes" ; then
1599
  echo "CONFIG_DARWIN=y" >> $config_host_mak
1600
fi
M
malc 已提交
1601 1602

if test "$aix" = "yes" ; then
1603
  echo "CONFIG_AIX=y" >> $config_host_mak
M
malc 已提交
1604 1605
fi

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

1731
# XXX: suppress that
B
bellard 已提交
1732
if [ "$bsd" = "yes" ] ; then
1733
  echo "CONFIG_BSD=y" >> $config_host_mak
B
bellard 已提交
1734 1735
fi

1736
echo "CONFIG_UNAME_RELEASE=\"$uname_release\"" >> $config_host_mak
1737

1738 1739 1740
# USB host support
case "$usb" in
linux)
1741
  echo "HOST_USB=linux" >> $config_host_mak
1742 1743
;;
bsd)
1744
  echo "HOST_USB=bsd" >> $config_host_mak
1745 1746
;;
*)
1747
  echo "HOST_USB=stub" >> $config_host_mak
1748 1749 1750
;;
esac

1751 1752
tools=
if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
A
aliguori 已提交
1753
  tools="qemu-img\$(EXESUF) $tools"
B
bellard 已提交
1754
  if [ "$linux" = "yes" ] ; then
A
aliguori 已提交
1755
      tools="qemu-nbd\$(EXESUF) qemu-io\$(EXESUF) $tools"
B
bellard 已提交
1756
  fi
1757
fi
1758
echo "TOOLS=$tools" >> $config_host_mak
1759

1760
# Mac OS X ships with a broken assembler
A
Alexander Graf 已提交
1761
roms=
1762 1763
if test \( "$cpu" = "i386" -o "$cpu" = "x86_64" \) -a \
        "$targetos" != "Darwin" ; then
P
Paul Brook 已提交
1764
  roms="optionrom"
A
Alexander Graf 已提交
1765
fi
1766
echo "ROMS=$roms" >> $config_host_mak
A
Alexander Graf 已提交
1767

1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782
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 已提交
1783
  echo "QEMU_CFLAGS  += -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-non-pointer-null" >> $config_host_mak
1784 1785 1786 1787
fi
echo "AR=$ar" >> $config_host_mak
echo "OBJCOPY=$objcopy" >> $config_host_mak
echo "LD=$ld" >> $config_host_mak
1788
echo "CFLAGS=$CFLAGS" >> $config_host_mak
J
Juan Quintela 已提交
1789
echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak
J
Juan Quintela 已提交
1790
echo "HELPER_CFLAGS=$helper_cflags" >> $config_host_mak
1791
echo "LDFLAGS=$LDFLAGS" >> $config_host_mak
1792 1793
echo "ARLIBS_BEGIN=$arlibs_begin" >> $config_host_mak
echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
J
Juan Quintela 已提交
1794
echo "LIBS+=$LIBS" >> $config_host_mak
J
Juan Quintela 已提交
1795
echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
1796 1797
echo "EXESUF=$EXESUF" >> $config_host_mak

1798 1799
echo "/* Automatically generated by configure - do not modify */" > $config_host_h

M
malc 已提交
1800
$THISSHELL $source_path/create_config < $config_host_mak >> $config_host_h
1801

1802 1803 1804
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 已提交
1805
  else
1806
    rm ${config_host_h}~
P
Paul Brook 已提交
1807 1808 1809
  fi
fi

1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821
# 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

1822
for target in $target_list; do
1823 1824 1825
target_dir="$target"
config_mak=$target_dir/config.mak
config_h=$target_dir/config.h
B
Blue Swirl 已提交
1826
target_arch2=`echo $target | cut -d '-' -f 1`
1827
target_bigendian="no"
1828 1829 1830 1831 1832
case "$target_arch2" in
  armeb|m68k|microblaze|mips|mipsn32|mips64|ppc|ppcemb|ppc64|ppc64abi32|sh4eb|sparc|sparc64|sparc32plus)
  target_bigendian=yes
  ;;
esac
1833
target_softmmu="no"
B
bellard 已提交
1834
target_user_only="no"
1835 1836
target_linux_user="no"
target_darwin_user="no"
B
blueswir1 已提交
1837
target_bsd_user="no"
P
pbrook 已提交
1838
case "$target" in
B
Blue Swirl 已提交
1839
  ${target_arch2}-softmmu)
P
pbrook 已提交
1840 1841
    target_softmmu="yes"
    ;;
B
Blue Swirl 已提交
1842
  ${target_arch2}-linux-user)
P
pbrook 已提交
1843 1844 1845
    target_user_only="yes"
    target_linux_user="yes"
    ;;
B
Blue Swirl 已提交
1846
  ${target_arch2}-darwin-user)
P
pbrook 已提交
1847 1848 1849
    target_user_only="yes"
    target_darwin_user="yes"
    ;;
B
Blue Swirl 已提交
1850
  ${target_arch2}-bsd-user)
B
blueswir1 已提交
1851 1852 1853
    target_user_only="yes"
    target_bsd_user="yes"
    ;;
P
pbrook 已提交
1854 1855 1856 1857 1858
  *)
    echo "ERROR: Target '$target' not recognised"
    exit 1
    ;;
esac
1859

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

1862 1863
test -f $config_h && mv $config_h ${config_h}~

1864
mkdir -p $target_dir
B
bellard 已提交
1865
mkdir -p $target_dir/fpu
B
bellard 已提交
1866
mkdir -p $target_dir/tcg
B
blueswir1 已提交
1867
if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then
B
bellard 已提交
1868 1869 1870
  mkdir -p $target_dir/nwfpe
fi

B
bellard 已提交
1871 1872 1873 1874 1875 1876
#
# 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

1877 1878

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

1880
echo "include ../config-host.mak" >> $config_mak
1881

P
pbrook 已提交
1882
bflt="no"
1883
elfload32="no"
1884
target_nptl="no"
B
Blue Swirl 已提交
1885
interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"`
1886
echo "CONFIG_QEMU_PREFIX=\"$interp_prefix1\"" >> $config_mak
P
pbrook 已提交
1887
gdb_xml_files=""
A
aliguori 已提交
1888

1889
TARGET_ARCH="$target_arch2"
1890
TARGET_BASE_ARCH=""
1891
TARGET_ABI_DIR=""
1892

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

2061 2062 2063 2064
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
    ;;
2065 2066 2067
  *)
    echo "CONFIG_NOSOFTFLOAT=y" >> $config_mak
    ;;
2068 2069
esac

P
pbrook 已提交
2070
if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
2071
  echo "TARGET_HAS_BFLT=y" >> $config_mak
P
pbrook 已提交
2072
fi
2073 2074
if test "$target_user_only" = "yes" \
        -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
2075
  echo "CONFIG_USE_NPTL=y" >> $config_mak
2076
fi
2077 2078
# 32 bit ELF loader in addition to native 64 bit loader?
if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
2079
  echo "TARGET_HAS_ELFLOAD32=y" >> $config_mak
2080
fi
P
Paul Brook 已提交
2081 2082 2083
if test "$target_user_only" = "yes" -a "$guest_base" = "yes"; then
  echo "CONFIG_USE_GUEST_BASE=y" >> $config_mak
fi
B
blueswir1 已提交
2084
if test "$target_bsd_user" = "yes" ; then
2085
  echo "CONFIG_BSD_USER=y" >> $config_mak
B
blueswir1 已提交
2086
fi
2087

2088
# generate QEMU_CFLAGS/LDFLAGS for targets
2089

2090
cflags=""
2091
ldflags=""
2092

J
Juan Quintela 已提交
2093 2094 2095 2096 2097 2098 2099 2100
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"

2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 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
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

2142 2143 2144 2145 2146
case "$ARCH" in
alpha)
  # Ensure there's only a single GP
  cflags="-msmall-data $cflags"
;;
2147 2148 2149
ia64)
  cflags="-mno-sdata $cflags"
;;
2150 2151
esac

2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162
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

2163 2164 2165 2166 2167 2168
if test "$target_softmmu" = "yes" -a \( \
        "$TARGET_ARCH" = "microblaze" -o \
        "$TARGET_ARCH" = "cris" \) ; then
  echo "CONFIG_NEED_MMU=y" >> $config_mak
fi

2169 2170 2171 2172 2173 2174 2175 2176
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"
2177
    echo "GPROF_CFLAGS=-p" >> $config_mak
2178 2179 2180
  fi
fi

2181
linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld"
2182
if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then
2183 2184 2185
  case "$ARCH" in
  i386)
    if test "$gprof" = "yes" -o "$static" = "yes" ; then
2186
      ldflags="$linker_script $ldflags"
2187 2188 2189 2190
    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!
2191
      ldflags="-Wl,-shared $ldflags"
2192 2193 2194 2195
    fi
    ;;
  sparc)
    # -static is used to avoid g1/g3 usage by the dynamic linker
2196
    ldflags="$linker_script -static $ldflags"
2197 2198
    ;;
  ia64)
2199
    ldflags="-Wl,-G0 $linker_script -static $ldflags"
2200 2201
    ;;
  x86_64|ppc|ppc64|s390|sparc64|alpha|arm|m68k|mips|mips64)
2202
    ldflags="$linker_script $ldflags"
2203 2204 2205 2206 2207 2208
    ;;
  esac
fi
if test "$target_softmmu" = "yes" ; then
  case "$ARCH" in
  ia64)
2209
    ldflags="-Wl,-G0 $linker_script -static $ldflags"
2210 2211 2212 2213
    ;;
  esac
fi

2214
echo "LDFLAGS+=$ldflags" >> $config_mak
2215
echo "QEMU_CFLAGS+=$cflags" >> $config_mak
2216

2217 2218 2219
echo "/* Automatically generated by configure - do not modify */" > $config_h
echo "#include \"../config-host.h\"" >> $config_h

M
malc 已提交
2220
$THISSHELL $source_path/create_config < $config_mak >> $config_h
2221

2222 2223 2224 2225 2226 2227 2228
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
2229

2230
done # for target in $targets
B
bellard 已提交
2231 2232 2233

# build tree in object directory if source path is different from current one
if test "$source_path_used" = "yes" ; then
A
Alexander Graf 已提交
2234
    DIRS="tests tests/cris slirp audio block pc-bios/optionrom"
B
bellard 已提交
2235
    FILES="Makefile tests/Makefile"
2236
    FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
E
edgar_igl 已提交
2237
    FILES="$FILES tests/test-mmap.c"
2238 2239 2240 2241
    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 已提交
2242 2243 2244
    for dir in $DIRS ; do
            mkdir -p $dir
    done
B
bellard 已提交
2245
    # remove the link and recreate it, as not all "ln -sf" overwrite the link
B
bellard 已提交
2246
    for f in $FILES ; do
B
bellard 已提交
2247 2248
        rm -f $f
        ln -s $source_path/$f $f
B
bellard 已提交
2249 2250
    done
fi
P
Paul Brook 已提交
2251 2252 2253 2254 2255 2256 2257

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 已提交
2258
  echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib" >> $d/config.mak
P
Paul Brook 已提交
2259
done