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.tar.gz rockbox-d1560e5869f27fd7f362a08bdb64878f11290046.zip |
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 c0d72a7a05..0be3204535 100644 --- a/android/android.make +++ b/android/android.make | |||
@@ -9,7 +9,7 @@ | |||
9 | 9 | ||
10 | PACKAGE=org.rockbox | 10 | PACKAGE=org.rockbox |
11 | PACKAGE_PATH=org/rockbox | 11 | PACKAGE_PATH=org/rockbox |
12 | BINLIB_DIR=$(BUILDDIR)/libs/armeabi | 12 | BINLIB_DIR=$(BUILDDIR)/libs/$(ANDROID_ARCH) |
13 | ANDROID_DIR=$(ROOTDIR)/android | 13 | ANDROID_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) |
71 | DIRS += $(subst ___,gen,$(_DIRS)) | 71 | DIRS += $(subst ___,gen,$(_DIRS)) |
72 | DIRS += $(subst ___,data,$(_DIRS)) | 72 | DIRS += $(subst ___,data,$(_DIRS)) |
73 | DIRS += $(BUILDDIR)/libs/armeabi | 73 | DIRS += $(BUILDDIR)/libs/$(ANDROID_ARCH) |
74 | DIRS += $(CPUFEAT_BUILD) | 74 | DIRS += $(CPUFEAT_BUILD) |
75 | DIRS += $(CLASSPATH) | 75 | DIRS += $(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 | |||
634 | target/arm/crt0.S | 634 | target/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) |
638 | target/mips/mmu-mips.c | 638 | target/mips/mmu-mips.c |
639 | #if CONFIG_CPU==JZ4732 | 639 | #if CONFIG_CPU==JZ4732 |
640 | target/mips/ingenic_jz47xx/crt0.S | 640 | target/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 | |||
687 | androidmipscc () { | ||
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 | ||
686 | whichadvanced () { | 715 | whichadvanced () { |
@@ -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 | ||
1296 | EOF | 1326 | EOF |
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} | |||
3944 | export ROCKBOX_LIBRARY_PATH=${libdir} | 4002 | export ROCKBOX_LIBRARY_PATH=${libdir} |
3945 | export SDLCONFIG=${sdl} | 4003 | export SDLCONFIG=${sdl} |
3946 | export LCDORIENTATION=${lcd_orientation} | 4004 | export LCDORIENTATION=${lcd_orientation} |
4005 | export ANDROID_ARCH=${ANDROID_ARCH} | ||
3947 | 4006 | ||
3948 | CONFIGURE_OPTIONS=${cmdline} | 4007 | CONFIGURE_OPTIONS=${cmdline} |
3949 | 4008 | ||