Files
base/Makefile

64 lines
1.2 KiB
Makefile
Raw Normal View History

#
# Makefile for base example
#
include ./make.h
# 目标和源文件
2025-10-21 14:36:58 +08:00
TARGETS = fork execlp getSum
SOURCES = $(wildcard $(SRC_DIR)/*.c) # 找到所有的 .c 文件
OBJECTS = $(patsubst $(SRC_DIR)/%.c,%.o,$(SOURCES)) # 将 .c 替换为 .o
2025-10-19 11:44:16 +00:00
# 调试标志
DEBUG_FLAGS = -g -O0
CFLAGS += $(DEBUG_FLAGS) # 确保包含调试信息
# 默认目标
2025-10-19 11:44:16 +00:00
all: $(TARGETS)
# 调试目标与preLaunchTask对应
debug: CFLAGS += -DDEBUG -Wall -Wextra
debug: $(TARGETS)
2025-10-19 11:44:16 +00:00
# 链接目标文件生成可执行文件
fork: fork.o
$(CC) -o fork fork.o
execlp: execlp.o
$(CC) -o execlp execlp.o
2025-10-21 14:36:58 +08:00
getSum: getSum.o
$(CC) -o getSum getSum.o
2025-10-19 11:44:16 +00:00
# 从 .c 文件编译生成 .o 文件
%.o: $(SRC_DIR)/%.c
$(CC) $(CFLAGS) $(COMMON_INCLUDE_DIRS) -c $< -o $@
2025-10-19 11:44:16 +00:00
# 清理目标
clean:
2025-10-19 11:44:16 +00:00
$(RM) -f $(TARGETS) $(OBJECTS) *.o
# 运行目标
run-fork: fork
./fork
run-execlp: execlp
./execlp
# GDB调试目标
gdb-fork: fork
gdb ./fork
gdb-execlp: execlp
gdb ./execlp
2025-10-21 19:36:50 +08:00
gdb-fork: fork
gdb ./fork
gdb-execlp: getSum
gdb ./getSum
2025-10-19 11:44:16 +00:00
# 安装目录结构(如果需要)
install-dirs:
mkdir -p $(SRC_DIR) $(BUILD_DIR)
2025-10-19 11:44:16 +00:00
.PHONY: all debug clean run-fork run-execlp gdb-fork gdb-execlp install-dirs