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 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&gt; /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 &quot;Standard options:&quot;
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 &quot;C compiler $cc&quot;
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 &quot;$source_path_used&quot; = &quot;yes&quot; ; 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
... ...