diff --git a/.travis.yml b/.travis.yml index 3c4468e4..c11e5576 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,14 @@ addons: sudo: false -#env: -# - 'WIN32CROSS=1' +env: + - '' + - 'WIN32CROSS=1' + +matrix: + exclude: + - os: osx + env: 'WIN32CROSS=1' compiler: - gcc @@ -31,5 +37,6 @@ install: script: - 'cd $TRAVIS_BUILD_DIR' + - 'if [ "$WIN32CROSS" = "1" ] ; then make 3rdparty ; fi' - 'if [ "$TRAVIS_OS_NAME" = "osx" ] ; then make ; else make -j3 ; fi' - 'make ziprelease' diff --git a/3rdparty/.gitignore b/3rdparty/.gitignore new file mode 100644 index 00000000..9df73044 --- /dev/null +++ b/3rdparty/.gitignore @@ -0,0 +1,7 @@ +archives/ +usr/ +SDL-*/ +SDL_image*/ +jpeg-*/ +libpng-*/ +tiff-*/ diff --git a/3rdparty/Makefile b/3rdparty/Makefile new file mode 100644 index 00000000..2c1f3de7 --- /dev/null +++ b/3rdparty/Makefile @@ -0,0 +1,123 @@ +SDLDEVEL = SDL-devel-1.2.15-mingw32.tar.gz +SDLDEVELURL = https://www.libsdl.org/release/$(SDLDEVEL) +SDLDEVELPATCH = SDL-1.2.15.patch +SDLIMAGE = SDL_image-1.2.12 +SDLIMAGEARCH = SDL_image-1.2.12.tar.gz +SDLIMAGEURL = https://www.libsdl.org/projects/SDL_image/release/$(SDLIMAGEARCH) +LIBPNG = libpng-1.6.32 +LIBPNGARCH = $(LIBPNG).tar.gz +LIBPNGURL = https://download.sourceforge.net/libpng/$(LIBPNGARCH) +JPEGVER = 9c +JPEGDIR = jpeg-$(JPEGVER) +JPEGARCH = jpegsrc.v$(JPEGVER).tar.gz +JPEGURL = http://www.ijg.org/files/$(JPEGARCH) +LIBTIFF = tiff-v3.4 +LIBTIFFARCH = $(LIBTIFF)-tar.gz +LIBTIFFURL = ftp://ftp.sgi.com/graphics/tiff/$(LIBTIFFARCH) +# https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-0.6.1.tar.gz + +PREFIX = $(PWD)/usr + +MKDIR = mkdir -p +TAR = $(shell which tar) +GETURL = $(shell which wget || echo "curl -O -L") + +BUILD_CC := $(CC) + +ifdef WIN32CROSS +CROSS_CC ?= $(shell which i686-w64-mingw32-gcc || which mingw32-gcc) +CROSS_AR ?= $(shell which i686-w64-mingw32-ar || which mingw32-ar) +CROSS_RANLIB ?= $(shell which i686-w64-mingw32-ranlib || which mingw32-ranlib) +CC = $(CROSS_CC) +AR = $(CROSS_AR) +RANLIB = $(CROSS_RANLIB) +endif + +HOST = $(shell $(CC) -dumpmachine) +#HOST = i686-pc-mingw32 + +.PHONY: all clean libs libpng libsdl libsdl_image libjpeg libtiff + +all: libs + +clean: + $(RM) -r archives $(LIBPNG) + +libs: libpng libsdl libsdl_image +libsdl: $(PREFIX)/lib/libSDLmain.a +libsdl_image: $(PREFIX)/lib/libSDL_image.a +libjpeg: $(PREFIX)/lib/libjpeg.a +libpng: $(PREFIX)/lib/libpng.a +libtiff: $(PREFIX)/lib/libtiff.a + +$(PREFIX)/lib/libSDLmain.a: archives/$(SDLDEVEL) + $(TAR) xzf $< + patch -p0 < $(SDLDEVELPATCH) + cd SDL-1.2.15 && CROSS_PATH=$(PREFIX) $(MAKE) cross + +$(PREFIX)/lib/libSDL_image.a: $(PREFIX)/lib/libjpeg.a +$(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) CFLAGS=-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) && $(MAKE) + cd $(SDLIMAGE) && $(MAKE) install + +$(SDLIMAGE)/.ok: archives/$(SDLIMAGEARCH) + $(TAR) xzf $< + touch $@ + +$(PREFIX)/lib/libjpeg.a: $(JPEGDIR)/.ok + cd $(JPEGDIR) && CC=$(CC) ./configure --prefix=$(PREFIX) --host=$(HOST) + cd $(JPEGDIR) && $(MAKE) + cd $(JPEGDIR) && $(MAKE) install + +$(JPEGDIR)/.ok: archives/$(JPEGARCH) + $(TAR) xzf $< + touch $@ + +$(PREFIX)/lib/libtiff.a: $(PREFIX)/lib/libjpeg.a + +$(PREFIX)/lib/libtiff.a: $(LIBTIFF)/.ok + cd $(LIBTIFF)/libtiff && mv Makefile.in Makefile.in.orig + cd $(LIBTIFF)/libtiff && sed 's/[^ ]*[ ]\(-o mk[^ ]*\)/$(subst /,\/,$(BUILD_CC)) \1/' Makefile.in.orig > Makefile.in + cd $(LIBTIFF) && mv configure configure.orig + cd $(LIBTIFF) && sed 's/^\(DIR.*=\).usr.local\(.*\)/\1$(subst /,\/,$(PREFIX))\2/' configure.orig | sed 's/^\(NONINTERACTIVE=\)no/\1yes/' | sed 's/^\(DIR_JPEGLIB=\)[^#]*/\1$(subst /,\/,$(PREFIX))\/lib/' > configure + cd $(LIBTIFF) && chmod +x configure + cd $(LIBTIFF) && CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) GCOPT=-g ./configure --target=$(HOST) + cd $(LIBTIFF) && $(MAKE) + cd $(LIBTIFF) && $(MAKE) install + +$(LIBTIFF)/.ok: archives/$(LIBTIFFARCH) + $(TAR) xzf $< + touch $@ + +$(PREFIX)/lib/libpng.a: $(LIBPNG)/.ok + cd $(LIBPNG) && CC=$(CC) ./configure --prefix=$(PREFIX) --host=$(HOST) + cd $(LIBPNG) && $(MAKE) + cd $(LIBPNG) && $(MAKE) install + +$(LIBPNG)/.ok: archives/$(LIBPNGARCH) + $(TAR) xzf $< + touch $@ + +archives/$(LIBPNGARCH): + @$(MKDIR) $(@D) + cd $(@D) && $(GETURL) $(LIBPNGURL) + +archives/$(SDLDEVEL): + @$(MKDIR) $(@D) + cd $(@D) && $(GETURL) $(SDLDEVELURL) + +archives/$(SDLIMAGEARCH): + @$(MKDIR) $(@D) + cd $(@D) && $(GETURL) $(SDLIMAGEURL) + +archives/$(JPEGARCH): + @$(MKDIR) $(@D) + cd $(@D) && $(GETURL) $(JPEGURL) + +archives/$(LIBTIFFARCH): + @$(MKDIR) $(@D) + cd $(@D) && $(GETURL) $(LIBTIFFURL) diff --git a/3rdparty/SDL-1.2.15.patch b/3rdparty/SDL-1.2.15.patch new file mode 100644 index 00000000..48c16ab9 --- /dev/null +++ b/3rdparty/SDL-1.2.15.patch @@ -0,0 +1,11 @@ +--- SDL-1.2.15.orig/Makefile 2018-02-18 22:58:20.779552000 +0100 ++++ SDL-1.2.15/Makefile 2018-02-18 22:58:27.229780000 +0100 +@@ -1,7 +1,7 @@ + # + # Makefile for installing the Mingw32 version of the SDL library + +-CROSS_PATH := /usr/local/cross-tools/i686-w64-mingw32 ++CROSS_PATH ?= /usr/local/cross-tools/i686-w64-mingw32 + + all: + @echo "Type \"make native\" to install to /usr" diff --git a/Makefile b/Makefile index 5e0df171..6813a9b2 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,20 @@ -.PHONY: all tools grafx2 ziprelease +ifdef WIN32CROSS +OPT = WIN32CROSS=1 \ + +endif + +.PHONY: all tools grafx2 ziprelease 3rdparty all: grafx2 tools grafx2: - $(MAKE) -C src/ + $(OPT)$(MAKE) -C src/ ziprelease: grafx2 - $(MAKE) -C src/ ziprelease + $(OPT)$(MAKE) -C src/ ziprelease tools: $(MAKE) -C tools/ + +3rdparty: + cd 3rdparty/ && $(OPT)$(MAKE)