-android: - docker build -t test:latest . --file android.Dockerfile - # Use this command to get an interactive terminal inside docker: - #docker run -v $(shell pwd)/../../:/root/src -it test:latest /bin/bash - docker run --rm -v $(shell pwd)/../../:/root/src -t test:latest make _aarch64-android - cp -f ../../target/aarch64-linux-android/release/darkirc darkirc.aarch64-android - -# Invoked inside docker by the command above -# We need to mount this directory as a volume using -v so docker can access it -_aarch64-android: - cargo build --release --target aarch64-linux-android --package darkirc +$(BIN): $(PROOFS_BIN) $(SRC) + RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package $@ + cp -f ../../target/$(RUST_TARGET)/release/$@ $@ + cp -f ../../target/$(RUST_TARGET)/release/$@ ../../$@ + +# To build for android, install the Android NDK (Android Studio) +# and then install cargo-ndk: `cargo install cargo-ndk`. +# After that, add new android rust toolchains: +# - rustup target add aarch64-linux-android +# - rustup target add armv7-linux-androideabi +# - rustup target add x86_64-linux-android +# - rustup target add i686-linux-android +$(BIN).android64: + RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) ndk -t arm64-v8a -o ./jniLibs build --release --package $(BIN) + cp -f ../../target/aarch64-linux-android/release/$(BIN) $(BIN).$@ + +$(BIN).android32: + RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) ndk -t armeabi-v7a -o ./jniLibs build --release --package $(BIN) + cp -f ../../target/armv7-linux-androideabi/release/$(BIN) $(BIN).$@