2 # Open \______ \ ____ ____ | | _\_ |__ _______ ___
3 # Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
4 # Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
5 # Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
10 .SECONDEXPANSION
: # $$(JAVA_OBJ) is not populated until after this
11 .SECONDEXPANSION
: # $$(OBJ) is not populated until after this
14 $(BUILDDIR
)/$(BINARY
): $$(OBJ
) $(VOICESPEEXLIB
) $(FIRMLIB
) $(SKINLIB
)
15 $(call PRINTS
,LD
$(BINARY
))$(CC
) -o
$@
$^
$(LDOPTS
) $(GLOBAL_LDOPTS
)
18 PACKAGE_PATH
=org
/rockbox
19 ANDROID_DIR
=$(ROOTDIR
)/android
20 BINLIB_DIR
=$(BUILDDIR
)/libs
/armeabi
23 java2class
= $(addsuffix .class
,$(basename $(subst $(ANDROID_DIR
),$(BUILDDIR
),$(1))))
25 ANDROID_PLATFORM_VERSION
=8
27 ANDROID_PLATFORM
=$(ANDROID_SDK_PATH
)/platforms
/android-
$(ANDROID_PLATFORM_VERSION
)
28 AAPT
=$(ANDROID_PLATFORM
)/tools
/aapt
29 DX
=$(ANDROID_PLATFORM
)/tools
/dx
30 APKBUILDER
=$(ANDROID_SDK_PATH
)/tools
/apkbuilder
31 ZIPALIGN
=$(ANDROID_SDK_PATH
)/tools
/zipalign
34 MANIFEST
:= $(ANDROID_DIR
)/AndroidManifest.xml
36 R_JAVA
:= $(BUILDDIR
)/gen
/$(PACKAGE_PATH
)/R.java
37 R_OBJ
:= $(BUILDDIR
)/bin
/$(PACKAGE_PATH
)/R.class
39 JAVA_SRC
:= $(wildcard $(ANDROID_DIR
)/src
/$(PACKAGE_PATH
)/*.java
)
40 JAVA_OBJ
:= $(call java2class
,$(subst /src
/,/bin
/,$(JAVA_SRC
)))
42 LIBS
:= $(BINLIB_DIR
)/$(BINARY
) $(BINLIB_DIR
)/libmisc.so
43 TEMP_APK
:= $(BUILDDIR
)/bin
/_Rockbox.apk
44 TEMP_APK2
:= $(BUILDDIR
)/bin
/__Rockbox.apk
45 APK
:= $(BUILDDIR
)/bin
/Rockbox.apk
47 _DIRS
:= $(BUILDDIR
)/___
/$(PACKAGE_PATH
)
48 DIRS
:= $(subst ___
,bin
,$(_DIRS
))
49 DIRS
+= $(subst ___
,gen
,$(_DIRS
))
50 DIRS
+= $(subst ___
,data
,$(_DIRS
))
51 DIRS
+= $(BUILDDIR
)/libs
/armeabi
53 $(R_JAVA
): $(MANIFEST
)
54 $(call PRINTS
,AAPT
$(subst $(BUILDDIR
)/,,$<))$(AAPT
) package
-f
-m
-J
$(BUILDDIR
)/gen
-M
$(MANIFEST
) -S
$(ANDROID_DIR
)/res
-I
$(ANDROID_PLATFORM
)/android.jar
-F
$(BUILDDIR
)/bin
/resources.ap_
56 $(BUILDDIR
)/bin
/$(PACKAGE_PATH
)/R.class
: $(R_JAVA
)
57 $(call PRINTS
,JAVAC
$(subst $(ROOTDIR
)/,,$<))javac
-d
$(BUILDDIR
)/bin \
58 -classpath
$(ANDROID_PLATFORM
)/android.jar
:$(BUILDDIR
)/bin
-sourcepath \
59 $(ANDROID_DIR
)/gen
:$(ANDROID_DIR
)/src
$<
61 $(BUILDDIR
)/bin
/$(PACKAGE_PATH
)/%.class
: $(ANDROID_DIR
)/src
/$(PACKAGE_PATH
)/%.java
62 $(call PRINTS
,JAVAC
$(subst $(ROOTDIR
)/,,$<))javac
-d
$(BUILDDIR
)/bin \
63 -classpath
$(ANDROID_PLATFORM
)/android.jar
:$(BUILDDIR
)/bin
-sourcepath \
64 $(ANDROID_DIR
)/gen
:$(ANDROID_DIR
)/src
$<
66 classes
: $(R_OBJ
) $(JAVA_OBJ
)
68 $(BUILDDIR
)/bin
/classes.dex
: classes
69 $(call PRINTS
,DX
$(subst $(BUILDDIR
)/,,$@
))$(DX
) --dex
--output
=$@
$(BUILDDIR
)/bin
71 dex
: $(BUILDDIR
)/bin
/classes.dex
73 $(BINLIB_DIR
)/$(BINARY
): $(BUILDDIR
)/$(BINARY
)
74 $(call PRINTS
,CP
$(BINARY
))cp
$^
$@
76 $(BUILDDIR
)/_rockbox.zip
: zip
77 $(SILENT
)mv
$(BUILDDIR
)/rockbox.zip
$@
79 $(BINLIB_DIR
)/libmisc.so
: $(BUILDDIR
)/_rockbox.zip
80 $(call PRINTS
,CP rockbox.zip
)cp
$^
$@
85 $(call PRINTS
,APK
$(subst $(BUILDDIR
)/,,$@
))$(APKBUILDER
) $@ \
86 -u
-z
$(BUILDDIR
)/bin
/resources.ap_
-f
$(BUILDDIR
)/bin
/classes.dex
-nf
$(BUILDDIR
)/libs
90 $(call PRINTS
,SIGN
$(subst $(BUILDDIR
)/,,$@
))jarsigner \
91 -keystore
"$(HOME)/.android/debug.keystore" -storepass
"android" \
92 -keypass
"android" -signedjar
$(TEMP_APK2
) $^
"androiddebugkey"
93 $(SILENT
)$(ZIPALIGN
) -v
4 $(TEMP_APK2
) $@
> /dev
/null
94 $(SILENT
)rm $(TEMP_APK
) $(TEMP_APK2
)
97 $(SILENT
)mkdir
-p
$(DIRS
)