From 5186f54c6fb58fa323bc9081921188b2f15c4b4c Mon Sep 17 00:00:00 2001 From: Sean Du Date: Sat, 27 Jun 2026 21:02:24 +0800 Subject: [PATCH] Add distributable package target Signed-off-by: Sean Du --- Makefile | 16 +++++++++++++++- README.md | 7 +++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f4b5af3..7aac33f 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,9 @@ TARGET := build/version.dll HELPER_TARGET := build/cgss-borderless-helper.exe BUILD_DIR := build OBJ_DIR := $(BUILD_DIR)/obj +PACKAGE_DIR := $(BUILD_DIR)/package +PACKAGE_NAME := cgss-dmm-hook +PACKAGE_ROOT := $(PACKAGE_DIR)/$(PACKAGE_NAME) BUILD ?= release CC := x86_64-w64-mingw32-gcc @@ -57,12 +60,13 @@ RC_OBJS := $(patsubst %.rc,$(OBJ_DIR)/%.res,$(RC_SRCS)) HELPER_RC_OBJS := $(patsubst %.rc,$(OBJ_DIR)/%.res,$(HELPER_RC_SRCS)) OBJS := $(C_OBJS) $(CXX_OBJS) $(RC_OBJS) -.PHONY: all release debug clean +.PHONY: all release debug package clean all: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll release: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll debug: $(MAKE) BUILD=debug +package: $(PACKAGE_DIR)/$(PACKAGE_NAME).zip $(TARGET): $(OBJS) $(DEF_FILE) @mkdir -p $(dir $@) @@ -76,6 +80,16 @@ $(BUILD_DIR)/libwinpthread-1.dll: @mkdir -p $(dir $@) cp "$(WINPTHREAD_DLL)" "$@" +$(PACKAGE_DIR)/$(PACKAGE_NAME).zip: $(TARGET) $(HELPER_TARGET) $(BUILD_DIR)/libwinpthread-1.dll config.json.example README.md LICENSE THIRD_PARTY_NOTICES.md + rm -rf "$(PACKAGE_ROOT)" + @mkdir -p "$(PACKAGE_ROOT)" + cp "$(TARGET)" "$(PACKAGE_ROOT)/version.dll" + cp "$(HELPER_TARGET)" "$(PACKAGE_ROOT)/cgss-borderless-helper.exe" + cp "$(BUILD_DIR)/libwinpthread-1.dll" "$(PACKAGE_ROOT)/libwinpthread-1.dll" + cp config.json.example "$(PACKAGE_ROOT)/config.json.example" + cp README.md LICENSE THIRD_PARTY_NOTICES.md "$(PACKAGE_ROOT)/" + cd "$(PACKAGE_DIR)" && zip -qr "$(PACKAGE_NAME).zip" "$(PACKAGE_NAME)" + $(OBJ_DIR)/%.o: %.c @mkdir -p $(dir $@) $(CC) $(CFLAGS) -c $< -o $@ diff --git a/README.md b/README.md index c889a0c..f65efda 100644 --- a/README.md +++ b/README.md @@ -35,10 +35,16 @@ cmake --build build make ``` +生成可分发压缩包: +```sh +make package +``` + **输出** - `build/version.dll` - `build/cgss-borderless-helper.exe` - `build/libwinpthread-1.dll` +- `build/package/cgss-dmm-hook.zip` **config.json** ```json @@ -68,6 +74,7 @@ make - 这样更接近 Borderless Gaming 的工作方式,也能减少退出时的干扰。 - `version.dll` 只在 `imascgstage.exe` 主进程中继续启动 hook 和 helper;被其他进程间接加载时会跳过。 - 不要只单独分发 `version.dll`。当前构建依赖 `libwinpthread-1.dll`,如果目标机器缺少它,Windows 会在进入代理代码前直接拒绝加载,此时通常表现为游戏无法启动,且不会生成任何日志。 +- `make package` 会自动把运行所需文件整理到 `build/package/cgss-dmm-hook/`,并生成 `build/package/cgss-dmm-hook.zip`。 **致谢** - 本项目的 `version.dll` 代理注入思路与运行时 IL2CPP hook 方向,受 `gkms-localify-dmm` 项目启发。