summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2012-06-11 22:06:34 +0200
committerFrank Gevaerts <frank@gevaerts.be>2012-06-11 22:29:45 +0200
commitd1560e5869f27fd7f362a08bdb64878f11290046 (patch)
tree01e56e52b9626cf58d9877c1619a4b9d748585a1
parent268b725c405fc08d79b8e020f1fe89dfc963bf35 (diff)
downloadrockbox-d1560e5869f27fd7f362a08bdb64878f11290046.tar.gz
rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.zip
Add the Android/MIPS target
Change-Id: Iec1d2f08c8a43e486ab1696566a718b18598ff95
-rw-r--r--android/android.make4
-rw-r--r--firmware/SOURCES2
-rw-r--r--firmware/export/config.h5
-rwxr-xr-xtools/configure59
4 files changed, 67 insertions, 3 deletions
diff --git a/android/android.make b/android/android.make
index c0d72a7a05..0be3204535 100644
--- a/android/android.make
+++ b/android/android.make
@@ -9,7 +9,7 @@
9 9
10PACKAGE=org.rockbox 10PACKAGE=org.rockbox
11PACKAGE_PATH=org/rockbox 11PACKAGE_PATH=org/rockbox
12BINLIB_DIR=$(BUILDDIR)/libs/armeabi 12BINLIB_DIR=$(BUILDDIR)/libs/$(ANDROID_ARCH)
13ANDROID_DIR=$(ROOTDIR)/android 13ANDROID_DIR=$(ROOTDIR)/android
14 14
15# this is a glibc compatibility hack to provide a get_nprocs() replacement. 15# this is a glibc compatibility hack to provide a get_nprocs() replacement.
@@ -70,7 +70,7 @@ APK := $(BUILDDIR)/rockbox.apk
70_DIRS := $(BUILDDIR)/___/$(PACKAGE_PATH) 70_DIRS := $(BUILDDIR)/___/$(PACKAGE_PATH)
71DIRS += $(subst ___,gen,$(_DIRS)) 71DIRS += $(subst ___,gen,$(_DIRS))
72DIRS += $(subst ___,data,$(_DIRS)) 72DIRS += $(subst ___,data,$(_DIRS))
73DIRS += $(BUILDDIR)/libs/armeabi 73DIRS += $(BUILDDIR)/libs/$(ANDROID_ARCH)
74DIRS += $(CPUFEAT_BUILD) 74DIRS += $(CPUFEAT_BUILD)
75DIRS += $(CLASSPATH) 75DIRS += $(CLASSPATH)
76 76
diff --git a/firmware/SOURCES b/firmware/SOURCES
index aca752b2c2..80267b4320 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -634,7 +634,7 @@ target/arm/rk27xx/crt0.S
634target/arm/crt0.S 634target/arm/crt0.S
635#endif /* defined(CPU_*) */ 635#endif /* defined(CPU_*) */
636 636
637#elif defined(CPU_MIPS) 637#elif defined(CPU_MIPS) && (CONFIG_PLATFORM & PLATFORM_NATIVE)
638target/mips/mmu-mips.c 638target/mips/mmu-mips.c
639#if CONFIG_CPU==JZ4732 639#if CONFIG_CPU==JZ4732
640target/mips/ingenic_jz47xx/crt0.S 640target/mips/ingenic_jz47xx/crt0.S
diff --git a/firmware/export/config.h b/firmware/export/config.h
index f654609966..d9e32ce8cc 100644
--- a/firmware/export/config.h
+++ b/firmware/export/config.h
@@ -1133,4 +1133,9 @@ Lyre prototype 1 */
1133#define HAVE_PITCHCONTROL 1133#define HAVE_PITCHCONTROL
1134#endif 1134#endif
1135 1135
1136#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(CPU_MIPS)
1137/* We don't have our own MIPS hosted threading support yet */
1138#define HAVE_SIGALTSTACK_THREADS
1139#endif
1140
1136#endif /* __CONFIG_H__ */ 1141#endif /* __CONFIG_H__ */
diff --git a/tools/configure b/tools/configure
index 2d93b37676..a935d6a598 100755
--- a/tools/configure
+++ b/tools/configure
@@ -681,6 +681,35 @@ androidcc () {
681 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm $LDOPTS" 681 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-5/arch-arm $LDOPTS"
682 endian="little" 682 endian="little"
683 SHARED_LDFLAG="-shared" 683 SHARED_LDFLAG="-shared"
684 ANDROID_ARCH=armeabi
685}
686
687androidmipscc () {
688 if [ -z "$ANDROID_SDK_PATH" ]; then
689 echo "ERROR: You need the Android SDK installed and have the ANDROID_SDK_PATH"
690 echo "environment variable point to the root directory of the Android SDK."
691 exit
692 fi
693 if [ -z "$ANDROID_NDK_PATH" ]; then
694 echo "ERROR: You need the Android NDK installed (r5 or higher) and have the ANDROID_NDK_PATH"
695 echo "environment variable point to the root directory of the Android NDK."
696 exit
697 fi
698 buildhost=$(uname | tr "[:upper:]" "[:lower:]")
699 gccchoice="4.4.3"
700 gcctarget="mipsel-linux-android-"
701 gccprefix=$ANDROID_NDK_PATH/toolchains/$gcctarget$gccchoice/prebuilt/$buildhost-x86
702 arch_version=32 # FIXME: autodetect version (32 or 64)
703 PATH=$PATH:$gccprefix/bin
704 prefixtools $gcctarget
705 GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//`
706 GCCOPTS="$GCCOPTS -march=mips32 -mtune=r4600 -mno-mips16 -mno-long-calls -fomit-frame-pointer \
707 --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips -fPIC"
708 GLOBAL_LDOPTS="-Wl,-z,defs -Wl,-z,noexecstack"
709 LDOPTS="-shared -ldl -llog --sysroot=$ANDROID_NDK_PATH/platforms/android-14/arch-mips $LDOPTS"
710 endian="little"
711 SHARED_LDFLAG="-shared"
712 ANDROID_ARCH=mips
684} 713}
685 714
686whichadvanced () { 715whichadvanced () {
@@ -1293,6 +1322,7 @@ cat <<EOF
1293 203) Nokia N900 190) HM-60x 1322 203) Nokia N900 190) HM-60x
1294 204) Pandora 191) HM-801 1323 204) Pandora 191) HM-801
1295 205) Samsung YP-R0 1324 205) Samsung YP-R0
1325 206) Android MIPS
1296EOF 1326EOF
1297 1327
1298 buildfor=`input`; 1328 buildfor=`input`;
@@ -3316,6 +3346,34 @@ fi
3316 t_model="app" 3346 t_model="app"
3317 ;; 3347 ;;
3318 3348
3349 206|androidmips)
3350 application="yes"
3351 target_id=74
3352 modelname="androidmips"
3353 target="ANDROID"
3354 app_type="android"
3355 app_set_lcd_size
3356 sharedir="/data/data/org.rockbox/app_rockbox/rockbox"
3357 bindir="/data/data/org.rockbox/lib"
3358 libdir="/data/data/org.rockbox/app_rockbox"
3359 memory=8
3360 uname=`uname`
3361 androidmipscc
3362 tool="cp "
3363 boottool="cp "
3364 bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
3365 bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
3366 output="librockbox.so"
3367 bootoutput="librockbox.so"
3368 appextra="recorder:gui:radio:hosted/android"
3369 plugins="yes"
3370 swcodec="yes"
3371 # architecture, manufacturer and model for the target-tree build
3372 t_cpu="hosted"
3373 t_manufacturer="android"
3374 t_model="app"
3375 ;;
3376
3319 *) 3377 *)
3320 echo "Please select a supported target platform!" 3378 echo "Please select a supported target platform!"
3321 exit 7 3379 exit 7
@@ -3944,6 +4002,7 @@ export ROCKBOX_BINARY_PATH=${bindir}
3944export ROCKBOX_LIBRARY_PATH=${libdir} 4002export ROCKBOX_LIBRARY_PATH=${libdir}
3945export SDLCONFIG=${sdl} 4003export SDLCONFIG=${sdl}
3946export LCDORIENTATION=${lcd_orientation} 4004export LCDORIENTATION=${lcd_orientation}
4005export ANDROID_ARCH=${ANDROID_ARCH}
3947 4006
3948CONFIGURE_OPTIONS=${cmdline} 4007CONFIGURE_OPTIONS=${cmdline}
3949 4008