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