编写一个简单的 Makefile 模板,用于了解并熟悉 Make 的工作原理。
Step1. 建立目录结构
.
├── Makefile
├── obj
└── src
├── app
│ └── app.c
└── common
└── common.c
Step2. 编写 Makefile
SOURCES :=
SOURCES += src/app/app.c \
src/common/common.c
OBJ_DIR := obj
vpath %.c $(dir $(SOURCES))
vpath %.o $(OBJ_DIR)
OBJS := $(addprefix $(OBJ_DIR)/, $(notdir $(SOURCES)))
override OBJS := $(OBJS:.c=.o)
$(OBJ_DIR)/%.o: %.c
@touch $@
@echo $@ depends on $<
all: $(OBJS)
Step3. 执行 Makefile, 输出如下.
obj/app.o depends on src/app/app.c
obj/common.o depends on src/common/common.c
目录obj下生成了文件:
.
├── Makefile
├── obj
│ ├── app.o
│ └── common.o
└── src
├── app
│ └── app.c
└── common
└── common.c