| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | #!/bin/sh | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2003-03-23 20:17:16 +00:00
										 |  |  | # qemu configure script (c) 2003 Fabrice Bellard | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # set temporary file name | 
					
						
							|  |  |  | if test ! -z "$TMPDIR" ; then | 
					
						
							|  |  |  |     TMPDIR1="${TMPDIR}" | 
					
						
							|  |  |  | elif test ! -z "$TEMPDIR" ; then | 
					
						
							|  |  |  |     TMPDIR1="${TEMPDIR}" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     TMPDIR1="/tmp" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-03-23 20:17:16 +00:00
										 |  |  | TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" | 
					
						
							|  |  |  | TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" | 
					
						
							|  |  |  | TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" | 
					
						
							|  |  |  | TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" | 
					
						
							|  |  |  | TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # default parameters | 
					
						
							|  |  |  | prefix="/usr/local" | 
					
						
							| 
									
										
										
										
											2003-04-11 00:16:16 +00:00
										 |  |  | interp_prefix="/usr/gnemul/qemu-i386" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | cross_prefix="" | 
					
						
							|  |  |  | cc="gcc" | 
					
						
							|  |  |  | host_cc="gcc" | 
					
						
							|  |  |  | ar="ar" | 
					
						
							|  |  |  | make="make" | 
					
						
							|  |  |  | strip="strip" | 
					
						
							| 
									
										
										
										
											2003-04-29 21:24:12 +00:00
										 |  |  | target_cpu="x86" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | cpu=`uname -m` | 
					
						
							|  |  |  | case "$cpu" in | 
					
						
							|  |  |  |   i386|i486|i586|i686|i86pc|BePC) | 
					
						
							|  |  |  |     cpu="x86" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   armv4l) | 
					
						
							|  |  |  |     cpu="armv4l" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   alpha) | 
					
						
							|  |  |  |     cpu="alpha" | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   "Power Macintosh"|ppc|ppc64) | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  |     cpu="powerpc" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   mips) | 
					
						
							|  |  |  |     cpu="mips" | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-03-29 17:32:36 +00:00
										 |  |  |   s390) | 
					
						
							|  |  |  |     cpu="s390" | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-05-13 18:59:59 +00:00
										 |  |  |   sparc) | 
					
						
							|  |  |  |     cpu="sparc" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   sparc64) | 
					
						
							|  |  |  |     cpu="sparc64" | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-04-29 20:53:31 +00:00
										 |  |  |   ia64) | 
					
						
							|  |  |  |     cpu="ia64" | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  |   *) | 
					
						
							|  |  |  |     cpu="unknown" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | gprof="no" | 
					
						
							|  |  |  | bigendian="no" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # OS specific | 
					
						
							|  |  |  | targetos=`uname -s` | 
					
						
							|  |  |  | case $targetos in | 
					
						
							|  |  |  | *) ;; | 
					
						
							|  |  |  | esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # find source path | 
					
						
							|  |  |  | # XXX: we assume an absolute path is given when launching configure,  | 
					
						
							|  |  |  | # except in './configure' case. | 
					
						
							|  |  |  | source_path=${0%configure} | 
					
						
							|  |  |  | source_path=${source_path%/} | 
					
						
							|  |  |  | source_path_used="yes" | 
					
						
							|  |  |  | if test -z "$source_path" -o "$source_path" = "." ; then | 
					
						
							|  |  |  |     source_path=`pwd` | 
					
						
							|  |  |  |     source_path_used="no" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | for opt do | 
					
						
							|  |  |  |   case "$opt" in | 
					
						
							|  |  |  |   --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-04-11 00:16:16 +00:00
										 |  |  |   --interp-prefix=*) interp_prefix=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  |   --source-path=*) source_path=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --cc=*) cc=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --make=*) make=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --extra-cflags=*) CFLAGS="${opt#--extra-cflags=}" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --extra-ldflags=*) LDFLAGS="${opt#--extra-ldflags=}" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --extra-libs=*) extralibs=${opt#--extra-libs=} | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   --enable-gprof) gprof="yes" | 
					
						
							|  |  |  |   ;; | 
					
						
							|  |  |  |   esac | 
					
						
							|  |  |  | done | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Checking for CFLAGS | 
					
						
							|  |  |  | if test -z "$CFLAGS"; then | 
					
						
							|  |  |  |     CFLAGS="-O2" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cc="${cross_prefix}${cc}" | 
					
						
							|  |  |  | ar="${cross_prefix}${ar}" | 
					
						
							|  |  |  | strip="${cross_prefix}${strip}" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if test -z "$cross_prefix" ; then | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # --- | 
					
						
							|  |  |  | # big/little endian test | 
					
						
							|  |  |  | cat > $TMPC << EOF | 
					
						
							|  |  |  | #include <inttypes.h> | 
					
						
							|  |  |  | int main(int argc, char ** argv){ | 
					
						
							|  |  |  | 	volatile uint32_t i=0x01234567; | 
					
						
							|  |  |  | 	return (*((uint8_t*)(&i))) == 0x67; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | if $cc -o $TMPE $TMPC 2>/dev/null ; then | 
					
						
							|  |  |  | $TMPE && bigendian="yes" | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | echo big/little test failed | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # if cross compiling, cannot launch a program, so make a static guess | 
					
						
							| 
									
										
										
										
											2003-05-13 18:59:59 +00:00
										 |  |  | if test "$cpu" = "powerpc" -o "$cpu" = "mips" -o "$cpu" = "s390" -o "$cpu" = "sparc" -o "$cpu" = "sparc64"; then | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  |     bigendian="yes" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-03-18 20:41:34 +00:00
										 |  |  | # check gcc version | 
					
						
							| 
									
										
										
										
											2003-03-20 22:33:23 +00:00
										 |  |  | cat > $TMPC <<EOF | 
					
						
							|  |  |  | int main(void) { | 
					
						
							|  |  |  | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2) | 
					
						
							|  |  |  | return 0; | 
					
						
							|  |  |  | #else | 
					
						
							|  |  |  | #error gcc < 3.2 | 
					
						
							|  |  |  | #endif | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-03-18 20:41:34 +00:00
										 |  |  | gcc_major="2" | 
					
						
							| 
									
										
										
										
											2003-03-20 22:33:23 +00:00
										 |  |  | if $cc -o $TMPO $TMPC 2> /dev/null ; then | 
					
						
							|  |  |  |    gcc_major="3" | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2003-03-18 20:41:34 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | if test x"$1" = x"-h" -o x"$1" = x"--help" ; then | 
					
						
							|  |  |  | cat << EOF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Usage: configure [options] | 
					
						
							|  |  |  | Options: [defaults in brackets after descriptions] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | echo "Standard options:" | 
					
						
							|  |  |  | echo "  --help                   print this message" | 
					
						
							|  |  |  | echo "  --prefix=PREFIX          install in PREFIX [$prefix]" | 
					
						
							| 
									
										
										
										
											2003-04-11 00:16:16 +00:00
										 |  |  | echo "  --interp-prefix=PREFIX   where to find shared libraries, etc. [$interp_prefix]" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | echo "" | 
					
						
							|  |  |  | echo "Advanced options (experts only):" | 
					
						
							|  |  |  | echo "  --source-path=PATH       path of source code [$source_path]" | 
					
						
							|  |  |  | echo "  --cross-prefix=PREFIX    use PREFIX for compile tools [$cross_prefix]" | 
					
						
							|  |  |  | echo "  --cc=CC                  use C compiler CC [$cc]" | 
					
						
							|  |  |  | echo "  --make=MAKE              use specified make [$make]" | 
					
						
							|  |  |  | echo "" | 
					
						
							|  |  |  | echo "NOTE: The object files are build at the place where configure is launched" | 
					
						
							|  |  |  | exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "Install prefix   $prefix" | 
					
						
							|  |  |  | echo "Source path      $source_path" | 
					
						
							|  |  |  | echo "C compiler       $cc" | 
					
						
							|  |  |  | echo "make             $make" | 
					
						
							| 
									
										
										
										
											2003-04-29 21:24:12 +00:00
										 |  |  | echo "host CPU         $cpu" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | echo "Big Endian       $bigendian" | 
					
						
							| 
									
										
										
										
											2003-04-29 21:24:12 +00:00
										 |  |  | echo "target CPU       $target_cpu" | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | echo "gprof enabled    $gprof" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "Creating config.mak and config.h" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "# Automatically generated by configure - do not modify" > config.mak | 
					
						
							|  |  |  | echo "/* Automatically generated by configure - do not modify */" > $TMPH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "prefix=$prefix" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-11 00:16:16 +00:00
										 |  |  | echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | echo "MAKE=$make" >> config.mak | 
					
						
							|  |  |  | echo "CC=$cc" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-03-18 20:41:34 +00:00
										 |  |  | echo "GCC_MAJOR=$gcc_major" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | echo "HOST_CC=$host_cc" >> config.mak | 
					
						
							|  |  |  | echo "AR=$ar" >> config.mak | 
					
						
							|  |  |  | echo "STRIP=$strip -s -R .comment -R .note" >> config.mak | 
					
						
							|  |  |  | echo "CFLAGS=$CFLAGS" >> config.mak | 
					
						
							|  |  |  | echo "LDFLAGS=$LDFLAGS" >> config.mak | 
					
						
							|  |  |  | if test "$cpu" = "x86" ; then | 
					
						
							|  |  |  |   echo "ARCH=i386" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   echo "#define HOST_I386 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | elif test "$cpu" = "armv4l" ; then | 
					
						
							|  |  |  |   echo "ARCH=arm" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   echo "#define HOST_ARM 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | elif test "$cpu" = "powerpc" ; then | 
					
						
							| 
									
										
										
										
											2003-03-20 22:33:23 +00:00
										 |  |  |   echo "ARCH=ppc" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   echo "#define HOST_PPC 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | elif test "$cpu" = "mips" ; then | 
					
						
							| 
									
										
										
										
											2003-03-20 22:33:23 +00:00
										 |  |  |   echo "ARCH=mips" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   echo "#define HOST_MIPS 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-29 17:32:36 +00:00
										 |  |  | elif test "$cpu" = "s390" ; then | 
					
						
							|  |  |  |   echo "ARCH=s390" >> config.mak | 
					
						
							| 
									
										
										
										
											2003-04-07 21:31:29 +00:00
										 |  |  |   echo "#define HOST_S390 1" >> $TMPH | 
					
						
							|  |  |  | elif test "$cpu" = "alpha" ; then | 
					
						
							|  |  |  |   echo "ARCH=alpha" >> config.mak | 
					
						
							|  |  |  |   echo "#define HOST_ALPHA 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-05-13 18:59:59 +00:00
										 |  |  | elif test "$cpu" = "sparc" ; then | 
					
						
							|  |  |  |   echo "ARCH=sparc" >> config.mak | 
					
						
							|  |  |  |   echo "#define HOST_SPARC 1" >> $TMPH | 
					
						
							|  |  |  | elif test "$cpu" = "sparc64" ; then | 
					
						
							|  |  |  |   echo "ARCH=sparc64" >> config.mak | 
					
						
							|  |  |  |   echo "#define HOST_SPARC64 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-04-29 20:53:31 +00:00
										 |  |  | elif test "$cpu" = "ia64" ; then | 
					
						
							|  |  |  |   echo "ARCH=ia64" >> config.mak | 
					
						
							|  |  |  |   echo "#define HOST_IA64 1" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | else | 
					
						
							|  |  |  |   echo "Unsupported CPU" | 
					
						
							|  |  |  |   exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | if test "$bigendian" = "yes" ; then | 
					
						
							|  |  |  |   echo "WORDS_BIGENDIAN=yes" >> config.mak | 
					
						
							|  |  |  |   echo "#define WORDS_BIGENDIAN 1" >> $TMPH | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | if test "$gprof" = "yes" ; then | 
					
						
							|  |  |  |   echo "TARGET_GPROF=yes" >> config.mak | 
					
						
							|  |  |  |   echo "#define HAVE_GPROF 1" >> $TMPH | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | echo -n "VERSION=" >>config.mak | 
					
						
							|  |  |  | head $source_path/VERSION >>config.mak | 
					
						
							|  |  |  | echo "" >>config.mak | 
					
						
							| 
									
										
										
										
											2003-03-23 20:17:16 +00:00
										 |  |  | echo -n "#define QEMU_VERSION \"" >> $TMPH | 
					
						
							| 
									
										
										
										
											2003-03-06 23:23:54 +00:00
										 |  |  | head $source_path/VERSION >> $TMPH | 
					
						
							|  |  |  | echo "\"" >> $TMPH | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # build tree in object directory if source path is different from current one | 
					
						
							|  |  |  | if test "$source_path_used" = "yes" ; then | 
					
						
							|  |  |  |     DIRS="tests" | 
					
						
							|  |  |  |     FILES="Makefile tests/Makefile" | 
					
						
							|  |  |  |     for dir in $DIRS ; do | 
					
						
							|  |  |  |             mkdir -p $dir | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  |     for f in $FILES ; do | 
					
						
							|  |  |  |         ln -sf $source_path/$f $f | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | echo "SRC_PATH=$source_path" >> config.mak | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | diff $TMPH config.h >/dev/null 2>&1 | 
					
						
							|  |  |  | if test $? -ne 0 ; then | 
					
						
							|  |  |  | 	mv -f $TMPH config.h | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  | 	echo "config.h is unchanged" | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2003-04-11 01:12:28 +00:00
										 |  |  | rm -f $TMPO $TMPC $TMPE $TMPS $TMPH |