diff --git a/.travis.yml b/.travis.yml index 88134001..f5ead510 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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' diff --git a/3rdparty/Makefile b/3rdparty/Makefile index 44717de6..76f3ab89 100644 --- a/3rdparty/Makefile +++ b/3rdparty/Makefile @@ -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) diff --git a/3rdparty/SDL-1.2.15-patch-src_video_x11_SDL_x11sym.h b/3rdparty/SDL-1.2.15-patch-src_video_x11_SDL_x11sym.h new file mode 100644 index 00000000..b20e0712 --- /dev/null +++ b/3rdparty/SDL-1.2.15-patch-src_video_x11_SDL_x11sym.h @@ -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 + diff --git a/3rdparty/SDL-1.2.15-quartzvideo.patch b/3rdparty/SDL-1.2.15-quartzvideo.patch new file mode 100644 index 00000000..8b022aca --- /dev/null +++ b/3rdparty/SDL-1.2.15-quartzvideo.patch @@ -0,0 +1,20 @@ +# HG changeset patch +# User Sam Lantinga +# 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 */