pcbjam/tests/gal-regression/wasm/Makefile

62 lines
1.4 KiB
Makefile
Raw Normal View History

# Makefile for GAL WebGL Test (WASM)
#
# Uses direct em++ calls like tests/apps/Makefile.wasm
# Avoids emcmake/cmake which require Python 3.10+
#
# Usage:
# make # Build
# make clean # Clean build artifacts
# make DEBUG=1 # Debug build with source maps
CXX = em++
# Output directory
OUTPUT_DIR = ../../apps/gal-webgl
# Debug or Release build
ifdef DEBUG
CXXFLAGS = -g -O0
DEBUG_LDFLAGS = -g -gsource-map
else
CXXFLAGS = -O2
DEBUG_LDFLAGS =
endif
# Emscripten flags for WebGL 2.0
EM_FLAGS = -sUSE_WEBGL2=1 \
-sFULL_ES3=1 \
-sALLOW_MEMORY_GROWTH=1 \
-sEXPORTED_FUNCTIONS=['_main','_runScenario','_getTotalScenarios','_getCurrentScenario','_getCanvasWidth','_getCanvasHeight'] \
-sEXPORTED_RUNTIME_METHODS=['ccall','cwrap'] \
-sMODULARIZE=1 \
-sEXPORT_NAME='createGALTest' \
-sENVIRONMENT=web
LDFLAGS = $(DEBUG_LDFLAGS) $(EM_FLAGS)
# Source files
SRCS = gal_webgl_test.cpp
OBJS = $(SRCS:.cpp=.o)
# Target
TARGET = $(OUTPUT_DIR)/gal_webgl_test.js
all: $(OUTPUT_DIR) $(TARGET)
$(OUTPUT_DIR):
mkdir -p $(OUTPUT_DIR)
%.o: %.cpp
$(CXX) -c $(CXXFLAGS) $< -o $@
$(TARGET): $(OBJS)
$(CXX) $(OBJS) $(LDFLAGS) -o $@
cp gal_webgl_test.html $(OUTPUT_DIR)/
clean:
rm -f $(OBJS)
rm -f $(OUTPUT_DIR)/gal_webgl_test.js
rm -f $(OUTPUT_DIR)/gal_webgl_test.wasm
rm -f $(OUTPUT_DIR)/gal_webgl_test.html
.PHONY: all clean