Makefile 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. .POSIX:
  2. # Install prefix
  3. PREFIX = $(HOME)/.cargo
  4. # Cargo binary
  5. CARGO = cargo +nightly
  6. # Compile target
  7. RUST_TARGET = $(shell rustc -Vv | grep '^host: ' | cut -d' ' -f2)
  8. SRC = \
  9. Cargo.toml \
  10. ../../Cargo.toml \
  11. $(shell find src -type f -name '*.rs') \
  12. $(shell find ../../src -type f -name '*.rs') \
  13. BIN = ../../darkirc
  14. all: $(BIN)
  15. $(BIN): $(SRC)
  16. RUSTFLAGS="$(RUSTFLAGS)" $(CARGO) build --target=$(RUST_TARGET) --release --package darkirc
  17. cp -f ../../target/$(RUST_TARGET)/release/darkirc $@
  18. android:
  19. docker build -t test:latest . --file android.Dockerfile
  20. # Use this command to get an interactive terminal inside docker:
  21. #docker run -v $(shell pwd)/../../:/root/src -it test:latest /bin/bash
  22. docker run --rm -v $(shell pwd)/../../:/root/src -t test:latest make _aarch64-android
  23. cp -f ../../target/aarch64-linux-android/release/darkirc darkirc.aarch64-android
  24. # Invoked inside docker by the command above
  25. # We need to mount this directory as a volume using -v so docker can access it
  26. _aarch64-android:
  27. cargo build --release --target aarch64-linux-android --package darkirc
  28. clean:
  29. rm -f $(BIN)
  30. install: all
  31. mkdir -p $(DESTDIR)$(PREFIX)/bin
  32. cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
  33. chmod 755 $(DESTDIR)$(PREFIX)/bin/darkirc
  34. uninstall:
  35. rm -f $(DESTDIR)$(PREFIX)/bin/darkirc
  36. .PHONY: all clean install uninstall