1 CC = gcc 2 3 CFLAGS = -Wall -g 4 LDFLAGS = 5 6 SRC_DIR = src 7 INC_DIR = inc 8 OBJ_DIR = obj 9 10 SRC = $(wildcard *.c) $(wildcard $(SRC_DIR)/*.c) 11 INC = $(wildcard *.h) $(wildcard $(INC_DIR)/*.h) 12 INCLUDE = -I$(INC_DIR) 13 #DIR = $(notdir$(SRC)) 14 OBJ = $(addprefix $(OBJ_DIR)/,$(notdir $(patsubst %.c,%.o,$(SRC)))) 15 16 VPATH = src:inc 17 #TARGET = $(addprefix $(OBJ_DIR)/,serv_test1) 18 TARGET = serv_test1 19 20 all: $(TARGET) 21 22 $(TARGET):$(OBJ) 23 $(CC) $^ -o $@ 24 25 $(OBJ_DIR)/%.o:$(SRC) 26 mkdir -p $(OBJ_DIR) 27 $(CC) $(INCLUDE) -c $(CFLAGS) $< -o $@ 28 29 clean: 30 rm -rf $(OBJ_DIR) 31 rm -f $(TARGET)
文件结构:
1 . 2 ├── inc 3 │ └── serv_test1.h 4 ├── Makefile 5 ├── obj 6 │ └── serv_test1.o 7 ├── serv_test1 8 ├── src 9 │ └── serv_test1.c 10 └
其中obj是自动生成的临时文件,serv_test1是可执行文件