...
代码块 |
---|
# VPATH 指定所有的源码路径 VPATH := $(SRCDIR) # 提取VPATH路径中的C和C++源文件,注意这里提取的是带完整路径的,也就是不同路径下面有相同名称的源文件也不影响 SOURCES = $(foreach dir,$(VPATH),$(wildcard $(dir)/*)) C_SRCS = $(filter %.c,$(SOURCES)) CPP_SRCS = $(filter %.cpp,$(SOURCES)) # 生成对应的.o和.d文件名称 C_OBJS = $(C_SRCS:%.c=%.o) CPP_OBJS = $(CPP_SRCS:%.cpp=%.o) LIB_OBJS = $(C_OBJS) $(CPP_OBJS) LIB_DEPS = $(LIB_OBJS:.o=.d) # 包含头文件依赖 -include $(LIB_DEPS) # -MMD用于生成.d依赖文件 .c.o: $(CC) $(CFLAGS) -c -MMD -o $@ $< .cpp.o: $(GPP) $(CPPFLAGS) -c -MMD -o $@ $< |
关于隐藏gcc编译参数:
代码块 |
---|
CROSS = arm-linux- CC = @echo " GCC $@"; $(CROSS)gcc .c.o: $(CC) $(CFLAGS) -c -MMD -o $@ $< |
以上只会显示arm-linux-gcc xx.o,而不会显示CFLAGS。