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 | ... | ... |