1#!/bin/sh 2# 3# qemu configure script (c) 2003 Fabrice Bellard 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 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" 18 19# default parameters 20prefix="" 21interp_prefix="/usr/gnemul/qemu-%M" 22static="no" 23cross_prefix="" 24cc="gcc" 25gcc3_search="yes" 26gcc3_list="gcc-3.4 gcc34 gcc-3.3.6 gcc-3.3 gcc33 gcc-3.2 gcc32" 27host_cc="gcc" 28ar="ar" 29make="make" 30install="install" 31strip="strip" 32cpu=`uname -m` 33target_list="" 34case "$cpu" in 35 i386|i486|i586|i686|i86pc|BePC) 36 cpu="i386" 37 ;; 38 armv*b) 39 cpu="armv4b" 40 ;; 41 armv*l) 42 cpu="armv4l" 43 ;; 44 alpha) 45 cpu="alpha" 46 ;; 47 "Power Macintosh"|ppc|ppc64) 48 cpu="powerpc" 49 ;; 50 mips) 51 cpu="mips" 52 ;; 53 mips64) 54 cpu="mips64" 55 ;; 56 cris) 57 cpu="cris" 58 ;; 59 s390*) 60 cpu="s390" 61 ;; 62 sparc|sun4[cdmuv]) 63 cpu="sparc" 64 ;; 65 sparc64) 66 cpu="sparc64" 67 ;; 68 ia64) 69 cpu="ia64" 70 ;; 71 m68k) 72 cpu="m68k" 73 ;; 74 x86_64|amd64) 75 cpu="x86_64" 76 ;; 77 *) 78 cpu="unknown" 79 ;; 80esac 81gprof="no" 82bigendian="no" 83mingw32="no" 84EXESUF="" 85gdbstub="yes" 86slirp="yes" 87adlib="no" 88oss="no" 89dsound="no" 90coreaudio="no" 91alsa="no" 92fmod="no" 93fmod_lib="" 94fmod_inc="" 95vnc_tls="yes" 96bsd="no" 97linux="no" 98kqemu="no" 99profiler="no" 100cocoa="no" 101check_gfx="yes" 102check_gcc="yes" 103softmmu="yes" 104linux_user="no" 105darwin_user="no" 106build_docs="no" 107uname_release="" 108 109# OS specific 110targetos=`uname -s` 111case $targetos in 112CYGWIN*) 113mingw32="yes" 114OS_CFLAGS="-mno-cygwin" 115VL_OS_LDFLAGS="-mno-cygwin" 116if [ "$cpu" = "i386" ] ; then 117 kqemu="yes" 118fi 119;; 120MINGW32*) 121mingw32="yes" 122if [ "$cpu" = "i386" ] ; then 123 kqemu="yes" 124fi 125;; 126GNU/kFreeBSD) 127oss="yes" 128if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 129 kqemu="yes" 130fi 131;; 132FreeBSD) 133bsd="yes" 134oss="yes" 135if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 136 kqemu="yes" 137fi 138;; 139NetBSD) 140bsd="yes" 141oss="yes" 142;; 143OpenBSD) 144bsd="yes" 145oss="yes" 146;; 147Darwin) 148bsd="yes" 149darwin="yes" 150darwin_user="yes" 151cocoa="yes" 152coreaudio="yes" 153OS_CFLAGS="-mdynamic-no-pic" 154;; 155SunOS) 156 solaris="yes" 157 make="gmake" 158 install="ginstall" 159 needs_libsunmath="no" 160 solarisrev=`uname -r | cut -f2 -d.` 161 # have to select again, because `uname -m` returns i86pc 162 # even on an x86_64 box. 163 solariscpu=`isainfo -k` 164 if test "${solariscpu}" = "amd64" ; then 165 cpu="x86_64" 166 fi 167 if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 168 if test "$solarisrev" -le 9 ; then 169 if test -f /opt/SUNWspro/prod/lib/libsunmath.so.1; then 170 needs_libsunmath="yes" 171 else 172 echo "QEMU will not link correctly on Solaris 8/X86 or 9/x86 without" 173 echo "libsunmath from the Sun Studio compilers tools, due to a lack of" 174 echo "C99 math features in libm.so in Solaris 8/x86 and Solaris 9/x86" 175 echo "Studio 11 can be downloaded from www.sun.com." 176 exit 1 177 fi 178 fi 179 if test "$solarisrev" -ge 9 ; then 180 kqemu="yes" 181 fi 182 fi 183 if test -f /usr/include/sys/soundcard.h ; then 184 oss=yes 185 fi 186;; 187*) 188oss="yes" 189linux="yes" 190linux_user="yes" 191if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then 192 kqemu="yes" 193fi 194;; 195esac 196 197if [ "$bsd" = "yes" ] ; then 198 if [ "$darwin" != "yes" ] ; then 199 make="gmake" 200 fi 201fi 202 203# find source path 204source_path=`dirname "$0"` 205if [ -z "$source_path" ]; then 206 source_path=`pwd` 207else 208 source_path=`cd "$source_path"; pwd` 209fi 210if test "$source_path" = `pwd` ; then 211 source_path_used="no" 212else 213 source_path_used="yes" 214fi 215 216for opt do 217 optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'` 218 case "$opt" in 219 --help|-h) show_help=yes 220 ;; 221 --prefix=*) prefix="$optarg" 222 ;; 223 --interp-prefix=*) interp_prefix="$optarg" 224 ;; 225 --source-path=*) source_path="$optarg" 226 source_path_used="yes" 227 ;; 228 --cross-prefix=*) cross_prefix="$optarg" 229 ;; 230 --cc=*) cc="$optarg" 231 gcc3_search="no" 232 ;; 233 --host-cc=*) host_cc="$optarg" 234 ;; 235 --make=*) make="$optarg" 236 ;; 237 --install=*) install="$optarg" 238 ;; 239 --extra-cflags=*) CFLAGS="$optarg" 240 ;; 241 --extra-ldflags=*) LDFLAGS="$optarg" 242 ;; 243 --cpu=*) cpu="$optarg" 244 ;; 245 --target-list=*) target_list="$optarg" 246 ;; 247 --enable-gprof) gprof="yes" 248 ;; 249 --static) static="yes" 250 ;; 251 --disable-sdl) sdl="no" 252 ;; 253 --enable-coreaudio) coreaudio="yes" 254 ;; 255 --enable-alsa) alsa="yes" 256 ;; 257 --enable-dsound) dsound="yes" 258 ;; 259 --enable-fmod) fmod="yes" 260 ;; 261 --fmod-lib=*) fmod_lib="$optarg" 262 ;; 263 --fmod-inc=*) fmod_inc="$optarg" 264 ;; 265 --disable-vnc-tls) vnc_tls="no" 266 ;; 267 --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-" ; linux_user="no" 268 ;; 269 --disable-slirp) slirp="no" 270 ;; 271 --enable-adlib) adlib="yes" 272 ;; 273 --disable-kqemu) kqemu="no" 274 ;; 275 --enable-profiler) profiler="yes" 276 ;; 277 --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no" 278 ;; 279 --disable-gfx-check) check_gfx="no" 280 ;; 281 --disable-gcc-check) check_gcc="no" 282 ;; 283 --disable-system) softmmu="no" 284 ;; 285 --enable-system) softmmu="yes" 286 ;; 287 --disable-linux-user) linux_user="no" 288 ;; 289 --enable-linux-user) linux_user="yes" 290 ;; 291 --disable-darwin-user) darwin_user="no" 292 ;; 293 --enable-darwin-user) darwin_user="yes" 294 ;; 295 --enable-uname-release=*) uname_release="$optarg" 296 ;; 297 --sparc_cpu=*) 298 sparc_cpu="$optarg" 299 case $sparc_cpu in 300 v7|v8) SP_CFLAGS="-m32 -mcpu=${sparc_cpu} -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 301 target_cpu="sparc"; cpu="sparc" ;; 302 v8plus|v8plusa) SP_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m32" 303 target_cpu="sparc"; cpu="sparc" ;; 304 v9) SP_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_${sparc_cpu}__"; SP_LDFLAGS="-m64" 305 target_cpu="sparc64"; cpu="sparc64" ;; 306 *) echo "undefined SPARC architecture. Exiting";exit 1;; 307 esac 308 ;; 309 esac 310done 311 312if [ "$bsd" = "yes" -o "$darwin" = "yes" -o "$mingw32" = "yes" ] ; then 313 AIOLIBS= 314else 315 AIOLIBS="-lrt" 316fi 317 318# default flags for all hosts 319CFLAGS="$CFLAGS -Wall -O2 -g -fno-strict-aliasing" 320LDFLAGS="$LDFLAGS -g" 321 322# 323# If cpu ~= sparc and sparc_cpu hasn't been defined, plug in the right 324# ARCH_CFLAGS/ARCH_LDFLAGS (assume sparc_v8plus for 32-bit and sparc_v9 for 64-bit) 325# 326case $cpu in 327 sparc) if test -z "$sparc_cpu" ; then 328 ARCH_CFLAGS="-m32 -mcpu=ultrasparc -D__sparc_v8plus__" 329 ARCH_LDFLAGS="-m32" 330 else 331 ARCH_CFLAGS="${SP_CFLAGS}" 332 ARCH_LDFLAGS="${SP_LDFLAGS}" 333 fi 334 ;; 335 sparc64) if test -z "$sparc_cpu" ; then 336 ARCH_CFLAGS="-m64 -mcpu=ultrasparc -D__sparc_v9__" 337 ARCH_LDFLAGS="-m64" 338 else 339 ARCH_CFLAGS="${SP_CFLAGS}" 340 ARCH_LDFLAGS="${SP_LDFLAGS}" 341 fi 342 ;; 343esac 344 345if [ "$solaris" = "yes" -a "$cpu" = "x86_64" ] ; then 346 CFLAGS="${CFLAGS} -m64" 347 OS_CFLAGS="${OS_CFLAGS} -m64" 348fi 349 350if [ "$solaris" = "yes" -a "$cpu" = "i386" ] ; then 351 CFLAGS="${CFLAGS} -m32" 352 OS_CFLAGS="${OS_CFLAGS} -m32" 353fi 354 355if test x"$show_help" = x"yes" ; then 356cat << EOF 357 358Usage: configure [options] 359Options: [defaults in brackets after descriptions] 360 361EOF 362echo "Standard options:" 363echo " --help print this message" 364echo " --prefix=PREFIX install in PREFIX [$prefix]" 365echo " --interp-prefix=PREFIX where to find shared libraries, etc." 366echo " use %M for cpu name [$interp_prefix]" 367echo " --target-list=LIST set target list [$target_list]" 368echo "" 369echo "kqemu kernel acceleration support:" 370echo " --disable-kqemu disable kqemu support" 371echo "" 372echo "Advanced options (experts only):" 373echo " --source-path=PATH path of source code [$source_path]" 374echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]" 375echo " --cc=CC use C compiler CC [$cc]" 376echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc." 377echo " --make=MAKE use specified make [$make]" 378echo " --install=INSTALL use specified install [$install]" 379echo " --static enable static build [$static]" 380echo " --enable-cocoa enable COCOA (Mac OS X only)" 381echo " --enable-mingw32 enable Win32 cross compilation with mingw32" 382echo " --enable-adlib enable Adlib emulation" 383echo " --enable-coreaudio enable Coreaudio audio driver" 384echo " --enable-alsa enable ALSA audio driver" 385echo " --enable-fmod enable FMOD audio driver" 386echo " --enable-dsound enable DirectSound audio driver" 387echo " --disable-vnc-tls disable TLS encryption for VNC server" 388echo " --enable-system enable all system emulation targets" 389echo " --disable-system disable all system emulation targets" 390echo " --enable-linux-user enable all linux usermode emulation targets" 391echo " --disable-linux-user disable all linux usermode emulation targets" 392echo " --enable-darwin-user enable all darwin usermode emulation targets" 393echo " --disable-darwin-user disable all darwin usermode emulation targets" 394echo " --fmod-lib path to FMOD library" 395echo " --fmod-inc path to FMOD includes" 396echo " --enable-uname-release=R Return R for uname -r in usermode emulation" 397echo " --sparc_cpu=V Build qemu for Sparc architecture v7, v8, v8plus, v8plusa, v9" 398echo "" 399echo "NOTE: The object files are built at the place where configure is launched" 400exit 1 401fi 402 403cc="${cross_prefix}${cc}" 404ar="${cross_prefix}${ar}" 405strip="${cross_prefix}${strip}" 406 407# check that the C compiler works. 408cat > $TMPC <<EOF 409int main(void) {} 410EOF 411 412if $cc -c -o $TMPO $TMPC 2> /dev/null ; then 413 : C compiler works ok 414else 415 echo "ERROR: \"$cc\" either does not exist or does not work" 416 exit 1 417fi 418 419if test "$mingw32" = "yes" ; then 420 linux="no" 421 EXESUF=".exe" 422 oss="no" 423fi 424 425# Check for gcc4, error if pre-gcc4 426if test "$check_gcc" = "yes" ; then 427 cat > $TMPC <<EOF 428#if __GNUC__ < 4 429#error gcc3 430#endif 431int main(){return 0;} 432EOF 433 if "$cc" -o $TMPE $TMPC 2> /dev/null ; then 434 echo "WARNING: \"$cc\" looks like gcc 4.x" 435 found_compat_cc="no" 436 if test "$gcc3_search" = "yes" ; then 437 echo "Looking for gcc 3.x" 438 for compat_cc in $gcc3_list ; do 439 if "$cross_prefix$compat_cc" --version 2> /dev/null | fgrep '(GCC) 3.' > /dev/null 2>&1 ; then 440 echo "Found \"$compat_cc\"" 441 cc="$cross_prefix$compat_cc" 442 found_compat_cc="yes" 443 break 444 fi 445 done 446 if test "$found_compat_cc" = "no" ; then 447 echo "gcc 3.x not found!" 448 fi 449 fi 450 if test "$found_compat_cc" = "no" ; then 451 echo "QEMU is known to have problems when compiled with gcc 4.x" 452 echo "It is recommended that you use gcc 3.x to build QEMU" 453 echo "To use this compiler anyway, configure with --disable-gcc-check" 454 exit 1; 455 fi 456 fi 457fi 458 459# 460# Solaris specific configure tool chain decisions 461# 462if test "$solaris" = "yes" ; then 463 # 464 # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly 465 # override the check with --disable-gcc-check 466 # 467 if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then 468 solgcc=`which $cc` 469 if test "$solgcc" = "/usr/sfw/bin/gcc" ; then 470 echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly." 471 echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3" 472 echo "or get the latest patch from SunSolve for gcc" 473 exit 1 474 fi 475 fi 476 solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"` 477 if test -z "$solinst" ; then 478 echo "Solaris install program not found. Use --install=/usr/ucb/install or" 479 echo "install fileutils from www.blastwave.org using pkg-get -i fileutils" 480 echo "to get ginstall which is used by default (which lives in /opt/csw/bin)" 481 exit 1 482 fi 483 if test "$solinst" = "/usr/sbin/install" ; then 484 echo "Error: Solaris /usr/sbin/install is not an appropriate install program." 485 echo "try ginstall from the GNU fileutils available from www.blastwave.org" 486 echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install" 487 exit 1 488 fi 489 sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"` 490 if test -z "$sol_ar" ; then 491 echo "Error: No path includes ar" 492 if test -f /usr/ccs/bin/ar ; then 493 echo "Add /usr/ccs/bin to your path and rerun configure" 494 fi 495 exit 1 496 fi 497fi 498 499 500if test -z "$target_list" ; then 501# these targets are portable 502 if [ "$softmmu" = "yes" ] ; then 503 target_list="i386-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu mips64-softmmu mips64el-softmmu arm-softmmu ppc-softmmu ppcemb-softmmu ppc64-softmmu m68k-softmmu sh4-softmmu cris-softmmu" 504 fi 505# the following are Linux specific 506 if [ "$linux_user" = "yes" ] ; then 507 target_list="i386-linux-user arm-linux-user armeb-linux-user sparc-linux-user sparc64-linux-user sparc32plus-linux-user mips-linux-user mipsel-linux-user m68k-linux-user alpha-linux-user sh4-linux-user ppc-linux-user ppc64-linux-user x86_64-linux-user cris-linux-user $target_list" 508 fi 509# the following are Darwin specific 510 if [ "$darwin_user" = "yes" ] ; then 511 target_list="i386-darwin-user ppc-darwin-user $target_list" 512 fi 513else 514 target_list=`echo "$target_list" | sed -e 's/,/ /g'` 515fi 516if test -z "$target_list" ; then 517 echo "No targets enabled" 518 exit 1 519fi 520 521if test -z "$cross_prefix" ; then 522 523# --- 524# big/little endian test 525cat > $TMPC << EOF 526#include <inttypes.h> 527int main(int argc, char ** argv){ 528 volatile uint32_t i=0x01234567; 529 return (*((uint8_t*)(&i))) == 0x67; 530} 531EOF 532 533if $cc -o $TMPE $TMPC 2> /dev/null ; then 534$TMPE && bigendian="yes" 535else 536echo big/little test failed 537fi 538 539else 540 541# if cross compiling, cannot launch a program, so make a static guess 542if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "mips64" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then 543 bigendian="yes" 544fi 545 546fi 547 548# host long bits test 549hostlongbits="32" 550if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then 551 hostlongbits="64" 552fi 553 554# check gcc options support 555cat > $TMPC <<EOF 556int main(void) { 557} 558EOF 559 560########################################## 561# SDL probe 562 563sdl_too_old=no 564 565if test -z "$sdl" ; then 566 sdl_config="sdl-config" 567 sdl=no 568 sdl_static=no 569 570 if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then 571 # win32 cross compilation case 572 sdl_config="i386-mingw32msvc-sdl-config" 573 sdl=yes 574 else 575 # normal SDL probe 576cat > $TMPC << EOF 577#include <SDL.h> 578#undef main /* We don't want SDL to override our main() */ 579int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } 580EOF 581 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /tmp/qemu-$$-sdl-config.log ; then 582 _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'` 583 if test "$_sdlversion" -lt 121 ; then 584 sdl_too_old=yes 585 else 586 if test "$cocoa" = "no" ; then 587 sdl=yes 588 fi 589 fi 590 591 # static link with sdl ? 592 if test "$sdl" = "yes" ; then 593 aa="no" 594 `$sdl_config --static-libs 2>/dev/null | grep \\\-laa > /dev/null` && aa="yes" 595 sdl_static_libs=`$sdl_config --static-libs 2>/dev/null` 596 if [ "$aa" = "yes" ] ; then 597 sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`" 598 fi 599 600 if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then 601 sdl_static=yes 602 fi 603 fi # static link 604 fi # sdl compile test 605 fi # cross compilation 606else 607 # Make sure to disable cocoa if sdl was set 608 if test "$sdl" = "yes" ; then 609 cocoa="no" 610 coreaudio="no" 611 fi 612fi # -z $sdl 613 614########################################## 615# VNC TLS detection 616if test "$vnc_tls" = "yes" ; then 617 `pkg-config gnutls` || vnc_tls="no" 618fi 619if test "$vnc_tls" = "yes" ; then 620 vnc_tls_cflags=`pkg-config --cflags gnutls` 621 vnc_tls_libs=`pkg-config --libs gnutls` 622fi 623 624########################################## 625# alsa sound support libraries 626 627if test "$alsa" = "yes" ; then 628 cat > $TMPC << EOF 629#include <alsa/asoundlib.h> 630int main(void) { snd_pcm_t **handle; return snd_pcm_close(*handle); } 631EOF 632 if $cc -o $TMPE $TMPC -lasound 2> /dev/null ; then 633 : 634 else 635 echo 636 echo "Error: Could not find alsa" 637 echo "Make sure to have the alsa libs and headers installed." 638 echo 639 exit 1 640 fi 641fi 642 643# Check if tools are available to build documentation. 644if [ -x "`which texi2html 2>/dev/null`" ] && \ 645 [ -x "`which pod2man 2>/dev/null`" ]; then 646 build_docs="yes" 647fi 648 649if test "$mingw32" = "yes" ; then 650 if test -z "$prefix" ; then 651 prefix="/c/Program Files/Qemu" 652 fi 653 mansuffix="" 654 datasuffix="" 655 docsuffix="" 656 binsuffix="" 657else 658 if test -z "$prefix" ; then 659 prefix="/usr/local" 660 fi 661 mansuffix="/share/man" 662 datasuffix="/share/qemu" 663 docsuffix="/share/doc/qemu" 664 binsuffix="/bin" 665fi 666 667echo "Install prefix $prefix" 668echo "BIOS directory $prefix$datasuffix" 669echo "binary directory $prefix$binsuffix" 670if test "$mingw32" = "no" ; then 671echo "Manual directory $prefix$mansuffix" 672echo "ELF interp prefix $interp_prefix" 673fi 674echo "Source path $source_path" 675echo "C compiler $cc" 676echo "Host C compiler $host_cc" 677echo "make $make" 678echo "install $install" 679echo "host CPU $cpu" 680echo "host big endian $bigendian" 681echo "target list $target_list" 682echo "gprof enabled $gprof" 683echo "profiler $profiler" 684echo "static build $static" 685if test "$darwin" = "yes" ; then 686 echo "Cocoa support $cocoa" 687fi 688echo "SDL support $sdl" 689if test "$sdl" != "no" ; then 690 echo "SDL static link $sdl_static" 691fi 692echo "mingw32 support $mingw32" 693echo "Adlib support $adlib" 694echo "CoreAudio support $coreaudio" 695echo "ALSA support $alsa" 696echo "DSound support $dsound" 697if test "$fmod" = "yes"; then 698 if test -z $fmod_lib || test -z $fmod_inc; then 699 echo 700 echo "Error: You must specify path to FMOD library and headers" 701 echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so" 702 echo 703 exit 1 704 fi 705 fmod_support=" (lib='$fmod_lib' include='$fmod_inc')" 706else 707 fmod_support="" 708fi 709echo "FMOD support $fmod $fmod_support" 710echo "OSS support $oss" 711echo "VNC TLS support $vnc_tls" 712if test "$vnc_tls" = "yes" ; then 713 echo " TLS CFLAGS $vnc_tls_cflags" 714 echo " TLS LIBS $vnc_tls_libs" 715fi 716if test -n "$sparc_cpu"; then 717 echo "Target Sparc Arch $sparc_cpu" 718fi 719echo "kqemu support $kqemu" 720echo "Documentation $build_docs" 721[ ! -z "$uname_release" ] && \ 722echo "uname -r $uname_release" 723 724if test $sdl_too_old = "yes"; then 725echo "-> Your SDL version is too old - please upgrade to have SDL support" 726fi 727if [ -s /tmp/qemu-$$-sdl-config.log ]; then 728 echo "The error log from compiling the libSDL test is: " 729 cat /tmp/qemu-$$-sdl-config.log 730fi 731rm -f /tmp/qemu-$$-sdl-config.log 732#if test "$sdl_static" = "no"; then 733# echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output" 734#fi 735config_mak="config-host.mak" 736config_h="config-host.h" 737 738#echo "Creating $config_mak and $config_h" 739 740test -f $config_h && mv $config_h ${config_h}~ 741 742echo "# Automatically generated by configure - do not modify" > $config_mak 743echo "# Configured with: $0 $@" >> $config_mak 744echo "/* Automatically generated by configure - do not modify */" > $config_h 745 746echo "prefix=$prefix" >> $config_mak 747echo "bindir=\${prefix}$binsuffix" >> $config_mak 748echo "mandir=\${prefix}$mansuffix" >> $config_mak 749echo "datadir=\${prefix}$datasuffix" >> $config_mak 750echo "docdir=\${prefix}$docsuffix" >> $config_mak 751echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h 752echo "MAKE=$make" >> $config_mak 753echo "INSTALL=$install" >> $config_mak 754echo "CC=$cc" >> $config_mak 755echo "HOST_CC=$host_cc" >> $config_mak 756echo "AR=$ar" >> $config_mak 757echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak 758echo "OS_CFLAGS=$OS_CFLAGS" >> $config_mak 759echo "OS_LDFLAGS=$OS_LDFLAGS" >> $config_mak 760echo "VL_OS_LDFLAGS=$VL_OS_LDFLAGS" >> $config_mak 761echo "ARCH_CFLAGS=$ARCH_CFLAGS" >> $config_mak 762echo "ARCH_LDFLAGS=$ARCH_LDFLAGS" >> $config_mak 763echo "CFLAGS=$CFLAGS" >> $config_mak 764echo "LDFLAGS=$LDFLAGS" >> $config_mak 765echo "EXESUF=$EXESUF" >> $config_mak 766echo "AIOLIBS=$AIOLIBS" >> $config_mak 767if test "$cpu" = "i386" ; then 768 echo "ARCH=i386" >> $config_mak 769 echo "#define HOST_I386 1" >> $config_h 770elif test "$cpu" = "x86_64" ; then 771 echo "ARCH=x86_64" >> $config_mak 772 echo "#define HOST_X86_64 1" >> $config_h 773elif test "$cpu" = "armv4b" ; then 774 echo "ARCH=arm" >> $config_mak 775 echo "#define HOST_ARM 1" >> $config_h 776elif test "$cpu" = "armv4l" ; then 777 echo "ARCH=arm" >> $config_mak 778 echo "#define HOST_ARM 1" >> $config_h 779elif test "$cpu" = "powerpc" ; then 780 echo "ARCH=ppc" >> $config_mak 781 echo "#define HOST_PPC 1" >> $config_h 782elif test "$cpu" = "mips" ; then 783 echo "ARCH=mips" >> $config_mak 784 echo "#define HOST_MIPS 1" >> $config_h 785elif test "$cpu" = "mips64" ; then 786 echo "ARCH=mips64" >> $config_mak 787 echo "#define HOST_MIPS64 1" >> $config_h 788elif test "$cpu" = "cris" ; then 789 echo "ARCH=cris" >> $config_mak 790 echo "#define HOST_CRIS 1" >> $config_h 791elif test "$cpu" = "s390" ; then 792 echo "ARCH=s390" >> $config_mak 793 echo "#define HOST_S390 1" >> $config_h 794elif test "$cpu" = "alpha" ; then 795 echo "ARCH=alpha" >> $config_mak 796 echo "#define HOST_ALPHA 1" >> $config_h 797elif test "$cpu" = "sparc" ; then 798 echo "ARCH=sparc" >> $config_mak 799 echo "#define HOST_SPARC 1" >> $config_h 800elif test "$cpu" = "sparc64" ; then 801 echo "ARCH=sparc64" >> $config_mak 802 echo "#define HOST_SPARC64 1" >> $config_h 803elif test "$cpu" = "ia64" ; then 804 echo "ARCH=ia64" >> $config_mak 805 echo "#define HOST_IA64 1" >> $config_h 806elif test "$cpu" = "m68k" ; then 807 echo "ARCH=m68k" >> $config_mak 808 echo "#define HOST_M68K 1" >> $config_h 809else 810 echo "Unsupported CPU = $cpu" 811 exit 1 812fi 813if test "$bigendian" = "yes" ; then 814 echo "WORDS_BIGENDIAN=yes" >> $config_mak 815 echo "#define WORDS_BIGENDIAN 1" >> $config_h 816fi 817echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h 818if test "$mingw32" = "yes" ; then 819 echo "CONFIG_WIN32=yes" >> $config_mak 820 echo "#define CONFIG_WIN32 1" >> $config_h 821else 822 cat > $TMPC << EOF 823#include <byteswap.h> 824int main(void) { return bswap_32(0); } 825EOF 826 if $cc -o $TMPE $TMPC 2> /dev/null ; then 827 echo "#define HAVE_BYTESWAP_H 1" >> $config_h 828 fi 829fi 830if test "$darwin" = "yes" ; then 831 echo "CONFIG_DARWIN=yes" >> $config_mak 832 echo "#define CONFIG_DARWIN 1" >> $config_h 833fi 834if test "$solaris" = "yes" ; then 835 echo "CONFIG_SOLARIS=yes" >> $config_mak 836 echo "#define HOST_SOLARIS $solarisrev" >> $config_h 837 if test "$needs_libsunmath" = "yes" ; then 838 echo "NEEDS_LIBSUNMATH=yes" >> $config_mak 839 echo "#define NEEDS_LIBSUNMATH 1" >> $config_h 840 fi 841fi 842if test -n "$sparc_cpu"; then 843 echo "CONFIG__sparc_${sparc_cpu}__=yes" >> $config_mak 844 echo "#define __sparc_${sparc_cpu}__ 1" >> $config_h 845fi 846if test "$gdbstub" = "yes" ; then 847 echo "CONFIG_GDBSTUB=yes" >> $config_mak 848 echo "#define CONFIG_GDBSTUB 1" >> $config_h 849fi 850if test "$gprof" = "yes" ; then 851 echo "TARGET_GPROF=yes" >> $config_mak 852 echo "#define HAVE_GPROF 1" >> $config_h 853fi 854if test "$static" = "yes" ; then 855 echo "CONFIG_STATIC=yes" >> $config_mak 856 echo "#define CONFIG_STATIC 1" >> $config_h 857fi 858if test $profiler = "yes" ; then 859 echo "#define CONFIG_PROFILER 1" >> $config_h 860fi 861if test "$slirp" = "yes" ; then 862 echo "CONFIG_SLIRP=yes" >> $config_mak 863 echo "#define CONFIG_SLIRP 1" >> $config_h 864fi 865if test "$adlib" = "yes" ; then 866 echo "CONFIG_ADLIB=yes" >> $config_mak 867 echo "#define CONFIG_ADLIB 1" >> $config_h 868fi 869if test "$oss" = "yes" ; then 870 echo "CONFIG_OSS=yes" >> $config_mak 871 echo "#define CONFIG_OSS 1" >> $config_h 872fi 873if test "$coreaudio" = "yes" ; then 874 echo "CONFIG_COREAUDIO=yes" >> $config_mak 875 echo "#define CONFIG_COREAUDIO 1" >> $config_h 876fi 877if test "$alsa" = "yes" ; then 878 echo "CONFIG_ALSA=yes" >> $config_mak 879 echo "#define CONFIG_ALSA 1" >> $config_h 880fi 881if test "$dsound" = "yes" ; then 882 echo "CONFIG_DSOUND=yes" >> $config_mak 883 echo "#define CONFIG_DSOUND 1" >> $config_h 884fi 885if test "$fmod" = "yes" ; then 886 echo "CONFIG_FMOD=yes" >> $config_mak 887 echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak 888 echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak 889 echo "#define CONFIG_FMOD 1" >> $config_h 890fi 891if test "$vnc_tls" = "yes" ; then 892 echo "CONFIG_VNC_TLS=yes" >> $config_mak 893 echo "CONFIG_VNC_TLS_CFLAGS=$vnc_tls_cflags" >> $config_mak 894 echo "CONFIG_VNC_TLS_LIBS=$vnc_tls_libs" >> $config_mak 895 echo "#define CONFIG_VNC_TLS 1" >> $config_h 896fi 897qemu_version=`head $source_path/VERSION` 898echo "VERSION=$qemu_version" >>$config_mak 899echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h 900 901echo "SRC_PATH=$source_path" >> $config_mak 902if [ "$source_path_used" = "yes" ]; then 903 echo "VPATH=$source_path" >> $config_mak 904fi 905echo "TARGET_DIRS=$target_list" >> $config_mak 906if [ "$build_docs" = "yes" ] ; then 907 echo "BUILD_DOCS=yes" >> $config_mak 908fi 909 910# XXX: suppress that 911if [ "$bsd" = "yes" ] ; then 912 echo "#define O_LARGEFILE 0" >> $config_h 913 echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h 914 echo "#define _BSD 1" >> $config_h 915fi 916 917echo "#define CONFIG_UNAME_RELEASE \"$uname_release\"" >> $config_h 918 919tools= 920if test `expr "$target_list" : ".*softmmu.*"` != 0 ; then 921 tools="qemu-img\$(EXESUF) $tools" 922fi 923echo "TOOLS=$tools" >> $config_mak 924 925test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 926 927for target in $target_list; do 928target_dir="$target" 929config_mak=$target_dir/config.mak 930config_h=$target_dir/config.h 931target_cpu=`echo $target | cut -d '-' -f 1` 932target_bigendian="no" 933[ "$target_cpu" = "armeb" ] && target_bigendian=yes 934[ "$target_cpu" = "sparc" ] && target_bigendian=yes 935[ "$target_cpu" = "sparc64" ] && target_bigendian=yes 936[ "$target_cpu" = "sparc32plus" ] && target_bigendian=yes 937[ "$target_cpu" = "ppc" ] && target_bigendian=yes 938[ "$target_cpu" = "ppcemb" ] && target_bigendian=yes 939[ "$target_cpu" = "ppc64" ] && target_bigendian=yes 940[ "$target_cpu" = "ppc64h" ] && target_bigendian=yes 941[ "$target_cpu" = "mips" ] && target_bigendian=yes 942[ "$target_cpu" = "mipsn32" ] && target_bigendian=yes 943[ "$target_cpu" = "mips64" ] && target_bigendian=yes 944[ "$target_cpu" = "sh4eb" ] && target_bigendian=yes 945[ "$target_cpu" = "m68k" ] && target_bigendian=yes 946target_softmmu="no" 947target_user_only="no" 948target_linux_user="no" 949target_darwin_user="no" 950case "$target" in 951 ${target_cpu}-softmmu) 952 target_softmmu="yes" 953 ;; 954 ${target_cpu}-linux-user) 955 target_user_only="yes" 956 target_linux_user="yes" 957 ;; 958 ${target_cpu}-darwin-user) 959 target_user_only="yes" 960 target_darwin_user="yes" 961 ;; 962 *) 963 echo "ERROR: Target '$target' not recognised" 964 exit 1 965 ;; 966esac 967 968if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \ 969 -a "$sdl" = "no" -a "$cocoa" = "no" ; then 970 echo "ERROR: QEMU requires SDL or Cocoa for graphical output" 971 echo "To build QEMU without graphical output configure with --disable-gfx-check" 972 echo "Note that this will disable all output from the virtual graphics card." 973 exit 1; 974fi 975 976#echo "Creating $config_mak, $config_h and $target_dir/Makefile" 977 978test -f $config_h && mv $config_h ${config_h}~ 979 980mkdir -p $target_dir 981mkdir -p $target_dir/fpu 982if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" ; then 983 mkdir -p $target_dir/nwfpe 984fi 985if test "$target_user_only" = "no" ; then 986 mkdir -p $target_dir/slirp 987fi 988 989# 990# don't use ln -sf as not all "ln -sf" over write the file/link 991# 992rm -f $target_dir/Makefile 993ln -s $source_path/Makefile.target $target_dir/Makefile 994 995 996echo "# Automatically generated by configure - do not modify" > $config_mak 997echo "/* Automatically generated by configure - do not modify */" > $config_h 998 999 1000echo "include ../config-host.mak" >> $config_mak 1001echo "#include \"../config-host.h\"" >> $config_h 1002 1003bflt="no" 1004elfload32="no" 1005interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"` 1006echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h 1007 1008if test "$target_cpu" = "i386" ; then 1009 echo "TARGET_ARCH=i386" >> $config_mak 1010 echo "#define TARGET_ARCH \"i386\"" >> $config_h 1011 echo "#define TARGET_I386 1" >> $config_h 1012 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then 1013 echo "#define USE_KQEMU 1" >> $config_h 1014 fi 1015elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then 1016 echo "TARGET_ARCH=arm" >> $config_mak 1017 echo "#define TARGET_ARCH \"arm\"" >> $config_h 1018 echo "#define TARGET_ARM 1" >> $config_h 1019 bflt="yes" 1020elif test "$target_cpu" = "sparc" ; then 1021 echo "TARGET_ARCH=sparc" >> $config_mak 1022 echo "#define TARGET_ARCH \"sparc\"" >> $config_h 1023 echo "#define TARGET_SPARC 1" >> $config_h 1024elif test "$target_cpu" = "sparc64" ; then 1025 echo "TARGET_ARCH=sparc64" >> $config_mak 1026 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 1027 echo "#define TARGET_SPARC 1" >> $config_h 1028 echo "#define TARGET_SPARC64 1" >> $config_h 1029 elfload32="yes" 1030elif test "$target_cpu" = "sparc32plus" ; then 1031 echo "TARGET_ARCH=sparc64" >> $config_mak 1032 echo "TARGET_ABI_DIR=sparc" >> $config_mak 1033 echo "#define TARGET_ARCH \"sparc64\"" >> $config_h 1034 echo "#define TARGET_SPARC 1" >> $config_h 1035 echo "#define TARGET_SPARC64 1" >> $config_h 1036 echo "#define TARGET_ABI32 1" >> $config_h 1037elif test "$target_cpu" = "ppc" ; then 1038 echo "TARGET_ARCH=ppc" >> $config_mak 1039 echo "#define TARGET_ARCH \"ppc\"" >> $config_h 1040 echo "#define TARGET_PPC 1" >> $config_h 1041elif test "$target_cpu" = "ppcemb" ; then 1042 echo "TARGET_ARCH=ppcemb" >> $config_mak 1043 echo "#define TARGET_ARCH \"ppcemb\"" >> $config_h 1044 echo "#define TARGET_PPC 1" >> $config_h 1045 echo "#define TARGET_PPCEMB 1" >> $config_h 1046elif test "$target_cpu" = "ppc64" ; then 1047 echo "TARGET_ARCH=ppc64" >> $config_mak 1048 echo "#define TARGET_ARCH \"ppc64\"" >> $config_h 1049 echo "#define TARGET_PPC 1" >> $config_h 1050 echo "#define TARGET_PPC64 1" >> $config_h 1051elif test "$target_cpu" = "ppc64h" ; then 1052 echo "TARGET_ARCH=ppc64h" >> $config_mak 1053 echo "#define TARGET_ARCH \"ppc64h\"" >> $config_h 1054 echo "#define TARGET_PPC 1" >> $config_h 1055 echo "#define TARGET_PPC64 1" >> $config_h 1056 echo "#define TARGET_PPC64H 1" >> $config_h 1057elif test "$target_cpu" = "x86_64" ; then 1058 echo "TARGET_ARCH=x86_64" >> $config_mak 1059 echo "#define TARGET_ARCH \"x86_64\"" >> $config_h 1060 echo "#define TARGET_I386 1" >> $config_h 1061 echo "#define TARGET_X86_64 1" >> $config_h 1062 if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then 1063 echo "#define USE_KQEMU 1" >> $config_h 1064 fi 1065elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then 1066 echo "TARGET_ARCH=mips" >> $config_mak 1067 echo "#define TARGET_ARCH \"mips\"" >> $config_h 1068 echo "#define TARGET_MIPS 1" >> $config_h 1069elif test "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" ; then 1070 echo "TARGET_ARCH=mipsn32" >> $config_mak 1071 echo "#define TARGET_ARCH \"mipsn32\"" >> $config_h 1072 echo "#define TARGET_MIPS 1" >> $config_h 1073 echo "#define TARGET_MIPSN32 1" >> $config_h 1074elif test "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el" ; then 1075 echo "TARGET_ARCH=mips64" >> $config_mak 1076 echo "#define TARGET_ARCH \"mips64\"" >> $config_h 1077 echo "#define TARGET_MIPS 1" >> $config_h 1078 echo "#define TARGET_MIPS64 1" >> $config_h 1079elif test "$target_cpu" = "cris" ; then 1080 echo "TARGET_ARCH=cris" >> $config_mak 1081 echo "#define TARGET_ARCH \"cris\"" >> $config_h 1082 echo "#define TARGET_CRIS 1" >> $config_h 1083 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1084 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1085elif test "$target_cpu" = "sh4" -o "$target_cpu" = "sh4eb" ; then 1086 echo "TARGET_ARCH=sh4" >> $config_mak 1087 echo "#define TARGET_ARCH \"sh4\"" >> $config_h 1088 echo "#define TARGET_SH4 1" >> $config_h 1089 bflt="yes" 1090elif test "$target_cpu" = "m68k" ; then 1091 echo "TARGET_ARCH=m68k" >> $config_mak 1092 echo "#define TARGET_ARCH \"m68k\"" >> $config_h 1093 echo "#define TARGET_M68K 1" >> $config_h 1094 bflt="yes" 1095elif test "$target_cpu" = "alpha" ; then 1096 echo "TARGET_ARCH=alpha" >> $config_mak 1097 echo "#define TARGET_ARCH \"alpha\"" >> $config_h 1098 echo "#define TARGET_ALPHA 1" >> $config_h 1099else 1100 echo "Unsupported target CPU" 1101 exit 1 1102fi 1103if test "$target_bigendian" = "yes" ; then 1104 echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak 1105 echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h 1106fi 1107if test "$target_softmmu" = "yes" ; then 1108 echo "CONFIG_SOFTMMU=yes" >> $config_mak 1109 echo "#define CONFIG_SOFTMMU 1" >> $config_h 1110fi 1111if test "$target_user_only" = "yes" ; then 1112 echo "CONFIG_USER_ONLY=yes" >> $config_mak 1113 echo "#define CONFIG_USER_ONLY 1" >> $config_h 1114fi 1115if test "$target_linux_user" = "yes" ; then 1116 echo "CONFIG_LINUX_USER=yes" >> $config_mak 1117 echo "#define CONFIG_LINUX_USER 1" >> $config_h 1118fi 1119if test "$target_darwin_user" = "yes" ; then 1120 echo "CONFIG_DARWIN_USER=yes" >> $config_mak 1121 echo "#define CONFIG_DARWIN_USER 1" >> $config_h 1122fi 1123 1124if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" -o "$target_cpu" = "sparc" -o "$target_cpu" = "sparc64" -o "$target_cpu" = "sparc32plus" -o "$target_cpu" = "m68k" -o "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" -o "$target_cpu" = "mipsn32" -o "$target_cpu" = "mipsn32el" -o "$target_cpu" = "mips64" -o "$target_cpu" = "mips64el"; then 1125 echo "CONFIG_SOFTFLOAT=yes" >> $config_mak 1126 echo "#define CONFIG_SOFTFLOAT 1" >> $config_h 1127fi 1128if test "$target_user_only" = "yes" -a "$bflt" = "yes"; then 1129 echo "TARGET_HAS_BFLT=yes" >> $config_mak 1130 echo "#define TARGET_HAS_BFLT 1" >> $config_h 1131fi 1132# 32 bit ELF loader in addition to native 64 bit loader? 1133if test "$target_user_only" = "yes" -a "$elfload32" = "yes"; then 1134 echo "TARGET_HAS_ELFLOAD32=yes" >> $config_mak 1135 echo "#define TARGET_HAS_ELFLOAD32 1" >> $config_h 1136fi 1137# sdl defines 1138 1139if test "$target_user_only" = "no"; then 1140 if test "$target_softmmu" = "no" -o "$static" = "yes"; then 1141 sdl1=$sdl_static 1142 else 1143 sdl1=$sdl 1144 fi 1145 if test "$sdl1" = "yes" ; then 1146 echo "#define CONFIG_SDL 1" >> $config_h 1147 echo "CONFIG_SDL=yes" >> $config_mak 1148 if test "$target_softmmu" = "no" -o "$static" = "yes"; then 1149 echo "SDL_LIBS=$sdl_static_libs" >> $config_mak 1150 else 1151 echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak 1152 fi 1153 if [ "${aa}" = "yes" ] ; then 1154 echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak 1155 else 1156 echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak 1157 fi 1158 fi 1159fi 1160 1161if test "$cocoa" = "yes" ; then 1162 echo "#define CONFIG_COCOA 1" >> $config_h 1163 echo "CONFIG_COCOA=yes" >> $config_mak 1164fi 1165 1166test -f ${config_h}~ && cmp -s $config_h ${config_h}~ && mv ${config_h}~ $config_h 1167 1168done # for target in $targets 1169 1170# build tree in object directory if source path is different from current one 1171if test "$source_path_used" = "yes" ; then 1172 DIRS="tests tests/cris" 1173 FILES="Makefile tests/Makefile" 1174 FILES="$FILES tests/cris/Makefile tests/cris/.gdbinit" 1175 for dir in $DIRS ; do 1176 mkdir -p $dir 1177 done 1178 # remove the link and recreate it, as not all "ln -sf" overwrite the link 1179 for f in $FILES ; do 1180 rm -f $f 1181 ln -s $source_path/$f $f 1182 done 1183fi 1184 1185rm -f $TMPO $TMPC $TMPE $TMPS 1186