Makefile 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. NAME=good-mitm
  2. BINDIR=bin
  3. VERSION=$(shell git describe --tags || echo "unknown version")
  4. UPX=upx --best
  5. STRIP=llvm-strip -s
  6. CROSS_BUILD=cross build --release --target
  7. all: fmt clippy build
  8. build:
  9. cargo build
  10. clean:
  11. cargo clean
  12. deps:
  13. cargo install cargo-strip xargo cross
  14. a: fmt clippy
  15. fmt:
  16. cargo fmt --all
  17. fix:
  18. cargo fix
  19. check:
  20. cargo check
  21. clippy:
  22. cargo clippy
  23. prepare: fmt check clippy fix
  24. CROSS_TARGET_LIST = \
  25. x86_64-unknown-linux-musl \
  26. i686-unknown-linux-musl \
  27. aarch64-unknown-linux-musl \
  28. armv7-unknown-linux-musleabihf \
  29. x86_64-apple-darwin \
  30. aarch64-apple-darwin \
  31. $(CROSS_TARGET_LIST):
  32. $(CROSS_BUILD) $@
  33. cp "target/$@/release/$(NAME)" "$(BINDIR)/$(NAME)-$@"
  34. $(STRIP) "$(BINDIR)/$(NAME)-$@"
  35. $(UPX) "$(BINDIR)/$(NAME)-$@"
  36. windows:
  37. cargo build --target x86_64-pc-windows-gnu --release
  38. cp "target/x86_64-pc-windows-gnu/release/$(NAME).exe" "$(BINDIR)/$(NAME)-x86_64-pc-windows-gnu-$(VERSION).exe"
  39. $(STRIP) "$(BINDIR)/$(NAME)-x86_64-pc-windows-gnu-$(VERSION).exe"
  40. zip -q -m $(BINDIR)/$(NAME)-x86_64-pc-windows-gnu-$(VERSION).zip "$(BINDIR)/$(NAME)-x86_64-pc-windows-gnu-$(VERSION).exe"
  41. bindir:
  42. rm -rf $(BINDIR)
  43. mkdir $(BINDIR)
  44. bin_gz=$(addsuffix .gz, $(CROSS_TARGET_LIST))
  45. $(bin_gz): %.gz : %
  46. chmod +x $(BINDIR)/$(NAME)-$(basename $@)
  47. gzip -f -S -$(VERSION).gz $(BINDIR)/$(NAME)-$(basename $@)
  48. gz_release: $(bin_gz)
  49. release: bindir gz_release windows