Files
smart_wasm/Makefile
2026-06-01 15:55:59 +08:00

55 lines
1.5 KiB
Makefile

# Makefile for Smart WASM JSON Project
# 配置
EMSDK_PATH = E:/emsdk
EMCC = $(EMSDK_PATH)/upstream/emscripten/em++.bat
SOURCES = src/main.cpp src/math_utils.cpp src/smart_json_wrapper.cpp
INCLUDES = -I./src
OUTPUT = public/wasm/smart_math.js
FLAGS = -std=c++17 -O3
# WASM 编译选项
WASM_FLAGS = \
-s WASM=1 \
-s EXPORTED_FUNCTIONS='["_smart_process_json","_smart_get_function_list","_smart_get_function_info","_smart_test_match","_smart_get_version","_smart_free_string","_malloc","_free"]' \
-s EXPORTED_RUNTIME_METHODS='["ccall","cwrap","UTF8ToString","stringToUTF8","lengthBytesUTF8"]' \
-s MODULARIZE=1 \
-s EXPORT_NAME='createSmartMathModule' \
-s ALLOW_MEMORY_GROWTH=1 \
-s ENVIRONMENT='web' \
-s ASSERTIONS=1
# 默认目标
all: build
# 构建 WASM
build: $(SOURCES)
@echo "Building Smart WASM JSON Module..."
$(EMCC) $(SOURCES) $(INCLUDES) $(FLAGS) $(WASM_FLAGS) -o $(OUTPUT)
@echo "Build complete!"
# 清理
clean:
@echo "Cleaning build files..."
rm -f public/wasm/*.js public/wasm/*.wasm build/*.exe
@echo "Clean complete!"
# 运行本地测试
test: build
@echo "Running local tests..."
g++ -std=c++17 $(INCLUDES) $(SOURCES) tests/test_smart_json.cpp -o build/test_smart.exe
./build/test_smart.exe
# 启动开发服务器
serve: build
@echo "Starting development server..."
cd public && python -m http.server 8080
# 安装依赖
install:
@echo "Please install:"
@echo "1. Emscripten SDK"
@echo "2. Python 3.7+"
@echo "3. Node.js (optional)"
.PHONY: all build clean test serve install