diff --git a/Makefile b/Makefile index a282cea..251f4e0 100644 --- a/Makefile +++ b/Makefile @@ -4,20 +4,26 @@ include ./make.h -all: fork execlp +# 目标和源文件 +TARGETS = fork execlp +SOURCES = $(wildcard $(SRC_DIR)/*.c) # 找到所有的 .c 文件 +OBJECTS = $(patsubst $(SRC_DIR)/%.c,%.o,$(SOURCES)) # 将 .c 替换为 .o -fork: fork.o - $(CC) -o fork fork.o +# 默认目标 +all: $(TARGETS) - -execlp: execlp.o - $(CC) -o execlp execlp.o - - -.c.o: - $(CC) $(CFLAGS) $(COMMON_INCLUDE_DIRS) -c $(SRC_DIR)/*.c - -clean: - $(RM) -rf fork execlp *.o +# 链接目标文件生成可执行文件 +fork: fork.o + $(CC) -o fork fork.o + +execlp: execlp.o + $(CC) -o execlp execlp.o + +# 从 .c 文件编译生成 .o 文件 +%.o: $(SRC_DIR)/%.c + $(CC) $(CFLAGS) $(COMMON_INCLUDE_DIRS) -c $< -o $@ + +clean: + $(RM) -f $(TARGETS) $(OBJECTS)