|
|
1.1 root 1: #!/bin/sh
2: #
3: # qemu configure script (c) 2003 Fabrice Bellard
4: #
5: # set temporary file name
6: if test ! -z "$TMPDIR" ; then
7: TMPDIR1="${TMPDIR}"
8: elif test ! -z "$TEMPDIR" ; then
9: TMPDIR1="${TEMPDIR}"
10: else
11: TMPDIR1="/tmp"
12: fi
13:
14: TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c"
15: TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o"
16: TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}"
17: TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S"
18:
19: # default parameters
20: prefix=""
21: interp_prefix="/usr/gnemul/qemu-%M"
22: static="no"
23: cross_prefix=""
24: cc="gcc"
25: host_cc="gcc"
26: ar="ar"
27: make="make"
1.1.1.3 ! root 28: install="install"
1.1 root 29: strip="strip"
30: cpu=`uname -m`
31: target_list=""
32: case "$cpu" in
33: i386|i486|i586|i686|i86pc|BePC)
34: cpu="i386"
35: ;;
36: armv*b)
37: cpu="armv4b"
38: ;;
39: armv*l)
40: cpu="armv4l"
41: ;;
42: alpha)
43: cpu="alpha"
44: ;;
45: "Power Macintosh"|ppc|ppc64)
46: cpu="powerpc"
47: ;;
48: mips)
49: cpu="mips"
50: ;;
51: s390)
52: cpu="s390"
53: ;;
1.1.1.3 ! root 54: sparc|sun4[muv])
1.1 root 55: cpu="sparc"
56: ;;
57: sparc64)
58: cpu="sparc64"
59: ;;
60: ia64)
61: cpu="ia64"
62: ;;
63: m68k)
64: cpu="m68k"
65: ;;
66: x86_64|amd64)
67: cpu="x86_64"
68: ;;
69: *)
70: cpu="unknown"
71: ;;
72: esac
73: gprof="no"
74: bigendian="no"
75: mingw32="no"
76: EXESUF=""
77: gdbstub="yes"
78: slirp="yes"
79: adlib="no"
80: oss="no"
1.1.1.2 root 81: dsound="no"
82: coreaudio="no"
83: alsa="no"
1.1 root 84: fmod="no"
85: fmod_lib=""
86: fmod_inc=""
1.1.1.3 ! root 87: bsd="no"
1.1 root 88: linux="no"
89: kqemu="no"
1.1.1.3 ! root 90: profiler="no"
1.1 root 91: kernel_path=""
92: cocoa="no"
93: check_gfx="yes"
1.1.1.2 root 94: check_gcc="yes"
1.1.1.3 ! root 95: softmmu="yes"
! 96: user="no"
! 97: build_docs="no"
1.1 root 98:
99: # OS specific
100: targetos=`uname -s`
101: case $targetos in
102: CYGWIN*)
103: mingw32="yes"
104: CFLAGS="-O2 -mno-cygwin"
105: ;;
106: MINGW32*)
107: mingw32="yes"
108: ;;
109: FreeBSD)
110: bsd="yes"
111: oss="yes"
112: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
113: kqemu="yes"
114: fi
115: ;;
116: NetBSD)
117: bsd="yes"
118: oss="yes"
119: ;;
120: OpenBSD)
121: bsd="yes"
122: oss="yes"
123: ;;
124: Darwin)
125: bsd="yes"
126: darwin="yes"
127: ;;
1.1.1.3 ! root 128: SunOS)
! 129: solaris="yes"
! 130: ;;
1.1.1.2 root 131: *)
1.1 root 132: oss="yes"
133: linux="yes"
1.1.1.3 ! root 134: user="yes"
1.1 root 135: if [ "$cpu" = "i386" -o "$cpu" = "x86_64" ] ; then
136: kqemu="yes"
137: fi
138: ;;
139: esac
140:
141: if [ "$bsd" = "yes" ] ; then
1.1.1.3 ! root 142: if [ "$darwin" != "yes" ] ; then
1.1 root 143: make="gmake"
144: fi
145: fi
146:
1.1.1.3 ! root 147: if [ "$solaris" = "yes" ] ; then
! 148: make="gmake"
! 149: install="ginstall"
! 150: solarisrev=`uname -r | cut -f2 -d.`
! 151: fi
! 152:
1.1 root 153: # find source path
1.1.1.3 ! root 154: source_path=`dirname "$0"`
! 155: if [ -z "$source_path" ]; then
1.1 root 156: source_path=`pwd`
1.1.1.3 ! root 157: else
! 158: source_path=`cd "$source_path"; pwd`
! 159: fi
! 160: if test "$source_path" = `pwd` ; then
1.1 root 161: source_path_used="no"
1.1.1.3 ! root 162: else
! 163: source_path_used="yes"
1.1 root 164: fi
165:
166: for opt do
1.1.1.3 ! root 167: optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
1.1 root 168: case "$opt" in
1.1.1.2 root 169: --help|-h) show_help=yes
170: ;;
1.1.1.3 ! root 171: --prefix=*) prefix="$optarg"
1.1 root 172: ;;
1.1.1.3 ! root 173: --interp-prefix=*) interp_prefix="$optarg"
1.1 root 174: ;;
1.1.1.3 ! root 175: --source-path=*) source_path="$optarg"
! 176: source_path_used="yes"
1.1 root 177: ;;
1.1.1.3 ! root 178: --cross-prefix=*) cross_prefix="$optarg"
1.1 root 179: ;;
1.1.1.3 ! root 180: --cc=*) cc="$optarg"
1.1 root 181: ;;
1.1.1.3 ! root 182: --host-cc=*) host_cc="$optarg"
1.1 root 183: ;;
1.1.1.3 ! root 184: --make=*) make="$optarg"
1.1 root 185: ;;
1.1.1.3 ! root 186: --install=*) install="$optarg"
1.1 root 187: ;;
1.1.1.3 ! root 188: --extra-cflags=*) CFLAGS="$optarg"
1.1 root 189: ;;
1.1.1.3 ! root 190: --extra-ldflags=*) LDFLAGS="$optarg"
1.1 root 191: ;;
1.1.1.3 ! root 192: --cpu=*) cpu="$optarg"
! 193: ;;
! 194: --target-list=*) target_list="$optarg"
1.1 root 195: ;;
196: --enable-gprof) gprof="yes"
197: ;;
198: --static) static="yes"
199: ;;
200: --disable-sdl) sdl="no"
201: ;;
1.1.1.2 root 202: --enable-coreaudio) coreaudio="yes"
203: ;;
204: --enable-alsa) alsa="yes"
205: ;;
206: --enable-dsound) dsound="yes"
207: ;;
1.1 root 208: --enable-fmod) fmod="yes"
209: ;;
1.1.1.3 ! root 210: --fmod-lib=*) fmod_lib="$optarg"
1.1 root 211: ;;
1.1.1.3 ! root 212: --fmod-inc=*) fmod_inc="$optarg"
1.1 root 213: ;;
214: --enable-mingw32) mingw32="yes" ; cross_prefix="i386-mingw32-"
1.1.1.2 root 215: ;;
1.1 root 216: --disable-slirp) slirp="no"
1.1.1.2 root 217: ;;
1.1 root 218: --enable-adlib) adlib="yes"
1.1.1.2 root 219: ;;
1.1 root 220: --disable-kqemu) kqemu="no"
1.1.1.2 root 221: ;;
1.1.1.3 ! root 222: --enable-profiler) profiler="yes"
! 223: ;;
! 224: --kernel-path=*) kernel_path="$optarg"
1.1.1.2 root 225: ;;
226: --enable-cocoa) cocoa="yes" ; coreaudio="yes" ; sdl="no"
227: ;;
1.1 root 228: --disable-gfx-check) check_gfx="no"
229: ;;
1.1.1.2 root 230: --disable-gcc-check) check_gcc="no"
231: ;;
1.1.1.3 ! root 232: --disable-system) softmmu="no"
! 233: ;;
! 234: --enable-system) softmmu="yes"
! 235: ;;
! 236: --disable-user) user="no"
! 237: ;;
! 238: --enable-user) user="yes"
! 239: ;;
1.1 root 240: esac
241: done
242:
243: # Checking for CFLAGS
244: if test -z "$CFLAGS"; then
245: CFLAGS="-O2"
246: fi
247:
1.1.1.3 ! root 248: if test x"$show_help" = x"yes" ; then
! 249: cat << EOF
! 250:
! 251: Usage: configure [options]
! 252: Options: [defaults in brackets after descriptions]
! 253:
! 254: EOF
! 255: echo "Standard options:"
! 256: echo " --help print this message"
! 257: echo " --prefix=PREFIX install in PREFIX [$prefix]"
! 258: echo " --interp-prefix=PREFIX where to find shared libraries, etc."
! 259: echo " use %M for cpu name [$interp_prefix]"
! 260: echo " --target-list=LIST set target list [$target_list]"
! 261: echo ""
! 262: echo "kqemu kernel acceleration support:"
! 263: echo " --disable-kqemu disable kqemu support"
! 264: echo " --kernel-path=PATH set the kernel path (configure probes it)"
! 265: echo ""
! 266: echo "Advanced options (experts only):"
! 267: echo " --source-path=PATH path of source code [$source_path]"
! 268: echo " --cross-prefix=PREFIX use PREFIX for compile tools [$cross_prefix]"
! 269: echo " --cc=CC use C compiler CC [$cc]"
! 270: echo " --host-cc=CC use C compiler CC [$host_cc] for dyngen etc."
! 271: echo " --make=MAKE use specified make [$make]"
! 272: echo " --install=INSTALL use specified install [$install]"
! 273: echo " --static enable static build [$static]"
! 274: echo " --enable-cocoa enable COCOA (Mac OS X only)"
! 275: echo " --enable-mingw32 enable Win32 cross compilation with mingw32"
! 276: echo " --enable-adlib enable Adlib emulation"
! 277: echo " --enable-coreaudio enable Coreaudio audio driver"
! 278: echo " --enable-alsa enable ALSA audio driver"
! 279: echo " --enable-fmod enable FMOD audio driver"
! 280: echo " --enabled-dsound enable DirectSound audio driver"
! 281: echo " --enable-system enable all system emulation targets"
! 282: echo " --disable-system disable all system emulation targets"
! 283: echo " --enable-user enable all linux usermode emulation targets"
! 284: echo " --disable-user disable all linux usermode emulation targets"
! 285: echo " --fmod-lib path to FMOD library"
! 286: echo " --fmod-inc path to FMOD includes"
! 287: echo ""
! 288: echo "NOTE: The object files are build at the place where configure is launched"
! 289: exit 1
! 290: fi
! 291:
1.1 root 292: cc="${cross_prefix}${cc}"
293: ar="${cross_prefix}${ar}"
294: strip="${cross_prefix}${strip}"
295:
1.1.1.3 ! root 296: if [ ! -x "`which $cc`" ] ; then
! 297: echo "Compiler $cc could not be found"
! 298: exit
! 299: fi
! 300:
1.1 root 301: if test "$mingw32" = "yes" ; then
302: linux="no"
303: EXESUF=".exe"
304: gdbstub="no"
305: oss="no"
306: if [ "$cpu" = "i386" ] ; then
307: kqemu="yes"
308: fi
309: fi
310:
1.1.1.3 ! root 311: #
! 312: # Solaris specific configure tool chain decisions
! 313: #
! 314: if test "$solaris" = "yes" ; then
! 315: #
! 316: # gcc for solaris 10/fcs in /usr/sfw/bin doesn't compile qemu correctly
! 317: # override the check with --disable-gcc-check
! 318: #
! 319: if test "$solarisrev" -eq 10 -a "$check_gcc" = "yes" ; then
! 320: solgcc=`which $cc`
! 321: if test "$solgcc" = "/usr/sfw/bin/gcc" ; then
! 322: echo "Solaris 10/FCS gcc in /usr/sfw/bin will not compiled qemu correctly."
! 323: echo "please get gcc-3.4.3 or later, from www.blastwave.org using pkg-get -i gcc3"
! 324: echo "or get the latest patch from SunSolve for gcc"
! 325: exit 1
! 326: fi
! 327: fi
! 328: solinst=`which $install 2> /dev/null | /usr/bin/grep -v "no $install in"`
! 329: if test -z "$solinst" ; then
! 330: echo "Solaris install program not found. Use --install=/usr/ucb/install or"
! 331: echo "install fileutils from www.blastwave.org using pkg-get -i fileutils"
! 332: echo "to get ginstall which is used by default (which lives in /opt/csw/bin)"
! 333: exit 1
! 334: fi
! 335: if test "$solinst" = "/usr/sbin/install" ; then
! 336: echo "Error: Solaris /usr/sbin/install is not an appropriate install program."
! 337: echo "try ginstall from the GNU fileutils available from www.blastwave.org"
! 338: echo "using pkg-get -i fileutils, or use --install=/usr/ucb/install"
! 339: exit 1
! 340: fi
! 341: sol_ar=`which ar 2> /dev/null | /usr/bin/grep -v "no ar in"`
! 342: if test -z "$sol_ar" ; then
! 343: echo "Error: No path includes ar"
! 344: if test -f /usr/ccs/bin/ar ; then
! 345: echo "Add /usr/ccs/bin to your path and rerun configure"
! 346: fi
! 347: exit 1
! 348: fi
! 349: fi
! 350:
! 351:
1.1 root 352: if test -z "$target_list" ; then
353: # these targets are portable
1.1.1.3 ! root 354: if [ "$softmmu" = "yes" ] ; then
! 355: target_list="i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu mipsel-softmmu arm-softmmu"
! 356: fi
1.1 root 357: # the following are Linux specific
1.1.1.3 ! root 358: if [ "$user" = "yes" ] ; then
1.1.1.2 root 359: target_list="i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user $target_list"
1.1 root 360: fi
361: else
1.1.1.3 ! root 362: target_list=`echo "$target_list" | sed -e 's/,/ /g'`
! 363: fi
! 364: if test -z "$target_list" ; then
! 365: echo "No targets enabled"
! 366: exit 1
1.1 root 367: fi
368:
369: if test -z "$cross_prefix" ; then
370:
371: # ---
372: # big/little endian test
373: cat > $TMPC << EOF
374: #include <inttypes.h>
375: int main(int argc, char ** argv){
1.1.1.2 root 376: volatile uint32_t i=0x01234567;
377: return (*((uint8_t*)(&i))) == 0x67;
1.1 root 378: }
379: EOF
380:
381: if $cc -o $TMPE $TMPC 2>/dev/null ; then
382: $TMPE && bigendian="yes"
383: else
384: echo big/little test failed
385: fi
386:
387: else
388:
389: # if cross compiling, cannot launch a program, so make a static guess
390: if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64" -o "$cpu" = "m68k" -o "$cpu" = "armv4b"; then
391: bigendian="yes"
392: fi
393:
394: fi
395:
396: # host long bits test
397: hostlongbits="32"
398: if test "$cpu" = "sparc64" -o "$cpu" = "ia64" -o "$cpu" = "x86_64" -o "$cpu" = "alpha"; then
399: hostlongbits="64"
400: fi
401:
402: # check gcc options support
403: cat > $TMPC <<EOF
404: int main(void) {
405: }
406: EOF
407:
408: have_gcc3_options="no"
409: if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/null ; then
410: have_gcc3_options="yes"
411: fi
412:
1.1.1.3 ! root 413: # Check for gcc4, error if pre-gcc4
1.1.1.2 root 414: if test "$check_gcc" = "yes" ; then
415: cat > $TMPC <<EOF
1.1.1.3 ! root 416: #if __GNUC__ < 4
! 417: #error gcc3
1.1.1.2 root 418: #endif
419: int main(){return 0;}
420: EOF
1.1.1.3 ! root 421: if $cc -o $TMPO $TMPC 2>/dev/null ; then
1.1.1.2 root 422: echo "ERROR: \"$cc\" looks like gcc 4.x"
423: echo "QEMU is known to have problems when compiled with gcc 4.x"
424: echo "It is recommended that you use gcc 3.x to build QEMU"
425: echo "To use this compiler anyway, configure with --disable-gcc-check"
426: exit 1;
427: fi
428: fi
429:
1.1 root 430: ##########################################
431: # SDL probe
432:
433: sdl_too_old=no
434:
435: if test -z "$sdl" ; then
436:
437: sdl_config="sdl-config"
438: sdl=no
439: sdl_static=no
440:
441: if test "$mingw32" = "yes" -a ! -z "$cross_prefix" ; then
442: # win32 cross compilation case
443: sdl_config="i386-mingw32msvc-sdl-config"
444: sdl=yes
445: else
446: # normal SDL probe
447: cat > $TMPC << EOF
448: #include <SDL.h>
449: #undef main /* We don't want SDL to override our main() */
450: int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
451: EOF
452:
453: if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC `$sdl_config --libs 2> /dev/null` 2> /dev/null ; then
454: _sdlversion=`$sdl_config --version | sed 's/[^0-9]//g'`
455: if test "$_sdlversion" -lt 121 ; then
456: sdl_too_old=yes
457: else
458: sdl=yes
459: fi
460:
461: # static link with sdl ?
462: if test "$sdl" = "yes" ; then
463: aa="no"
464: `$sdl_config --static-libs | grep \\\-laa > /dev/null` && aa="yes"
465: sdl_static_libs=`$sdl_config --static-libs`
466: if [ "$aa" = "yes" ] ; then
467: sdl_static_libs="$sdl_static_libs `aalib-config --static-libs`"
468: fi
469:
470: if $cc -o $TMPE `$sdl_config --cflags 2> /dev/null` $TMPC $sdl_static_libs 2> /dev/null; then
471: sdl_static=yes
472: fi
473:
474: fi # static link
475:
476: fi # sdl compile test
477:
478: fi # cross compilation
479: fi # -z $sdl
480:
1.1.1.3 ! root 481: # Check if tools are available to build documentation.
! 482: if [ -x "`which texi2html`" ] && [ -x "`which pod2man`" ]; then
! 483: build_docs="yes"
1.1 root 484: fi
485:
486: if test "$mingw32" = "yes" ; then
487: if test -z "$prefix" ; then
488: prefix="/c/Program Files/Qemu"
489: fi
490: mandir="$prefix"
491: datadir="$prefix"
492: docdir="$prefix"
493: bindir="$prefix"
494: else
495: if test -z "$prefix" ; then
496: prefix="/usr/local"
497: fi
498: mandir="$prefix/share/man"
499: datadir="$prefix/share/qemu"
500: docdir="$prefix/share/doc/qemu"
501: bindir="$prefix/bin"
502: fi
503:
504: echo "Install prefix $prefix"
505: echo "BIOS directory $datadir"
506: echo "binary directory $bindir"
507: if test "$mingw32" = "no" ; then
508: echo "Manual directory $mandir"
509: echo "ELF interp prefix $interp_prefix"
510: fi
511: echo "Source path $source_path"
512: echo "C compiler $cc"
513: echo "Host C compiler $host_cc"
514: echo "make $make"
1.1.1.3 ! root 515: echo "install $install"
1.1 root 516: echo "host CPU $cpu"
517: echo "host big endian $bigendian"
518: echo "target list $target_list"
519: echo "gprof enabled $gprof"
1.1.1.3 ! root 520: echo "profiler $profiler"
1.1 root 521: echo "static build $static"
522: if test "$darwin" = "yes" ; then
523: echo "Cocoa support $cocoa"
524: fi
525: echo "SDL support $sdl"
526: if test "$sdl" != "no" ; then
527: echo "SDL static link $sdl_static"
528: fi
529: echo "mingw32 support $mingw32"
530: echo "Adlib support $adlib"
1.1.1.2 root 531: echo "CoreAudio support $coreaudio"
532: echo "ALSA support $alsa"
533: echo "DSound support $dsound"
534: if test "$fmod" = "yes"; then
535: if test -z $fmod_lib || test -z $fmod_inc; then
536: echo
537: echo "Error: You must specify path to FMOD library and headers"
538: echo "Example: --fmod-inc=/path/include/fmod --fmod-lib=/path/lib/libfmod-3.74.so"
539: echo
540: exit 1
541: fi
1.1.1.3 ! root 542: fmod_support=" (lib='$fmod_lib' include='$fmod_inc')"
1.1 root 543: else
1.1.1.3 ! root 544: fmod_support=""
1.1 root 545: fi
1.1.1.3 ! root 546: echo "FMOD support $fmod $fmod_support"
! 547: echo "kqemu support $kqemu"
! 548: echo "Documentation $build_docs"
1.1 root 549:
550: if test $sdl_too_old = "yes"; then
551: echo "-> Your SDL version is too old - please upgrade to have SDL support"
552: fi
553: #if test "$sdl_static" = "no"; then
554: # echo "WARNING: cannot compile statically with SDL - qemu-fast won't have a graphical output"
555: #fi
556: config_mak="config-host.mak"
557: config_h="config-host.h"
558:
559: #echo "Creating $config_mak and $config_h"
560:
561: echo "# Automatically generated by configure - do not modify" > $config_mak
1.1.1.3 ! root 562: echo "# Configured with: $0 $@" >> $config_mak
1.1 root 563: echo "/* Automatically generated by configure - do not modify */" > $config_h
564:
565: echo "prefix=$prefix" >> $config_mak
566: echo "bindir=$bindir" >> $config_mak
567: echo "mandir=$mandir" >> $config_mak
568: echo "datadir=$datadir" >> $config_mak
569: echo "docdir=$docdir" >> $config_mak
570: echo "#define CONFIG_QEMU_SHAREDIR \"$datadir\"" >> $config_h
571: echo "MAKE=$make" >> $config_mak
1.1.1.3 ! root 572: echo "INSTALL=$install" >> $config_mak
1.1 root 573: echo "CC=$cc" >> $config_mak
574: if test "$have_gcc3_options" = "yes" ; then
575: echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak
576: fi
577: echo "HOST_CC=$host_cc" >> $config_mak
578: echo "AR=$ar" >> $config_mak
579: echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak
580: echo "CFLAGS=$CFLAGS" >> $config_mak
581: echo "LDFLAGS=$LDFLAGS" >> $config_mak
582: echo "EXESUF=$EXESUF" >> $config_mak
583: if test "$cpu" = "i386" ; then
584: echo "ARCH=i386" >> $config_mak
585: echo "#define HOST_I386 1" >> $config_h
586: elif test "$cpu" = "x86_64" ; then
587: echo "ARCH=x86_64" >> $config_mak
588: echo "#define HOST_X86_64 1" >> $config_h
589: elif test "$cpu" = "armv4b" ; then
590: echo "ARCH=arm" >> $config_mak
591: echo "#define HOST_ARM 1" >> $config_h
592: elif test "$cpu" = "armv4l" ; then
593: echo "ARCH=arm" >> $config_mak
594: echo "#define HOST_ARM 1" >> $config_h
595: elif test "$cpu" = "powerpc" ; then
596: echo "ARCH=ppc" >> $config_mak
597: echo "#define HOST_PPC 1" >> $config_h
598: elif test "$cpu" = "mips" ; then
599: echo "ARCH=mips" >> $config_mak
600: echo "#define HOST_MIPS 1" >> $config_h
601: elif test "$cpu" = "s390" ; then
602: echo "ARCH=s390" >> $config_mak
603: echo "#define HOST_S390 1" >> $config_h
604: elif test "$cpu" = "alpha" ; then
605: echo "ARCH=alpha" >> $config_mak
606: echo "#define HOST_ALPHA 1" >> $config_h
607: elif test "$cpu" = "sparc" ; then
608: echo "ARCH=sparc" >> $config_mak
609: echo "#define HOST_SPARC 1" >> $config_h
610: elif test "$cpu" = "sparc64" ; then
611: echo "ARCH=sparc64" >> $config_mak
612: echo "#define HOST_SPARC64 1" >> $config_h
613: elif test "$cpu" = "ia64" ; then
614: echo "ARCH=ia64" >> $config_mak
615: echo "#define HOST_IA64 1" >> $config_h
616: elif test "$cpu" = "m68k" ; then
617: echo "ARCH=m68k" >> $config_mak
618: echo "#define HOST_M68K 1" >> $config_h
619: else
620: echo "Unsupported CPU"
621: exit 1
622: fi
623: if test "$bigendian" = "yes" ; then
624: echo "WORDS_BIGENDIAN=yes" >> $config_mak
625: echo "#define WORDS_BIGENDIAN 1" >> $config_h
626: fi
627: echo "#define HOST_LONG_BITS $hostlongbits" >> $config_h
628: if test "$mingw32" = "yes" ; then
629: echo "CONFIG_WIN32=yes" >> $config_mak
630: echo "#define CONFIG_WIN32 1" >> $config_h
631: elif test -f "/usr/include/byteswap.h" ; then
632: echo "#define HAVE_BYTESWAP_H 1" >> $config_h
633: fi
634: if test "$darwin" = "yes" ; then
635: echo "CONFIG_DARWIN=yes" >> $config_mak
636: echo "#define CONFIG_DARWIN 1" >> $config_h
637: fi
1.1.1.3 ! root 638: if test "$solaris" = "yes" ; then
! 639: echo "CONFIG_SOLARIS=yes" >> $config_mak
! 640: echo "#define HOST_SOLARIS $solarisrev" >> $config_h
! 641: fi
1.1 root 642: if test "$gdbstub" = "yes" ; then
643: echo "CONFIG_GDBSTUB=yes" >> $config_mak
644: echo "#define CONFIG_GDBSTUB 1" >> $config_h
645: fi
646: if test "$gprof" = "yes" ; then
647: echo "TARGET_GPROF=yes" >> $config_mak
648: echo "#define HAVE_GPROF 1" >> $config_h
649: fi
650: if test "$static" = "yes" ; then
651: echo "CONFIG_STATIC=yes" >> $config_mak
652: echo "#define CONFIG_STATIC 1" >> $config_h
653: fi
1.1.1.3 ! root 654: if test $profiler = "yes" ; then
! 655: echo "#define CONFIG_PROFILER 1" >> $config_h
! 656: fi
1.1 root 657: if test "$slirp" = "yes" ; then
658: echo "CONFIG_SLIRP=yes" >> $config_mak
659: echo "#define CONFIG_SLIRP 1" >> $config_h
660: fi
661: if test "$adlib" = "yes" ; then
662: echo "CONFIG_ADLIB=yes" >> $config_mak
663: echo "#define CONFIG_ADLIB 1" >> $config_h
664: fi
665: if test "$oss" = "yes" ; then
666: echo "CONFIG_OSS=yes" >> $config_mak
667: echo "#define CONFIG_OSS 1" >> $config_h
668: fi
1.1.1.2 root 669: if test "$coreaudio" = "yes" ; then
670: echo "CONFIG_COREAUDIO=yes" >> $config_mak
671: echo "#define CONFIG_COREAUDIO 1" >> $config_h
672: fi
673: if test "$alsa" = "yes" ; then
674: echo "CONFIG_ALSA=yes" >> $config_mak
675: echo "#define CONFIG_ALSA 1" >> $config_h
676: fi
677: if test "$dsound" = "yes" ; then
678: echo "CONFIG_DSOUND=yes" >> $config_mak
679: echo "#define CONFIG_DSOUND 1" >> $config_h
680: fi
1.1 root 681: if test "$fmod" = "yes" ; then
682: echo "CONFIG_FMOD=yes" >> $config_mak
683: echo "CONFIG_FMOD_LIB=$fmod_lib" >> $config_mak
684: echo "CONFIG_FMOD_INC=$fmod_inc" >> $config_mak
685: echo "#define CONFIG_FMOD 1" >> $config_h
686: fi
1.1.1.3 ! root 687: qemu_version=`head $source_path/VERSION`
! 688: echo "VERSION=$qemu_version" >>$config_mak
! 689: echo "#define QEMU_VERSION \"$qemu_version\"" >> $config_h
! 690:
1.1 root 691: echo "SRC_PATH=$source_path" >> $config_mak
1.1.1.3 ! root 692: if [ "$source_path_used" = "yes" ]; then
! 693: echo "VPATH=$source_path" >> $config_mak
! 694: fi
1.1 root 695: echo "TARGET_DIRS=$target_list" >> $config_mak
1.1.1.3 ! root 696: if [ "$build_docs" = "yes" ] ; then
! 697: echo "BUILD_DOCS=yes" >> $config_mak
! 698: fi
1.1 root 699:
700: # XXX: suppress that
701: if [ "$bsd" = "yes" ] ; then
702: echo "#define O_LARGEFILE 0" >> $config_h
703: echo "#define MAP_ANONYMOUS MAP_ANON" >> $config_h
704: echo "#define _BSD 1" >> $config_h
705: fi
706:
1.1.1.2 root 707: for target in $target_list; do
1.1 root 708: target_dir="$target"
709: config_mak=$target_dir/config.mak
710: config_h=$target_dir/config.h
711: target_cpu=`echo $target | cut -d '-' -f 1`
712: target_bigendian="no"
713: [ "$target_cpu" = "armeb" ] && target_bigendian=yes
714: [ "$target_cpu" = "sparc" ] && target_bigendian=yes
715: [ "$target_cpu" = "sparc64" ] && target_bigendian=yes
716: [ "$target_cpu" = "ppc" ] && target_bigendian=yes
717: [ "$target_cpu" = "ppc64" ] && target_bigendian=yes
718: [ "$target_cpu" = "mips" ] && target_bigendian=yes
719: target_softmmu="no"
720: if expr $target : '.*-softmmu' > /dev/null ; then
721: target_softmmu="yes"
722: fi
723: target_user_only="no"
724: if expr $target : '.*-user' > /dev/null ; then
725: target_user_only="yes"
726: fi
727:
728: if test "$target_user_only" = "no" -a "$check_gfx" = "yes" \
1.1.1.2 root 729: -a "$sdl" = "no" -a "$cocoa" = "no" ; then
1.1 root 730: echo "ERROR: QEMU requires SDL or Cocoa for graphical output"
1.1.1.3 ! root 731: echo "To build QEMU without graphical output configure with --disable-gfx-check"
1.1 root 732: echo "Note that this will disable all output from the virtual graphics card."
733: exit 1;
734: fi
735:
736: #echo "Creating $config_mak, $config_h and $target_dir/Makefile"
737:
738: mkdir -p $target_dir
739: mkdir -p $target_dir/fpu
740: if test "$target" = "arm-user" -o "$target" = "armeb-user" ; then
741: mkdir -p $target_dir/nwfpe
742: fi
743: if test "$target_user_only" = "no" ; then
744: mkdir -p $target_dir/slirp
745: fi
746:
1.1.1.3 ! root 747: #
! 748: # don't use ln -sf as not all "ln -sf" over write the file/link
! 749: #
! 750: rm -f $target_dir/Makefile
! 751: ln -s $source_path/Makefile.target $target_dir/Makefile
! 752:
1.1 root 753:
754: echo "# Automatically generated by configure - do not modify" > $config_mak
755: echo "/* Automatically generated by configure - do not modify */" > $config_h
756:
757:
758: echo "include ../config-host.mak" >> $config_mak
759: echo "#include \"../config-host.h\"" >> $config_h
760:
761: interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_cpu/g"`
762: echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix1\"" >> $config_h
763:
764: if test "$target_cpu" = "i386" ; then
765: echo "TARGET_ARCH=i386" >> $config_mak
766: echo "#define TARGET_ARCH \"i386\"" >> $config_h
767: echo "#define TARGET_I386 1" >> $config_h
768: if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "i386" ; then
769: echo "#define USE_KQEMU 1" >> $config_h
770: fi
771: elif test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
772: echo "TARGET_ARCH=arm" >> $config_mak
773: echo "#define TARGET_ARCH \"arm\"" >> $config_h
774: echo "#define TARGET_ARM 1" >> $config_h
775: elif test "$target_cpu" = "sparc" ; then
776: echo "TARGET_ARCH=sparc" >> $config_mak
777: echo "#define TARGET_ARCH \"sparc\"" >> $config_h
778: echo "#define TARGET_SPARC 1" >> $config_h
779: elif test "$target_cpu" = "sparc64" ; then
780: echo "TARGET_ARCH=sparc64" >> $config_mak
781: echo "#define TARGET_ARCH \"sparc64\"" >> $config_h
782: echo "#define TARGET_SPARC 1" >> $config_h
783: echo "#define TARGET_SPARC64 1" >> $config_h
784: elif test "$target_cpu" = "ppc" ; then
785: echo "TARGET_ARCH=ppc" >> $config_mak
786: echo "#define TARGET_ARCH \"ppc\"" >> $config_h
787: echo "#define TARGET_PPC 1" >> $config_h
788: elif test "$target_cpu" = "ppc64" ; then
789: echo "TARGET_ARCH=ppc64" >> $config_mak
790: echo "#define TARGET_ARCH \"ppc64\"" >> $config_h
791: echo "#define TARGET_PPC 1" >> $config_h
792: echo "#define TARGET_PPC64 1" >> $config_h
793: elif test "$target_cpu" = "x86_64" ; then
794: echo "TARGET_ARCH=x86_64" >> $config_mak
795: echo "#define TARGET_ARCH \"x86_64\"" >> $config_h
796: echo "#define TARGET_I386 1" >> $config_h
797: echo "#define TARGET_X86_64 1" >> $config_h
798: if test $kqemu = "yes" -a "$target_softmmu" = "yes" -a $cpu = "x86_64" ; then
799: echo "#define USE_KQEMU 1" >> $config_h
800: fi
1.1.1.2 root 801: elif test "$target_cpu" = "mips" -o "$target_cpu" = "mipsel" ; then
1.1 root 802: echo "TARGET_ARCH=mips" >> $config_mak
803: echo "#define TARGET_ARCH \"mips\"" >> $config_h
804: echo "#define TARGET_MIPS 1" >> $config_h
1.1.1.3 ! root 805: elif test "$target_cpu" = "sh4" ; then
! 806: echo "TARGET_ARCH=sh4" >> $config_mak
! 807: echo "#define TARGET_ARCH \"sh4\"" >> $config_h
! 808: echo "#define TARGET_SH4 1" >> $config_h
1.1 root 809: else
810: echo "Unsupported target CPU"
811: exit 1
812: fi
813: if test "$target_bigendian" = "yes" ; then
814: echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak
815: echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h
816: fi
817: if test "$target_softmmu" = "yes" ; then
818: echo "CONFIG_SOFTMMU=yes" >> $config_mak
819: echo "#define CONFIG_SOFTMMU 1" >> $config_h
820: fi
821: if test "$target_user_only" = "yes" ; then
822: echo "CONFIG_USER_ONLY=yes" >> $config_mak
823: echo "#define CONFIG_USER_ONLY 1" >> $config_h
824: fi
825:
826: if test "$target_cpu" = "arm" -o "$target_cpu" = "armeb" ; then
827: echo "CONFIG_SOFTFLOAT=yes" >> $config_mak
828: echo "#define CONFIG_SOFTFLOAT 1" >> $config_h
829: fi
830: # sdl defines
831:
832: if test "$target_user_only" = "no"; then
833: if test "$target_softmmu" = "no" -o "$static" = "yes"; then
834: sdl1=$sdl_static
835: else
836: sdl1=$sdl
837: fi
838: if test "$sdl1" = "yes" ; then
839: echo "#define CONFIG_SDL 1" >> $config_h
840: echo "CONFIG_SDL=yes" >> $config_mak
841: if test "$target_softmmu" = "no" -o "$static" = "yes"; then
842: echo "SDL_LIBS=$sdl_static_libs" >> $config_mak
843: else
844: echo "SDL_LIBS=`$sdl_config --libs`" >> $config_mak
845: fi
846: if [ "${aa}" = "yes" ] ; then
1.1.1.3 ! root 847: echo "SDL_CFLAGS=`$sdl_config --cflags` `aalib-config --cflags`" >> $config_mak
! 848: else
! 849: echo "SDL_CFLAGS=`$sdl_config --cflags`" >> $config_mak
1.1 root 850: fi
851: fi
852: fi
853:
854: if test "$cocoa" = "yes" ; then
855: echo "#define CONFIG_COCOA 1" >> $config_h
856: echo "CONFIG_COCOA=yes" >> $config_mak
857: fi
858:
859: done # for target in $targets
860:
861: # build tree in object directory if source path is different from current one
862: if test "$source_path_used" = "yes" ; then
863: DIRS="tests"
864: FILES="Makefile tests/Makefile"
865: for dir in $DIRS ; do
866: mkdir -p $dir
867: done
1.1.1.3 ! root 868: # remove the link and recreate it, as not all "ln -sf" overwrite the link
1.1 root 869: for f in $FILES ; do
1.1.1.3 ! root 870: rm -f $f
! 871: ln -s $source_path/$f $f
1.1 root 872: done
873: fi
874:
875: rm -f $TMPO $TMPC $TMPE $TMPS
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.