diff options
| author | Frank Gevaerts <frank@gevaerts.be> | 2012-06-11 22:06:34 +0200 |
|---|---|---|
| committer | Frank Gevaerts <frank@gevaerts.be> | 2012-06-11 22:29:45 +0200 |
| commit | d1560e5869f27fd7f362a08bdb64878f11290046 (patch) | |
| tree | 01e56e52b9626cf58d9877c1619a4b9d748585a1 | |
| parent | 268b725c405fc08d79b8e020f1fe89dfc963bf35 (diff) | |
| download | rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.zip rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.tar.gz rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.tar.bz2 rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.tar.xz | |
Add the Android/MIPS target
Change-Id: Iec1d2f08c8a43e486ab1696566a718b18598ff95
| -rw-r--r-- | android/android.make | 4 | ||||
| -rw-r--r-- | firmware/SOURCES | 2 | ||||
| -rw-r--r-- | firmware/export/config.h | 5 | ||||
| -rwxr-xr-x | tools/configure | 59 |
4 files changed, 67 insertions, 3 deletions
diff --git a/android/android.make b/android/android.make index c0d72a7..0be3204 100644 --- a/android/android.make +++ b/android/android.make @@ -9,7 +9,7 @@ PACKAGE=org.rockbox PACKAGE_PATH=org/rockbox -BINLIB_DIR=$(BUILDDIR)/libs/armeabi +BINLIB_DIR=$(BUILDDIR)/libs/$(ANDROID_ARCH) ANDROID_DIR=$(ROOTDIR)/android # this is a glibc compatibility hack to provide a get_nprocs() replacement. @@ -70,7 +70,7 @@ APK := $(BUILDDIR)/rockbox.apk _DIRS := $(BUILDDIR)/___/$(PACKAGE_PATH) DIRS += $(subst ___,gen,$(_DIRS)) DIRS += $(subst ___,data,$(_DIRS)) -DIRS += $(BUILDDIR)/libs/armeabi +DIRS += $(BUILDDIR)/libs/$(ANDROID_ARCH) DIRS += $(CPUFEAT_BUILD) DIRS += $(CLASSPATH) diff --git a/firmware/SOURCES b/firmware/SOURCES index aca752b..80267b4 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -634,7 +634,7 @@ target/arm/rk27xx/crt0.S target/arm/crt0.S #endif /* defined(CPU_*) */ -#elif defined(CPU_MIPS) +#elif defined(CPU_MIPS) && (CONFIG_PLATFORM & PLATFORM_NATIVE) target/mips/mmu-mips.c #if CONFIG_CPU==JZ4732 target/mips/ingenic_jz47xx/crt0.S diff --git a/firmware/export/config.h b/firmware/export/config.h index f654609..d9e32ce 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -1133,4 +1133,9 @@ Lyre prototype 1 */ #define HAVE_PITCHCONTROL #endif +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(CPU_MIPS) +/* We don't have our own MIPS hosted threading support yet */ +#define HAVE_SIGALTSTACK_THREADS +#endif + #endif /* __CONFIG_H__ */ diff --git a/tools/configure b/tools/configure index 2d93b37..a935d6a 100755 --- a/tools/configure +++ b/tools/configure @@ -681,6 +681,35 @@ androidcc () { LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm $LDOPTS" endian="little" SHARED_LDFLAG="-shared" + ANDROID_ARCH=armeabi +} + +androidmipscc () { + if [ -z "$ANDROID_SDK_PATH" ]; then + echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH" + echo "environment variable point to the root directory of the Android SDK." + exit + fi + if [ -z "$ANDROID_NDK_PATH" ]; then + echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH" + echo "environment variable point to the root directory of the Android NDK." + exit + fi + buildhost=$(uname | tr "[:upper:]" "[:lower:]") + gccchoice="4.4.3" + gcctarget="mipsel-linux-android-" + gccprefix=$ANDROID_NDK_PATH/toolchains/$gcctarget$gccchoice/prebuilt/$buildhost-x86 + arch_version=32 # FIXME: autodetect version (32 or 64) + PATH=$PATH:$gccprefix/bin + prefixtools $gcctarget + GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` + GCCOPTS="$GCCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -fomit-frame-pointer \ + --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips -fPIC" + GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack" + LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips $LDOPTS" + endian="little" + SHARED_LDFLAG="-shared" + ANDROID_ARCH=mips } whichadvanced () { @@ -1293,6 +1322,7 @@ cat <<EOF 203) Nokia N900 190) HM-60x 204) Pandora 191) HM-801 205) Samsung YP-R0 + 206) Android MIPS EOF buildfor=`input`; @@ -3316,6 +3346,34 @@ fi t_model="app" ;; + 206|androidmips) + application="yes" + target_id=74 + modelname="androidmips" + target="ANDROID" + app_type="android" + app_set_lcd_size + sharedir="/data/data/org.rockbox/app_rockbox/rockbox" + bindir="/data/data/org.rockbox/lib" + libdir="/data/data/org.rockbox/app_rockbox" + memory=8 + uname=`uname` + androidmipscc + tool="cp " + boottool="cp " + bmp2rb_mono="$rootdir/tools/bmp2rb -f 0" + bmp2rb_native="$rootdir/tools/bmp2rb -f 4" + output="librockbox.so" + bootoutput="librockbox.so" + appextra="recorder:gui:radio:hosted/android" + plugins="yes" + swcodec="yes" + # architecture, manufacturer and model for the target-tree build + t_cpu="hosted" + t_manufacturer="android" + t_model="app" + ;; + *) echo "Please select a supported target platform!" exit 7 @@ -3944,6 +4002,7 @@ export ROCKBOX_BINARY_PATH=${bindir} export ROCKBOX_LIBRARY_PATH=${libdir} export SDLCONFIG=${sdl} export LCDORIENTATION=${lcd_orientation} +export ANDROID_ARCH=${ANDROID_ARCH} CONFIGURE_OPTIONS=${cmdline} |