mirror of
https://github.com/libretro/RetroArch.git
synced 2024-11-24 16:39:43 +00:00
51d238875e
ever implemented for OpenGL2 driver, lots of code debt, best to instead just keep improving the overlay system instead which is already available for most video drivers
142 lines
3.1 KiB
Makefile
142 lines
3.1 KiB
Makefile
HAVE_STATIC_DUMMY ?= 0
|
|
ifeq ($(TARGET),)
|
|
ifeq ($(LIBRETRO),)
|
|
TARGET := retroarch.js
|
|
else
|
|
TARGET := $(LIBRETRO)_libretro.js
|
|
endif
|
|
endif
|
|
|
|
EOPT = USE_ZLIB=1 # Emscripten specific options
|
|
EOPTS = $(addprefix -s $(EMPTY), $(EOPT)) # Add '-s ' to each option
|
|
|
|
PTHREAD = 0
|
|
OS = Emscripten
|
|
OBJ :=
|
|
DEFINES := -DRARCH_INTERNAL -DHAVE_MAIN -s USE_PTHREADS=$(PTHREAD)
|
|
DEFINES += -DHAVE_FILTERS_BUILTIN
|
|
|
|
HAVE_PATCH = 1
|
|
HAVE_DSP_FILTER = 1
|
|
HAVE_VIDEO_FILTER = 1
|
|
HAVE_OVERLAY = 1
|
|
HAVE_GLSL = 1
|
|
HAVE_SCREENSHOTS = 1
|
|
HAVE_REWIND = 1
|
|
HAVE_AUDIOMIXER = 1
|
|
HAVE_CC_RESAMPLER = 1
|
|
HAVE_EGL = 1
|
|
HAVE_OPENGLES = 1
|
|
HAVE_RJPEG = 0
|
|
HAVE_RPNG = 1
|
|
HAVE_EMSCRIPTEN = 1
|
|
HAVE_MENU = 1
|
|
HAVE_GFX_WIDGETS = 1
|
|
HAVE_RGUI = 1
|
|
HAVE_SDL = 0
|
|
HAVE_SDL2 = 0
|
|
HAVE_ZLIB = 1
|
|
HAVE_SHADERPIPELINE = 1
|
|
HAVE_STATIC_VIDEO_FILTERS = 1
|
|
HAVE_STATIC_AUDIO_FILTERS = 1
|
|
HAVE_STB_FONT = 1
|
|
HAVE_CONFIGFILE = 1
|
|
HAVE_CHEATS = 1
|
|
HAVE_IBXM = 1
|
|
HAVE_CORE_INFO_CACHE = 1
|
|
HAVE_7ZIP = 1
|
|
HAVE_BSV_MOVIE = 1
|
|
|
|
ASYNC ?= 0
|
|
ifeq ($(LIBRETRO), mupen64plus)
|
|
ASYNC = 1
|
|
endif
|
|
|
|
LTO ?= 0
|
|
ifeq ($(LIBRETRO), tyrquake)
|
|
LTO = 0
|
|
endif
|
|
|
|
MEMORY ?= 134217728
|
|
|
|
PRECISE_F32 = 1
|
|
|
|
OBJDIR := obj-emscripten
|
|
|
|
#if you compile with SDL2 flag add this Emscripten flag "-s USE_SDL=2" to LDFLAGS:
|
|
|
|
LIBS := -s USE_ZLIB=1
|
|
LDFLAGS := -L. --no-heap-copy -s $(LIBS) -s TOTAL_MEMORY=$(MEMORY) -s NO_EXIT_RUNTIME=0 -s FULL_ES2=1 -s "EXTRA_EXPORTED_RUNTIME_METHODS=['callMain']" \
|
|
-s ALLOW_MEMORY_GROWTH=1 -s EXPORTED_FUNCTIONS="['_main', '_malloc', '_cmd_savefiles', '_cmd_save_state', '_cmd_load_state', '_cmd_take_screenshot']" \
|
|
--js-library emscripten/library_rwebaudio.js \
|
|
--js-library emscripten/library_rwebcam.js \
|
|
--js-library emscripten/library_errno_codes.js
|
|
ifneq ($(PTHREAD), 0)
|
|
LDFLAGS += -s USE_PTHREADS=$(PTHREAD) -s PTHREAD_POOL_SIZE=2
|
|
endif
|
|
|
|
ifeq ($(ASYNC), 1)
|
|
LDFLAGS += -s ASYNCIFY=$(ASYNC)
|
|
endif
|
|
|
|
ifeq ($(HAVE_SDL2), 1)
|
|
LIBS += -s USE_SDL=2
|
|
DEFINES += -DHAVE_SDL2
|
|
endif
|
|
|
|
include Makefile.common
|
|
|
|
CFLAGS += $(DEF_FLAGS) -Ideps -Ideps/stb
|
|
|
|
libretro :=
|
|
|
|
ifeq ($(HAVE_STATIC_DUMMY),1)
|
|
DEFINES += -DHAVE_STATIC_DUMMY
|
|
else
|
|
libretro += libretro_emscripten.bc
|
|
endif
|
|
|
|
ifneq ($(V), 1)
|
|
Q := @
|
|
endif
|
|
|
|
ifeq ($(DEBUG), 1)
|
|
LDFLAGS += -O0 -g
|
|
CFLAGS += -O0 -g
|
|
else
|
|
LDFLAGS += -O3 -s WASM=1
|
|
# WARNING: some optimizations can break some cores (ex: LTO breaks tyrquake)
|
|
LDFLAGS += -s PRECISE_F32=$(PRECISE_F32)
|
|
ifeq ($(LTO), 1)
|
|
LDFLAGS += --llvm-lto 3
|
|
endif
|
|
CFLAGS += -O3
|
|
endif
|
|
|
|
CFLAGS += -Wall -I. -Ilibretro-common/include -std=gnu99 $(LIBS) \
|
|
-s EXPORTED_FUNCTIONS="['_main', '_malloc', '_cmd_savefiles', '_cmd_save_state', '_cmd_take_screenshot']"
|
|
|
|
RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
|
|
|
|
all: $(TARGET)
|
|
|
|
$(TARGET): $(RARCH_OBJ) $(libretro)
|
|
@$(if $(Q), $(shell echo echo LD $@),)
|
|
$(Q)$(LD) -o $@ $(RARCH_OBJ) $(libretro) $(LIBS) $(LDFLAGS)
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo CC $<),)
|
|
$(Q)$(CC) $(CFLAGS) $(DEFINES) $(EOPTS) -c -o $@ $<
|
|
|
|
$(OBJDIR)/%.o: %.cpp
|
|
@mkdir -p $(dir $@)
|
|
@$(if $(Q), $(shell echo echo CXX $<),)
|
|
$(Q)$(CXX) $(CXXFLAGS) $(DEFINES) $(EOPTS) -c -o $@ $<
|
|
|
|
clean:
|
|
rm -rf $(OBJDIR)
|
|
rm -f $(TARGET)
|
|
|
|
.PHONY: all clean
|