我在这里有简单的makefile:
SOURCES= $(wildcard *.c)
OBJECTS= $(patsubst %.c, %.o, $(SOURCES))
NAMES= $(patsubst %.c, %, $(SOURCES))
CC=gcc
CFLAGS= -Wall -c -o
TASKS_IN_DIRS= $(addprefix obj/,$(OBJECTS)) $(addprefix bin/,$(NAMES))
all: $(NAMES)
$(NAMES): %: %.o $(OBJECTS)
$(CC) -o bin/$@ obj/$^
$(OBJECTS): %.o: %.c
$(CC) $(CFLAGS) obj/$@ $<
clean:
rm -rf $(TASKS_IN_DIRS)
- 获取所有 c 文件名。
- 用它们制作简单的名称(不带扩展名)和对象名称。
- 做事
重要的是 - 一切正常,但每次我打印 make(编译和链接所有文件)时都有效。即使我没有改变任何东西并且我连续做了几次,依赖关系有问题吗?
我期望像“blabla 是最新的”这样的东西。