Makefile 852 B

12345678910111213141516171819202122232425262728293031323334
  1. ADDR ?= 127.0.0.1
  2. BUILD_TYPE ?= Release
  3. PREFIX := build/$(BUILD_TYPE)
  4. PACKAGE_DIR := $(PREFIX)/monitor
  5. # 日期 + git hash
  6. BUILD_DATE := $(shell date +%Y%m%d)
  7. GIT_HASH := $(shell git rev-parse --short=8 HEAD 2>/dev/null)
  8. PACKAGE_NAME := monitor_$(BUILD_TYPE)_$(BUILD_DATE)_$(GIT_HASH).tar.gz
  9. all: clean build install
  10. # -DCMAKE_TOOLCHAIN_FILE=./conf/toolchain.cmake
  11. build:
  12. @cmake -DCMAKE_BUILD_TYPE=$(BUILD_TYPE) -DCMAKE_INSTALL_PREFIX=$(PREFIX) -B build -S .
  13. @cmake --build build -j$(nproc)
  14. install:
  15. cmake --install build
  16. deploy:
  17. scp -r $(PREFIX)/monitor forlinx@${ADDR}:/userdata/workspace
  18. # 打包:将指定目录下的所有内容打包到压缩包根目录
  19. package:
  20. @mkdir -p packages
  21. @echo "Packaging $(PACKAGE_DIR) -> $(PACKAGE_NAME)"
  22. @tar -zcvf packages/$(PACKAGE_NAME) -C $(PACKAGE_DIR) .
  23. .PHONY: clean
  24. clean:
  25. rm -rf build