This patch contains changes to the libSDL port that were needed to build the Hatari emulator using cmake. - Since SDL programs cannot use the posix library (because sdl's init function needs a way to get hold of the Genode env), the sdl_main library must be used instead of the posix library. The sdl_main code implements the Libc::Component::construct function for the final binary. However, 3rd-party build systems are not aware of this Genode-specific peculiarity and thereby create binaries that leave libsdl uninitialized. This patch adds the sdl_main to libsdl by default and thereby eliminates the need for specifying the extra sdl_main library. Customizing the Libc::Component::construct is still possible by overriding the library-provided implementation in the main program. - A few missing config definitions are added to compile Hatari successfully. - Avoid reliance on the include/SDL convention in SDL_config.h - Cmake relies on the upper-case naming of the library with no way to tweak this convention. So we install an symlink named `SDL.lib.so` when installing the library into the <build-dir>/bin/ directory. Fixes #161
29 lines
756 B
Makefile
29 lines
756 B
Makefile
MIRROR_FROM_REP_DIR := lib/symbols/sdl lib/import/import-sdl.mk \
|
|
|
|
MIRROR_FROM_LIBPORTS := lib/mk/mesa_api.mk
|
|
|
|
content: $(MIRROR_FROM_REP_DIR) $(MIRROR_FROM_LIBPORTS) include LICENSE
|
|
|
|
$(MIRROR_FROM_REP_DIR):
|
|
$(mirror_from_rep_dir)
|
|
|
|
$(MIRROR_FROM_LIBPORTS):
|
|
mkdir -p $(dir $@)
|
|
cp $(GENODE_DIR)/repos/libports/$@ $@
|
|
|
|
SDL_PORT_DIR := $(call port_dir,$(REP_DIR)/ports/sdl)
|
|
MESA_PORT_DIR := $(call port_dir,$(GENODE_DIR)/repos/libports/ports/mesa)
|
|
|
|
#
|
|
# The Mesa header files needed for SDL_OpenGL are copied as well.
|
|
#
|
|
include:
|
|
mkdir -p $@
|
|
cp -r $(SDL_PORT_DIR)/include/SDL $@/
|
|
cp -r $(REP_DIR)/include/SDL $@/
|
|
cp -r $(MESA_PORT_DIR)/include/* $@/
|
|
cp -r $(GENODE_DIR)/repos/libports/include/EGL $@/
|
|
|
|
LICENSE:
|
|
cp $(SDL_PORT_DIR)/src/lib/sdl/COPYING $@
|