62 lines
1.4 KiB
Makefile
62 lines
1.4 KiB
Makefile
|
|
# 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
|