秦F103机巢代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

128 lines
3.4KB

  1. #Application
  2. TARGET := DroneNest
  3. VERSION := 2.1.2
  4. GATEWAY := 192.168.144.15
  5. RUNPATH := TH-DNest
  6. USER := root
  7. arch = ARM
  8. ver = DEBUG
  9. #source file
  10. SOURCE += $(wildcard ./src/*.cpp)
  11. BLD_DIR := ./build
  12. OBJS = $(patsubst %.cpp,%.o,$(SOURCE))
  13. ALL_OBJS:= $(addprefix $(BLD_DIR)/,$(notdir $(OBJS)))
  14. vpath %.cpp src # 查找依赖时如果遇到%.c,则自动到src目录下寻找 vpath %.c src:src1:src2
  15. #compile and lib parameter
  16. LIBS := -lgflags -lzlog -lpthread -lpaho-mqtt3a -lpaho-mqttpp3 -lmodbus -lmongoose # -lsqlite3 告诉链接器要链接哪些库文件
  17. DEFINES :=
  18. INCLUDE := -I./src -I./inc
  19. LDFLAGS := -L./lib/$(arch)/zlog -L./lib/$(arch)/mqtt -L./lib/$(arch)/libmodbus -L./lib/$(arch)/gflags -L./lib/$(arch)/http -L./lib/$(arch)/sqlite # 用到的一些优化參数,也能够在里面指定库文件的位置
  20. CFLAGS := -Wall -g -std=c++11 $(DEFINES) $(INCLUDE) # 指定头文件(.h)的路径
  21. ifeq ($(ver),DEBUG)
  22. # 表示用于C++编译器的选项
  23. CXXFLAGS:= $(CFLAGS) -D DEBUG -D SOFTWAREREV=\"$(VERSION)\"
  24. else
  25. CXXFLAGS:= $(CFLAGS) -O2
  26. endif
  27. ifeq ($(arch),ARM)
  28. CC := arm-linux-gnueabihf-g++
  29. else
  30. CC := g++
  31. CXXFLAGS += -D $(arch)
  32. endif
  33. # 最终目标
  34. all: $(BLD_DIR) $(TARGET)
  35. # @echo ${OBJS}
  36. # @echo ${ALL_OBJS}
  37. $(BLD_DIR):
  38. mkdir $(BLD_DIR)
  39. $(TARGET):$(ALL_OBJS)
  40. $(CC) $(CXXFLAGS) $^ $(LIBS) $(LDFLAGS) -o $@
  41. @echo "**********************"
  42. @echo "***build successful***"
  43. @echo "**********************"
  44. $(BLD_DIR)/%.o:%.cpp
  45. $(CC) -c $(CXXFLAGS) $< -o $(BLD_DIR)/$(notdir $@)
  46. .PHONY:clean
  47. clean:
  48. rm -rf $(TARGET)
  49. rm -rf $(BLD_DIR)
  50. rm -rf $(RUNPATH)
  51. # rm -rf $(OBJS)
  52. tool:
  53. $(CC) $(CXXFLAGS) src/tools/serialport.cpp -o src/tools/sp -lmodbus -L./lib/$(arch)/libmodbus
  54. toolinstall:
  55. scp -rp src/tools/sp $(USER)@$(GATEWAY):/$(USER)
  56. install:
  57. mkdir -p $(RUNPATH)
  58. mkdir -p $(RUNPATH)/lib
  59. mkdir -p $(RUNPATH)/logs
  60. mkdir -p $(RUNPATH)/web
  61. cp zlog.conf ./$(RUNPATH)
  62. cp nginx.conf ./$(RUNPATH)
  63. cp $(TARGET) ./$(RUNPATH)
  64. cp -r ./web/* ./$(RUNPATH)/web
  65. cp ./lib/$(arch)/zlog/* ./$(RUNPATH)/lib
  66. cp ./lib/$(arch)/mqtt/* ./$(RUNPATH)/lib
  67. cp ./lib/$(arch)/libmodbus/* ./$(RUNPATH)/lib
  68. cp ./lib/$(arch)/gflags/* ./$(RUNPATH)/lib
  69. cp ./lib/$(arch)/http/* ./$(RUNPATH)/lib
  70. cp ./lib/$(arch)/sqlite/* ./$(RUNPATH)/lib
  71. cp ./dnest_daemon.sh $(RUNPATH)
  72. cp ./start.sh $(RUNPATH)
  73. cp ./stop.sh $(RUNPATH)
  74. cp ./install.sh $(RUNPATH)
  75. cp ./S99TH.sh $(RUNPATH)
  76. cp ./restart.sh $(RUNPATH)
  77. # cp ./DroneNest.conf $(RUNPATH)
  78. scp -rp $(RUNPATH) $(USER)@$(GATEWAY):/$(USER)
  79. installapp:
  80. scp -rp $(TARGET) $(USER)@$(GATEWAY):/$(USER)/$(RUNPATH)
  81. pack:
  82. mkdir -p $(RUNPATH)
  83. mkdir -p $(RUNPATH)/lib
  84. mkdir -p $(RUNPATH)/logs
  85. mkdir -p $(RUNPATH)/web
  86. mkdir -p $(RUNPATH)/default-cfg
  87. cp zlog.conf ./$(RUNPATH)
  88. cp nginx.conf ./$(RUNPATH)
  89. cp $(TARGET) ./$(RUNPATH)
  90. cp ./lib/$(arch)/zlog/* ./$(RUNPATH)/lib
  91. cp ./lib/$(arch)/mqtt/* ./$(RUNPATH)/lib
  92. cp ./lib/$(arch)/libmodbus/* ./$(RUNPATH)/lib
  93. cp ./lib/$(arch)/gflags/* ./$(RUNPATH)/lib
  94. cp ./lib/$(arch)/http/* ./$(RUNPATH)/lib
  95. cp ./lib/$(arch)/sqlite/* ./$(RUNPATH)/lib
  96. cp -r ./web/* ./$(RUNPATH)/web
  97. cp ./dnest_daemon.sh $(RUNPATH)
  98. cp ./start.sh $(RUNPATH)
  99. cp ./stop.sh $(RUNPATH)
  100. cp ./install.sh $(RUNPATH)
  101. cp ./S99TH.sh $(RUNPATH)
  102. cp ./restart.sh $(RUNPATH)
  103. cp ./DroneNest.conf $(RUNPATH)/default-cfg
  104. cp ./README.txt $(RUNPATH)
  105. tar -czvf DNest_$(VERSION)_.tar.gz $(RUNPATH)/*
  106. installcfg:
  107. scp -rp ./DroneNest.conf $(USER)@$(GATEWAY):/$(USER)/$(RUNPATH)