SHELL=/bin/bash #shell: # bash app.apk: ./result/app.apk ln -srv ./result/app.apk ./app.apk ./result/app.apk : ./result/signed.apk app-config.sh source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/zipalign -v -f 4 $< $@ source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/apksigner sign \ --ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@ ./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey android-sdk/installed: app-config.sh ./.Makefile.scripts/make--android-sdk.sh AndroidManifest.xml: app-config.sh ./.Makefile.scripts/make--AndroidManifest.xml app-config.sh: ./.Makefile.scripts/make--app-config.sh srcj/package: app-config.sh source app-config.sh; PKGDIR=$$(echo "$$APP_PACKAGE" | tr '.' '/'); mkdir -p src/$$PKGDIR; ln -srv src/$$PKGDIR $@ obj/package: app-config.sh source app-config.sh; PKGDIR=$$(echo "$$APP_PACKAGE" | tr '.' '/'); mkdir -p obj/$$PKGDIR; ln -srv obj/$$PKGDIR $@ ./result /bin /assets /src/ obj: mkdir -p "$@" ./ToyKey.keystore : keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \ -storepass armena -keypass armena -alias helljniKey -keyalg RSA -v ./src/package/R.java : $(shell find ./res -type f) app-config.sh src/package source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/aapt package \ -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \ -I $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar ./obj/package/AppActivity.class : ./src/package/AppActivity.java ./src/package/R.java obj/package javac -d ./obj -classpath $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar \ -sourcepath ./src $< ./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey ./result/unsigned.apk : ./bin/classes.dex ./result ./assets rm -rvf "$@" source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/aapt package \ -v -u -f -M ./AndroidManifest.xml -S ./res \ -I $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar -A ./assets -F $@ ./bin ./bin/classes.dex : ./obj/package/AppActivity.class ./obj/package/AppActivity$$1.class /bin source app-config.sh; $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.buildtools.version.current)/d8 ./obj/package/*.class \ --lib $${ANDROID_SDK_ROOT}/$$(tr ';' '/' < android-sdk/.installed.platforms.version.current)/android.jar --output bin FORCE: @true #ANDROID_HOME = /opt/android #ANDROID_VERSION = 33.0.2 #PLATFORM = android-$(shell echo $(ANDROID_VERSION) | sed 's/\..*//') #TOOLCHAIN = /Users/amon/grive/development/Android/NativeToolchain #GCC = $(TOOLCHAIN)/bin/aarch64-linux-android-gcc #CXX_FLAGS = -march=armv8-a --sysroot=$(TOOLCHAIN)/sysroot #all: build # #.PHONY : build #.PHONY : deploy #.PHONY : clean # #build : ./result/example.app.apk # mv ./result/example.app.apk app.apk # true # #env: # set > set ; env > env #./result/example.app.apk : ./result/signed.apk # $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/zipalign -v -f 4 $< $@ # $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/apksigner sign --ks ToyKey.keystore --key-pass pass:armena --ks-pass pass:armena $@ # #./result/signed.apk : ./result/unsigned.apk ./ToyKey.keystore ./result # jarsigner -verbose -keystore ./ToyKey.keystore -storepass armena -keypass armena -signedjar $@ $< helljniKey # #./result: # mkdir -p "$@" # #./result/unsigned.apk : ./bin/classes.dex ./result # rm -rvf "$@" # $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -u -f -M ./AndroidManifest.xml -S ./res \ # -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -A ./assets -F $@ ./bin # #./bin/classes.dex : ./obj/app/example/ExampleApp.class ./obj/app/example/ExampleApp$$1.class # $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/d8 ./obj/app/example/*.class --lib $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar --output bin # #./src/app/example/R.java : $(shell find ./res -type f) # $(ANDROID_HOME)/build-tools/$(ANDROID_VERSION)/aapt package -v -f -m -S ./res -J ./src -M ./AndroidManifest.xml \ # -I $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar # #./obj/app/example/ExampleApp.class : ./src/app/example/ExampleApp.java ./src/app/example/R.java # javac -d ./obj -classpath $(ANDROID_HOME)/platforms/$(PLATFORM)/android.jar -sourcepath ./src $< # #./ToyKey.keystore : # keytool -genkeypair -validity 1000 -dname "CN=alexander,O=Android,C=JPN" -keystore $@ \ # -storepass armena -keypass armena -alias helljniKey -keyalg RSA -v # #clean: # rm -f ./bin/* ./lib/arm64-v8a/* ./result/*