# $(notdir $(CURDIR)) 获取目录名
TARGET = $(notdir $(CURDIR))
CROSS_COMPILE = gcc
COMPILE.c = $(CROSS_COMPILE) -c
LINK.c = $(CROSS_COMPILE)
RM =rm
# $(wildcard src/*.c) :获取src/ 目录下的所有.c文件。
# $(wildcard inc/*.h) :获取inc/ 目录下的所有.h文件。
SOURCES = $(wildcard src/*.c)
HEADERS = $(wildcard inc/*.h)
OBJECT = ./obj
# 静态模式规则。变量OBJFILES集合下的所有.c 替换成 .o文件
OBJFILES = $(SOURCES:%.c=%.o)
.PHONY:clean all install
#all:终极目标
all:$(TARGET)
@echo builded target:$^
@echo builed head:$@
#目标文件依赖规则
$(TARGET): $(OBJFILES)
@echo
@echo Linking $@ from $^...
$(LINK.c) -o $@ $^
@ -mv ./src/*.o ./obj/.
@echo Link finished
#OBJFILES的依赖规则
$(OBJFILES): %.o:%.c
@echo
@echo Compiling $@ from $<...
$(COMPILE.c) -o $@ $<
@echo Compile finished
clean:
@$(RM) -rf $(OBJFILES) $(TARGET) *~ *.d *.o
@$(RM) -rf $(OBJECT)/*.o
@echo Removing generated files...
Makefile模板参考
最新推荐文章于 2021-12-17 16:04:01 发布