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 | 15 | TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" |
| 16 | 16 | TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" |
| 17 | 17 | TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" |
| 18 | -TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h" | |
| 19 | 18 | |
| 20 | 19 | # default parameters |
| 21 | 20 | prefix="/usr/local" |
| ... | ... | @@ -27,12 +26,11 @@ host_cc="gcc" |
| 27 | 26 | ar="ar" |
| 28 | 27 | make="make" |
| 29 | 28 | strip="strip" |
| 30 | -target_cpu="x86" | |
| 31 | -target_bigendian="default" | |
| 32 | 29 | cpu=`uname -m` |
| 30 | +target_list="i386 i386-softmmu arm" | |
| 33 | 31 | case "$cpu" in |
| 34 | 32 | i386|i486|i586|i686|i86pc|BePC) |
| 35 | - cpu="x86" | |
| 33 | + cpu="i386" | |
| 36 | 34 | ;; |
| 37 | 35 | armv4l) |
| 38 | 36 | cpu="armv4l" |
| ... | ... | @@ -71,6 +69,26 @@ case $targetos in |
| 71 | 69 | *) ;; |
| 72 | 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 | 92 | # find source path |
| 75 | 93 | # XXX: we assume an absolute path is given when launching configure, |
| 76 | 94 | # except in './configure' case. |
| ... | ... | @@ -104,16 +122,14 @@ for opt do |
| 104 | 122 | ;; |
| 105 | 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 | 127 | --enable-gprof) gprof="yes" |
| 114 | 128 | ;; |
| 115 | 129 | --static) static="yes" |
| 116 | 130 | ;; |
| 131 | + --disable-sdl) sdl="no" | |
| 132 | + ;; | |
| 117 | 133 | esac |
| 118 | 134 | done |
| 119 | 135 | |
| ... | ... | @@ -164,16 +180,6 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2> /dev/nu |
| 164 | 180 | have_gcc3_options="yes" |
| 165 | 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 | 183 | if test x"$1" = x"-h" -o x"$1" = x"--help" ; then |
| 178 | 184 | cat << EOF |
| 179 | 185 | |
| ... | ... | @@ -185,7 +191,7 @@ echo "Standard options:" |
| 185 | 191 | echo " --help print this message" |
| 186 | 192 | echo " --prefix=PREFIX install in PREFIX [$prefix]" |
| 187 | 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 | 195 | echo "" |
| 190 | 196 | echo "Advanced options (experts only):" |
| 191 | 197 | echo " --source-path=PATH path of source code [$source_path]" |
| ... | ... | @@ -205,94 +211,139 @@ echo "C compiler $cc" |
| 205 | 211 | echo "make $make" |
| 206 | 212 | echo "host CPU $cpu" |
| 207 | 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 | 215 | echo "gprof enabled $gprof" |
| 211 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 268 | else |
| 258 | 269 | echo "Unsupported CPU" |
| 259 | 270 | exit 1 |
| 260 | 271 | fi |
| 261 | 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 | 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 | 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 | 333 | else |
| 275 | 334 | echo "Unsupported target CPU" |
| 276 | 335 | exit 1 |
| 277 | 336 | fi |
| 278 | 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 | 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 | 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 | 348 | # build tree in object directory if source path is different from current one |
| 298 | 349 | if test "$source_path_used" = "yes" ; then |
| ... | ... | @@ -305,13 +356,5 @@ if test "$source_path_used" = "yes" ; then |
| 305 | 356 | ln -sf $source_path/$f $f |
| 306 | 357 | done |
| 307 | 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 | ... | ... |