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