Commit 97a847bc03d22bf5b0562af2407bc3516b3bfdd1
1 parent
ab93bbe2
build all targets at the same time - SDL probe support
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@350 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
130 additions
and
87 deletions
configure
| @@ -15,7 +15,6 @@ TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" | @@ -15,7 +15,6 @@ TMPC="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.c" | ||
| 15 | TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" | 15 | TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" |
| 16 | TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" | 16 | TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" |
| 17 | TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" | 17 | TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" |
| 18 | -TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h" | ||
| 19 | 18 | ||
| 20 | # default parameters | 19 | # default parameters |
| 21 | prefix="/usr/local" | 20 | prefix="/usr/local" |
| @@ -27,12 +26,11 @@ host_cc="gcc" | @@ -27,12 +26,11 @@ host_cc="gcc" | ||
| 27 | ar="ar" | 26 | ar="ar" |
| 28 | make="make" | 27 | make="make" |
| 29 | strip="strip" | 28 | strip="strip" |
| 30 | -target_cpu="x86" | ||
| 31 | -target_bigendian="default" | ||
| 32 | cpu=`uname -m` | 29 | cpu=`uname -m` |
| 30 | +target_list="i386 i386-softmmu arm" | ||
| 33 | case "$cpu" in | 31 | case "$cpu" in |
| 34 | i386|i486|i586|i686|i86pc|BePC) | 32 | i386|i486|i586|i686|i86pc|BePC) |
| 35 | - cpu="x86" | 33 | + cpu="i386" |
| 36 | ;; | 34 | ;; |
| 37 | armv4l) | 35 | armv4l) |
| 38 | cpu="armv4l" | 36 | cpu="armv4l" |
| @@ -71,6 +69,26 @@ case $targetos in | @@ -71,6 +69,26 @@ case $targetos in | ||
| 71 | *) ;; | 69 | *) ;; |
| 72 | esac | 70 | esac |
| 73 | 71 | ||
| 72 | +########################################## | ||
| 73 | +# SDL probe | ||
| 74 | + | ||
| 75 | +cat > $TMPC << EOF | ||
| 76 | +#include <SDL.h> | ||
| 77 | +#undef main /* We don't want SDL to override our main() */ | ||
| 78 | +int main( void ) { return SDL_Init (SDL_INIT_VIDEO); } | ||
| 79 | +EOF | ||
| 80 | + | ||
| 81 | +sdl_too_old=no | ||
| 82 | +sdl=no | ||
| 83 | +if $cc -o $TMPE `sdl-config --cflags` $TMPC `sdl-config --libs` 2> /dev/null ; then | ||
| 84 | +_sdlversion=`sdl-config --version | sed 's/[^0-9]//g'` | ||
| 85 | +if test "$_sdlversion" -lt 121 ; then | ||
| 86 | +sdl_too_old=yes | ||
| 87 | +else | ||
| 88 | +sdl=yes | ||
| 89 | +fi | ||
| 90 | +fi | ||
| 91 | + | ||
| 74 | # find source path | 92 | # find source path |
| 75 | # XXX: we assume an absolute path is given when launching configure, | 93 | # XXX: we assume an absolute path is given when launching configure, |
| 76 | # except in './configure' case. | 94 | # except in './configure' case. |
| @@ -104,16 +122,14 @@ for opt do | @@ -104,16 +122,14 @@ for opt do | ||
| 104 | ;; | 122 | ;; |
| 105 | --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` | 123 | --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` |
| 106 | ;; | 124 | ;; |
| 107 | - --target-cpu=*) target_cpu=`echo $opt | cut -d '=' -f 2` | ||
| 108 | - ;; | ||
| 109 | - --target-big-endian) target_bigendian="yes" | ||
| 110 | - ;; | ||
| 111 | - --target-little-endian) target_bigendian="no" | 125 | + --target-list=*) target_list=${opt#--target-list=} |
| 112 | ;; | 126 | ;; |
| 113 | --enable-gprof) gprof="yes" | 127 | --enable-gprof) gprof="yes" |
| 114 | ;; | 128 | ;; |
| 115 | --static) static="yes" | 129 | --static) static="yes" |
| 116 | ;; | 130 | ;; |
| 131 | + --disable-sdl) sdl="no" | ||
| 132 | + ;; | ||
| 117 | esac | 133 | esac |
| 118 | done | 134 | done |
| 119 | 135 | ||
| @@ -164,16 +180,6 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu | @@ -164,16 +180,6 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu | ||
| 164 | have_gcc3_options="yes" | 180 | have_gcc3_options="yes" |
| 165 | fi | 181 | fi |
| 166 | 182 | ||
| 167 | -if test "$target_bigendian" = "default" ; then | ||
| 168 | - if test "$target_cpu" = "x86" ; then | ||
| 169 | - target_bigendian="no" | ||
| 170 | - elif test "$target_cpu" = "arm" ; then | ||
| 171 | - target_bigendian="no" | ||
| 172 | - else | ||
| 173 | - target_bigendian="no" | ||
| 174 | - fi | ||
| 175 | -fi | ||
| 176 | - | ||
| 177 | if test x"$1" = x"-h" -o x"$1" = x"--help" ; then | 183 | if test x"$1" = x"-h" -o x"$1" = x"--help" ; then |
| 178 | cat << EOF | 184 | cat << EOF |
| 179 | 185 | ||
| @@ -185,7 +191,7 @@ echo "Standard options:" | @@ -185,7 +191,7 @@ echo "Standard options:" | ||
| 185 | echo " --help print this message" | 191 | echo " --help print this message" |
| 186 | echo " --prefix=PREFIX install in PREFIX [$prefix]" | 192 | echo " --prefix=PREFIX install in PREFIX [$prefix]" |
| 187 | echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" | 193 | echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" |
| 188 | -echo " --target_cpu=CPU set target cpu (x86 or arm) [$target_cpu]" | 194 | +echo " --target-list=LIST set target list [$target_list]" |
| 189 | echo "" | 195 | echo "" |
| 190 | echo "Advanced options (experts only):" | 196 | echo "Advanced options (experts only):" |
| 191 | echo " --source-path=PATH path of source code [$source_path]" | 197 | echo " --source-path=PATH path of source code [$source_path]" |
| @@ -205,94 +211,139 @@ echo "C compiler $cc" | @@ -205,94 +211,139 @@ echo "C compiler $cc" | ||
| 205 | echo "make $make" | 211 | echo "make $make" |
| 206 | echo "host CPU $cpu" | 212 | echo "host CPU $cpu" |
| 207 | echo "host big endian $bigendian" | 213 | echo "host big endian $bigendian" |
| 208 | -echo "target CPU $target_cpu" | ||
| 209 | -echo "target big endian $target_bigendian" | 214 | +echo "target list $target_list" |
| 210 | echo "gprof enabled $gprof" | 215 | echo "gprof enabled $gprof" |
| 211 | echo "static build $static" | 216 | echo "static build $static" |
| 217 | +echo "SDL support $sdl" | ||
| 218 | +if test $sdl_too_old = "yes"; then | ||
| 219 | +echo "-> Your SDL version is too old - please upgrade to have FFplay/SDL support" | ||
| 220 | +fi | ||
| 221 | + | ||
| 222 | +config_mak="config-host.mak" | ||
| 223 | +config_h="config-host.h" | ||
| 212 | 224 | ||
| 213 | -echo "Creating config.mak and config.h" | 225 | +echo "Creating $config_mak and $config_h" |
| 214 | 226 | ||
| 215 | -echo "# Automatically generated by configure - do not modify" > config.mak | ||
| 216 | -echo "/* Automatically generated by configure - do not modify */" > $TMPH | 227 | +echo "# Automatically generated by configure - do not modify" > $config_mak |
| 228 | +echo "/* Automatically generated by configure - do not modify */" > $config_h | ||
| 217 | 229 | ||
| 218 | -echo "prefix=$prefix" >> config.mak | ||
| 219 | -echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $TMPH | ||
| 220 | -echo "MAKE=$make" >> config.mak | ||
| 221 | -echo "CC=$cc" >> config.mak | 230 | +echo "prefix=$prefix" >> $config_mak |
| 231 | +echo "MAKE=$make" >> $config_mak | ||
| 232 | +echo "CC=$cc" >> $config_mak | ||
| 222 | if test "$have_gcc3_options" = "yes" ; then | 233 | if test "$have_gcc3_options" = "yes" ; then |
| 223 | - echo "HAVE_GCC3_OPTIONS=yes" >> config.mak | 234 | + echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak |
| 224 | fi | 235 | fi |
| 225 | -echo "HOST_CC=$host_cc" >> config.mak | ||
| 226 | -echo "AR=$ar" >> config.mak | ||
| 227 | -echo "STRIP=$strip -s -R .comment -R .note" >> config.mak | ||
| 228 | -echo "CFLAGS=$CFLAGS" >> config.mak | ||
| 229 | -echo "LDFLAGS=$LDFLAGS" >> config.mak | ||
| 230 | -if test "$cpu" = "x86" ; then | ||
| 231 | - echo "ARCH=i386" >> config.mak | ||
| 232 | - echo "#define HOST_I386 1" >> $TMPH | 236 | +echo "HOST_CC=$host_cc" >> $config_mak |
| 237 | +echo "AR=$ar" >> $config_mak | ||
| 238 | +echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak | ||
| 239 | +echo "CFLAGS=$CFLAGS" >> $config_mak | ||
| 240 | +echo "LDFLAGS=$LDFLAGS" >> $config_mak | ||
| 241 | +if test "$cpu" = "i386" ; then | ||
| 242 | + echo "ARCH=i386" >> $config_mak | ||
| 243 | + echo "#define HOST_I386 1" >> $config_h | ||
| 233 | elif test "$cpu" = "armv4l" ; then | 244 | elif test "$cpu" = "armv4l" ; then |
| 234 | - echo "ARCH=arm" >> config.mak | ||
| 235 | - echo "#define HOST_ARM 1" >> $TMPH | 245 | + echo "ARCH=arm" >> $config_mak |
| 246 | + echo "#define HOST_ARM 1" >> $config_h | ||
| 236 | elif test "$cpu" = "powerpc" ; then | 247 | elif test "$cpu" = "powerpc" ; then |
| 237 | - echo "ARCH=ppc" >> config.mak | ||
| 238 | - echo "#define HOST_PPC 1" >> $TMPH | 248 | + echo "ARCH=ppc" >> $config_mak |
| 249 | + echo "#define HOST_PPC 1" >> $config_h | ||
| 239 | elif test "$cpu" = "mips" ; then | 250 | elif test "$cpu" = "mips" ; then |
| 240 | - echo "ARCH=mips" >> config.mak | ||
| 241 | - echo "#define HOST_MIPS 1" >> $TMPH | 251 | + echo "ARCH=mips" >> $config_mak |
| 252 | + echo "#define HOST_MIPS 1" >> $config_h | ||
| 242 | elif test "$cpu" = "s390" ; then | 253 | elif test "$cpu" = "s390" ; then |
| 243 | - echo "ARCH=s390" >> config.mak | ||
| 244 | - echo "#define HOST_S390 1" >> $TMPH | 254 | + echo "ARCH=s390" >> $config_mak |
| 255 | + echo "#define HOST_S390 1" >> $config_h | ||
| 245 | elif test "$cpu" = "alpha" ; then | 256 | elif test "$cpu" = "alpha" ; then |
| 246 | - echo "ARCH=alpha" >> config.mak | ||
| 247 | - echo "#define HOST_ALPHA 1" >> $TMPH | 257 | + echo "ARCH=alpha" >> $config_mak |
| 258 | + echo "#define HOST_ALPHA 1" >> $config_h | ||
| 248 | elif test "$cpu" = "sparc" ; then | 259 | elif test "$cpu" = "sparc" ; then |
| 249 | - echo "ARCH=sparc" >> config.mak | ||
| 250 | - echo "#define HOST_SPARC 1" >> $TMPH | 260 | + echo "ARCH=sparc" >> $config_mak |
| 261 | + echo "#define HOST_SPARC 1" >> $config_h | ||
| 251 | elif test "$cpu" = "sparc64" ; then | 262 | elif test "$cpu" = "sparc64" ; then |
| 252 | - echo "ARCH=sparc64" >> config.mak | ||
| 253 | - echo "#define HOST_SPARC64 1" >> $TMPH | 263 | + echo "ARCH=sparc64" >> $config_mak |
| 264 | + echo "#define HOST_SPARC64 1" >> $config_h | ||
| 254 | elif test "$cpu" = "ia64" ; then | 265 | elif test "$cpu" = "ia64" ; then |
| 255 | - echo "ARCH=ia64" >> config.mak | ||
| 256 | - echo "#define HOST_IA64 1" >> $TMPH | 266 | + echo "ARCH=ia64" >> $config_mak |
| 267 | + echo "#define HOST_IA64 1" >> $config_h | ||
| 257 | else | 268 | else |
| 258 | echo "Unsupported CPU" | 269 | echo "Unsupported CPU" |
| 259 | exit 1 | 270 | exit 1 |
| 260 | fi | 271 | fi |
| 261 | if test "$bigendian" = "yes" ; then | 272 | if test "$bigendian" = "yes" ; then |
| 262 | - echo "WORDS_BIGENDIAN=yes" >> config.mak | ||
| 263 | - echo "#define WORDS_BIGENDIAN 1" >> $TMPH | 273 | + echo "WORDS_BIGENDIAN=yes" >> $config_mak |
| 274 | + echo "#define WORDS_BIGENDIAN 1" >> $config_h | ||
| 275 | +fi | ||
| 276 | +echo "#define HAVE_BYTESWAP_H 1" >> $config_h | ||
| 277 | +if test "$gprof" = "yes" ; then | ||
| 278 | + echo "TARGET_GPROF=yes" >> $config_mak | ||
| 279 | + echo "#define HAVE_GPROF 1" >> $config_h | ||
| 280 | +fi | ||
| 281 | +if test "$static" = "yes" ; then | ||
| 282 | + echo "CONFIG_STATIC=yes" >> $config_mak | ||
| 264 | fi | 283 | fi |
| 284 | +if test "$sdl" = "yes" ; then | ||
| 285 | + echo "CONFIG_SDL=yes" >> $config_mak | ||
| 286 | + echo "#define CONFIG_SDL 1" >> $config_h | ||
| 287 | + echo "SDL_LIBS=`sdl-config --libs`" >> $config_mak | ||
| 288 | + echo "SDL_CFLAGS=`sdl-config --cflags`" >> $config_mak | ||
| 289 | +fi | ||
| 290 | +echo -n "VERSION=" >>$config_mak | ||
| 291 | +head $source_path/VERSION >>$config_mak | ||
| 292 | +echo "" >>$config_mak | ||
| 293 | +echo -n "#define QEMU_VERSION \"" >> $config_h | ||
| 294 | +head $source_path/VERSION >> $config_h | ||
| 295 | +echo "\"" >> $config_h | ||
| 296 | + | ||
| 297 | +echo "SRC_PATH=$source_path" >> $config_mak | ||
| 298 | +echo "TARGET_DIRS=$target_list" >> $config_mak | ||
| 299 | + | ||
| 300 | +for target in $target_list; do | ||
| 301 | + | ||
| 302 | +target_dir="$target" | ||
| 303 | +config_mak=$target_dir/config.mak | ||
| 304 | +config_h=$target_dir/config.h | ||
| 305 | +target_cpu=`echo $target | cut -d '-' -f 1` | ||
| 306 | +target_bigendian="no" | ||
| 307 | +target_softmmu="no" | ||
| 308 | +if expr $target : '.*-softmmu' > /dev/null ; then | ||
| 309 | + target_softmmu="yes" | ||
| 310 | +fi | ||
| 311 | + | ||
| 312 | +echo "Creating $config_mak, $config_h and $target_dir/Makefile" | ||
| 313 | + | ||
| 314 | +mkdir -p $target_dir | ||
| 315 | +ln -sf $source_path/Makefile.target $target_dir/Makefile | ||
| 316 | + | ||
| 317 | +echo "# Automatically generated by configure - do not modify" > $config_mak | ||
| 318 | +echo "/* Automatically generated by configure - do not modify */" > $config_h | ||
| 319 | + | ||
| 265 | 320 | ||
| 266 | -if test "$target_cpu" = "x86" ; then | ||
| 267 | - echo "TARGET_ARCH=i386" >> config.mak | ||
| 268 | - echo "#define TARGET_ARCH \"i386\"" >> $TMPH | ||
| 269 | - echo "#define TARGET_I386 1" >> $TMPH | 321 | +echo "include ../config-host.mak" >> $config_mak |
| 322 | +echo "#include \"../config-host.h\"" >> $config_h | ||
| 323 | +echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $config_h | ||
| 324 | + | ||
| 325 | +if test "$target_cpu" = "i386" ; then | ||
| 326 | + echo "TARGET_ARCH=i386" >> $config_mak | ||
| 327 | + echo "#define TARGET_ARCH \"i386\"" >> $config_h | ||
| 328 | + echo "#define TARGET_I386 1" >> $config_h | ||
| 270 | elif test "$target_cpu" = "arm" ; then | 329 | elif test "$target_cpu" = "arm" ; then |
| 271 | - echo "TARGET_ARCH=arm" >> config.mak | ||
| 272 | - echo "#define TARGET_ARCH \"arm\"" >> $TMPH | ||
| 273 | - echo "#define TARGET_ARM 1" >> $TMPH | 330 | + echo "TARGET_ARCH=arm" >> $config_mak |
| 331 | + echo "#define TARGET_ARCH \"arm\"" >> $config_h | ||
| 332 | + echo "#define TARGET_ARM 1" >> $config_h | ||
| 274 | else | 333 | else |
| 275 | echo "Unsupported target CPU" | 334 | echo "Unsupported target CPU" |
| 276 | exit 1 | 335 | exit 1 |
| 277 | fi | 336 | fi |
| 278 | if test "$target_bigendian" = "yes" ; then | 337 | if test "$target_bigendian" = "yes" ; then |
| 279 | - echo "TARGET_WORDS_BIGENDIAN=yes" >> config.mak | ||
| 280 | - echo "#define TARGET_WORDS_BIGENDIAN 1" >> $TMPH | 338 | + echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak |
| 339 | + echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h | ||
| 281 | fi | 340 | fi |
| 282 | - | ||
| 283 | -if test "$gprof" = "yes" ; then | ||
| 284 | - echo "TARGET_GPROF=yes" >> config.mak | ||
| 285 | - echo "#define HAVE_GPROF 1" >> $TMPH | ||
| 286 | -fi | ||
| 287 | -if test "$static" = "yes" ; then | ||
| 288 | - echo "CONFIG_STATIC=yes" >> config.mak | 341 | +if test "$target_softmmu" = "yes" ; then |
| 342 | + echo "CONFIG_SOFTMMU=yes" >> $config_mak | ||
| 343 | + echo "#define CONFIG_SOFTMMU 1" >> $config_h | ||
| 289 | fi | 344 | fi |
| 290 | -echo -n "VERSION=" >>config.mak | ||
| 291 | -head $source_path/VERSION >>config.mak | ||
| 292 | -echo "" >>config.mak | ||
| 293 | -echo -n "#define QEMU_VERSION \"" >> $TMPH | ||
| 294 | -head $source_path/VERSION >> $TMPH | ||
| 295 | -echo "\"" >> $TMPH | 345 | + |
| 346 | +done # for target in $targets | ||
| 296 | 347 | ||
| 297 | # build tree in object directory if source path is different from current one | 348 | # build tree in object directory if source path is different from current one |
| 298 | if test "$source_path_used" = "yes" ; then | 349 | if test "$source_path_used" = "yes" ; then |
| @@ -305,13 +356,5 @@ if test "$source_path_used" = "yes" ; then | @@ -305,13 +356,5 @@ if test "$source_path_used" = "yes" ; then | ||
| 305 | ln -sf $source_path/$f $f | 356 | ln -sf $source_path/$f $f |
| 306 | done | 357 | done |
| 307 | fi | 358 | fi |
| 308 | -echo "SRC_PATH=$source_path" >> config.mak | ||
| 309 | - | ||
| 310 | -diff $TMPH config.h >/dev/null 2>&1 | ||
| 311 | -if test $? -ne 0 ; then | ||
| 312 | - mv -f $TMPH config.h | ||
| 313 | -else | ||
| 314 | - echo "config.h is unchanged" | ||
| 315 | -fi | ||
| 316 | 359 | ||
| 317 | -rm -f $TMPO $TMPC $TMPE $TMPS $TMPH | 360 | +rm -f $TMPO $TMPC $TMPE $TMPS |