52 lines
1.1 KiB
Makefile
52 lines
1.1 KiB
Makefile
# Makefile for Bus Route Management System
|
|
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -g -I./include
|
|
LDFLAGS = -lm
|
|
|
|
# 目录
|
|
SRC_DIR = src
|
|
INC_DIR = include
|
|
OBJ_DIR = obj
|
|
BIN_DIR = bin
|
|
DATA_DIR = data
|
|
|
|
# 源文件和目标文件
|
|
SOURCES = $(wildcard $(SRC_DIR)/*.c)
|
|
OBJECTS = $(SOURCES:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
|
|
TARGET = $(BIN_DIR)/bus_system
|
|
|
|
# 默认目标
|
|
all: directories $(TARGET)
|
|
|
|
# 创建必要的目录
|
|
directories:
|
|
@mkdir -p $(OBJ_DIR)
|
|
@mkdir -p $(BIN_DIR)
|
|
@mkdir -p $(DATA_DIR)
|
|
|
|
# 链接目标文件生成可执行文件
|
|
$(TARGET): $(OBJECTS)
|
|
$(CC) $(OBJECTS) -o $(TARGET) $(LDFLAGS)
|
|
@cp -r $(DATA_DIR) $(BIN_DIR)
|
|
@echo "build successful: $(TARGET)"
|
|
|
|
# 编译源文件为目标文件
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# 清理编译文件
|
|
clean:
|
|
rm -rf $(OBJ_DIR) $(BIN_DIR)
|
|
@echo "clean over"
|
|
|
|
# 运行程序
|
|
run: $(TARGET)
|
|
@cp -r $(DATA_DIR) $(BIN_DIR)
|
|
@cd $(BIN_DIR) && ./bus_system
|
|
|
|
# 安装数据文件(如果需要)
|
|
install-data:
|
|
@echo "请确保 data/ 目录包含 stations.csv 和 routes.csv"
|
|
|
|
.PHONY: all clean run directories install-data |