mirror of
https://github.com/LHY0125/Gobang-Game.git
synced 2026-05-09 18:09:46 +08:00
8bddf6bb37
- 移除SDL3依赖,引入IUP图形界面库 - 更新Makefile以支持IUP编译配置 - 重构GUI模块,移除SDL相关代码 - 更新全局变量和类型定义,移除SDL依赖 - 添加IUP头文件到项目库目录 - 删除手动帧率控制(SDL_Delay),依赖IUP事件循环 - 更新编译脚本和文档说明
96 lines
2.8 KiB
Makefile
96 lines
2.8 KiB
Makefile
# 五子棋游戏 Makefile
|
|
# 支持编译控制台版本和GUI版本 (IUP)
|
|
|
|
# 编译器设置
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -std=c17 -O2 -Iinclude -finput-charset=UTF-8 -fexec-charset=UTF-8
|
|
LDFLAGS = -lws2_32
|
|
|
|
# IUP路径设置
|
|
IUP_PATH = libs/iup-3.31_Win64_dllw6_lib
|
|
IUP_INCLUDE = -I$(IUP_PATH)/include
|
|
# IUP链接库: iup, gdi32, comdlg32, comctl32, uuid, ole32
|
|
IUP_LIBS = -L$(IUP_PATH) -liup -lgdi32 -lcomdlg32 -lcomctl32 -luuid -lole32
|
|
|
|
# 目录设置
|
|
SRC_DIR = src
|
|
OBJ_DIR = obj
|
|
BIN_DIR = bin
|
|
|
|
# 源文件
|
|
COMMON_SOURCES = $(SRC_DIR)/main.c $(SRC_DIR)/gobang.c $(SRC_DIR)/ai.c $(SRC_DIR)/config.c \
|
|
$(SRC_DIR)/game_mode.c $(SRC_DIR)/globals.c $(SRC_DIR)/init_board.c \
|
|
$(SRC_DIR)/network.c $(SRC_DIR)/record.c $(SRC_DIR)/ui.c $(SRC_DIR)/gui.c
|
|
|
|
GUI_SOURCES = $(COMMON_SOURCES)
|
|
CONSOLE_SOURCES = $(COMMON_SOURCES)
|
|
|
|
# 目标文件 (src/xxx.c -> obj/xxx.o)
|
|
COMMON_OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(COMMON_SOURCES))
|
|
|
|
# 可执行文件
|
|
CONSOLE_TARGET = $(BIN_DIR)/gobang_console.exe
|
|
GUI_TARGET = $(BIN_DIR)/gobang_gui.exe
|
|
|
|
# 默认目标
|
|
all: directories $(CONSOLE_TARGET) $(GUI_TARGET)
|
|
|
|
# 创建目录
|
|
directories:
|
|
-mkdir $(OBJ_DIR)
|
|
-mkdir $(BIN_DIR)
|
|
|
|
# 控制台版本
|
|
$(CONSOLE_TARGET): $(COMMON_OBJECTS)
|
|
$(CC) $(CFLAGS) $(IUP_INCLUDE) -o $@ $^ $(IUP_LIBS) $(LDFLAGS)
|
|
|
|
# GUI版本
|
|
$(GUI_TARGET): $(COMMON_OBJECTS)
|
|
$(CC) $(CFLAGS) $(IUP_INCLUDE) -o $@ $^ $(IUP_LIBS) $(LDFLAGS)
|
|
copy $(subst /,\,$(IUP_PATH))\iup.dll $(BIN_DIR) 2>nul || echo Warning: Could not copy iup.dll
|
|
|
|
# 通用目标文件编译规则
|
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
|
$(CC) $(CFLAGS) $(IUP_INCLUDE) -c -o $@ $<
|
|
|
|
# 清理规则
|
|
clean:
|
|
-del /Q $(OBJ_DIR)\*.o $(BIN_DIR)\*.exe $(BIN_DIR)\*.dll
|
|
-rmdir $(OBJ_DIR)
|
|
-rmdir $(BIN_DIR)
|
|
|
|
# 只编译控制台版本
|
|
console: directories $(CONSOLE_TARGET)
|
|
|
|
# 只编译GUI版本
|
|
gui: directories $(GUI_TARGET)
|
|
|
|
# 安装规则(可选)
|
|
install: all
|
|
@echo Installing executables...
|
|
copy $(CONSOLE_TARGET) C:\Program Files\Gobang\ 2>nul || echo Install directory not found
|
|
copy $(GUI_TARGET) C:\Program Files\Gobang\ 2>nul || echo Install directory not found
|
|
|
|
# 运行控制台版本
|
|
run-console: $(CONSOLE_TARGET)
|
|
.\$(CONSOLE_TARGET)
|
|
|
|
# 运行GUI版本
|
|
run-gui: $(GUI_TARGET)
|
|
.\$(GUI_TARGET)
|
|
|
|
# 帮助信息
|
|
help:
|
|
@echo Available targets:
|
|
@echo all - Build both console and GUI versions
|
|
@echo console - Build console version only
|
|
@echo gui - Build GUI version only
|
|
@echo clean - Remove all object files and executables
|
|
@echo run-console - Build and run console version
|
|
@echo run-gui - Build and run GUI version
|
|
@echo install - Install executables to system directory
|
|
@echo help - Show this help message
|
|
|
|
# 声明伪目标
|
|
.PHONY: all clean console gui install run-console run-gui help directories
|