Commit 97a847bc03d22bf5b0562af2407bc3516b3bfdd1

Authored by bellard
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&gt; /dev/nu @@ -164,16 +180,6 @@ if $cc -fno-reorder-blocks -fno-optimize-sibling-calls -o $TMPO $TMPC 2&gt; /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 &quot;Standard options:&quot; @@ -185,7 +191,7 @@ echo &quot;Standard options:&quot;
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 &quot;C compiler $cc&quot; @@ -205,94 +211,139 @@ echo &quot;C compiler $cc&quot;
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 &quot;$source_path_used&quot; = &quot;yes&quot; ; then @@ -305,13 +356,5 @@ if test &quot;$source_path_used&quot; = &quot;yes&quot; ; 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