# # Makefile to use with emscripten # See https://emscripten.org/docs/getting_started/downloads.html # for installation instructions. This Makefile assumes you have # loaded emscripten's environment. # # Running `make` will produce three files: # - example_emscripten.html # - example_emscripten.js # - example_emscripten.wasm # # All three are needed to run the demo. CC = emcc CXX = em++ EXE = example_emscripten.html SOURCES = main.cpp SOURCES += ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp ../../imgui_widgets.cpp OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) UNAME_S := $(shell uname -s) EMS = -s USE_SDL=2 -s WASM=1 EMS += -s ALLOW_MEMORY_GROWTH=1 -s BINARYEN_TRAP_MODE=clamp EMS += -s DISABLE_EXCEPTION_CATCHING=1 -s NO_EXIT_RUNTIME=0 EMS += -s ASSERTIONS=1 #EMS += -s NO_FILESYSTEM=1 ## Getting "error: undefined symbol: $FS" if filesystem is removed #EMS += -s SAFE_HEAP=1 ## Adds overhead CPPFLAGS = -I../ -I../../ #CPPFLAGS += -g CPPFLAGS += -Wall -Wformat -Os CPPFLAGS += $(EMS) LIBS = $(EMS) LDFLAGS = --shell-file shell_minimal.html ##--------------------------------------------------------------------- ## BUILD RULES ##--------------------------------------------------------------------- %.o:%.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< %.o:../%.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< %.o:../../%.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $< %.o:../libs/gl3w/GL/%.c $(CC) $(CPPFLAGS) $(CFLAGS) -c -o $@ $< all: $(EXE) @echo Build complete for $(EXE) $(EXE): $(OBJS) $(CXX) -o $@ $^ $(LIBS) $(LDFLAGS) clean: rm -f $(EXE) $(OBJS) *.js *.wasm *.wasm.pre