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 |