VERSION := 0.0.4 INSTL_DIRS := /usr/local/bin CONF_NAME := init.txt CONF_DIR := /etc/pmc SRV_NAME := pmcd.service SRV_DIR := /etc/systemd/system CPP:= g++ INCS:= -I include/ LIBS := -lpthread -lssl -lcrypto -lboost_program_options -lboost_json -lboost_thread CPPFLAGS := --std=c++20 -O3 -pipe #-Wall -Werror BUILD_DIR = build $(shell mkdir -p $(BUILD_DIR)) #----------- #$(BUILD_DIR)/libpmc.so: $(BUILD_DIR)/ansi.o $(BUILD_DIR)/utf8.o $(BUILD_DIR)/fsm.o $(BUILD_DIR)/Color.o $(BUILD_DIR)/Matrix.o # $(CPP) -shared -fPIC $^ $(LIBS) -o $@ #pmc: $(BUILD_DIR)/main.o $(BUILD_DIR)/fsm.o $(BUILD_DIR)/Thread.o $(BUILD_DIR)/HttpServer.o # $(CPP) $^ $(LIBS) -o $@ lci: $(BUILD_DIR)/mainLci.o $(BUILD_DIR)/ansi.o $(BUILD_DIR)/utf8.o $(BUILD_DIR)/fsm.o $(BUILD_DIR)/Color.o $(BUILD_DIR)/ku500.o $(BUILD_DIR)/CommonThread.o $(BUILD_DIR)/Drawable.o $(BUILD_DIR)/Area.o $(BUILD_DIR)/FrameBuf.o $(BUILD_DIR)/mem.o $(BUILD_DIR)/I2C.o $(BUILD_DIR)/PCA9685.o $(BUILD_DIR)/MPU6050.o $(BUILD_DIR)/Matrix.o $(BUILD_DIR)/NeuralNetwork.o $(BUILD_DIR)/NNBuilder.o $(BUILD_DIR)/ILayer.o $(BUILD_DIR)/Thread.o $(CPP) $^ $(LIBS) -ljpeg -lpng -o $@ agent: agent: $(BUILD_DIR)/mainAgent.o $(BUILD_DIR)/WebSocketClient.o $(CPP) $^ $(LIBS) -lcurl -o $@ nn: nn: $(BUILD_DIR)/mainNn.o $(BUILD_DIR)/Camera.o $(BUILD_DIR)/NeuralNetwork.o $(BUILD_DIR)/Matrix.o $(BUILD_DIR)/ILayer.o $(BUILD_DIR)/NNBuilder.o $(CPP) $^ $(LIBS) -ljpeg -o $@ camera: camera: $(BUILD_DIR)/mainCamera.o $(BUILD_DIR)/Camera.o $(CPP) $^ $(LIBS) -ljpeg -o $@ $(BUILD_DIR)/mainLci.o: src/mainLci.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/mainMybot.o: src/mainMybot.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/mainAgent.o: src/mainAgent.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/mainNn.o: src/mainNn.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/mainCamera.o: src/mainCamera.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/main.o: src/main.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/ansi.o: src/lci/ansi.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/utf8.o: src/lci/utf8.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/fsm.o: src/lci/fsm.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Color.o: src/lci/Color.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/ku500.o: src/lci/ku500.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/CommonThread.o: src/lci/CommonThread.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Drawable.o: src/lci/Drawable.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Area.o: src/lci/Area.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ #$(BUILD_DIR)/CmdArea.o: src/lci/CmdArea.cpp # $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ #$(BUILD_DIR)/InputBox.o: src/lci/InputBox.cpp # $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ #$(BUILD_DIR)/KeyboardEvent.o: src/lci/KeyboardEvent.cpp # $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/FrameBuf.o: src/lci/FrameBuf.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/mem.o: src/hd/mem.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/I2C.o: src/hd/I2C.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/PCA9685.o: src/hd/PCA9685.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/MPU6050.o: src/hd/MPU6050.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Camera.o: src/hd/Camera.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Matrix.o: src/nn/Matrix.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/NeuralNetwork.o: src/nn/NeuralNetwork.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/NNBuilder.o: src/nn/NNBuilder.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/ILayer.o: src/nn/ILayer.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/Thread.o: src/th/Thread.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/LciTask.o: src/LciTask.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/HttpServer.o: src/net/HttpServer.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ $(BUILD_DIR)/WebSocketClient.o: src/net/WebSocketClient.cpp $(CPP) $(CPPFLAGS) -c $^ $(INCS) -o $@ install: $(APP_NAME) @echo "正在安装 $(APP_NAME) 到$(INSTL_DIRS)" @ #@mkdir -p $(INSTL_DIRS) @cp -f pmc $(INSTL_DIRS) #@chmod 755 $(INSTL_DIRS)/pmcd @ @echo "正在配置 $(APP_NAME)" @mkdir -p $(CONF_DIR) @cp $(CONF_NAME) $(CONF_DIR)/$(CONF_NAME) @cp $(SRV_NAME) $(SRV_DIR)/$(SRV_NAME) @systemctl daemon-reload @systemctl enable $(SRV_NAME) @systemctl restart $(SRV_NAME) @ @echo "安装完成!" uninstall: @echo "正在从 $(INSTL_DIRS) 卸载 $(APP_NAME)" @ @rm -f $(INSTL_DIRS)/pmc #@rm -f $(CONF_DIRS)/$(CONF_NAME) @ @systemctl stop $(SRV_NAME) @systemctl disable $(SRV_NAME) @rm -f $(SRV_DIRS)/$(SRV_NAME) @systemctl daemon-reload @ @echo "卸载完成!" clean: @rm -rvf $(BUILD_DIR) @rm -vf lci pmc mybot agent nn