92 lines
2.5 KiB
Makefile
92 lines
2.5 KiB
Makefile
NAME = Fireplace
|
|
PROJ = org.er2.fireplace
|
|
|
|
ifeq ($TV,1)
|
|
SDK_VER = 24
|
|
SDK = 24.0.3
|
|
else
|
|
SDK_VER = 19
|
|
SDK = 19.1.0
|
|
endif
|
|
|
|
SDK_ROOT = ~/Android/Sdk
|
|
JAVA_HOME:=$(if $(JAVA_HOME),$(JAVA_HOME),/usr/lib/jvm/java-1.11.0-openjdk-amd64)
|
|
|
|
VEDBASE = $(SDK_ROOT)/platforms/android-$(SDK_VER)/android.jar
|
|
|
|
ADB = $(SDK_ROOT)/platform-tools/adb
|
|
AAPT = $(SDK_ROOT)/build-tools/$(SDK)/aapt
|
|
DX = $(SDK_ROOT)/build-tools/$(SDK)/dx
|
|
ZIPALIGN=$(SDK_ROOT)/build-tools/$(SDK)/zipalign
|
|
JAVAC = $(JAVA_HOME)/bin/javac
|
|
JARSIGNER = $(JAVA_HOME)/bin/jarsigner
|
|
|
|
PWD=$(shell pwd)
|
|
|
|
OUT=$(PWD)/bin
|
|
GEN=$(PWD)/gen
|
|
RES=$(PWD)/res
|
|
SRC=$(PWD)/src
|
|
#ASS=$(PWD)/assets
|
|
|
|
SRCS=$(shell find $(SRC) -name '*.java')
|
|
CLSS=$(SRCS:$(SRC)/%.java=$(GEN)/%.class)
|
|
|
|
KEY_PATH ?= debug.keystore
|
|
KEY_NAME ?= androiddebugkey
|
|
KEY_PASS ?= android
|
|
|
|
all: debug
|
|
|
|
debug:
|
|
@$(MAKE) DEBUG=true -C $(PWD) build
|
|
|
|
release:
|
|
@$(MAKE) -C $(PWD) build
|
|
|
|
APK=$(OUT)/$(NAME).apk
|
|
CDX=$(OUT)/classes.dex
|
|
|
|
build: $(APK)
|
|
$(APK): $(CDX) package sign zip
|
|
@if [ ! -f "$(APK)" ]; then mv $(OUT)/$(NAME).ap_ $(APK); fi
|
|
@$(RM) $(OUT)/$(NAME).ap_
|
|
|
|
prepare: clean
|
|
@mkdir -p $(OUT) $(GEN)
|
|
@$(AAPT) > /dev/null 2>&1; if ! [ $$? -ne 0 ]; then echo YOU NEED TO install lib32stdc++6 lib32z1; exit 1; fi
|
|
@$(AAPT) p $(if $(DEBUG),--debug-mode,) -I $(VEDBASE) -fm -M $(PWD)/AndroidManifest.xml -J $(GEN) -S $(RES)
|
|
|
|
$(CDX):
|
|
# dependencies is here to not re-build on every make
|
|
@make -C $(PWD) prepare $(CLSS)
|
|
@echo Removing R classes
|
|
@find $(GEN) -name 'R.class' -exec rm {} \;
|
|
@find $(GEN) -name 'R$$*.class' -exec rm {} \;
|
|
@$(DX) --dex --output=$@ $(GEN)
|
|
|
|
$(GEN)/%.class: $(SRC)/%.java
|
|
-@echo Recompiling $@
|
|
@$(JAVAC) $(if $(DEBUG),-g,) -classpath $(VEDBASE) -sourcepath 'src:$(GEN)' -d '$(GEN)' -target 1.7 -source 1.7 $<
|
|
|
|
package: $(CDX) AndroidManifest.xml
|
|
@$(AAPT) p $(if $(DEBUG),--debug-mode,) -I $(VEDBASE) -f -M $(PWD)/AndroidManifest.xml -S $(RES) -F $(OUT)/$(NAME).ap_ # -A $(ASS)
|
|
@cd $(OUT) && $(AAPT) a $(NAME).ap_ classes.dex
|
|
|
|
sign: package $(KEY_PATH)
|
|
@$(JARSIGNER) -keystore $(KEY_PATH) -storepass '$(KEY_PASS)' $(OUT)/$(NAME).ap_ $(KEY_NAME)
|
|
|
|
zip: package
|
|
@$(ZIPALIGN) -f 4 $(OUT)/$(NAME).ap_ $(APK)
|
|
|
|
$(KEY_PATH):
|
|
@yes | keytool -genkey -v -keystore $(KEY_PATH) -storepass '$(KEY_PASS)' -alias $(KEY_NAME) -keypass $(KEY_PASS) -keyalg RSA -keysize 2048 -validity 10000
|
|
|
|
clean:
|
|
@rm -rf $(OUT) $(GEN)
|
|
|
|
run: $(OUT)/$(NAME).apk
|
|
-@$(ADB) uninstall $(PROJ)
|
|
@$(ADB) install $^
|
|
@$(ADB) shell monkey -p $(PROJ) -c android.intent.category.LAUNCHER 1
|
|
|