--- rockbox.orig/tools/configure 2010-10-19 14:45:57.077859000 +0700 +++ rockbox/tools/configure 2010-10-22 09:25:53.845594600 +0700 @@ -477,7 +477,17 @@ androidcc () { gccchoice="4.4.0" - prefixtools $ANDROID_NDK_PATH/build/prebuilt/linux-x86/arm-eabi-$gccchoice/bin/arm-eabi- + + case $uname in + CYGWIN*) + ndkhost="windows" + ;; + *) + ndkhost="linux-x86" + ;; + esac + + prefixtools $ANDROID_NDK_PATH/build/prebuilt/$ndkhost/arm-eabi-$gccchoice/bin/arm-eabi- GCCOPTS=`echo $CCOPTS | sed -e s/-ffreestanding// -e s/-nostdlib// -e s/-Wundef//` GCCOPTS="$GCCOPTS -ffunction-sections -fno-short-enums -march=armv5te -mtune=xscale -msoft-float -fomit-frame-pointer" GLOBAL_LDOPTS="$GLOBAL_LDOPTS -nostdlib -lc -Wl,--no-undefined -Wl,--gc-sections -Wl,-z,noexecstack -L$ANDROID_NDK_PATH/build/platforms/android-4/arch-arm/usr/lib/ -Wl,-rpath-link=$ANDROID_NKD_PATH/build/platforms/android-4/arch-arm/usr/lib" --- rockbox.orig/tools/root.make 2010-10-19 14:45:57.648891600 +0700 +++ rockbox/tools/root.make 2010-10-16 12:48:03.179493300 +0700 @@ -102,7 +102,11 @@ endif ifneq (,$(findstring android, $(APP_TYPE))) - include $(ROOTDIR)/android/android.make + ifneq (,$(findstring CYGWIN, $(UNAME))) + include $(ROOTDIR)/android/android.cygmake + else + include $(ROOTDIR)/android/android.make + endif endif endif # bootloader --- rockbox.orig/android/android.cygmake 2010-10-22 11:44:27.283828100 +0700 +++ rockbox/android/android.cygmake 2010-10-16 12:34:18.996352700 +0700 @@ -0,0 +1,110 @@ +# __________ __ ___. +# Open \______ \ ____ ____ | | _\_ |__ _______ ___ +# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / +# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < +# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ +# \/ \/ \/ \/ \/ +# $Id$ +# + +.SECONDEXPANSION: # $$(JAVA_OBJ) is not populated until after this +.SECONDEXPANSION: # $$(OBJ) is not populated until after this +.PHONY: apk classes clean dex dirs libs + +$(BUILDDIR)/$(BINARY): $$(OBJ) $(VOICESPEEXLIB) $(FIRMLIB) $(SKINLIB) + $(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(LDOPTS) $(GLOBAL_LDOPTS) + +PACKAGE=org.rockbox +PACKAGE_PATH=org/rockbox +ANDROID_DIR=$(ROOTDIR)/android +BINLIB_DIR=$(BUILDDIR)/libs/armeabi + +java2class = $(addsuffix .class,$(basename $(subst $(ANDROID_DIR),$(BUILDDIR),$(1)))) + +# API version +ANDROID_PLATFORM_VERSION=8 +ANDROID_PLATFORM=$(ANDROID_SDK_PATH)/platforms/android-$(ANDROID_PLATFORM_VERSION) + +# android tools +AAPT=$(ANDROID_PLATFORM)/tools/aapt +DX=$(ANDROID_PLATFORM)/tools/dx.bat +APKBUILDER=$(ANDROID_SDK_PATH)/tools/apkbuilder.bat +ZIPALIGN=$(ANDROID_SDK_PATH)/tools/zipalign +KEYSTORE=$(HOME)/.android/debug.keystore + +MANIFEST := $(ANDROID_DIR)/AndroidManifest.xml + +R_JAVA := $(BUILDDIR)/gen/$(PACKAGE_PATH)/R.java +R_OBJ := $(BUILDDIR)/bin/$(PACKAGE_PATH)/R.class + +JAVA_SRC := $(wildcard $(ANDROID_DIR)/src/$(PACKAGE_PATH)/*.java) +JAVA_OBJ := $(call java2class,$(subst $(ANDROID)/src/$(PACKAGE_PATH),$(ANDROID)/bin/$(PACKAGE_PATH),$(JAVA_SRC))) + +LIBS := $(BINLIB_DIR)/$(BINARY) $(BINLIB_DIR)/libmisc.so +TEMP_APK := $(BUILDDIR)/bin/_rockbox.apk +TEMP_APK2 := $(BUILDDIR)/bin/__rockbox.apk +DEX := $(BUILDDIR)/bin/classes.dex +AP_ := $(BUILDDIR)/bin/resources.ap_ +APK := $(BUILDDIR)/rockbox.apk + +_DIRS := $(BUILDDIR)/___/$(PACKAGE_PATH) +DIRS := $(subst ___,bin,$(_DIRS)) +DIRS += $(subst ___,gen,$(_DIRS)) +DIRS += $(subst ___,data,$(_DIRS)) +DIRS += $(BUILDDIR)/libs/armeabi + +CLEANOBJS += bin gen libs data + +$(R_JAVA) $(AP_): $(MANIFEST) + $(call PRINTS,AAPT $(subst $(BUILDDIR)/,,$@))$(AAPT) package -f -m \ + -J `cygpath -wp $(BUILDDIR)/gen` -M `cygpath -wp $(MANIFEST)` -S `cygpath -wp $(ANDROID_DIR)/res` \ + -I `cygpath -wp $(ANDROID_PLATFORM)/android.jar` -F `cygpath -wp $(AP_)` + +$(BUILDDIR)/bin/$(PACKAGE_PATH)/R.class: $(R_JAVA) + $(call PRINTS,JAVAC $(subst $(ROOTDIR)/,,$<))javac -d `cygpath -wp $(BUILDDIR)/bin` \ + -classpath `cygpath -wp $(ANDROID_PLATFORM)/android.jar:$(BUILDDIR)/bin` \ + -sourcepath `cygpath -wp $(BUILDDIR)/gen:$(ANDROID_DIR)/src` `cygpath -wp $<` + +$(BUILDDIR)/bin/$(PACKAGE_PATH)/%.class: $(ANDROID_DIR)/src/$(PACKAGE_PATH)/%.java + $(call PRINTS,JAVAC $(subst $(ROOTDIR)/,,$<))javac -d `cygpath -wp $(BUILDDIR)/bin` \ + -classpath `cygpath -wp $(ANDROID_PLATFORM)/android.jar:$(BUILDDIR)/bin` \ + -sourcepath `cygpath -wp $(ANDROID_DIR)/src:$(BUILDDIR)/gen` `cygpath -wp $<` + +$(DEX): $(R_OBJ) $(JAVA_OBJ) + $(call PRINTS,DX $(subst $(BUILDDIR)/,,$@))$(DX) --dex --output=`cygpath -wp $@` `cygpath -wp $(BUILDDIR)/bin` + +classes: $(R_OBJ) $(JAVA_OBJ) + +dex: $(DEX) + +$(BINLIB_DIR)/$(BINARY): $(BUILDDIR)/$(BINARY) + $(call PRINTS,CP $(BINARY))cp $^ $@ + +$(BINLIB_DIR)/libmisc.so: $(BUILDDIR)/rockbox.zip + $(call PRINTS,CP rockbox.zip)cp $^ $@ + +libs: $(LIBS) + +$(TEMP_APK): $(DIRS) $(LIBS) $(DEX) + $(call PRINTS,APK $(subst $(BUILDDIR)/,,$@))$(APKBUILDER) `cygpath -wp $@` \ + -u -z `cygpath -wp $(AP_)` -f `cygpath -wp $(DEX)` -nf `cygpath -wp $(BUILDDIR)/libs` + +$(KEYSTORE): + $(call PRINTS,KEYTOOL debug.keystore)keytool -genkey \ + -alias androiddebugkey -keystore `cygpath -wp $@` \ + -storepass android -keypass android -validity 365 \ + -dname "CN=Android Debug,O=Android,C=US" + +$(APK): $(TEMP_APK) $(BUILDDIR)/rockbox.zip $(KEYSTORE) + $(SILENT)rm -f $@ + $(call PRINTS,SIGN $(subst $(BUILDDIR)/,,$@))jarsigner \ + -keystore "`cygpath -wp $(KEYSTORE)`" -storepass "android" -keypass "android" \ + -signedjar `cygpath -wp $(TEMP_APK2)` `cygpath -wp $(TEMP_APK)` "androiddebugkey" + $(SILENT)$(ZIPALIGN) -v 4 `cygpath -wp $(TEMP_APK2)` `cygpath -wp $@` > /dev/null + +$(DIRS): + $(SILENT)mkdir -p $@ + +dirs: $(DIRS) + +apk: $(APK)