| # |
| # 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 -s NO_FILESYSTEM=1 |
| #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 |