]> git.proxmox.com Git - qemu.git/blame - configure
Add static (spotted by sparse)
[qemu.git] / configure
CommitLineData
7d13299d
FB
1#!/bin/sh
2#
3ef693a0 3# qemu configure script (c) 2003 Fabrice Bellard
7d13299d
FB
4#
5# set temporary file name
6if test ! -z "$TMPDIR" ; then
7 TMPDIR1="${TMPDIR}"
8elif test ! -z "$TEMPDIR" ; then
9 TMPDIR1="${TEMPDIR}"
10else
11 TMPDIR1="/tmp"
12fi
13
3ef693a0
FB
14TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
9d56d2dc 18TMPI="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.i"
7d13299d
FB
19
20# default parameters
11d9f695 21prefix=""
1e43adfc 22interp_prefix="/usr/gnemul/qemu-%M"
43ce4dfe 23static="no"
7d13299d
FB
24cross_prefix=""
25cc="gcc"
328a4240 26gcc3_search="yes"
fe8f78e4 27gcc3_list="gcc-3.4.6 gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32"
0c58ac1c 28audio_drv_list=""
29audio_card_list=""
7d13299d
FB
30host_cc="gcc"
31ar="ar"
32make="make"
6a882643 33install="install"
7d13299d
FB
34strip="strip"
35cpu=`uname -m`
5327cf48 36target_list=""
7d13299d
FB
37case "$cpu" in
38 i386|i486|i586|i686|i86pc|BePC)
97a847bc 39 cpu="i386"
7d13299d 40 ;;
aaa5fa14
AJ
41 x86_64|amd64)
42 cpu="x86_64"
43 ;;
44 alpha)
45 cpu="alpha"
46 ;;
ba68055e 47 armv*b)
808c4954
FB
48 cpu="armv4b"
49 ;;
ba68055e 50 armv*l)
7d13299d
FB
51 cpu="armv4l"
52 ;;
aaa5fa14
AJ
53 cris)
54 cpu="cris"
7d13299d 55 ;;
f54b3f92
AJ
56 parisc|parisc64)
57 cpu="hppa"
58 ;;
aaa5fa14
AJ
59 ia64)
60 cpu="ia64"
61 ;;
62 m68k)
63 cpu="m68k"
7d13299d
FB
64 ;;
65 mips)
66 cpu="mips"
67 ;;
fbe4f65b
TS
68 mips64)
69 cpu="mips64"
70 ;;
aaa5fa14
AJ
71 "Power Macintosh"|ppc|ppc64)
72 cpu="powerpc"
e7daa605 73 ;;
0e7b8a9f 74 s390*)
fb3e5849
FB
75 cpu="s390"
76 ;;
3142255c 77 sparc|sun4[cdmuv])
ae228531
FB
78 cpu="sparc"
79 ;;
80 sparc64)
81 cpu="sparc64"
82 ;;
7d13299d
FB
83 *)
84 cpu="unknown"
85 ;;
86esac
87gprof="no"
88bigendian="no"
67b915a5
FB
89mingw32="no"
90EXESUF=""
91gdbstub="yes"
443f1376 92slirp="yes"
e0e6c8c0 93vde="yes"
102a52e4
FB
94fmod_lib=""
95fmod_inc=""
2f6a1ab0 96oss_lib=""
8d5d2d4c 97vnc_tls="yes"
b1a550a0 98bsd="no"
5327cf48 99linux="no"
c9ec1fe4 100kqemu="no"
05c2a3e7 101profiler="no"
5b0753e0 102cocoa="no"
97ccc689 103check_gfx="yes"
1aff381f 104check_gcc="yes"
0a8e90f4 105softmmu="yes"
831b7825
TS
106linux_user="no"
107darwin_user="no"
cc8ae6de 108build_docs="no"
c5937220 109uname_release=""
4d3b6f6e 110curses="yes"
414f0dab 111aio="yes"
bd0c5661 112nptl="yes"
8ff9cbf7 113mixemu="no"
fb599c9a 114bluez="yes"
27463101
AL
115signalfd="no"
116eventfd="no"
7d13299d
FB
117
118# OS specific
119targetos=`uname -s`
120case $targetos in
c326e0af
FB
121CYGWIN*)
122mingw32="yes"
6f30fa85 123OS_CFLAGS="-mno-cygwin"
db8d7dd1
TS
124if [ "$cpu" = "i386" ] ; then
125 kqemu="yes"
126fi
c2de5c91 127audio_possible_drivers="sdl"
c326e0af 128;;
67b915a5
FB
129MINGW32*)
130mingw32="yes"
db8d7dd1
TS
131if [ "$cpu" = "i386" ] ; then
132 kqemu="yes"
133fi
c2de5c91 134audio_possible_drivers="dsound sdl fmod"
67b915a5 135;;
5c40d2bd 136GNU/kFreeBSD)
0c58ac1c 137audio_drv_list="oss"
f34af52c 138audio_possible_drivers="oss sdl esd pa"
5c40d2bd
TS
139if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
140 kqemu="yes"
141fi
142;;
7d3505c5
FB
143FreeBSD)
144bsd="yes"
0c58ac1c 145audio_drv_list="oss"
f34af52c 146audio_possible_drivers="oss sdl esd pa"
e99f9060 147if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
07f4ddbf
FB
148 kqemu="yes"
149fi
7d3505c5
FB
150;;
151NetBSD)
152bsd="yes"
0c58ac1c 153audio_drv_list="oss"
c2de5c91 154audio_possible_drivers="oss sdl esd"
7d3505c5
FB
155;;
156OpenBSD)
157bsd="yes"
128ab2ff 158openbsd="yes"
0c58ac1c 159audio_drv_list="oss"
c2de5c91 160audio_possible_drivers="oss sdl esd"
2f6a1ab0 161oss_lib="-lossaudio"
7d3505c5 162;;
83fb7adf
FB
163Darwin)
164bsd="yes"
165darwin="yes"
831b7825 166darwin_user="yes"
fd677642 167cocoa="yes"
0c58ac1c 168audio_drv_list="coreaudio"
c2de5c91 169audio_possible_drivers="coreaudio sdl fmod"
6f30fa85 170OS_CFLAGS="-mdynamic-no-pic"
c2c59c3e 171OS_LDFLAGS="-framework CoreFoundation -framework IOKit"
83fb7adf 172;;
ec530c81 173SunOS)
c2b84fab
TS
174 solaris="yes"
175 make="gmake"
176 install="ginstall"
0475a5ca 177 needs_libsunmath="no"
c2b84fab 178 solarisrev=`uname -r | cut -f2 -d.`
ef18c883
TS
179 # have to select again, because `uname -m` returns i86pc
180 # even on an x86_64 box.
181 solariscpu=`isainfo -k`
182 if test "${solariscpu}" = "amd64" ; then
183 cpu="x86_64"
184 fi
c2b84fab 185 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
0475a5ca
TS
186 if test "$solarisrev" -le 9 ; then
187 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then
188 needs_libsunmath="yes"
189 else
190 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without"
191 echo "libsunmath from the Sun Studio compilers tools, due to a lack of"
192 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86"
193 echo "Studio 11 can be downloaded from www.sun.com."
194 exit 1
195 fi
196 fi
197 if test "$solarisrev" -ge 9 ; then
c2b84fab
TS
198 kqemu="yes"
199 fi
86b2bd93 200 fi
6b4d2ba1 201 if test -f /usr/include/sys/soundcard.h ; then
0c58ac1c 202 audio_drv_list="oss"
6b4d2ba1 203 fi
c2de5c91 204 audio_possible_drivers="oss sdl"
86b2bd93 205;;
1d14ffa9 206*)
0c58ac1c 207audio_drv_list="oss"
b8e59f18 208audio_possible_drivers="oss alsa sdl esd pa"
5327cf48 209linux="yes"
831b7825 210linux_user="yes"
07f4ddbf 211if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
c9ec1fe4 212 kqemu="yes"
c2de5c91 213 audio_possible_drivers="$audio_possible_drivers fmod"
c9ec1fe4 214fi
fb065187 215;;
7d13299d
FB
216esac
217
7d3505c5 218if [ "$bsd" = "yes" ] ; then
b1a550a0 219 if [ "$darwin" != "yes" ] ; then
83fb7adf
FB
220 make="gmake"
221 fi
7d3505c5
FB
222fi
223
7d13299d 224# find source path
ad064840 225source_path=`dirname "$0"`
59faef3a
AZ
226source_path_used="no"
227workdir=`pwd`
ad064840 228if [ -z "$source_path" ]; then
59faef3a 229 source_path=$workdir
ad064840
PB
230else
231 source_path=`cd "$source_path"; pwd`
7d13299d 232fi
724db118 233[ -f "$workdir/vl.c" ] || source_path_used="yes"
7d13299d 234
85aa5189 235werror="no"
0d1e2394
FB
236# generate compile errors on warnings for development builds
237#if grep cvs $source_path/VERSION > /dev/null 2>&1 ; then
238#werror="yes";
239#fi
85aa5189 240
7d13299d 241for opt do
a46e4035 242 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
7d13299d 243 case "$opt" in
2efc3265
FB
244 --help|-h) show_help=yes
245 ;;
b1a550a0 246 --prefix=*) prefix="$optarg"
7d13299d 247 ;;
b1a550a0 248 --interp-prefix=*) interp_prefix="$optarg"
32ce6337 249 ;;
b1a550a0 250 --source-path=*) source_path="$optarg"
ad064840 251 source_path_used="yes"
7d13299d 252 ;;
b1a550a0 253 --cross-prefix=*) cross_prefix="$optarg"
7d13299d 254 ;;
b1a550a0 255 --cc=*) cc="$optarg"
328a4240 256 gcc3_search="no"
7d13299d 257 ;;
b1a550a0 258 --host-cc=*) host_cc="$optarg"
83469015 259 ;;
b1a550a0 260 --make=*) make="$optarg"
7d13299d 261 ;;
6a882643
PB
262 --install=*) install="$optarg"
263 ;;
b1a550a0 264 --extra-cflags=*) CFLAGS="$optarg"
7d13299d 265 ;;
b1a550a0 266 --extra-ldflags=*) LDFLAGS="$optarg"
7d13299d 267 ;;
b1a550a0 268 --cpu=*) cpu="$optarg"
7d13299d 269 ;;
b1a550a0 270 --target-list=*) target_list="$optarg"
de83cd02 271 ;;
7d13299d
FB
272 --enable-gprof) gprof="yes"
273 ;;
43ce4dfe
FB
274 --static) static="yes"
275 ;;
97a847bc
FB
276 --disable-sdl) sdl="no"
277 ;;
0c58ac1c 278 --fmod-lib=*) fmod_lib="$optarg"
1d14ffa9 279 ;;
c2de5c91 280 --fmod-inc=*) fmod_inc="$optarg"
281 ;;
2f6a1ab0
BS
282 --oss-lib=*) oss_lib="$optarg"
283 ;;
2fa7d3bf 284 --audio-card-list=*) audio_card_list=`echo "$optarg" | sed -e 's/,/ /g'`
102a52e4 285 ;;
0c58ac1c 286 --audio-drv-list=*) audio_drv_list="$optarg"
102a52e4 287 ;;
8d5d2d4c
TS
288 --disable-vnc-tls) vnc_tls="no"
289 ;;
443f1376 290 --disable-slirp) slirp="no"
1d14ffa9 291 ;;
e0e6c8c0 292 --disable-vde) vde="no"
8a16d273 293 ;;
c9ec1fe4 294 --disable-kqemu) kqemu="no"
1d14ffa9 295 ;;
2e4d9fb1
AJ
296 --disable-brlapi) brlapi="no"
297 ;;
fb599c9a
AZ
298 --disable-bluez) bluez="no"
299 ;;
05c2a3e7
FB
300 --enable-profiler) profiler="yes"
301 ;;
c2de5c91 302 --enable-cocoa)
303 cocoa="yes" ;
304 sdl="no" ;
305 audio_drv_list="coreaudio `echo $audio_drv_list | sed s,coreaudio,,g`"
1d14ffa9 306 ;;
97ccc689
FB
307 --disable-gfx-check) check_gfx="no"
308 ;;
1aff381f
FB
309 --disable-gcc-check) check_gcc="no"
310 ;;
cad25d69 311 --disable-system) softmmu="no"
0a8e90f4 312 ;;
cad25d69 313 --enable-system) softmmu="yes"
0a8e90f4 314 ;;
831b7825 315 --disable-linux-user) linux_user="no"
0a8e90f4 316 ;;
831b7825
TS
317 --enable-linux-user) linux_user="yes"
318 ;;
319 --disable-darwin-user) darwin_user="no"
320 ;;
321 --enable-darwin-user) darwin_user="yes"
0a8e90f4 322 ;;
c5937220
PB
323 --enable-uname-release=*) uname_release="$optarg"
324 ;;
3142255c
BS
325 --sparc_cpu=*)
326 sparc_cpu="$optarg"
327 case $sparc_cpu in
328 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
329 target_cpu="sparc"; cpu="sparc" ;;
330 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32"
331 target_cpu="sparc"; cpu="sparc" ;;
332 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64"
333 target_cpu="sparc64"; cpu="sparc64" ;;
334 *) echo "undefined SPARC architecture. Exiting";exit 1;;
335 esac
336 ;;
85aa5189
FB
337 --enable-werror) werror="yes"
338 ;;
339 --disable-werror) werror="no"
340 ;;
4d3b6f6e
AZ
341 --disable-curses) curses="no"
342 ;;
bd0c5661
PB
343 --disable-nptl) nptl="no"
344 ;;
8ff9cbf7 345 --enable-mixemu) mixemu="yes"
346 ;;
414f0dab
BS
347 --disable-aio) aio="no"
348 ;;
7f1559c6
AZ
349 *) echo "ERROR: unknown option $opt"; show_help="yes"
350 ;;
7d13299d
FB
351 esac
352done
353
6f30fa85 354# default flags for all hosts
ac41a620
BS
355CFLAGS="$CFLAGS -O2 -g -fno-strict-aliasing"
356CFLAGS="$CFLAGS -Wall -Wundef -Wendif-labels -Wwrite-strings"
6f30fa85 357LDFLAGS="$LDFLAGS -g"
85aa5189
FB
358if test "$werror" = "yes" ; then
359CFLAGS="$CFLAGS -Werror"
360fi
6f30fa85 361
49237acd
BS
362if ld --version 2>/dev/null | grep -q "GNU ld" ; then
363 LDFLAGS="$LDFLAGS -Wl,--warn-common"
364fi
365
3142255c
BS
366#
367# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right
368# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit)
369#
40293e58 370case "$cpu" in
3142255c
BS
371 sparc) if test -z "$sparc_cpu" ; then
372 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__"
373 ARCH_LDFLAGS="-m32"
374 else
375 ARCH_CFLAGS="${SP_CFLAGS}"
376 ARCH_LDFLAGS="${SP_LDFLAGS}"
377 fi
378 ;;
379 sparc64) if test -z "$sparc_cpu" ; then
380 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__"
381 ARCH_LDFLAGS="-m64"
382 else
383 ARCH_CFLAGS="${SP_CFLAGS}"
384 ARCH_LDFLAGS="${SP_LDFLAGS}"
385 fi
386 ;;
76d83bde
TS
387 s390)
388 ARCH_CFLAGS="-march=z900"
389 ;;
40293e58
FB
390 i386)
391 ARCH_CFLAGS="-m32"
392 ARCH_LDFLAGS="-m32"
393 ;;
394 x86_64)
395 ARCH_CFLAGS="-m64"
396 ARCH_LDFLAGS="-m64"
397 ;;
3142255c
BS
398esac
399
af5db58e
PB
400if test x"$show_help" = x"yes" ; then
401cat << EOF
402
403Usage: configure [options]
404Options: [defaults in brackets after descriptions]
405
406EOF
407echo "Standard options:"
408echo " --help print this message"
409echo " --prefix=PREFIX install in PREFIX [$prefix]"
410echo " --interp-prefix=PREFIX where to find shared libraries, etc."
411echo " use %M for cpu name [$interp_prefix]"
412echo " --target-list=LIST set target list [$target_list]"
413echo ""
414echo "kqemu kernel acceleration support:"
415echo " --disable-kqemu disable kqemu support"
af5db58e
PB
416echo ""
417echo "Advanced options (experts only):"
418echo " --source-path=PATH path of source code [$source_path]"
419echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
420echo " --cc=CC use C compiler CC [$cc]"
421echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
422echo " --make=MAKE use specified make [$make]"
6a882643 423echo " --install=INSTALL use specified install [$install]"
af5db58e 424echo " --static enable static build [$static]"
85aa5189 425echo " --disable-werror disable compilation abort on warning"
fe8f78e4 426echo " --disable-sdl disable SDL"
af5db58e 427echo " --enable-cocoa enable COCOA (Mac OS X only)"
c2de5c91 428echo " --audio-drv-list=LIST set audio drivers list:"
429echo " Available drivers: $audio_possible_drivers"
430echo " --audio-card-list=LIST set list of additional emulated audio cards"
431echo " Available cards: ac97 adlib cs4231a gus"
8ff9cbf7 432echo " --enable-mixemu enable mixer emulation"
2e4d9fb1 433echo " --disable-brlapi disable BrlAPI"
8d5d2d4c 434echo " --disable-vnc-tls disable TLS encryption for VNC server"
af896aaa 435echo " --disable-curses disable curses output"
fb599c9a 436echo " --disable-bluez disable bluez stack connectivity"
bd0c5661 437echo " --disable-nptl disable usermode NPTL support"
af5db58e
PB
438echo " --enable-system enable all system emulation targets"
439echo " --disable-system disable all system emulation targets"
831b7825
TS
440echo " --enable-linux-user enable all linux usermode emulation targets"
441echo " --disable-linux-user disable all linux usermode emulation targets"
442echo " --enable-darwin-user enable all darwin usermode emulation targets"
443echo " --disable-darwin-user disable all darwin usermode emulation targets"
af5db58e
PB
444echo " --fmod-lib path to FMOD library"
445echo " --fmod-inc path to FMOD includes"
2f6a1ab0 446echo " --oss-lib path to OSS library"
c5937220 447echo " --enable-uname-release=R Return R for uname -r in usermode emulation"
3142255c 448echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9"
e0e6c8c0 449echo " --disable-vde disable support for vde network"
414f0dab 450echo " --disable-aio disable AIO support"
af5db58e 451echo ""
5bf08934 452echo "NOTE: The object files are built at the place where configure is launched"
af5db58e
PB
453exit 1
454fi
455
7d13299d
FB
456cc="${cross_prefix}${cc}"
457ar="${cross_prefix}${ar}"
458strip="${cross_prefix}${strip}"
459
064aae13
PB
460# check that the C compiler works.
461cat > $TMPC <<EOF
462int main(void) {}
463EOF
464
db7287ed 465if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
064aae13
PB
466 : C compiler works ok
467else
468 echo "ERROR: \"$cc\" either does not exist or does not work"
469 exit 1
a7350fa1
FB
470fi
471
cd01b4a3
AL
472# check compiler to see if we're on mingw32
473cat > $TMPC <<EOF
474#include <windows.h>
475#ifndef _WIN32
476#error not windows
477#endif
478int main(void) {}
479EOF
480
481if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
482 mingw32="yes"
483fi
484
67b915a5 485if test "$mingw32" = "yes" ; then
5327cf48 486 linux="no"
67b915a5 487 EXESUF=".exe"
9f059eca 488 oss="no"
cd01b4a3
AL
489 linux_user="no"
490fi
491
997306fc 492if [ "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then
cd01b4a3 493 AIOLIBS=
997306fc
AL
494elif [ "$bsd" = "yes" ]; then
495 AIOLIBS="-lpthread"
cd01b4a3
AL
496else
497 # Some Linux architectures (e.g. s390) don't imply -lpthread automatically.
498 AIOLIBS="-lrt -lpthread"
67b915a5
FB
499fi
500
5fafdf24 501# Check for gcc4, error if pre-gcc4
328a4240
PB
502if test "$check_gcc" = "yes" ; then
503 cat > $TMPC <<EOF
504#if __GNUC__ < 4
505#error gcc3
506#endif
507int main(){return 0;}
508EOF
db7287ed 509 if "$cc" $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
328a4240
PB
510 echo "WARNING: \"$cc\" looks like gcc 4.x"
511 found_compat_cc="no"
512 if test "$gcc3_search" = "yes" ; then
513 echo "Looking for gcc 3.x"
514 for compat_cc in $gcc3_list ; do
d4af3de2 515 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then
328a4240 516 echo "Found \"$compat_cc\""
1124426a 517 cc="$cross_prefix$compat_cc"
328a4240
PB
518 found_compat_cc="yes"
519 break
520 fi
521 done
522 if test "$found_compat_cc" = "no" ; then
523 echo "gcc 3.x not found!"
524 fi
525 fi
526 if test "$found_compat_cc" = "no" ; then
527 echo "QEMU is known to have problems when compiled with gcc 4.x"
528 echo "It is recommended that you use gcc 3.x to build QEMU"
529 echo "To use this compiler anyway, configure with --disable-gcc-check"
530 exit 1;
531 fi
532 fi
533fi
534
ec530c81
FB
535#
536# Solaris specific configure tool chain decisions
537#
538if test "$solaris" = "yes" ; then
539 #
540 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
541 # override the check with --disable-gcc-check
5fafdf24 542 #
ec530c81
FB
543 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
544 solgcc=`which $cc`
545 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
546 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
547 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
548 echo "or get the latest patch from SunSolve for gcc"
549 exit 1
550 fi
551 fi
552 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
553 if test -z "$solinst" ; then
554 echo "Solaris install program not found. Use --install=/usr/ucb/install or"
555 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
556 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
557 exit 1
558 fi
559 if test "$solinst" = "/usr/sbin/install" ; then
560 echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
561 echo "try ginstall from the GNU fileutils available from www.blastwave.org"
562 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
563 exit 1
564 fi
ec530c81
FB
565 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
566 if test -z "$sol_ar" ; then
567 echo "Error: No path includes ar"
568 if test -f /usr/ccs/bin/ar ; then
569 echo "Add /usr/ccs/bin to your path and rerun configure"
570 fi
571 exit 1
572 fi
5fafdf24 573fi
ec530c81
FB
574
575
5327cf48
FB
576if test -z "$target_list" ; then
577# these targets are portable
0a8e90f4 578 if [ "$softmmu" = "yes" ] ; then
2408a527
AJ
579 target_list="\
580i386-softmmu \
581x86_64-softmmu \
582arm-softmmu \
583cris-softmmu \
584m68k-softmmu \
585mips-softmmu \
586mipsel-softmmu \
587mips64-softmmu \
588mips64el-softmmu \
589ppc-softmmu \
590ppcemb-softmmu \
591ppc64-softmmu \
592sh4-softmmu \
593sh4eb-softmmu \
594sparc-softmmu \
595"
0a8e90f4 596 fi
5327cf48 597# the following are Linux specific
831b7825 598 if [ "$linux_user" = "yes" ] ; then
2408a527
AJ
599 target_list="${target_list}\
600i386-linux-user \
601x86_64-linux-user \
602alpha-linux-user \
603arm-linux-user \
604armeb-linux-user \
605cris-linux-user \
606m68k-linux-user \
607mips-linux-user \
608mipsel-linux-user \
609ppc-linux-user \
610ppc64-linux-user \
611ppc64abi32-linux-user \
612sh4-linux-user \
613sh4eb-linux-user \
614sparc-linux-user \
615sparc64-linux-user \
616sparc32plus-linux-user \
617"
831b7825
TS
618 fi
619# the following are Darwin specific
620 if [ "$darwin_user" = "yes" ] ; then
2408a527 621 target_list="$target_list i386-darwin-user ppc-darwin-user"
5327cf48 622 fi
6e20a45f 623else
b1a550a0 624 target_list=`echo "$target_list" | sed -e 's/,/ /g'`
5327cf48 625fi
0a8e90f4
PB
626if test -z "$target_list" ; then
627 echo "No targets enabled"
628 exit 1
629fi
5327cf48 630
7d13299d
FB
631if test -z "$cross_prefix" ; then
632
633# ---
634# big/little endian test
635cat > $TMPC << EOF
636#include <inttypes.h>
637int main(int argc, char ** argv){
1d14ffa9
FB
638 volatile uint32_t i=0x01234567;
639 return (*((uint8_t*)(&i))) == 0x67;
7d13299d
FB
640}
641EOF
642
db7287ed 643if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
7d13299d
FB
644$TMPE && bigendian="yes"
645else
646echo big/little test failed
647fi
648
649else
650
651# if cross compiling, cannot launch a program, so make a static guess
0938cda5 652if test "$cpu" = "armv4b" \
f54b3f92 653 -o "$cpu" = "hppa" \
0938cda5
AJ
654 -o "$cpu" = "m68k" \
655 -o "$cpu" = "mips" \
656 -o "$cpu" = "mips64" \
657 -o "$cpu" = "powerpc" \
658 -o "$cpu" = "s390" \
659 -o "$cpu" = "sparc" \
660 -o "$cpu" = "sparc64"; then
7d13299d
FB
661 bigendian="yes"
662fi
663
664fi
665
b6853697
FB
666# host long bits test
667hostlongbits="32"
0938cda5
AJ
668if test "$cpu" = "x86_64" \
669 -o "$cpu" = "alpha" \
670 -o "$cpu" = "ia64" \
671 -o "$cpu" = "sparc64"; then
b6853697
FB
672 hostlongbits="64"
673fi
674
810260a8 675# ppc specific hostlongbits selection
676if test "$cpu" = "powerpc" ; then
9d56d2dc 677 if $cc $ARCH_CFLAGS -dM -E - -o $TMPI 2>/dev/null </dev/null; then
678 grep -q __powerpc64__ $TMPI && hostlongbits=64
810260a8 679 else
680 echo hostlongbits test failed
ba69a08a 681 exit 1
810260a8 682 fi
683fi
684
e8cd23de 685# check gcc options support
04369ff2
FB
686cat > $TMPC <<EOF
687int main(void) {
04369ff2
FB
688}
689EOF
690
bd0c5661
PB
691# Check host NPTL support
692cat > $TMPC <<EOF
693#include <sched.h>
30813cea 694#include <linux/futex.h>
bd0c5661
PB
695void foo()
696{
697#if !defined(CLONE_SETTLS) || !defined(FUTEX_WAIT)
698#error bork
699#endif
700}
701EOF
702
703if $cc $ARCH_CFLAGS -c -o $TMPO $TMPC 2> /dev/null ; then
704 :
705else
706 nptl="no"
707fi
708
11d9f695
FB
709##########################################
710# SDL probe
711
712sdl_too_old=no
713
714if test -z "$sdl" ; then
069b0bda
TS
715 sdl_config="sdl-config"
716 sdl=no
717 sdl_static=no
718
11d9f695
FB
719cat > $TMPC << EOF
720#include <SDL.h>
721#undef main /* We don't want SDL to override our main() */
722int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
723EOF
cd01b4a3
AL
724 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then
725 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
726 if test "$_sdlversion" -lt 121 ; then
727 sdl_too_old=yes
728 else
729 if test "$cocoa" = "no" ; then
730 sdl=yes
069b0bda 731 fi
cd01b4a3 732 fi
11d9f695 733
cd01b4a3
AL
734 # static link with sdl ?
735 if test "$sdl" = "yes" ; then
736 aa="no"
737 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes"
738 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null`
739 if [ "$aa" = "yes" ] ; then
740 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
741 fi
742
743 if $cc -o $TMPE ${OS_CFLAGS} `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
744 sdl_static=yes
745 fi
746 fi # static link
747 fi # sdl compile test
fd677642 748else
069b0bda
TS
749 # Make sure to disable cocoa if sdl was set
750 if test "$sdl" = "yes" ; then
751 cocoa="no"
c2de5c91 752 audio_drv_list="`echo $audio_drv_list | sed s,coreaudio,,g`"
069b0bda 753 fi
a6e022ad 754fi # -z $sdl
11d9f695 755
8d5d2d4c
TS
756##########################################
757# VNC TLS detection
758if test "$vnc_tls" = "yes" ; then
ae6b5e5a
AL
759cat > $TMPC <<EOF
760#include <gnutls/gnutls.h>
761int main(void) { gnutls_session_t s; gnutls_init(&s, GNUTLS_SERVER); return 0; }
762EOF
763 vnc_tls_cflags=`pkg-config --cflags gnutls 2> /dev/null`
764 vnc_tls_libs=`pkg-config --libs gnutls 2> /dev/null`
765 if $cc $ARCH_CFLAGS -o $TMPE ${OS_CFLAGS} $vnc_tls_cflags $TMPC \
766 $vnc_tls_libs 2> /dev/null ; then
767 :
768 else
769 vnc_tls="no"
770 fi
8d5d2d4c
TS
771fi
772
8a16d273
TS
773##########################################
774# vde libraries probe
775if test "$vde" = "yes" ; then
776 cat > $TMPC << EOF
777#include <libvdeplug.h>
4a7f0e06
PB
778int main(void)
779{
780 struct vde_open_args a = {0, 0, 0};
781 vde_open("", "", &a);
782 return 0;
783}
8a16d273 784EOF
4a7f0e06 785 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lvdeplug 2> /dev/null ; then
8a16d273
TS
786 :
787 else
e0e6c8c0 788 vde="no"
8a16d273
TS
789 fi
790fi
791
8f28f3fb 792##########################################
c2de5c91 793# Sound support libraries probe
8f28f3fb 794
c2de5c91 795audio_drv_probe()
796{
797 drv=$1
798 hdr=$2
799 lib=$3
800 exp=$4
801 cfl=$5
802 cat > $TMPC << EOF
803#include <$hdr>
804int main(void) { $exp }
8f28f3fb 805EOF
c2de5c91 806 if $cc $ARCH_CFLAGS $cfl -o $TMPE $TMPC $lib 2> /dev/null ; then
807 :
808 else
809 echo
810 echo "Error: $drv check failed"
811 echo "Make sure to have the $drv libs and headers installed."
812 echo
813 exit 1
814 fi
815}
816
2fa7d3bf 817audio_drv_list=`echo "$audio_drv_list" | sed -e 's/,/ /g'`
c2de5c91 818for drv in $audio_drv_list; do
819 case $drv in
820 alsa)
821 audio_drv_probe $drv alsa/asoundlib.h -lasound \
822 "snd_pcm_t **handle; return snd_pcm_close(*handle);"
823 ;;
824
825 fmod)
826 if test -z $fmod_lib || test -z $fmod_inc; then
827 echo
828 echo "Error: You must specify path to FMOD library and headers"
829 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
830 echo
831 exit 1
832 fi
833 audio_drv_probe $drv fmod.h $fmod_lib "return FSOUND_GetVersion();" "-I $fmod_inc"
834 ;;
835
836 esd)
837 audio_drv_probe $drv esd.h -lesd 'return esd_play_stream(0, 0, "", 0);'
838 ;;
b8e59f18 839
840 pa)
841 audio_drv_probe $drv pulse/simple.h -lpulse-simple \
842 "pa_simple *s = NULL; pa_simple_free(s); return 0;"
843 ;;
844
2f6a1ab0
BS
845 oss|sdl|core|wav|dsound)
846 # XXX: Probes for CoreAudio, DirectSound, SDL(?)
847 ;;
848
e4c63a6a 849 *)
1c9b2a52 850 echo "$audio_possible_drivers" | grep -q "\<$drv\>" || {
e4c63a6a 851 echo
852 echo "Error: Unknown driver '$drv' selected"
853 echo "Possible drivers are: $audio_possible_drivers"
854 echo
855 exit 1
856 }
857 ;;
c2de5c91 858 esac
859done
8f28f3fb 860
2e4d9fb1
AJ
861##########################################
862# BrlAPI probe
863
864if test -z "$brlapi" ; then
865 brlapi=no
866cat > $TMPC << EOF
867#include <brlapi.h>
868int main( void ) { return brlapi__openConnection (NULL, NULL, NULL); }
869EOF
a40e56d5 870 if $cc ${ARCH_CFLAGS} -o $TMPE ${OS_CFLAGS} $TMPC -lbrlapi 2> /dev/null ; then
2e4d9fb1
AJ
871 brlapi=yes
872 fi # brlapi compile test
873fi # -z $brlapi
874
4d3b6f6e
AZ
875##########################################
876# curses probe
877
878if test "$curses" = "yes" ; then
879 curses=no
880 cat > $TMPC << EOF
881#include <curses.h>
882int main(void) { return curses_version(); }
883EOF
af896aaa 884 if $cc $ARCH_CFLAGS -o $TMPE $TMPC -lcurses 2> /dev/null ; then
4d3b6f6e
AZ
885 curses=yes
886 fi
887fi # test "$curses"
888
fb599c9a
AZ
889##########################################
890# bluez support probe
891if test "$bluez" = "yes" ; then
892 `pkg-config bluez` || bluez="no"
893fi
894if test "$bluez" = "yes" ; then
e820e3f4
AZ
895 cat > $TMPC << EOF
896#include <bluetooth/bluetooth.h>
897int main(void) { return bt_error(0); }
898EOF
fb599c9a
AZ
899 bluez_cflags=`pkg-config --cflags bluez`
900 bluez_libs=`pkg-config --libs bluez`
e820e3f4
AZ
901 if $cc $ARCH_CFLAGS -o $TMPE ${OS_FLAGS} $bluez_cflags $TMPC \
902 $bluez_libs 2> /dev/null ; then
903 :
904 else
905 bluez="no"
906 fi
fb599c9a
AZ
907fi
908
414f0dab
BS
909##########################################
910# AIO probe
911if test "$aio" = "yes" ; then
912 aio=no
913 cat > $TMPC << EOF
914#include <aio.h>
915int main(void) { return aio_write(NULL); }
916EOF
917 if $cc $ARCH_CFLAGS -o $TMPE $AIOLIBS $TMPC 2> /dev/null ; then
918 aio=yes
919 fi
920fi
921
27463101
AL
922##########################################
923# signalfd probe
924cat > $TMPC << EOF
925#define _GNU_SOURCE
926#include <unistd.h>
927#include <sys/syscall.h>
928#include <signal.h>
929int main(void) { return syscall(SYS_signalfd, -1, NULL, _NSIG / 8); }
930EOF
931
932if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
933 signalfd=yes
934fi
935
936##########################################
937# eventfd probe
938cat > $TMPC << EOF
939#define _GNU_SOURCE
940#include <unistd.h>
941#include <sys/syscall.h>
942int main(void) { return syscall(SYS_eventfd, 0); }
943EOF
944
945if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
946 eventfd=yes
947fi
948
cc8ae6de 949# Check if tools are available to build documentation.
6c591867
TS
950if [ -x "`which texi2html 2>/dev/null`" ] && \
951 [ -x "`which pod2man 2>/dev/null`" ]; then
cc8ae6de
PB
952 build_docs="yes"
953fi
954
11d9f695 955if test "$mingw32" = "yes" ; then
308c3593
PB
956 if test -z "$prefix" ; then
957 prefix="/c/Program Files/Qemu"
958 fi
959 mansuffix=""
960 datasuffix=""
961 docsuffix=""
962 binsuffix=""
11d9f695 963else
308c3593
PB
964 if test -z "$prefix" ; then
965 prefix="/usr/local"
966 fi
967 mansuffix="/share/man"
968 datasuffix="/share/qemu"
969 docsuffix="/share/doc/qemu"
970 binsuffix="/bin"
11d9f695 971fi
5a67135a 972
43ce4dfe 973echo "Install prefix $prefix"
308c3593
PB
974echo "BIOS directory $prefix$datasuffix"
975echo "binary directory $prefix$binsuffix"
11d9f695 976if test "$mingw32" = "no" ; then
308c3593 977echo "Manual directory $prefix$mansuffix"
43ce4dfe 978echo "ELF interp prefix $interp_prefix"
11d9f695 979fi
5a67135a 980echo "Source path $source_path"
43ce4dfe 981echo "C compiler $cc"
83469015 982echo "Host C compiler $host_cc"
db7287ed 983echo "ARCH_CFLAGS $ARCH_CFLAGS"
43ce4dfe 984echo "make $make"
6a882643 985echo "install $install"
43ce4dfe 986echo "host CPU $cpu"
de83cd02 987echo "host big endian $bigendian"
97a847bc 988echo "target list $target_list"
43ce4dfe 989echo "gprof enabled $gprof"
05c2a3e7 990echo "profiler $profiler"
43ce4dfe 991echo "static build $static"
85aa5189 992echo "-Werror enabled $werror"
5b0753e0
FB
993if test "$darwin" = "yes" ; then
994 echo "Cocoa support $cocoa"
995fi
97a847bc 996echo "SDL support $sdl"
e4afee97
FB
997if test "$sdl" != "no" ; then
998 echo "SDL static link $sdl_static"
999fi
4d3b6f6e 1000echo "curses support $curses"
67b915a5 1001echo "mingw32 support $mingw32"
0c58ac1c 1002echo "Audio drivers $audio_drv_list"
1003echo "Extra audio cards $audio_card_list"
8ff9cbf7 1004echo "Mixer emulation $mixemu"
8d5d2d4c
TS
1005echo "VNC TLS support $vnc_tls"
1006if test "$vnc_tls" = "yes" ; then
1007 echo " TLS CFLAGS $vnc_tls_cflags"
1008 echo " TLS LIBS $vnc_tls_libs"
1009fi
3142255c
BS
1010if test -n "$sparc_cpu"; then
1011 echo "Target Sparc Arch $sparc_cpu"
1012fi
07f4ddbf 1013echo "kqemu support $kqemu"
2e4d9fb1 1014echo "brlapi support $brlapi"
cc8ae6de 1015echo "Documentation $build_docs"
c5937220
PB
1016[ ! -z "$uname_release" ] && \
1017echo "uname -r $uname_release"
bd0c5661 1018echo "NPTL support $nptl"
8a16d273 1019echo "vde support $vde"
414f0dab 1020echo "AIO support $aio"
67b915a5 1021
97a847bc 1022if test $sdl_too_old = "yes"; then
24b55b96 1023echo "-> Your SDL version is too old - please upgrade to have SDL support"
7c1f25b4 1024fi
20b40c6a
TS
1025if [ -s /tmp/qemu-$$-sdl-config.log ]; then
1026 echo "The error log from compiling the libSDL test is: "
1027 cat /tmp/qemu-$$-sdl-config.log
1028fi
1029rm -f /tmp/qemu-$$-sdl-config.log
24b55b96
FB
1030#if test "$sdl_static" = "no"; then
1031# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
1032#fi
97a847bc
FB
1033config_mak="config-host.mak"
1034config_h="config-host.h"
7d13299d 1035
7c1f25b4 1036#echo "Creating $config_mak and $config_h"
7d13299d 1037
15d9ca0f
TS
1038test -f $config_h && mv $config_h ${config_h}~
1039
97a847bc 1040echo "# Automatically generated by configure - do not modify" > $config_mak
29517134 1041echo "# Configured with: $0 $@" >> $config_mak
97a847bc 1042echo "/* Automatically generated by configure - do not modify */" > $config_h
7d13299d 1043
97a847bc 1044echo "prefix=$prefix" >> $config_mak
308c3593
PB
1045echo "bindir=\${prefix}$binsuffix" >> $config_mak
1046echo "mandir=\${prefix}$mansuffix" >> $config_mak
1047echo "datadir=\${prefix}$datasuffix" >> $config_mak
4ad5b06d 1048echo "docdir=\${prefix}$docsuffix" >> $config_mak
308c3593 1049echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
97a847bc 1050echo "MAKE=$make" >> $config_mak
6a882643 1051echo "INSTALL=$install" >> $config_mak
97a847bc 1052echo "CC=$cc" >> $config_mak
97a847bc
FB
1053echo "HOST_CC=$host_cc" >> $config_mak
1054echo "AR=$ar" >> $config_mak
1055echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
40293e58
FB
1056# XXX: only use CFLAGS and LDFLAGS ?
1057# XXX: should export HOST_CFLAGS and HOST_LDFLAGS for cross
1058# compilation of dyngen tool (useful for win32 build on Linux host)
6f30fa85 1059echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak
3142255c
BS
1060echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak
1061echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak
1062echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak
97a847bc
FB
1063echo "CFLAGS=$CFLAGS" >> $config_mak
1064echo "LDFLAGS=$LDFLAGS" >> $config_mak
67b915a5 1065echo "EXESUF=$EXESUF" >> $config_mak
70956b77 1066echo "AIOLIBS=$AIOLIBS" >> $config_mak
2408a527
AJ
1067case "$cpu" in
1068 i386)
1069 echo "ARCH=i386" >> $config_mak
1070 echo "#define HOST_I386 1" >> $config_h
1071 ;;
1072 x86_64)
1073 echo "ARCH=x86_64" >> $config_mak
1074 echo "#define HOST_X86_64 1" >> $config_h
1075 ;;
1076 alpha)
1077 echo "ARCH=alpha" >> $config_mak
1078 echo "#define HOST_ALPHA 1" >> $config_h
1079 ;;
1080 armv4b)
1081 echo "ARCH=arm" >> $config_mak
1082 echo "#define HOST_ARM 1" >> $config_h
1083 ;;
1084 armv4l)
1085 echo "ARCH=arm" >> $config_mak
1086 echo "#define HOST_ARM 1" >> $config_h
1087 ;;
1088 cris)
1089 echo "ARCH=cris" >> $config_mak
1090 echo "#define HOST_CRIS 1" >> $config_h
1091 ;;
1092 hppa)
1093 echo "ARCH=hppa" >> $config_mak
1094 echo "#define HOST_HPPA 1" >> $config_h
1095 ;;
1096 ia64)
1097 echo "ARCH=ia64" >> $config_mak
1098 echo "#define HOST_IA64 1" >> $config_h
1099 ;;
1100 m68k)
1101 echo "ARCH=m68k" >> $config_mak
1102 echo "#define HOST_M68K 1" >> $config_h
1103 ;;
1104 mips)
1105 echo "ARCH=mips" >> $config_mak
1106 echo "#define HOST_MIPS 1" >> $config_h
1107 ;;
1108 mips64)
1109 echo "ARCH=mips64" >> $config_mak
1110 echo "#define HOST_MIPS64 1" >> $config_h
1111 ;;
1112 powerpc)
810260a8 1113 if test "$hostlongbits" = "32"; then
1114 echo "ARCH=ppc" >> $config_mak
1115 echo "#define HOST_PPC 1" >> $config_h
1116 else
1117 echo "ARCH=ppc64" >> $config_mak
1118 echo "#define HOST_PPC64 1" >> $config_h
1119 fi
2408a527
AJ
1120 ;;
1121 s390)
1122 echo "ARCH=s390" >> $config_mak
1123 echo "#define HOST_S390 1" >> $config_h
1124 ;;
1125 sparc)
1126 echo "ARCH=sparc" >> $config_mak
1127 echo "#define HOST_SPARC 1" >> $config_h
1128 ;;
1129 sparc64)
1130 echo "ARCH=sparc64" >> $config_mak
1131 echo "#define HOST_SPARC64 1" >> $config_h
1132 ;;
1133 *)
1134 echo "Unsupported CPU = $cpu"
1135 exit 1
1136 ;;
1137esac
7d13299d 1138if test "$bigendian" = "yes" ; then
97a847bc
FB
1139 echo "WORDS_BIGENDIAN=yes" >> $config_mak
1140 echo "#define WORDS_BIGENDIAN 1" >> $config_h
1141fi
b6853697 1142echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
67b915a5
FB
1143if test "$mingw32" = "yes" ; then
1144 echo "CONFIG_WIN32=yes" >> $config_mak
11d9f695 1145 echo "#define CONFIG_WIN32 1" >> $config_h
210fa556
PB
1146else
1147 cat > $TMPC << EOF
1148#include <byteswap.h>
1149int main(void) { return bswap_32(0); }
1150EOF
db7287ed 1151 if $cc $ARCH_CFLAGS -o $TMPE $TMPC 2> /dev/null ; then
210fa556
PB
1152 echo "#define HAVE_BYTESWAP_H 1" >> $config_h
1153 fi
67b915a5 1154fi
128ab2ff
BS
1155
1156if [ "$openbsd" = "yes" ] ; then
1157 echo "#define ENOTSUP 4096" >> $config_h
1158fi
1159
83fb7adf
FB
1160if test "$darwin" = "yes" ; then
1161 echo "CONFIG_DARWIN=yes" >> $config_mak
1162 echo "#define CONFIG_DARWIN 1" >> $config_h
1163fi
ec530c81
FB
1164if test "$solaris" = "yes" ; then
1165 echo "CONFIG_SOLARIS=yes" >> $config_mak
38cfa06c 1166 echo "#define HOST_SOLARIS $solarisrev" >> $config_h
0475a5ca
TS
1167 if test "$needs_libsunmath" = "yes" ; then
1168 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak
1169 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h
1170 fi
ec530c81 1171fi
3142255c
BS
1172if test -n "$sparc_cpu"; then
1173 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak
1174 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h
1175fi
67b915a5
FB
1176if test "$gdbstub" = "yes" ; then
1177 echo "CONFIG_GDBSTUB=yes" >> $config_mak
1178 echo "#define CONFIG_GDBSTUB 1" >> $config_h
1179fi
97a847bc
FB
1180if test "$gprof" = "yes" ; then
1181 echo "TARGET_GPROF=yes" >> $config_mak
1182 echo "#define HAVE_GPROF 1" >> $config_h
1183fi
1184if test "$static" = "yes" ; then
1185 echo "CONFIG_STATIC=yes" >> $config_mak
50863472 1186 echo "#define CONFIG_STATIC 1" >> $config_h
7d13299d 1187fi
05c2a3e7
FB
1188if test $profiler = "yes" ; then
1189 echo "#define CONFIG_PROFILER 1" >> $config_h
1190fi
c20709aa
FB
1191if test "$slirp" = "yes" ; then
1192 echo "CONFIG_SLIRP=yes" >> $config_mak
1193 echo "#define CONFIG_SLIRP 1" >> $config_h
1194fi
8a16d273
TS
1195if test "$vde" = "yes" ; then
1196 echo "CONFIG_VDE=yes" >> $config_mak
1197 echo "#define CONFIG_VDE 1" >> $config_h
1198 echo "VDE_LIBS=-lvdeplug" >> $config_mak
1199fi
0c58ac1c 1200for card in $audio_card_list; do
f6e5889e 1201 def=CONFIG_`echo $card | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1202 echo "$def=yes" >> $config_mak
1203 echo "#define $def 1" >> $config_h
1204done
1205echo "#define AUDIO_DRIVERS \\" >> $config_h
1206for drv in $audio_drv_list; do
1207 echo " &${drv}_audio_driver, \\" >>$config_h
f6e5889e 1208 def=CONFIG_`echo $drv | tr '[:lower:]' '[:upper:]'`
0c58ac1c 1209 echo "$def=yes" >> $config_mak
923e4521 1210 if test "$drv" = "fmod"; then
0c58ac1c 1211 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
1212 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
2f6a1ab0
BS
1213 elif test "$drv" = "oss"; then
1214 echo "CONFIG_OSS_LIB=$oss_lib" >> $config_mak
0c58ac1c 1215 fi
1216done
1217echo "" >>$config_h
8ff9cbf7 1218if test "$mixemu" = "yes" ; then
1219 echo "CONFIG_MIXEMU=yes" >> $config_mak
1220 echo "#define CONFIG_MIXEMU 1" >> $config_h
1221fi
8d5d2d4c
TS
1222if test "$vnc_tls" = "yes" ; then
1223 echo "CONFIG_VNC_TLS=yes" >> $config_mak
1224 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak
1225 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak
1226 echo "#define CONFIG_VNC_TLS 1" >> $config_h
1227fi
b1a550a0
PB
1228qemu_version=`head $source_path/VERSION`
1229echo "VERSION=$qemu_version" >>$config_mak
d4b8f039 1230echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
97a847bc
FB
1231
1232echo "SRC_PATH=$source_path" >> $config_mak
ad064840
PB
1233if [ "$source_path_used" = "yes" ]; then
1234 echo "VPATH=$source_path" >> $config_mak
1235fi
97a847bc 1236echo "TARGET_DIRS=$target_list" >> $config_mak
cc8ae6de
PB
1237if [ "$build_docs" = "yes" ] ; then
1238 echo "BUILD_DOCS=yes" >> $config_mak
1239fi
49ecc3fa
FB
1240if test "$static" = "yes"; then
1241 sdl1=$sdl_static
1242else
1243 sdl1=$sdl
1244fi
1245if test "$sdl1" = "yes" ; then
1246 echo "#define CONFIG_SDL 1" >> $config_h
1247 echo "CONFIG_SDL=yes" >> $config_mak
1248 if test "$target_softmmu" = "no" -o "$static" = "yes"; then
1249 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
1250 else
1251 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
1252 fi
1253 if [ "${aa}" = "yes" ] ; then
1254 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
1255 else
1256 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1257 fi
1258fi
1259if test "$cocoa" = "yes" ; then
4d3b6f6e
AZ
1260 echo "#define CONFIG_COCOA 1" >> $config_h
1261 echo "CONFIG_COCOA=yes" >> $config_mak
1262fi
1263if test "$curses" = "yes" ; then
1264 echo "#define CONFIG_CURSES 1" >> $config_h
1265 echo "CONFIG_CURSES=yes" >> $config_mak
1266 echo "CURSES_LIBS=-lcurses" >> $config_mak
49ecc3fa 1267fi
2e4d9fb1
AJ
1268if test "$brlapi" = "yes" ; then
1269 echo "CONFIG_BRLAPI=yes" >> $config_mak
1270 echo "#define CONFIG_BRLAPI 1" >> $config_h
1271 echo "BRLAPI_LIBS=-lbrlapi" >> $config_mak
1272fi
fb599c9a
AZ
1273if test "$bluez" = "yes" ; then
1274 echo "CONFIG_BLUEZ=yes" >> $config_mak
1275 echo "CONFIG_BLUEZ_CFLAGS=$bluez_cflags" >> $config_mak
1276 echo "CONFIG_BLUEZ_LIBS=$bluez_libs" >> $config_mak
1277 echo "#define CONFIG_BLUEZ 1" >> $config_h
1278fi
414f0dab
BS
1279if test "$aio" = "yes" ; then
1280 echo "#define CONFIG_AIO 1" >> $config_h
a3392f9b 1281 echo "CONFIG_AIO=yes" >> $config_mak
414f0dab 1282fi
27463101
AL
1283if test "$signalfd" = "yes" ; then
1284 echo "#define CONFIG_signalfd 1" >> $config_h
1285fi
1286if test "$eventfd" = "yes" ; then
1287 echo "#define CONFIG_eventfd 1" >> $config_h
1288fi
97a847bc 1289
83fb7adf 1290# XXX: suppress that
7d3505c5 1291if [ "$bsd" = "yes" ] ; then
43003046 1292 echo "#define O_LARGEFILE 0" >> $config_h
43003046 1293 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
7d3505c5
FB
1294 echo "#define _BSD 1" >> $config_h
1295fi
1296
c5937220
PB
1297echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h
1298
c39e3338
PB
1299tools=
1300if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then
1301 tools="qemu-img\$(EXESUF) $tools"
7a5ca864
FB
1302 if [ "$linux" = "yes" ] ; then
1303 tools="qemu-nbd\$(EXESUF) $tools"
1304 fi
c39e3338
PB
1305fi
1306echo "TOOLS=$tools" >> $config_mak
1307
15d9ca0f
TS
1308test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1309
1d14ffa9 1310for target in $target_list; do
97a847bc
FB
1311target_dir="$target"
1312config_mak=$target_dir/config.mak
1313config_h=$target_dir/config.h
1314target_cpu=`echo $target | cut -d '-' -f 1`
1315target_bigendian="no"
808c4954 1316[ "$target_cpu" = "armeb" ] && target_bigendian=yes
0938cda5
AJ
1317[ "$target_cpu" = "m68k" ] && target_bigendian=yes
1318[ "$target_cpu" = "mips" ] && target_bigendian=yes
1319[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes
1320[ "$target_cpu" = "mips64" ] && target_bigendian=yes
67867308 1321[ "$target_cpu" = "ppc" ] && target_bigendian=yes
d4082e95 1322[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes
22f8a8b3 1323[ "$target_cpu" = "ppc64" ] && target_bigendian=yes
e85e7c6e 1324[ "$target_cpu" = "ppc64abi32" ] && target_bigendian=yes
908f52b0 1325[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes
0938cda5
AJ
1326[ "$target_cpu" = "sparc" ] && target_bigendian=yes
1327[ "$target_cpu" = "sparc64" ] && target_bigendian=yes
1328[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes
97a847bc 1329target_softmmu="no"
997344f3 1330target_user_only="no"
831b7825 1331target_linux_user="no"
831b7825 1332target_darwin_user="no"
9e407a85
PB
1333case "$target" in
1334 ${target_cpu}-softmmu)
1335 target_softmmu="yes"
1336 ;;
1337 ${target_cpu}-linux-user)
1338 target_user_only="yes"
1339 target_linux_user="yes"
1340 ;;
1341 ${target_cpu}-darwin-user)
1342 target_user_only="yes"
1343 target_darwin_user="yes"
1344 ;;
1345 *)
1346 echo "ERROR: Target '$target' not recognised"
1347 exit 1
1348 ;;
1349esac
831b7825 1350
97ccc689 1351if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1d14ffa9 1352 -a "$sdl" = "no" -a "$cocoa" = "no" ; then
97ccc689 1353 echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
9c038506 1354 echo "To build QEMU without graphical output configure with --disable-gfx-check"
4d3b6f6e
AZ
1355 echo "Note that this will disable all output from the virtual graphics card"
1356 echo "except through VNC or curses."
97ccc689
FB
1357 exit 1;
1358fi
1359
7c1f25b4 1360#echo "Creating $config_mak, $config_h and $target_dir/Makefile"
97a847bc 1361
15d9ca0f
TS
1362test -f $config_h && mv $config_h ${config_h}~
1363
97a847bc 1364mkdir -p $target_dir
158142c2 1365mkdir -p $target_dir/fpu
57fec1fe 1366mkdir -p $target_dir/tcg
831b7825 1367if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then
69de927c
FB
1368 mkdir -p $target_dir/nwfpe
1369fi
1370
ec530c81
FB
1371#
1372# don't use ln -sf as not all "ln -sf" over write the file/link
1373#
1374rm -f $target_dir/Makefile
1375ln -s $source_path/Makefile.target $target_dir/Makefile
1376
97a847bc
FB
1377
1378echo "# Automatically generated by configure - do not modify" > $config_mak
1379echo "/* Automatically generated by configure - do not modify */" > $config_h
1380
de83cd02 1381
97a847bc
FB
1382echo "include ../config-host.mak" >> $config_mak
1383echo "#include \"../config-host.h\"" >> $config_h
1e43adfc 1384
e5fe0c52 1385bflt="no"
cb33da57 1386elfload32="no"
bd0c5661 1387target_nptl="no"
1e43adfc
FB
1388interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
1389echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
97a847bc 1390
2408a527
AJ
1391case "$target_cpu" in
1392 i386)
1393 echo "TARGET_ARCH=i386" >> $config_mak
1394 echo "#define TARGET_ARCH \"i386\"" >> $config_h
1395 echo "#define TARGET_I386 1" >> $config_h
da260249 1396 if test $kqemu = "yes" -a "$target_softmmu" = "yes"
2408a527
AJ
1397 then
1398 echo "#define USE_KQEMU 1" >> $config_h
1399 fi
f2bf094e 1400 gcc3minver=`$cc --version 2> /dev/null| fgrep "(GCC) 3." | awk '{ print $3 }' | cut -f2 -d.`
11d1fdb0 1401 if test -n "$gcc3minver" && test $gcc3minver -gt 3
f2bf094e
AJ
1402 then
1403 echo "HAVE_GT_GCC_3_3=true" >> $config_mak
1404 else
1405 echo "HAVE_GT_GCC_3_3=false" >> $config_mak
1406 fi
2408a527
AJ
1407 ;;
1408 x86_64)
1409 echo "TARGET_ARCH=x86_64" >> $config_mak
1410 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
1411 echo "#define TARGET_I386 1" >> $config_h
1412 echo "#define TARGET_X86_64 1" >> $config_h
1413 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64"
1414 then
1415 echo "#define USE_KQEMU 1" >> $config_h
1416 fi
1417 ;;
1418 alpha)
1419 echo "TARGET_ARCH=alpha" >> $config_mak
1420 echo "#define TARGET_ARCH \"alpha\"" >> $config_h
1421 echo "#define TARGET_ALPHA 1" >> $config_h
1422 ;;
1423 arm|armeb)
1424 echo "TARGET_ARCH=arm" >> $config_mak
2408a527
AJ
1425 echo "#define TARGET_ARCH \"arm\"" >> $config_h
1426 echo "#define TARGET_ARM 1" >> $config_h
2408a527 1427 bflt="yes"
bd0c5661 1428 target_nptl="yes"
2408a527
AJ
1429 ;;
1430 cris)
1431 echo "TARGET_ARCH=cris" >> $config_mak
1432 echo "#define TARGET_ARCH \"cris\"" >> $config_h
1433 echo "#define TARGET_CRIS 1" >> $config_h
2408a527
AJ
1434 ;;
1435 m68k)
1436 echo "TARGET_ARCH=m68k" >> $config_mak
1437 echo "#define TARGET_ARCH \"m68k\"" >> $config_h
1438 echo "#define TARGET_M68K 1" >> $config_h
1439 bflt="yes"
1440 ;;
1441 mips|mipsel)
1442 echo "TARGET_ARCH=mips" >> $config_mak
1443 echo "#define TARGET_ARCH \"mips\"" >> $config_h
1444 echo "#define TARGET_MIPS 1" >> $config_h
1445 echo "#define TARGET_ABI_MIPSO32 1" >> $config_h
1446 ;;
1447 mipsn32|mipsn32el)
1448 echo "TARGET_ARCH=mipsn32" >> $config_mak
1449 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h
1450 echo "#define TARGET_MIPS 1" >> $config_h
1451 echo "#define TARGET_ABI_MIPSN32 1" >> $config_h
1452 ;;
1453 mips64|mips64el)
1454 echo "TARGET_ARCH=mips64" >> $config_mak
1455 echo "#define TARGET_ARCH \"mips64\"" >> $config_h
1456 echo "#define TARGET_MIPS 1" >> $config_h
1457 echo "#define TARGET_MIPS64 1" >> $config_h
1458 echo "#define TARGET_ABI_MIPSN64 1" >> $config_h
1459 ;;
1460 ppc)
1461 echo "TARGET_ARCH=ppc" >> $config_mak
bf6247fb 1462 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1463 echo "#define TARGET_ARCH \"ppc\"" >> $config_h
1464 echo "#define TARGET_PPC 1" >> $config_h
bf6247fb 1465 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1466 ;;
1467 ppcemb)
1468 echo "TARGET_ARCH=ppcemb" >> $config_mak
1469 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1470 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1471 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h
1472 echo "#define TARGET_PPC 1" >> $config_h
1473 echo "#define TARGET_PPCEMB 1" >> $config_h
ec5b78cd 1474 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1475 ;;
1476 ppc64)
1477 echo "TARGET_ARCH=ppc64" >> $config_mak
1478 echo "TARGET_ABI_DIR=ppc" >> $config_mak
bf6247fb 1479 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1480 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1481 echo "#define TARGET_PPC 1" >> $config_h
1482 echo "#define TARGET_PPC64 1" >> $config_h
bf6247fb 1483 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1484 ;;
1485 ppc64abi32)
1486 echo "TARGET_ARCH=ppc64" >> $config_mak
1487 echo "TARGET_ABI_DIR=ppc" >> $config_mak
1488 echo "TARGET_ARCH2=ppc64abi32" >> $config_mak
bf6247fb 1489 echo "CONFIG_DYNGEN_OP=yes" >> $config_mak
2408a527
AJ
1490 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
1491 echo "#define TARGET_PPC 1" >> $config_h
1492 echo "#define TARGET_PPC64 1" >> $config_h
1493 echo "#define TARGET_ABI32 1" >> $config_h
bf6247fb 1494 echo "#define CONFIG_DYNGEN_OP 1" >> $config_h
2408a527
AJ
1495 ;;
1496 sh4|sh4eb)
1497 echo "TARGET_ARCH=sh4" >> $config_mak
1498 echo "#define TARGET_ARCH \"sh4\"" >> $config_h
1499 echo "#define TARGET_SH4 1" >> $config_h
1500 bflt="yes"
0b6d3ae0 1501 target_nptl="yes"
2408a527
AJ
1502 ;;
1503 sparc)
1504 echo "TARGET_ARCH=sparc" >> $config_mak
1505 echo "#define TARGET_ARCH \"sparc\"" >> $config_h
1506 echo "#define TARGET_SPARC 1" >> $config_h
1507 ;;
1508 sparc64)
1509 echo "TARGET_ARCH=sparc64" >> $config_mak
1510 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1511 echo "#define TARGET_SPARC 1" >> $config_h
1512 echo "#define TARGET_SPARC64 1" >> $config_h
1513 elfload32="yes"
1514 ;;
1515 sparc32plus)
1516 echo "TARGET_ARCH=sparc64" >> $config_mak
1517 echo "TARGET_ABI_DIR=sparc" >> $config_mak
1518 echo "TARGET_ARCH2=sparc32plus" >> $config_mak
1519 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
1520 echo "#define TARGET_SPARC 1" >> $config_h
1521 echo "#define TARGET_SPARC64 1" >> $config_h
1522 echo "#define TARGET_ABI32 1" >> $config_h
1523 ;;
1524 *)
1525 echo "Unsupported target CPU"
1526 exit 1
1527 ;;
1528esac
de83cd02 1529if test "$target_bigendian" = "yes" ; then
97a847bc
FB
1530 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
1531 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
de83cd02 1532fi
97a847bc
FB
1533if test "$target_softmmu" = "yes" ; then
1534 echo "CONFIG_SOFTMMU=yes" >> $config_mak
1535 echo "#define CONFIG_SOFTMMU 1" >> $config_h
43ce4dfe 1536fi
997344f3
FB
1537if test "$target_user_only" = "yes" ; then
1538 echo "CONFIG_USER_ONLY=yes" >> $config_mak
1539 echo "#define CONFIG_USER_ONLY 1" >> $config_h
1540fi
831b7825
TS
1541if test "$target_linux_user" = "yes" ; then
1542 echo "CONFIG_LINUX_USER=yes" >> $config_mak
1543 echo "#define CONFIG_LINUX_USER 1" >> $config_h
1544fi
1545if test "$target_darwin_user" = "yes" ; then
1546 echo "CONFIG_DARWIN_USER=yes" >> $config_mak
1547 echo "#define CONFIG_DARWIN_USER 1" >> $config_h
1548fi
97a847bc 1549
0938cda5
AJ
1550if test "$target_cpu" = "arm" \
1551 -o "$target_cpu" = "armeb" \
1552 -o "$target_cpu" = "m68k" \
1553 -o "$target_cpu" = "mips" \
1554 -o "$target_cpu" = "mipsel" \
1555 -o "$target_cpu" = "mipsn32" \
1556 -o "$target_cpu" = "mipsn32el" \
1557 -o "$target_cpu" = "mips64" \
1558 -o "$target_cpu" = "mips64el" \
1559 -o "$target_cpu" = "sparc" \
1560 -o "$target_cpu" = "sparc64" \
1561 -o "$target_cpu" = "sparc32plus"; then
158142c2
FB
1562 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
1563 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
1564fi
e5fe0c52
PB
1565if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then
1566 echo "TARGET_HAS_BFLT=yes" >> $config_mak
1567 echo "#define TARGET_HAS_BFLT 1" >> $config_h
1568fi
bd0c5661
PB
1569if test "$target_user_only" = "yes" \
1570 -a "$nptl" = "yes" -a "$target_nptl" = "yes"; then
1571 echo "#define USE_NPTL 1" >> $config_h
1572fi
cb33da57
BS
1573# 32 bit ELF loader in addition to native 64 bit loader?
1574if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then
1575 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak
1576 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h
1577fi
5b0753e0 1578
15d9ca0f
TS
1579test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h
1580
97a847bc 1581done # for target in $targets
7d13299d
FB
1582
1583# build tree in object directory if source path is different from current one
1584if test "$source_path_used" = "yes" ; then
49ecc3fa 1585 DIRS="tests tests/cris slirp audio"
7d13299d 1586 FILES="Makefile tests/Makefile"
e7daa605 1587 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit"
e1ffb0f1 1588 FILES="$FILES tests/test-mmap.c"
7d13299d
FB
1589 for dir in $DIRS ; do
1590 mkdir -p $dir
1591 done
ec530c81 1592 # remove the link and recreate it, as not all "ln -sf" overwrite the link
7d13299d 1593 for f in $FILES ; do
ec530c81
FB
1594 rm -f $f
1595 ln -s $source_path/$f $f
7d13299d
FB
1596 done
1597fi
7d13299d 1598
9d56d2dc 1599rm -f $TMPO $TMPC $TMPE $TMPS $TMPI