3rdparty: build SDL for unix systems (incl macOS)

travis-ci: enable build 3rdparty for MacOS
add patch for comiling SDL-1.2.15 under macOS
This commit is contained in:
Thomas Bernard 2019-01-22 16:46:16 +01:00
parent e5221ba8d6
commit 335db46911
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C
4 changed files with 65 additions and 4 deletions

View File

@ -45,7 +45,7 @@ install:
script:
- 'cd $TRAVIS_BUILD_DIR'
- 'if [ "$WIN32CROSS" = "1" ] ; then make 3rdparty -j3 ; fi'
- 'if [ "$WIN32CROSS" = "1" ] || [ "$TRAVIS_OS_NAME" = "osx" ] ; then make 3rdparty -j3 ; fi'
- 'make -j3'
- 'make ziprelease'
- 'if [ "$WIN32CROSS" = "1" ] ; then make win32installer ; fi'

36
3rdparty/Makefile vendored
View File

@ -1,5 +1,12 @@
API ?= sdl
PLATFORM = $(shell uname)
SDL = SDL-1.2.15
SDLARCH = $(SDL).tar.gz
SDLURL = https://www.libsdl.org/release/$(SDLARCH)
SDLPATCHES = SDL-1.2.15-patch-src_video_x11_SDL_x11sym.h \
SDL-1.2.15-quartzvideo.patch
SDLDEVEL = SDL-devel-1.2.15-mingw32.tar.gz
SDLDEVELURL = https://www.libsdl.org/release/$(SDLDEVEL)
SDLDEVELPATCH = SDL-1.2.15.patch
@ -229,12 +236,12 @@ $(SDL2TTF)/.ok: archives/$(SDL2TTFARCH)
$(TAR) xzf $<
touch $@
ifdef WIN32
$(PREFIX)/lib/libSDLmain.a: archives/$(SDLDEVEL)
$(TAR) xzf $<
patch -p0 < $(SDLDEVELPATCH)
$(MKDIR) $(PREFIX)
cd SDL-1.2.15 && CROSS_PATH=$(PREFIX) $(MAKE) cross
ifdef WIN32
$(MKDIR) ../bin && $(CP) $(PREFIX)/bin/SDL.dll ../bin && $(STRIP) ../bin/SDL.dll
echo "The following file:" > ../doc/README-SDL.txt
echo "" >> ../doc/README-SDL.txt
@ -242,6 +249,23 @@ ifdef WIN32
echo "" >> ../doc/README-SDL.txt
echo "is the runtime environment for the SDL library." >> ../doc/README-SDL.txt
tail --lines +3 SDL-1.2.15/README-SDL.txt >> ../doc/README-SDL.txt
else
$(PREFIX)/lib/libSDLmain.a: $(SDL)/.ok
cd $(SDL) && ./configure --host=$(HOST) --prefix=$(PREFIX) \
--disable-joystick --disable-audio
cd $(SDL) && $(MAKE)
cd $(SDL) && $(MAKE) install
$(SDL)/.ok: archives/$(SDLARCH)
$(TAR) xzf $<
cd $(SDL) ; for p in $(SDLPATCHES) ; do echo "applying $$p" ; patch -p0 < ../$$p ; done
touch $@
endif
ifndef WIN32
ifeq ($(PLATFORM), FreeBSD)
ADDLDFLAGS = -L/usr/local/lib
endif
endif
$(PREFIX)/lib/libSDL_image.a: $(PREFIX)/lib/libjpeg.a
@ -249,7 +273,9 @@ $(PREFIX)/lib/libSDL_image.a: $(PREFIX)/lib/libtiff.a
$(PREFIX)/lib/libSDL_image.a: $(PREFIX)/lib/libpng.a
$(PREFIX)/lib/libSDL_image.a: $(SDLIMAGE)/.ok
cd $(SDLIMAGE) && CC="$(CC) $(LDFLAGS)" CPPFLAGS=-I$(PREFIX)/include LDFLAGS="-L$(PREFIX)/lib" LIBPNG_CFLAGS= LIBPNG_LIBS=-lpng ./configure --prefix=$(PREFIX) --with-sdl-prefix=$(PREFIX) --host=$(HOST) --disable-webp
cd $(SDLIMAGE) && CC="$(CC) $(LDFLAGS)" CPPFLAGS=-I$(PREFIX)/include \
LDFLAGS="-L$(PREFIX)/lib $(ADDLDFLAGS)" LIBPNG_CFLAGS= LIBPNG_LIBS=-lpng \
./configure --prefix=$(PREFIX) --with-sdl-prefix=$(PREFIX) --host=$(HOST) --disable-webp
cd $(SDLIMAGE) && $(MAKE)
cd $(SDLIMAGE) && $(MAKE) install
ifdef WIN32
@ -274,7 +300,7 @@ $(PREFIX)/lib/libSDL_ttf.a: $(PREFIX)/lib/libfreetype.a
$(PREFIX)/lib/libSDL_ttf.a: $(SDLTTF)/.ok
cd $(SDLTTF) && PKG_CONFIG_PATH=$(PREFIX)/lib/pkgconfig \
CC=$(CC) CPPFLAGS=-I$(PREFIX)/include LDFLAGS="-L$(PREFIX)/lib $(LDFLAGS)" \
CC=$(CC) CPPFLAGS=-I$(PREFIX)/include LDFLAGS="-L$(PREFIX)/lib $(LDFLAGS) $(ADDLDFLAGS)" \
./configure --prefix=$(PREFIX) --with-sdl-prefix=$(PREFIX) --with-freetype-prefix=$(PREFIX) --host=$(HOST)
cd $(SDLTTF) && $(MAKE)
cd $(SDLTTF) && $(MAKE) install
@ -407,6 +433,10 @@ $(RECOIL)/.ok: archives/$(RECOILARCH)
$(TAR) xzf $<
touch $@
archives/$(SDLARCH):
@$(MKDIR) $(@D)
cd $(@D) && $(GETURL) $(SDLURL)
archives/$(SDLDEVEL):
@$(MKDIR) $(@D)
cd $(@D) && $(GETURL) $(SDLDEVELURL)

View File

@ -0,0 +1,11 @@
--- src/video/x11/SDL_x11sym.h.orig 2013-06-05 11:06:34.000000000 +0200
+++ src/video/x11/SDL_x11sym.h 2013-06-05 11:08:02.000000000 +0200
@@ -165,7 +165,7 @@
*/
#ifdef LONG64
SDL_X11_MODULE(IO_32BIT)
-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
+SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
#endif

20
3rdparty/SDL-1.2.15-quartzvideo.patch vendored Normal file
View File

@ -0,0 +1,20 @@
# HG changeset patch
# User Sam Lantinga <slouken@libsdl.org>
# Date 1378535730 25200
# Node ID bbfb41c13a870d2ef487242b3a23d59f8f27f783
# Parent e9466ead70e5964b37575649d88602c10e6d01c8
Better fix for bug 2085 - SDL 1.2.15 fails to build on OSX 10.9 Mavericks, thanks Ozkan!
diff -r e9466ead70e5 -r bbfb41c13a87 src/video/quartz/SDL_QuartzVideo.h
--- src/video/quartz/SDL_QuartzVideo.h Thu Sep 05 06:38:57 2013 -0700
+++ src/video/quartz/SDL_QuartzVideo.h Fri Sep 06 23:35:30 2013 -0700
@@ -91,7 +91,9 @@
CGDirectDisplayID display; /* 0 == main display (only support single display) */
const void *mode; /* current mode of the display */
const void *save_mode; /* original mode of the display */
+#if (MAC_OS_X_VERSION_MIN_REQUIRED < 1070)
CGDirectPaletteRef palette; /* palette of an 8-bit display */
+#endif
NSOpenGLContext *gl_context; /* OpenGL rendering context */
NSGraphicsContext *nsgfx_context; /* Cocoa graphics context */
Uint32 width, height, bpp; /* frequently used data about the display */