X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2FMakefile;h=f634296e13e0ff84812ca307e630b217d7a07607;hb=b673c50e011ccbc96146ed5533da9c508fcc8533;hp=f40ada2966c14b4c33ee06d2f5f2ae02ed648949;hpb=881aea4bdbd831b4c5833a697d64b0a4bd7962ee;p=rocksndiamonds.git diff --git a/src/Makefile b/src/Makefile index f40ada29..f634296e 100644 --- a/src/Makefile +++ b/src/Makefile @@ -62,10 +62,12 @@ endif ifeq ($(PLATFORM),emscripten) # compiling with Emscripten PROGNAME = ../$(PROGBASE).js +DATA_FILE = $(PROGBASE).data CC = emcc AR = emar RANLIB = emranlib STRIP = true +FILE_PACKAGER = file_packager endif ifeq ($(shell uname -s),Darwin) # compiling on Mac OS X @@ -97,10 +99,12 @@ endif ifeq ($(TARGET),sdl2) # compiling for SDL2 target 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"]' +SDL_LIBS = -s USE_SDL_IMAGE=2 -s USE_SDL_MIXER=2 -s USE_SDL_NET=2 -s USE_MODPLUG=1 -s USE_MPG123=1 -s USE_ZLIB=1 +SDL_FMTS = -s SDL2_IMAGE_FORMATS='["bmp","png","pcx","xpm"]' -s SDL2_MIXER_FORMATS='["mod","mp3"]' 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 +EXTRA_LDFLAGS = $(SDL_FMTS) -s INITIAL_MEMORY=81920000 -s ALLOW_MEMORY_GROWTH=1 -s FORCE_FILESYSTEM -s NO_EXIT_RUNTIME=0 -s ASYNCIFY -O2 -lidbfs.js +DATA_DIRS = conf docs levels graphics sounds music +FILE_PACKAGER_ARGS = --preload $(DATA_DIRS) --js-output=$(DATA_FILE).js else SDL_LIBS = -lSDL2_image -lSDL2_mixer -lSDL2_net endif @@ -114,15 +118,11 @@ endif # configuring compile-time definitions # ----------------------------------------------------------------------------- -ifdef RO_GAME_DIR # path to read-only game data specified -CONFIG_RO_GAME_DIR = -DRO_GAME_DIR="\"$(RO_GAME_DIR)\"" +ifdef BASE_PATH # path to read-only game data +CONFIG_BASE_PATH = -DBASE_PATH="\"$(BASE_PATH)\"" endif -ifdef RW_GAME_DIR # path to writable game data specified -CONFIG_RW_GAME_DIR = -DRW_GAME_DIR="\"$(RW_GAME_DIR)\"" -endif - -CONFIG = $(CONFIG_RO_GAME_DIR) $(CONFIG_RW_GAME_DIR) $(JOYSTICK) +CONFIG = $(CONFIG_BASE_PATH) $(JOYSTICK) DEBUG = -DDEBUG -g @@ -137,6 +137,10 @@ OPTIONS = $(DEBUG) -Wall -Wstrict-prototypes -Wmissing-prototypes # OPTIONS = -O2 -Wall # OPTIONS = -O2 +ifdef BUILD_TEST # test build +OPTIONS := $(OPTIONS) -DTESTING +endif + ifdef BUILD_DIST # distribution build SYS_LDFLAGS := $(shell echo $(SYS_LDFLAGS) | \ sed -e "s%-rpath,[^ ]*%-rpath,'\$$ORIGIN/lib'%") @@ -162,6 +166,7 @@ SRCS = main.c \ files.c \ tape.c \ anim.c \ + api.c \ network.c \ netserv.c @@ -180,6 +185,7 @@ OBJS = main.o \ files.o \ tape.o \ anim.o \ + api.o \ network.o \ netserv.o @@ -192,6 +198,8 @@ CNFS = conf_gfx.h \ conf_cus.h \ conf_grp.c \ conf_grp.h \ + conf_emp.c \ + conf_emp.h \ conf_e2g.c \ conf_esg.c \ conf_e2s.c \ @@ -255,6 +263,9 @@ $(PROGNAME): $(RNDLIBS) $(TIMESTAMP_FILE) $(COMMIT_HASH_FILE) $(OBJS) $(ICON) ifdef BUILD_DIST $(STRIP) $(PROGNAME) endif +ifeq ($(PLATFORM),emscripten) + (cd .. ; $(FILE_PACKAGER) $(DATA_FILE) $(FILE_PACKAGER_ARGS)) +endif libgame_dir: @$(MAKE) -C $(LIBGAME_DIR) @@ -305,6 +316,8 @@ conf-hash: @echo '#define SOURCE_HASH_STRING "$(SOURCE_HASH_STRING)"' \ > $(COMMIT_HASH_FILE) +config.o: config.c $(TIMESTAMP_FILE) + $(TIMESTAMP_FILE): $(SRCS) $(RNDLIBS) @$(MAKE) conf-time