55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
#
 | 
						||
# Makefile for base example
 | 
						||
#
 | 
						||
include ./make.h
 | 
						||
 | 
						||
# 目标和源文件  
 | 
						||
TARGETS  = fork execlp  
 | 
						||
SOURCES  = $(wildcard $(SRC_DIR)/*.c)  # 找到所有的 .c 文件  
 | 
						||
OBJECTS  = $(patsubst $(SRC_DIR)/%.c,%.o,$(SOURCES)) # 将 .c 替换为 .o  
 | 
						||
 | 
						||
# 调试标志
 | 
						||
DEBUG_FLAGS = -g -O0
 | 
						||
CFLAGS += $(DEBUG_FLAGS)  # 确保包含调试信息
 | 
						||
 | 
						||
# 默认目标  
 | 
						||
all: $(TARGETS)
 | 
						||
 | 
						||
# 调试目标(与preLaunchTask对应)
 | 
						||
debug: CFLAGS += -DDEBUG -Wall -Wextra
 | 
						||
debug: $(TARGETS)
 | 
						||
 | 
						||
# 链接目标文件生成可执行文件  
 | 
						||
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) *.o
 | 
						||
 | 
						||
# 运行目标
 | 
						||
run-fork: fork
 | 
						||
	./fork
 | 
						||
 | 
						||
run-execlp: execlp
 | 
						||
	./execlp
 | 
						||
 | 
						||
# GDB调试目标
 | 
						||
gdb-fork: fork
 | 
						||
	gdb ./fork
 | 
						||
 | 
						||
gdb-execlp: execlp
 | 
						||
	gdb ./execlp
 | 
						||
 | 
						||
# 安装目录结构(如果需要)
 | 
						||
install-dirs:
 | 
						||
	mkdir -p $(SRC_DIR) $(BUILD_DIR)
 | 
						||
 | 
						||
.PHONY: all debug clean run-fork run-execlp gdb-fork gdb-execlp install-dirs |