AR = ar
RANLIB = ranlib
ETAGS = etags
+STRIP = strip
RM = rm -f
CONVERT = convert
EXTRA_LDFLAGS = -lshfolder -lwsock32
endif
+ifeq ($(PLATFORM),emscripten) # compiling with Emscripten
+PROGNAME = ../$(PROGBASE).js
+CC = emcc
+AR = emar
+RANLIB = emranlib
+STRIP = true
+endif
+
ifdef BUILD_DIST # distribution build
ifeq ($(shell uname -s),Darwin) # compiling on Mac OS X
MAC_TARGET_VERSION_MIN = 10.7
# $(info Using SDL version $(SDL_VERSION) [TARGET == $(TARGET)])
ifeq ($(TARGET),sdl2) # compiling for SDL2 target
-SYS_CFLAGS = -DTARGET_SDL2 $(shell sdl2-config --cflags)
+ifeq ($(PLATFORM),emscripten)
+SDL_LIBS = -s USE_SDL_IMAGE=2 -s USE_SDL_MIXER=2 -s USE_SDL_NET=2 -s USE_ZLIB=1
+SDL_FMTS = -s SDL2_IMAGE_FORMATS='["bmp","png","pcx","xpm"]'
+EXTRA_CFLAGS = $(SDL_LIBS)
+EXTRA_LDFLAGS = $(SDL_FMTS) -s INITIAL_MEMORY=81920000 -s ALLOW_MEMORY_GROWTH=1 --preload-file ../graphics/ --preload-file ../sounds/ --preload-file ../levels/ --preload-file ../music/ -s NO_EXIT_RUNTIME=0 -s ASYNCIFY -O2 -lidbfs.js
+else
SDL_LIBS = -lSDL2_image -lSDL2_mixer -lSDL2_net
-SYS_LDFLAGS = $(SDL_LIBS) $(shell sdl2-config --libs)
+endif
+
+SYS_CFLAGS := -DTARGET_SDL2 $(shell sdl2-config --cflags)
+SYS_LDFLAGS := $(SDL_LIBS) $(shell sdl2-config --libs) -lm -lz
endif
endif
CFLAGS = $(OPTIONS) $(SYS_CFLAGS) $(EXTRA_CFLAGS) $(CONFIG)
-LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS) -lm -lz
+LDFLAGS = $(SYS_LDFLAGS) $(EXTRA_LDFLAGS)
SRCS = main.c \
$(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(COMMIT_HASH_FILE) $(OBJS) $(ICON)
$(CC) $(PROFILING) $(OBJS) $(ICON) $(RNDLIBS) $(LDFLAGS) -o $(PROGNAME)
ifdef BUILD_DIST
- strip $(PROGNAME)
+ $(STRIP) $(PROGNAME)
endif
libgame_dir:
clean-bin:
$(RM) $(PROGNAME)
- $(RM) ../*.exe
+ $(RM) $(PROGNAME).exe
+ $(RM) $(PROGNAME).js
+ $(RM) $(PROGNAME).wasm
+ $(RM) $(PROGNAME).data
clean: clean-obj clean-ico clean-bin