aboutsummaryrefslogtreecommitdiffstats
path: root/android-rebuild.sh
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:04:49 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:04:49 -0800
commitdf7881f07f53b041dc0568be8528e9dbb74994cc (patch)
tree1b3e036f7df4241bf0c2d527b73198c50e1d7891 /android-rebuild.sh
parent55f4e4a5ec657a017e3bf75299ad71fd1c968dd3 (diff)
downloadexternal_qemu-df7881f07f53b041dc0568be8528e9dbb74994cc.zip
external_qemu-df7881f07f53b041dc0568be8528e9dbb74994cc.tar.gz
external_qemu-df7881f07f53b041dc0568be8528e9dbb74994cc.tar.bz2
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'android-rebuild.sh')
-rwxr-xr-xandroid-rebuild.sh259
1 files changed, 3 insertions, 256 deletions
diff --git a/android-rebuild.sh b/android-rebuild.sh
index 443afca..d488f69 100755
--- a/android-rebuild.sh
+++ b/android-rebuild.sh
@@ -7,259 +7,6 @@
#
cd `dirname $0`
-
-OS=`uname -s`
-EXE=""
-case "$OS" in
- Darwin)
- CPU=`uname -p`
- if [ "$CPU" = "i386" ] ; then
- OS=darwin-x86
- else
- OS=darwin-ppc
- fi
- ;;
- *_NT-*)
- OS=windows
- EXE=.exe
- ;;
-esac
-
-# select the compiler: on OS X PPC, we're forced to use gcc-3.3
-# also use ccache if we can
-CC=gcc
-HOSTCC=gcc
-cpu=$(uname -p)
-if [ "$cpu" = "powerpc" ] ; then
- HOSTCC=gcc-3.3
-fi
-
-unset TOP
-# if ANDROID_PRODUCT_OUT is defined we maybe in an Android build
-if [ -n "$ANDROID_PRODUCT_OUT" ] ; then
- TOP=$(cd $ANDROID_PRODUCT_OUT/../../../.. && pwd)
- echo "TOP found at $TOP"
- if [ ! -f "$TOP/config/envsetup.make" ] ; then
- echo "Cannot find build system root (TOP)"
- echo "defaulting to non-Android build"
- unset TOP
- fi
-fi
-
-# normalize the TOP variable, we don't want any trailing /
-IN_ANDROID_BUILD=
-if [ -n "$TOP" ] ; then
- if [ ! "$(dirname $TOP)" = "." ] ; then
- TOP=$(dirname $TOP)/$(basename $TOP)
- fi
- IN_ANDROID_BUILD=1
- echo "In Android Build"
-fi
-
-TARGETS=
-DEBUG=no
-IGNORE_AUDIO=no
-for opt do
- optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
- case "$opt" in
- --help|-h|-\?) show_help=yes
- ;;
- --install=*) TARGETS="$TARGETS $optarg";
- ;;
- --sdl-config=*) SDL_CONFIG=$optarg
- ;;
- --cc=*) CC="$optarg" ; HOSTCC=$CC
- ;;
- --no-strip) NOSTRIP=1
- ;;
- --no-android) IN_ANDROID_BUILD=
- ;;
- --debug) DEBUG=yes
- ;;
- --android-build) IN_ANDROID_BUILD=1
- ;;
- --ignore-audio) IGNORE_AUDIO=yes
- ;;
- esac
-done
-
-if test x"$show_help" = x"yes" ; then
- cat << EOF
-
-Usage: android-rebuild.sh [options]
-Options: [defaults in brackets after descriptions]
-
-EOF
- echo "Standard options:"
- echo " --help print this message"
- echo " --install=FILEPATH copy emulator executable to FILEPATH [$TARGETS]"
- echo " --no-strip do not strip emulator executable"
- echo " --sdl-config=FILE use specific sdl-config script [$SDL_CONFIG]"
- echo " --debug enable debug (-O0 -g) build"
- echo " --no-android perform clean build, without Android build tools & prebuilt"
- echo " --ignore-audio ignore audio messages (may build sound-less emulator)"
- echo " --cc=PATH specify C compiler [$CC]"
- echo ""
- exit 1
-fi
-
-if [ -n "$IN_ANDROID_BUILD" ] ; then
- # Get the value of a build variable as an absolute path.
- function get_abs_build_var()
- {
- (cd "$TOP" &&
- CALLED_FROM_SETUP=true make -f config/envsetup.make dumpvar-abs-$1)
- }
-
- PREBUILT=$TOP/prebuilt/$OS
- if [ ! -d $PREBUILT ] ; then
- echo "Can't find the prebuilt directory $PREBUILT in Android build"
- exit 1
- fi
- if [ -n "$USE_CCACHE" ] ; then
- CCACHE="$TOP/prebuilt/$OS/ccache$EXE"
- if [ -f $CCACHE ] ; then
- CC="$TOP/prebuilt/$OS/ccache$EXE $CC"
- HOSTCC="$CC"
- fi
- fi
-
- if [ -z "$SDL_CONFIG" ] ; then
- # always use our own static libSDL by default
- SDL_CONFIG=$TOP/prebuilt/$OS/sdl/bin/sdl-config
- fi
- HOST_BIN=$(get_abs_build_var HOST_OUT_EXECUTABLES)
- if [ -n "$HOST_BIN" ] ; then
- TARGETS="$TARGETS $HOST_BIN/emulator$EXE"
- fi
-else
- # try to find sdl-config
- if [ -z "$SDL_CONFIG" ] ; then
- SDL_CONFIG=$(which sdl-config)
- fi
- if [ -z "$SDL_CONFIG" ] ; then
- echo "Could not find the 'sdl-config' script"
- echo "You need to have the development version of the SDL library on this machine to build this program"
- echo "See (www.libsdl.org for details)"
- if [ "$OS" = "Linux" ] ; then
- echo "Try to install the 'libsdl-dev' package on this machine"
- fi
- exit 1
- fi
-
- # check that the static version is usable, this is performed by the configure script
- # too, but we can be more informative when checking it here
- TMPC=/tmp/android-qemu-sdl-check.c
- TMPE=/tmp/android-qemu-sdl-check$EXE
- TMPL=/tmp/android-qemu-sdl.log
- cat > $TMPC << EOF
-#include <SDL.h>
-#undef main
-int main( void ) { return SDL_Init (SDL_INIT_VIDEO); }
-EOF
- if $HOSTCC -o $TMPE $TMPC `$SDL_CONFIG --cflags` `$SDL_CONFIG --static-libs` 2> $TMPL; then
- rm -f $TMPC $TMPE
- else
- echo "static linking with your installed SDL library doesn't work"
- echo "please correct the following compilation/link error messages, then try again"
- cat $TMPL
- rm -f $TMPL $TMPC $TMPE
- exit 1
- fi
-fi
-
-# if we're in tools/qemu, we output the build commands to the standard outputs
-# if not, we hide them...
-if [ -n "$SHOW_COMMANDS" -o `dirname $0` = "." ] ; then
- STDOUT=/dev/stdout
- STDERR=/dev/stderr
-else
- STDOUT=/dev/null
- STDERR=/dev/null
-fi
-
-if ! [ -f $SDL_CONFIG ] ; then
- echo "SDL_CONFIG is set to '$SDL_CONFIG' which doesn't exist"
- exit 3
-fi
-
-use_sdl_config="--use-sdl-config=$SDL_CONFIG"
-
-# use Makefile.qemu if available
-#
-if [ -f Makefile.qemu ] ; then
- MAKEFILE=Makefile.qemu
-else
- MAKEFILE=Makefile
-fi
-
-# compute options for the 'configure' program
-CONFIGURE_OPTIONS="--disable-user --disable-kqemu --enable-trace --enable-shaper"
-CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --enable-skins --enable-nand --enable-sdl $use_sdl_config"
-
-if [ "$OS" != "windows" ] ; then
- # Windows doesn't have signals, so -nand-limits cannot work on this platform
- CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --enable-nand-limits"
-fi
-
-CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --static-png --static-sdl --target-list=arm-softmmu"
-
-# we don't want to use the SDL audio driver when possible, since it doesn't support
-# audio input. select a platform-specific one instead...
-#
-AUDIO_OPTIONS=""
-case $OS in
- darwin*) AUDIO_OPTIONS=" --enable-coreaudio"
- ;;
- windows) AUDIO_OPTIONS=" --enable-winaudio"
- ;;
- Linux)
- if `pkg-config --exists alsa`; then
- AUDIO_OPTIONS="$AUDIO_OPTIONS --enable-alsa"
- else
- if [ "$IGNORE_AUDIO" = "no" ] ; then
- echo "please install the libasound2-dev package on this machine, or use the --ignore-audio option"
- exit 3
- fi
- fi
- if `pkg-config --exists esound`; then
- AUDIO_OPTIONS="$AUDIO_OPTIONS --enable-esd"
- else
- if [ "$IGNORE_AUDIO" = "no" ] ; then
- echo "please install the libesd0-dev package on this machine, or use the --ignore-audio option"
- exit 3
- fi
- fi
- AUDIO_OPTIONS="$AUDIO_OPTIONS --enable-oss"
- ;;
-esac
-CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS$AUDIO_OPTIONS"
-
-if [ "$DEBUG" = "yes" ] ; then
- CONFIGURE_OPTIONS="$CONFIGURE_OPTIONS --debug"
-fi
-
-export CC HOSTCC
-
-echo "rebuilding the emulator binary"
-if ! (
- if [ -f arm-softmmu/Makefile ] ; then
- make -f $MAKEFILE clean
- fi
- echo ./configure $CONFIGURE_OPTIONS &&
- ./configure $CONFIGURE_OPTIONS &&
- make -f $MAKEFILE -j4 ) 2>$STDERR >$STDOUT ; then
- echo "Error while rebuilding the emulator. please check the sources"
- exit 3
-fi
-
-for target in $TARGETS; do
- ( echo "copying binary to $target" &&
- cp -f arm-softmmu/qemu-system-arm$EXE $target &&
- ( if [ -z "$NOSTRIP" ] ; then
- echo "stripping $target"
- strip $target ;
- fi )
- ) ;
-done
-
+./android-configure.sh $* && \
+make -j4 && \
+echo "Done. !!"