20231023_InSituLab_emb/InsituLabProject_XWJ/DataServicePlatform_0418/makefile
2025-05-07 10:10:07 +08:00

46 lines
1.6 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#指定项目.c存在的文件夹
SRC_DIR= ./src/drv/software ./src/drv/hardware/board ./src/drv/hardware/peripheral ./src/tool ./src/task ./src/app ./src/lib
#设置依赖文件夹搜索顺序,“:”为分隔符
vpath %.c ./src/drv/software: ./src/drv/hardware/board: ./src/drv/hardware/peripheral: ./src/tool: ./src/task: ./src/app: ./src/lib
#输出文件名
OUTPUT:= DataAcquistionSystem
#输出目录
OUTPUT_DIR= ./exe
#使用标准编译,-g:表示可以使用gdb调试,-Wall:所有错误和警告在编译的时候都打出来,-O2:-代码优化
#交叉编译
CC:= aarch64-linux-gnu-gcc
CXX:= aarch64-linux-gnu-g++
#包含路径
INCLUDE_DIR+= -I ./src/drv/software
INCLUDE_DIR+= -I ./src/drv/hardware/board
INCLUDE_DIR+= -I ./src/drv/hardware/peripheral
INCLUDE_DIR+= -I ./src/app
INCLUDE_DIR+= -I ./src/lib
INCLUDE_DIR+= -I ./src/task
INCLUDE_DIR+= -I ./src/tool
#编译链库
LIB:= -lrt -lpthread -lm -ljson-c -lcurl -lnats -lmodbus -lmysqlclient
#遍历所有子目录中的.c文件
SRC = $(foreach dir,$(SRC_DIR),$(wildcard $(dir)/*.c))
#指定.o文件的存放目录
OBJ_DIR = ./obj
#目标文件
OBJ:= $(patsubst %.c,%.o,$(SRC))
#去.o文件地址只保留文件名
OBJ_WITHOUT_DIR = $(notdir $(OBJ))
#将生成的.o文件与指定目录相绑定
OBJ_WITH_DIR = $(addprefix $(OBJ_DIR)/,$(OBJ_WITHOUT_DIR))
#以下不需要变动
all: clean $(OBJ_WITHOUT_DIR) $(OUTPUT)
$(OUTPUT):$(OBJ_WITH_DIR)
$(CC) -Wall -o $(OUTPUT_DIR)/$@ $^ $(LIB_DIR) $(LIB)
%.o:%.c
$(CC) $(INCLUDE_DIR) $(LIB_DIR) $(LIB) -c $< -o $(OBJ_DIR)/$@
clean:
rm -rf $(OUTPUT_DIR)/DataAcquistionSystem $(OBJ_DIR)/*.o
.PHONY: all clean