15 |
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" |
TMPO="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.o" |
16 |
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" |
TMPE="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}" |
17 |
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" |
TMPS="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.S" |
|
TMPH="${TMPDIR1}/qemu-conf-${RANDOM}-$$-${RANDOM}.h" |
|
18 |
|
|
19 |
# default parameters |
# default parameters |
20 |
prefix="/usr/local" |
prefix="/usr/local" |
26 |
ar="ar" |
ar="ar" |
27 |
make="make" |
make="make" |
28 |
strip="strip" |
strip="strip" |
|
target_cpu="x86" |
|
|
target_bigendian="default" |
|
29 |
cpu=`uname -m` |
cpu=`uname -m` |
30 |
|
target_list="i386 i386-softmmu arm" |
31 |
case "$cpu" in |
case "$cpu" in |
32 |
i386|i486|i586|i686|i86pc|BePC) |
i386|i486|i586|i686|i86pc|BePC) |
33 |
cpu="x86" |
cpu="i386" |
34 |
;; |
;; |
35 |
armv4l) |
armv4l) |
36 |
cpu="armv4l" |
cpu="armv4l" |
69 |
*) ;; |
*) ;; |
70 |
esac |
esac |
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 |
|
|
92 |
# find source path |
# find source path |
93 |
# XXX: we assume an absolute path is given when launching configure, |
# XXX: we assume an absolute path is given when launching configure, |
94 |
# except in './configure' case. |
# except in './configure' case. |
122 |
;; |
;; |
123 |
--cpu=*) cpu=`echo $opt | cut -d '=' -f 2` |
--cpu=*) cpu=`echo $opt | cut -d '=' -f 2` |
124 |
;; |
;; |
125 |
--target-cpu=*) target_cpu=`echo $opt | cut -d '=' -f 2` |
--target-list=*) target_list=${opt#--target-list=} |
|
;; |
|
|
--target-big-endian) target_bigendian="yes" |
|
|
;; |
|
|
--target-little-endian) target_bigendian="no" |
|
126 |
;; |
;; |
127 |
--enable-gprof) gprof="yes" |
--enable-gprof) gprof="yes" |
128 |
;; |
;; |
129 |
--static) static="yes" |
--static) static="yes" |
130 |
;; |
;; |
131 |
|
--disable-sdl) sdl="no" |
132 |
|
;; |
133 |
esac |
esac |
134 |
done |
done |
135 |
|
|
180 |
have_gcc3_options="yes" |
have_gcc3_options="yes" |
181 |
fi |
fi |
182 |
|
|
|
if test "$target_bigendian" = "default" ; then |
|
|
if test "$target_cpu" = "x86" ; then |
|
|
target_bigendian="no" |
|
|
elif test "$target_cpu" = "arm" ; then |
|
|
target_bigendian="no" |
|
|
else |
|
|
target_bigendian="no" |
|
|
fi |
|
|
fi |
|
|
|
|
183 |
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then |
if test x"$1" = x"-h" -o x"$1" = x"--help" ; then |
184 |
cat << EOF |
cat << EOF |
185 |
|
|
191 |
echo " --help print this message" |
echo " --help print this message" |
192 |
echo " --prefix=PREFIX install in PREFIX [$prefix]" |
echo " --prefix=PREFIX install in PREFIX [$prefix]" |
193 |
echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" |
echo " --interp-prefix=PREFIX where to find shared libraries, etc. [$interp_prefix]" |
194 |
echo " --target_cpu=CPU set target cpu (x86 or arm) [$target_cpu]" |
echo " --target-list=LIST set target list [$target_list]" |
195 |
echo "" |
echo "" |
196 |
echo "Advanced options (experts only):" |
echo "Advanced options (experts only):" |
197 |
echo " --source-path=PATH path of source code [$source_path]" |
echo " --source-path=PATH path of source code [$source_path]" |
211 |
echo "make $make" |
echo "make $make" |
212 |
echo "host CPU $cpu" |
echo "host CPU $cpu" |
213 |
echo "host big endian $bigendian" |
echo "host big endian $bigendian" |
214 |
echo "target CPU $target_cpu" |
echo "target list $target_list" |
|
echo "target big endian $target_bigendian" |
|
215 |
echo "gprof enabled $gprof" |
echo "gprof enabled $gprof" |
216 |
echo "static build $static" |
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" |
224 |
|
|
225 |
echo "Creating config.mak and config.h" |
echo "Creating $config_mak and $config_h" |
226 |
|
|
227 |
echo "# Automatically generated by configure - do not modify" > config.mak |
echo "# Automatically generated by configure - do not modify" > $config_mak |
228 |
echo "/* Automatically generated by configure - do not modify */" > $TMPH |
echo "/* Automatically generated by configure - do not modify */" > $config_h |
229 |
|
|
230 |
echo "prefix=$prefix" >> config.mak |
echo "prefix=$prefix" >> $config_mak |
231 |
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $TMPH |
echo "MAKE=$make" >> $config_mak |
232 |
echo "MAKE=$make" >> config.mak |
echo "CC=$cc" >> $config_mak |
|
echo "CC=$cc" >> config.mak |
|
233 |
if test "$have_gcc3_options" = "yes" ; then |
if test "$have_gcc3_options" = "yes" ; then |
234 |
echo "HAVE_GCC3_OPTIONS=yes" >> config.mak |
echo "HAVE_GCC3_OPTIONS=yes" >> $config_mak |
235 |
fi |
fi |
236 |
echo "HOST_CC=$host_cc" >> config.mak |
echo "HOST_CC=$host_cc" >> $config_mak |
237 |
echo "AR=$ar" >> config.mak |
echo "AR=$ar" >> $config_mak |
238 |
echo "STRIP=$strip -s -R .comment -R .note" >> config.mak |
echo "STRIP=$strip -s -R .comment -R .note" >> $config_mak |
239 |
echo "CFLAGS=$CFLAGS" >> config.mak |
echo "CFLAGS=$CFLAGS" >> $config_mak |
240 |
echo "LDFLAGS=$LDFLAGS" >> config.mak |
echo "LDFLAGS=$LDFLAGS" >> $config_mak |
241 |
if test "$cpu" = "x86" ; then |
if test "$cpu" = "i386" ; then |
242 |
echo "ARCH=i386" >> config.mak |
echo "ARCH=i386" >> $config_mak |
243 |
echo "#define HOST_I386 1" >> $TMPH |
echo "#define HOST_I386 1" >> $config_h |
244 |
elif test "$cpu" = "armv4l" ; then |
elif test "$cpu" = "armv4l" ; then |
245 |
echo "ARCH=arm" >> config.mak |
echo "ARCH=arm" >> $config_mak |
246 |
echo "#define HOST_ARM 1" >> $TMPH |
echo "#define HOST_ARM 1" >> $config_h |
247 |
elif test "$cpu" = "powerpc" ; then |
elif test "$cpu" = "powerpc" ; then |
248 |
echo "ARCH=ppc" >> config.mak |
echo "ARCH=ppc" >> $config_mak |
249 |
echo "#define HOST_PPC 1" >> $TMPH |
echo "#define HOST_PPC 1" >> $config_h |
250 |
elif test "$cpu" = "mips" ; then |
elif test "$cpu" = "mips" ; then |
251 |
echo "ARCH=mips" >> config.mak |
echo "ARCH=mips" >> $config_mak |
252 |
echo "#define HOST_MIPS 1" >> $TMPH |
echo "#define HOST_MIPS 1" >> $config_h |
253 |
elif test "$cpu" = "s390" ; then |
elif test "$cpu" = "s390" ; then |
254 |
echo "ARCH=s390" >> config.mak |
echo "ARCH=s390" >> $config_mak |
255 |
echo "#define HOST_S390 1" >> $TMPH |
echo "#define HOST_S390 1" >> $config_h |
256 |
elif test "$cpu" = "alpha" ; then |
elif test "$cpu" = "alpha" ; then |
257 |
echo "ARCH=alpha" >> config.mak |
echo "ARCH=alpha" >> $config_mak |
258 |
echo "#define HOST_ALPHA 1" >> $TMPH |
echo "#define HOST_ALPHA 1" >> $config_h |
259 |
elif test "$cpu" = "sparc" ; then |
elif test "$cpu" = "sparc" ; then |
260 |
echo "ARCH=sparc" >> config.mak |
echo "ARCH=sparc" >> $config_mak |
261 |
echo "#define HOST_SPARC 1" >> $TMPH |
echo "#define HOST_SPARC 1" >> $config_h |
262 |
elif test "$cpu" = "sparc64" ; then |
elif test "$cpu" = "sparc64" ; then |
263 |
echo "ARCH=sparc64" >> config.mak |
echo "ARCH=sparc64" >> $config_mak |
264 |
echo "#define HOST_SPARC64 1" >> $TMPH |
echo "#define HOST_SPARC64 1" >> $config_h |
265 |
elif test "$cpu" = "ia64" ; then |
elif test "$cpu" = "ia64" ; then |
266 |
echo "ARCH=ia64" >> config.mak |
echo "ARCH=ia64" >> $config_mak |
267 |
echo "#define HOST_IA64 1" >> $TMPH |
echo "#define HOST_IA64 1" >> $config_h |
268 |
else |
else |
269 |
echo "Unsupported CPU" |
echo "Unsupported CPU" |
270 |
exit 1 |
exit 1 |
271 |
fi |
fi |
272 |
if test "$bigendian" = "yes" ; then |
if test "$bigendian" = "yes" ; then |
273 |
echo "WORDS_BIGENDIAN=yes" >> config.mak |
echo "WORDS_BIGENDIAN=yes" >> $config_mak |
274 |
echo "#define WORDS_BIGENDIAN 1" >> $TMPH |
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 |
283 |
fi |
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 |
|
|
320 |
|
|
321 |
if test "$target_cpu" = "x86" ; then |
echo "include ../config-host.mak" >> $config_mak |
322 |
echo "TARGET_ARCH=i386" >> config.mak |
echo "#include \"../config-host.h\"" >> $config_h |
323 |
echo "#define TARGET_ARCH \"i386\"" >> $TMPH |
echo "#define CONFIG_QEMU_PREFIX \"$interp_prefix\"" >> $config_h |
324 |
echo "#define TARGET_I386 1" >> $TMPH |
|
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 |
329 |
elif test "$target_cpu" = "arm" ; then |
elif test "$target_cpu" = "arm" ; then |
330 |
echo "TARGET_ARCH=arm" >> config.mak |
echo "TARGET_ARCH=arm" >> $config_mak |
331 |
echo "#define TARGET_ARCH \"arm\"" >> $TMPH |
echo "#define TARGET_ARCH \"arm\"" >> $config_h |
332 |
echo "#define TARGET_ARM 1" >> $TMPH |
echo "#define TARGET_ARM 1" >> $config_h |
333 |
else |
else |
334 |
echo "Unsupported target CPU" |
echo "Unsupported target CPU" |
335 |
exit 1 |
exit 1 |
336 |
fi |
fi |
337 |
if test "$target_bigendian" = "yes" ; then |
if test "$target_bigendian" = "yes" ; then |
338 |
echo "TARGET_WORDS_BIGENDIAN=yes" >> config.mak |
echo "TARGET_WORDS_BIGENDIAN=yes" >> $config_mak |
339 |
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $TMPH |
echo "#define TARGET_WORDS_BIGENDIAN 1" >> $config_h |
340 |
fi |
fi |
341 |
|
if test "$target_softmmu" = "yes" ; then |
342 |
if test "$gprof" = "yes" ; then |
echo "CONFIG_SOFTMMU=yes" >> $config_mak |
343 |
echo "TARGET_GPROF=yes" >> config.mak |
echo "#define CONFIG_SOFTMMU 1" >> $config_h |
|
echo "#define HAVE_GPROF 1" >> $TMPH |
|
|
fi |
|
|
if test "$static" = "yes" ; then |
|
|
echo "CONFIG_STATIC=yes" >> config.mak |
|
344 |
fi |
fi |
345 |
echo -n "VERSION=" >>config.mak |
|
346 |
head $source_path/VERSION >>config.mak |
done # for target in $targets |
|
echo "" >>config.mak |
|
|
echo -n "#define QEMU_VERSION \"" >> $TMPH |
|
|
head $source_path/VERSION >> $TMPH |
|
|
echo "\"" >> $TMPH |
|
347 |
|
|
348 |
# build tree in object directory if source path is different from current one |
# build tree in object directory if source path is different from current one |
349 |
if test "$source_path_used" = "yes" ; then |
if test "$source_path_used" = "yes" ; then |
356 |
ln -sf $source_path/$f $f |
ln -sf $source_path/$f $f |
357 |
done |
done |
358 |
fi |
fi |
|
echo "SRC_PATH=$source_path" >> config.mak |
|
|
|
|
|
diff $TMPH config.h >/dev/null 2>&1 |
|
|
if test $? -ne 0 ; then |
|
|
mv -f $TMPH config.h |
|
|
else |
|
|
echo "config.h is unchanged" |
|
|
fi |
|
359 |
|
|
360 |
rm -f $TMPO $TMPC $TMPE $TMPS $TMPH |
rm -f $TMPO $TMPC $TMPE $TMPS |