@@ -26,6 +26,7 @@ SDL2_PREBUILT_ARCHIVE ?= https://github.com/webosbrew/SDL-webOS/releases/downloa
2626APP_PACKAGE_NAME ?= com.retroarch.webos
2727IPK_VERSION := $(shell grep '#define PACKAGE_VERSION' version.all | sed -E 's/.*"([0-9]+\.[0-9]+\.[0-9]+)".*/\1/')
2828
29+ WEBOS = 1
2930DEBUG ?= 0
3031
3132HAVE_CLOUDSYNC = 1
@@ -60,7 +61,7 @@ HAVE_CXX = 1
6061HAVE_DR_MP3 = 1
6162HAVE_DYNAMIC = 1
6263HAVE_DYLIB = 1
63- HAVE_EGL = 0
64+ HAVE_EGL ? = 0
6465HAVE_FREETYPE = 1
6566HAVE_GDI = 0
6667HAVE_GETADDRINFO = 1
@@ -76,6 +77,7 @@ HAVE_GLSLANG_SPIRV_TOOLS_OPT = 0
7677HAVE_HID = 1
7778HAVE_IBXM = 1
7879HAVE_IMAGEVIEWER = 1
80+ HAVE_XKBCOMMON ?= 0
7981HAVE_LANGEXTRA = 1
8082HAVE_LIBRETRODB = 1
8183HAVE_MENU = 1
@@ -94,9 +96,9 @@ HAVE_OPENGL = 0
9496HAVE_OPENGL1 = 0
9597HAVE_OPENGL_CORE = 0
9698HAVE_OPENGLES = 1
97- HAVE_OPENGLES3 = 0
98- HAVE_OPENGLES3_1 = 0
99- HAVE_OPENGLES3_2 = 0
99+ HAVE_OPENGLES3 ? = 0
100+ HAVE_OPENGLES3_1 ? = 0
101+ HAVE_OPENGLES3_2 ? = 0
100102HAVE_OPENSSL = 0
101103HAVE_OVERLAY = 1
102104HAVE_PULSE = 1
@@ -129,7 +131,9 @@ HAVE_LIBSHAKE = 1
129131HAVE_UPDATE_ASSETS = 1
130132HAVE_UPDATE_CORES = 1
131133HAVE_UPDATE_CORE_INFO = 1
134+ HAVE_USERLAND ?= 0
132135HAVE_CORE_INFO_CACHE = 1
136+ HAVE_WAYLAND ?= 0
133137
134138OS = Linux
135139TARGET = retroarch
147151 HAVE_NEON = 1
148152endif
149153CFLAGS := $(ARCHFLAGS)
154+ CFLAGS += -DWEBOS_APP_ID=\"$(APP_PACKAGE_NAME)\"
150155CXXFLAGS := $(ARCHFLAGS) -fno-exceptions -fno-rtti -std=c++11 -D__STDC_CONSTANT_MACROS
151156ASFLAGS := $(ARCHFLAGS)
152157LDFLAGS := -Wl,-rpath=\$$ORIGIN/lib,--gc-sections
@@ -162,21 +167,35 @@ DEFINES += -DHAVE_NETWORKING -DHAVE_IFINFO -DHAVE_ONLINE_UPDATER -DHAVE_UPDATE_A
162167DEFINES += -DHAVE_NETWORKGAMEPAD
163168DEFINES += -DHAVE_FREETYPE
164169DEFINES += -DHAVE_UPDATE_CORE_INFO
170+ EGL_LIBS = -lEGL
171+ OPENGLES_LIBS = -lGLESv2
172+ XKBCOMMON_LIBS = -lxkbcommon
173+ WAYLAND_PROTO_SCRIPT := ./gfx/common/wayland/generate_wayland_protos.sh
174+ ifeq ($(HAVE_XKBCOMMON), 1)
175+ DEFINES += -DHAVE_XKBCOMMON=1
176+ endif
165177ifneq (,$(filter 1,$(HAVE_OPENGLES3) $(HAVE_OPENGLES3_1) $(HAVE_OPENGLES3_2)))
166178 DEFINES += -DHAVE_OPENGLES3
167179endif
168180ifeq ($(HAVE_OPENGLES3_1),1)
169- DEFINES += -DHAVE_OPENGLES3_1
181+ DEFINES += -DHAVE_OPENGLES3_1
170182endif
171183ifeq ($(HAVE_OPENGLES3_2),1)
172- DEFINES += -DHAVE_OPENGLES3_2
184+ DEFINES += -DHAVE_OPENGLES3_2
185+ endif
186+ ifeq ($(HAVE_WAYLAND),1)
187+ DEFINES += -DHAVE_WAYLAND=1
188+ WAYLAND_LIBS = -lwayland-client -lwayland-cursor -lwayland-egl
189+ endif
190+ ifeq ($(HAVE_USERLAND),1)
191+ DEFINES += -DHAVE_USERLAND
192+ WAYLAND_LIBS += -lhelpers
173193endif
174194
175195PKG_CONFIG=pkg-config
176196
177197SDL2_CFLAGS := $(shell $(PKG_CONFIG) --cflags sdl2)
178198SDL2_LIBS := $(shell $(PKG_CONFIG) --libs sdl2)
179- OPENGLES_LIBS = -lGLESv2
180199PULSE_LIBS = $(shell $(PKG_CONFIG) --libs libpulse)
181200FREETYPE_CFLAGS := $(shell $(PKG_CONFIG) --cflags freetype2)
182201FREETYPE_LIBS := $(shell $(PKG_CONFIG) --libs freetype2)
@@ -260,6 +279,12 @@ endif
260279
261280SYMBOL_MAP := -Wl,-Map=output.map
262281
282+ prebuild:
283+ ifeq ($(HAVE_WAYLAND),1)
284+ @echo "Generating Wayland protocols..."
285+ @$(SHELL) $(WAYLAND_PROTO_SCRIPT)
286+ endif
287+
263288$(TARGET): $(RARCH_OBJ)
264289 @$(if $(Q), $(shell echo echo LD $@),)
265290 $(Q)$(LINK) -o $@ $(RARCH_OBJ) $(LIBS) $(LDFLAGS) $(LIBRARY_DIRS)
@@ -300,7 +325,7 @@ ifeq ($(ADD_SDL2_LIB), 1)
300325 wget -qO - $(SDL2_PREBUILT_ARCHIVE) | tar -C SDL -zxvf -
301326endif
302327
303- ipk: $(TARGET) sdl2
328+ ipk: prebuild $(TARGET) sdl2
304329 rm -rf webos/dist
305330 mkdir -p webos/dist/lib
306331 echo "$$APPINFO" > webos/dist/appinfo.json
@@ -321,7 +346,7 @@ install: ipk
321346launch: install
322347 ares-launch $(APP_PACKAGE_NAME)
323348
324- .PHONY: all clean ipk
349+ .PHONY: all clean prebuild ipk
325350
326351print-%:
327352 @echo '$*=$($*)'
0 commit comments