diff --git a/.gitattributes b/.gitattributes
index dd2127a229..1bf1a07832 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,14 +2,17 @@
* text eol=lf
# Denote all files that are truly binary and should not be modified
+*.7z binary
*.bz2 binary
*.gz binary
*.xz binary
*.exe binary
*.dll binary
*.lzma binary
+*.msi binary
*.tgz binary
*.zip binary
*.rar binary
+*.so binary
*.lib binary
*.a binary
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index c1c5c8ed07..1878e0d5fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,9 @@
*.tar.xz
*.tar.gz
*.tar.bz2
+*.tgz
+*.zip
+*.rar
+*.sig
*/src/
*/pkg/
\ No newline at end of file
diff --git a/FAIL_LIST.md b/FAIL_LIST.md
new file mode 100644
index 0000000000..484b2ce8c5
--- /dev/null
+++ b/FAIL_LIST.md
@@ -0,0 +1,48 @@
+List of packages that currently fail to build
+=============================================
+
+- blender
+
+- cegui (waiting for 0.8.5 release)
+
+- cling - need maintainer to it
+
+- cocos2dx-git
+
+- coq (OCAML issue)
+
+- freerdp-git
+
+- gprbuild-gpl
+
+- gtkada
+
+- itk
+
+- ldns
+
+- librocket-git
+
+- nim
+
+- nimble
+
+- ocaml-lablgtk
+
+- octave-hg
+
+- ogre3d
+
+- openshadinglanguage (Needs a legacy LLVM < 3.6 package due to JIT changes)
+
+- perl (still not building for 32-bit) : ..\perl.h:3551:38: error: static assertion failed: "sizeof(PADOP) <= sizeof(SVOP)"
+
+- plplot
+
+- pitivi-git
+
+- python-binwalk
+
+- python-h5py
+
+- xmlada-gpl
diff --git a/TODO.md b/TODO.md
index f8887764c5..8bd500f949 100644
--- a/TODO.md
+++ b/TODO.md
@@ -37,3 +37,10 @@ What we need to do:
fontconfig gcrypt speex theora matroska openal32 openjpeg
theoradec theoraenc libopus libopencore-amrnb libopencore-amrwb
libcelt0 libgnutls libgme libembl libspeexdsp
+
+* Bison: Add path relocation when locating m4
+
+* Add the Oyrol, Urho3D and Godot engines
+
+* CMake Library Packages (all): Relocate find_package()-called scripts as
+ was done for CGAL in https://github.com/Alexpux/MINGW-packages/commit/34ea54
diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch
deleted file mode 100644
index 831ba5b321..0000000000
--- a/mingw-w64-FreeImage/FreeImage-3.16.0_disable-some-plugins.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -rupN FreeImage/FreeImage.2008.vcproj FreeImage-new/FreeImage.2008.vcproj
---- FreeImage/FreeImage.2008.vcproj 2014-01-16 00:27:04.000000000 +0100
-+++ FreeImage-new/FreeImage.2008.vcproj 2014-01-16 00:49:42.334523250 +0100
-@@ -832,10 +828,6 @@
- >
-
-
--
--
-
-diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
---- FreeImage/Source/FreeImage.h 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage.h 2014-01-16 00:49:42.338523316 +0100
-@@ -456,6 +461,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
- FID_BAYER16x16 = 6 // Bayer ordered dispersed dot dithering (order 4 dithering matrix)
- };
-
-+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
-+ Fedora build of FreeImage as they require that FreeImage uses a private copy
-+ of libjpeg which is a no no because of security reasons. */
-+#if 0
- /** Lossless JPEG transformations
- Constants used in FreeImage_JPEGTransform
- */
-@@ -469,6 +478,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
- FIJPEG_OP_ROTATE_180 = 6, // 180-degree rotation
- FIJPEG_OP_ROTATE_270 = 7 // 270-degree clockwise (or 90 ccw)
- };
-+#endif
-
- /** Tone mapping operators.
- Constants used in FreeImage_ToneMapping.
-@@ -704,7 +714,6 @@ typedef void (DLL_CALLCONV *FI_InitProc)
- #define PNG_DEFAULT 0
- #define PNG_IGNOREGAMMA 1 //! loading: avoid gamma correction
- #define PNG_Z_BEST_SPEED 0x0001 //! save using ZLib level 1 compression flag (default value is 6)
--#define PNG_Z_DEFAULT_COMPRESSION 0x0006 //! save using ZLib level 6 compression flag (default recommended value)
- #define PNG_Z_BEST_COMPRESSION 0x0009 //! save using ZLib level 9 compression flag (default value is 6)
- #define PNG_Z_NO_COMPRESSION 0x0100 //! save without ZLib compression
- #define PNG_INTERLACED 0x0200 //! save using Adam7 interlacing (use | to combine with other save flags)
-@@ -1048,14 +1057,19 @@ DLL_API FIBITMAP *DLL_CALLCONV FreeImage
- // JPEG lossless transformation routines
- // --------------------------------------------------------------------------
-
-+/* The FreeImage_JPEGTransform functions are deliberately disabled in the
-+ Fedora build of FreeImage as they require that FreeImage uses a private copy
-+ of libjpeg which is a no no because of security reasons. */
-+#if 0
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCropU(const wchar_t *src_file, const wchar_t *dst_file, int left, int top, int right, int bottom);
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformFromHandle(FreeImageIO* src_io, fi_handle src_handle, FreeImageIO* dst_io, fi_handle dst_handle, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
- DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
-+#endif
-
-
- // --------------------------------------------------------------------------
diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch
deleted file mode 100644
index 9946754fa7..0000000000
--- a/mingw-w64-FreeImage/FreeImage-3.16.0_mingw-makefiles.patch
+++ /dev/null
@@ -1,405 +0,0 @@
---- FreeImage/Makefile.fip.orig 2014-04-16 18:58:24.825800000 +0400
-+++ FreeImage/Makefile.fip 2014-04-16 19:12:58.956000000 +0400
-@@ -1,81 +1,97 @@
--# Linux makefile for FreeImagePlus
-+# Mingw makefile for FreeImagePlus
-
- # This file can be generated by ./genfipsrclist.sh
- include fipMakefile.srcs
-
--# General configuration variables:
--DESTDIR ?= /
--INCDIR ?= $(DESTDIR)/usr/include
--INSTALLDIR ?= $(DESTDIR)/usr/lib
--
--# Converts cr/lf to just lf
--DOS2UNIX = dos2unix
--
--LIBRARIES = -lstdc++
--
--MODULES = $(SRCS:.c=.o)
--MODULES := $(MODULES:.cpp=.o)
--CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
--# OpenJPEG
--CFLAGS += -DOPJ_STATIC
--# LibRaw
--CFLAGS += -DNO_LCMS
--# LibJXR
--CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
--# LibJXR
--CXXFLAGS += -D__ANSI__
--CXXFLAGS += $(INCLUDE)
--
--ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
-- CFLAGS += -fPIC
-- CXXFLAGS += -fPIC
--endif
-+CC = $(MINGW_TARGET)-gcc
-+CXX = $(MINGW_TARGET)-g++
-+LD = $(MINGW_TARGET)-g++
-+AR = ar
-+DLLTOOL = dlltool
-+RC = windres
-+PKGCONFIG = pkg-config
-+
-+CP = cp
-+MD = mkdir
-+RM = rm
-+
-+# General configuration variables.
-+DESTDIR ?= $(SystemRoot)
-+INSTALLDIR ?= $(DESTDIR)/system32
-+DISTDIR ?= Dist
-+SRCDIR ?= Wrapper/FreeImagePlus/
-+HEADER = FreeImagePlus.h
-+RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
-+
-+# Uncomment this variable to make a static library. This may
-+# also be specified as an environment variable and can hold
-+# any of STATIC and SHARED and must be in uppercase letters.
-+# The FreeImage library type defaults to SHARED.
-+FREEIMAGE_LIBRARY_TYPE ?= SHARED
-+
-+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
-+WIN32_SHARED_FLAGS = -DFIP_EXPORTS
-+
-+# Converts cr/lf to just lf
-+DOS2UNIX = dos2unix
-+
-+LIBRARIES = -lstdc++ -lfreeimage-$(VER_MAJOR).$(VER_MINOR) -L.
-+MODULES = $(SRCS:.c=.o)
-+MODULES := $(MODULES:.cpp=.o)
-+RESOURCE = $(RCFILE:.rc=.coff)
-+CFLAGS += -ISource $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
-+CXXFLAGS += -ISource $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
-+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
-+LDFLAGS += -LDist -lfreeimage -lgdi32
-
--TARGET = freeimageplus
-+TARGET = freeimageplus
- STATICLIB = lib$(TARGET).a
--SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
--LIBNAME = lib$(TARGET).so
--VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
--HEADER = Source/FreeImage.h
--HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
-+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
-+IMPORTLIB = lib$(TARGET).dll.a
-+EXPORTLIB = $(TARGET).exp
-+SOLIBNAME = $(SHAREDLIB)
-
-+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
-+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
-
--default: all
--
--all: dist
-+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
-+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
-
--dist: FreeImage
-- cp *.a Dist
-- cp *.so Dist
-- cp Source/FreeImage.h Dist
-- cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist
-+default: all
-
--dos2unix:
-- @$(DOS2UNIX) $(SRCS)
-+all: $(TARGETLIB) $(TARGETDIST)
-
--FreeImage: $(STATICLIB) $(SHAREDLIB)
-+rebuild: clean all
-
--.c.o:
-+%.o: %.c
- $(CC) $(CFLAGS) -c $< -o $@
-
--.cpp.o:
-+%.o: %.cpp
- $(CXX) $(CXXFLAGS) -c $< -o $@
-
-+%.coff: %.rc
-+ $(RC) $(RCFLAGS) -o $@ $<
-+
-+$(DISTDIR)/%: %
-+ $(CP) $< $@
-+
-+$(DISTDIR)/%: $(SRCDIR)/%
-+ $(CP) $< $@
-+
- $(STATICLIB): $(MODULES)
-- $(AR) r $@ $(MODULES)
-+ $(AR) rs $@ $(MODULES)
-+
-+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
-+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
-+
-+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
-+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
-
--$(SHAREDLIB): $(MODULES)
-- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
-+$(DISTDIR):
-+ $(MD) $(DISTDIR)
-
--install:
-- install -d $(INCDIR) $(INSTALLDIR)
-- install -m 644 -o root -g root $(HEADER) $(INCDIR)
-- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
-- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
-- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
-+$(TARGETDIST): $(DISTDIR)
-
- clean:
-- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
-+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
-
-diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
---- FreeImage/Makefile.gnu 2014-01-16 00:27:04.000000000 +0100
-+++ FreeImage-new/Makefile.gnu 2014-01-16 00:49:42.335523267 +0100
-@@ -11,7 +11,8 @@ INSTALLDIR ?= $(DESTDIR)/usr/lib
- # Converts cr/lf to just lf
- DOS2UNIX = dos2unix
-
--LIBRARIES = -lstdc++
-+INCLUDE += $(shell pkg-config --cflags libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp)
-+LIBRARIES = -lstdc++ $(shell pkg-config --libs libopenjp2 libpng libraw OpenEXR zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg -lwebp
-
- MODULES = $(SRCS:.c=.o)
- MODULES := $(MODULES:.cpp=.o)
---- FreeImage/Makefile.mingw.orig 2014-03-15 22:52:28.000000000 +0400
-+++ FreeImage/Makefile.mingw 2014-04-16 19:12:32.030400000 +0400
-@@ -1,136 +1,94 @@
--# MinGW makefile for FreeImage
--
--# This file can be generated by ./gensrclist.sh
--include Makefile.srcs
--
--# General configuration variables.
--DESTDIR ?= $(SystemRoot)
--INSTALLDIR ?= $(DESTDIR)/system32
--DISTDIR ?= Dist
--SRCDIR ?= Source
--HEADER = FreeImage.h
--RCFILE = FreeImage.rc
--
--# Uncomment this variable to make a static library. This may
--# also be specified as an environment variable and can hold
--# any of STATIC and SHARED and must be in uppercase letters.
--# Default: SHARED
--#FREEIMAGE_LIBRARY_TYPE = STATIC
--
--# Redefine the compiler (CC defaults to ´cc´ for MinGW's make,
--# however there's only ´gcc´ available with MinGW).
--CC = gcc
--
--# Redefine the linker (we use ´g++´ for linking, since MinGW's
--# command ´ld´ comes with wrong (Linux) standard library search
--# paths).
--LD = g++
--
--#Define the ´dlltool´ command.
--DLLTOOL = dlltool
--
--#Define the resource compiler.
--RC = windres
--
--# Define the ´copy´ command.
--CP = cp
--
--# Define the ´mkdir´ command.
--MD = mkdir
--
--# Define the ´remove´ command.
--RM = rm
--
--# Define additional libraries needed.
--# libstdc++ is included by default with MinGW, however for
--# WIN32 based builds, LibRawLite needs the winsock libraries.
--LIBRARIES = -lws2_32
--
--# Define some additional symboles needed for WIN32 based builds.
--WIN32_CFLAGS = -DWINVER=0x0500 $(LIB_TYPE_FLAGS) -DOPJ_STATIC
--WIN32_CXXFLAGS = $(WIN32_CFLAGS) -DLIBRAW_NODLL
--
--# Workaround for LibRawLite, which does not include C++ header
--# file stdexcept, which is casually included with MSVC but not
--# with MinGW. This can be removed after LibRawLite got control
--# over its includes again.
--WIN32_CXXFLAGS += -include stdexcept
--
--# Define DLL image header information flags for the linker.
--WIN32_LDFLAGS = -Wl,--subsystem,windows:5.0,--major-os-version,5
--
--WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
--WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
--
--MODULES = $(SRCS:.c=.o)
--MODULES := $(MODULES:.cpp=.o)
--RESOURCE = $(RCFILE:.rc=.coff)
--CFLAGS ?= -O3 -fexceptions -DNDEBUG -DDISABLE_PERF_MEASUREMENT $(WIN32_CFLAGS)
--CFLAGS += $(INCLUDE)
--CXXFLAGS ?= -O3 -fexceptions -Wno-ctor-dtor-privacy -DNDEBUG $(WIN32_CXXFLAGS)
--CXXFLAGS += $(INCLUDE)
--RCFLAGS ?= -DNDEBUG
--LDFLAGS ?= -s -shared -static -Wl,-soname,$(SOLIBNAME) $(WIN32_LDFLAGS)
--DLLTOOLFLAGS ?= --add-stdcall-underscore
--
--TARGET = FreeImage
--STATICLIB = lib$(TARGET).a
--SHAREDLIB = $(TARGET).dll
--IMPORTLIB = $(TARGET).lib
--EXPORTLIB = $(TARGET).exp
--SOLIBNAME = $(SHAREDLIB).$(VER_MAJOR)
--
--DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
--DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
--
--# The FreeImage library type defaults to SHARED.
--FREEIMAGE_LIBRARY_TYPE ?= SHARED
--
--TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
--TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
--LIB_TYPE_FLAGS = $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
--
--default: all
--
--all: mkdist
--
--rebuild: clean all
--
--mkdist: FreeImage $(TARGETDIST)
--
--FreeImage: $(TARGETLIB)
--
--%.o: %.c
-- $(CC) $(CFLAGS) -c $< -o $@
--
--%.o: %.cpp
-- $(CXX) $(CXXFLAGS) -c $< -o $@
--
--%.coff: %.rc
-- $(RC) $(RCFLAGS) -o $@ $<
--
--$(DISTDIR)/%: %
-- $(CP) $< $@
--
--$(DISTDIR)/%: $(SRCDIR)/%
-- $(CP) $< $@
--
--$(STATICLIB): $(MODULES)
-- $(AR) rs $@ $(MODULES)
--
--$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
-- $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
--
--$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
-- $(LD) $(LDFLAGS) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LIBRARIES)
--
--$(DISTDIR):
-- $(MD) $(DISTDIR)
--
--$(TARGETDIST): $(DISTDIR)
--
--install:
-- $(CP) $(SHAREDLIB) $(INSTALLDIR)
--
--clean:
-- $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
-+# MinGW makefile for FreeImage
-+
-+# This file can be generated by ./gensrclist.sh
-+include Makefile.srcs
-+
-+CC = gcc
-+CXX = g++
-+LD = g++
-+AR = ar
-+DLLTOOL = dlltool
-+RC = windres
-+PKGCONFIG = pkg-config
-+
-+CP = cp
-+MD = mkdir
-+RM = rm
-+
-+# General configuration variables.
-+DESTDIR ?= $(SystemRoot)
-+INSTALLDIR ?= $(DESTDIR)/system32
-+DISTDIR ?= Dist
-+SRCDIR ?= Source
-+HEADER = FreeImage.h
-+RCFILE = FreeImage.rc
-+
-+# Uncomment this variable to make a static library. This may
-+# also be specified as an environment variable and can hold
-+# any of STATIC and SHARED and must be in uppercase letters.
-+# The FreeImage library type defaults to SHARED.
-+FREEIMAGE_LIBRARY_TYPE ?= SHARED
-+
-+WIN32_STATIC_FLAGS = -DFREEIMAGE_LIB
-+WIN32_SHARED_FLAGS = -DFREEIMAGE_EXPORTS
-+
-+MODULES = $(SRCS:.c=.o)
-+MODULES := $(MODULES:.cpp=.o)
-+RESOURCE = $(RCFILE:.rc=.coff)
-+CFLAGS += $(INCLUDE) -DDISABLE_PERF_MEASUREMENT $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
-+CFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
-+CXXFLAGS += $(INCLUDE) $(WIN32_$(FREEIMAGE_LIBRARY_TYPE)_FLAGS)
-+CXXFLAGS += $(shell $(PKGCONFIG) --cflags libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp)
-+LDFLAGS += -shared -Wl,-soname,$(SOLIBNAME)
-+LDFLAGS += $(shell $(PKGCONFIG) --libs libopenjp2 OpenEXR libpng libraw zlib libtiff-4 libwebp libwebpdecoder libwebpdemux libwebpmux) -ljpeg
-+
-+TARGET = freeimage
-+STATICLIB = lib$(TARGET).a
-+SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
-+IMPORTLIB = lib$(TARGET).dll.a
-+EXPORTLIB = $(TARGET).exp
-+SOLIBNAME = $(SHAREDLIB)
-+
-+DISTSHARED = $(addprefix $(DISTDIR)/, $(SHAREDLIB) $(IMPORTLIB) $(HEADER))
-+DISTSTATIC = $(addprefix $(DISTDIR)/, $(STATICLIB) $(HEADER))
-+
-+TARGETLIB = $($(FREEIMAGE_LIBRARY_TYPE)LIB)
-+TARGETDIST = $(DIST$(FREEIMAGE_LIBRARY_TYPE))
-+
-+default: all
-+
-+all: $(TARGETLIB) $(TARGETDIST)
-+
-+rebuild: clean all
-+
-+%.o: %.c
-+ $(CC) $(CFLAGS) -c $< -o $@
-+
-+%.o: %.cpp
-+ $(CXX) $(CXXFLAGS) -c $< -o $@
-+
-+%.coff: %.rc
-+ $(RC) $(RCFLAGS) -o $@ $<
-+
-+$(DISTDIR)/%: %
-+ $(CP) $< $@
-+
-+$(DISTDIR)/%: $(SRCDIR)/%
-+ $(CP) $< $@
-+
-+$(STATICLIB): $(MODULES)
-+ $(AR) rs $@ $(MODULES)
-+
-+$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
-+ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
-+
-+$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
-+ $(LD) -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
-+
-+$(DISTDIR):
-+ $(MD) $(DISTDIR)
-+
-+$(TARGETDIST): $(DISTDIR)
-+
-+clean:
-+ $(RM) -f core $(DISTDIR)/*.* $(MODULES) $(RESOURCE) $(STATICLIB) $(SHAREDLIB) $(IMPORTLIB) $(EXPORTLIB)
diff --git a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch
deleted file mode 100644
index 3e47c5e075..0000000000
--- a/mingw-w64-FreeImage/FreeImage-3.16.0_unbundle.patch
+++ /dev/null
@@ -1,594 +0,0 @@
-diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
---- FreeImage/genfipsrclist.sh 2014-01-16 00:27:04.000000000 +0100
-+++ FreeImage-new/genfipsrclist.sh 2014-01-16 00:49:42.334523250 +0100
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
--DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
-+DIRLIST=" Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
-
-
- echo "VER_MAJOR = 3" > fipMakefile.srcs
-diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
---- FreeImage/gensrclist.sh 2014-01-16 00:27:04.000000000 +0100
-+++ FreeImage-new/gensrclist.sh 2014-01-16 00:49:42.335523267 +0100
-@@ -1,6 +1,6 @@
- #!/bin/sh
-
--DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
-+DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
-
- echo "VER_MAJOR = 3" > Makefile.srcs
- echo "VER_MINOR = 16.0" >> Makefile.srcs
-diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
---- FreeImage/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2014-01-16 00:49:42.335523267 +0100
-@@ -21,7 +21,7 @@
-
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../LibOpenJPEG/openjpeg.h"
-+#include
- #include "J2KHelper.h"
-
- // --------------------------------------------------------------------------
-diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
---- FreeImage/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2014-01-16 00:49:42.336523283 +0100
-@@ -22,16 +22,16 @@
-
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../OpenEXR/IlmImf/ImfIO.h"
--#include "../OpenEXR/Iex/Iex.h"
--#include "../OpenEXR/IlmImf/ImfOutputFile.h"
--#include "../OpenEXR/IlmImf/ImfInputFile.h"
--#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
--#include "../OpenEXR/IlmImf/ImfChannelList.h"
--#include "../OpenEXR/IlmImf/ImfRgba.h"
--#include "../OpenEXR/IlmImf/ImfArray.h"
--#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
--#include "../OpenEXR/Half/half.h"
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-+#include
-
-
- // ==========================================================
-diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
---- FreeImage/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2014-01-16 00:49:42.336523283 +0100
-@@ -21,7 +21,7 @@
-
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../LibOpenJPEG/openjpeg.h"
-+#include
- #include "J2KHelper.h"
-
- // ==========================================================
-diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
---- FreeImage/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2014-01-16 00:49:42.336523283 +0100
-@@ -21,7 +21,7 @@
-
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../LibOpenJPEG/openjpeg.h"
-+#include
- #include "J2KHelper.h"
-
- // ==========================================================
-diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
---- FreeImage/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2014-01-16 00:49:42.336523283 +0100
-@@ -35,9 +35,9 @@ extern "C" {
- #undef FAR
- #include
-
--#include "../LibJPEG/jinclude.h"
--#include "../LibJPEG/jpeglib.h"
--#include "../LibJPEG/jerror.h"
-+#include
-+#include
-+#include
- }
-
- #include "FreeImage.h"
-diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
---- FreeImage/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2014-01-16 00:49:42.337523300 +0100
-@@ -37,8 +37,8 @@
-
- // ----------------------------------------------------------
-
--#include "../ZLib/zlib.h"
--#include "../LibPNG/png.h"
-+#include
-+#include
-
- // ----------------------------------------------------------
-
-@@ -106,7 +106,11 @@ ReadMetadata(png_structp png_ptr, png_in
- tag = FreeImage_CreateTag();
- if(!tag) return FALSE;
-
-+#ifdef PNG_iTXt_SUPPORTED
- DWORD tag_length = (DWORD) MAX(text_ptr[i].text_length, text_ptr[i].itxt_length);
-+#else
-+ DWORD tag_length = text_ptr[i].text_length;
-+#endif
-
- FreeImage_SetTagLength(tag, tag_length);
- FreeImage_SetTagCount(tag, tag_length);
-@@ -153,10 +157,11 @@ WriteMetadata(png_structp png_ptr, png_i
- text_metadata.key = (char*)FreeImage_GetTagKey(tag); // keyword, 1-79 character description of "text"
- text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
- text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
-+#ifdef PNG_iTXt_SUPPORTED
- text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
- text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
- text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
--
-+#endif
- // set the tag
- png_set_text(png_ptr, info_ptr, &text_metadata, 1);
-
-@@ -175,10 +180,11 @@ WriteMetadata(png_structp png_ptr, png_i
- text_metadata.key = (char*)g_png_xmp_keyword; // keyword, 1-79 character description of "text"
- text_metadata.text = (char*)FreeImage_GetTagValue(tag); // comment, may be an empty string (ie "")
- text_metadata.text_length = FreeImage_GetTagLength(tag);// length of the text string
-+#ifdef PNG_iTXt_SUPPORTED
- text_metadata.itxt_length = FreeImage_GetTagLength(tag);// length of the itxt string
- text_metadata.lang = 0; // language code, 0-79 characters or a NULL pointer
- text_metadata.lang_key = 0; // keyword translated UTF-8 string, 0 or more chars or a NULL pointer
--
-+#endif
- // set the tag
- png_set_text(png_ptr, info_ptr, &text_metadata, 1);
- bResult &= TRUE;
-diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
---- FreeImage/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2014-01-16 00:55:13.692904877 +0100
-@@ -19,7 +19,7 @@
- // Use at your own risk!
- // ==========================================================
-
--#include "../LibRawLite/libraw/libraw.h"
-+#include
-
- #include "FreeImage.h"
- #include "Utilities.h"
-diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
---- FreeImage/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2014-01-16 00:49:42.337523300 +0100
-@@ -37,9 +37,9 @@
-
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../LibTIFF4/tiffiop.h"
-+#include
- #include "../Metadata/FreeImageTag.h"
--#include "../OpenEXR/Half/half.h"
-+#include
-
- #include "FreeImageIO.h"
- #include "PSDParser.h"
-@@ -202,27 +202,9 @@ TIFFFdOpen(thandle_t handle, const char
- _tiffReadProc, _tiffWriteProc, _tiffSeekProc, _tiffCloseProc,
- _tiffSizeProc, _tiffMapProc, _tiffUnmapProc);
-
-- // Warning: tif_fd is declared as 'int' currently (see libTIFF),
-- // may result in incorrect file pointers inside libTIFF on
-- // 64bit machines (sizeof(int) != sizeof(long)).
-- // Needs to be fixed within libTIFF.
-- if (tif) {
-- tif->tif_fd = (long)handle;
-- }
--
- return tif;
- }
-
--/**
--Open a TIFF file for reading or writing
--@param name
--@param mode
--*/
--TIFF*
--TIFFOpen(const char* name, const char* mode) {
-- return 0;
--}
--
- // ----------------------------------------------------------
- // TIFF library FreeImage-specific routines.
- // ----------------------------------------------------------
-diff -rupN FreeImage/Source/FreeImage/PluginG3.cpp FreeImage-new/Source/FreeImage/PluginG3.cpp
---- FreeImage/Source/FreeImage/PluginG3.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginG3.cpp 2014-01-16 00:49:42.336523283 +0100
-@@ -20,7 +20,7 @@
- // Use at your own risk!
- // ==========================================================
-
--#include "../LibTIFF4/tiffiop.h"
-+#include
-
- #include "FreeImage.h"
- #include "Utilities.h"
-diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
---- FreeImage/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2014-01-16 00:49:42.337523300 +0100
-@@ -37,10 +37,10 @@
-
- #include "../Metadata/FreeImageTag.h"
-
--#include "../LibWebP/src/webp/decode.h"
--#include "../LibWebP/src/webp/encode.h"
--#include "../LibWebP/src/enc/vp8enci.h"
--#include "../LibWebP/src/webp/mux.h"
-+#include
-+#include
-+//#include "../LibWebP/src/enc/vp8enci.h"
-+#include
-
- // ==========================================================
- // Plugin Interface
-diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
---- FreeImage/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2014-01-16 00:49:42.338523316 +0100
-@@ -19,10 +19,9 @@
- // Use at your own risk!
- // ==========================================================
-
--#include "../ZLib/zlib.h"
-+#include
- #include "FreeImage.h"
- #include "Utilities.h"
--#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
-
- /**
- Compresses a source buffer into a target buffer, using the ZLib library.
-@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
- return 0;
- case Z_OK: {
- // patch header, setup crc and length (stolen from mod_trace_output)
-- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
-+ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
- crc = crc32(crc, source, source_size);
- memcpy(target + 4 + dest_len, &crc, 4);
- memcpy(target + 8 + dest_len, &source_size, 4);
-diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
---- FreeImage/Source/Metadata/XTIFF.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/Metadata/XTIFF.cpp 2014-01-16 00:49:42.338523316 +0100
-@@ -29,13 +29,22 @@
- #pragma warning (disable : 4786) // identifier was truncated to 'number' characters
- #endif
-
--#include "../LibTIFF4/tiffiop.h"
-+#include
-
- #include "FreeImage.h"
- #include "Utilities.h"
- #include "FreeImageTag.h"
- #include "FIRational.h"
-
-+/*
-+ * Caveat emperor this is a private libtiff functions which we need,
-+ * there is no better solution I'm afraid.
-+ */
-+extern "C"
-+{
-+ int _TIFFDataSize(TIFFDataType type);
-+}
-+
- // ----------------------------------------------------------
- // Extended TIFF Directory GEO Tag Support
- // ----------------------------------------------------------
-@@ -205,7 +214,7 @@ tiff_write_geotiff_profile(TIFF *tif, FI
- Read a single exif tag
- */
- static BOOL
--tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, TIFFDirectory *td, uint32 tag) {
-+tiff_read_exif_tag(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib, TagLib& tagLib, uint32 tag) {
- const TIFFField *fip;
- uint32 value_count;
- int mem_alloc = 0;
-@@ -226,8 +235,8 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
- return TRUE;
- }
-
-- if(fip->field_passcount) { //<- "passcount" means "returns count"
-- if (fip->field_readcount != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
-+ if(TIFFFieldPassCount(fip)) { //<- "passcount" means "returns count"
-+ if (TIFFFieldReadCount(fip) != TIFF_VARIABLE2) { //<- TIFF_VARIABLE2 means "uses LONG count"
-
- // assume TIFF_VARIABLE (uses SHORT count)
- uint16 value_count16;
-@@ -244,35 +253,37 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
-
- // determine count
-
-- if (fip->field_readcount == TIFF_VARIABLE || fip->field_readcount == TIFF_VARIABLE2) {
-+ if (TIFFFieldReadCount(fip) == TIFF_VARIABLE || TIFFFieldReadCount(fip) == TIFF_VARIABLE2) {
- value_count = 1;
-- } else if (fip->field_readcount == TIFF_SPP) {
-- value_count = td->td_samplesperpixel;
-+ } else if (TIFFFieldReadCount(fip) == TIFF_SPP) {
-+ uint16 spp;
-+ TIFFGetFieldDefaulted(tif, TIFFTAG_SAMPLESPERPIXEL, &spp);
-+ value_count = spp;
- } else {
-- value_count = fip->field_readcount;
-+ value_count = TIFFFieldReadCount(fip);
- }
-
- // access fields as pointers to data
- // (### determining this is NOT robust... and hardly can be. It is implemented looking the _TIFFVGetField code)
-
-- if(fip->field_tag == TIFFTAG_TRANSFERFUNCTION) {
-+ if(TIFFFieldTag(fip) == TIFFTAG_TRANSFERFUNCTION) {
- // reading this tag cause a bug probably located somewhere inside libtiff
- return TRUE;
- }
-
-- if ((fip->field_type == TIFF_ASCII
-- || fip->field_readcount == TIFF_VARIABLE
-- || fip->field_readcount == TIFF_VARIABLE2
-- || fip->field_readcount == TIFF_SPP
-+ if ((TIFFFieldDataType(fip) == TIFF_ASCII
-+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE
-+ || TIFFFieldReadCount(fip) == TIFF_VARIABLE2
-+ || TIFFFieldReadCount(fip) == TIFF_SPP
- || value_count > 1)
-
-- && fip->field_tag != TIFFTAG_PAGENUMBER
-- && fip->field_tag != TIFFTAG_HALFTONEHINTS
-- && fip->field_tag != TIFFTAG_YCBCRSUBSAMPLING
-- && fip->field_tag != TIFFTAG_DOTRANGE
-+ && TIFFFieldTag(fip) != TIFFTAG_PAGENUMBER
-+ && TIFFFieldTag(fip) != TIFFTAG_HALFTONEHINTS
-+ && TIFFFieldTag(fip) != TIFFTAG_YCBCRSUBSAMPLING
-+ && TIFFFieldTag(fip) != TIFFTAG_DOTRANGE
-
-- && fip->field_tag != TIFFTAG_BITSPERSAMPLE //<- these two are tricky -
-- && fip->field_tag != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
-+ && TIFFFieldTag(fip) != TIFFTAG_BITSPERSAMPLE //<- these two are tricky:
-+ && TIFFFieldTag(fip) != TIFFTAG_COMPRESSION //<- they are defined as TIFF_VARIABLE but in reality return a single value
- ) {
- if(TIFFGetField(tif, tag, &raw_data) != 1) {
- return TRUE;
-@@ -281,7 +292,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
-
- // access fields as values
-
-- const int value_size = _TIFFDataSize(fip->field_type);
-+ const int value_size = _TIFFDataSize((TIFFFieldDataType(fip)));
- raw_data = _TIFFmalloc(value_size * value_count);
- mem_alloc = 1;
- int ok = FALSE;
-@@ -302,7 +313,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
- break;
- */
- default:
-- FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", fip->field_name);
-+ FreeImage_OutputMessageProc(FIF_TIFF, "Unimplemented variable number of parameters for Tiff Tag %s", TIFFFieldName(fip));
- break;
- }
- if(ok != 1) {
-@@ -325,59 +336,59 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
- FreeImage_SetTagID(fitag, (WORD)tag);
- FreeImage_SetTagKey(fitag, key);
-
-- switch(fip->field_type) {
-+ switch(TIFFFieldDataType(fip)) {
- case TIFF_BYTE:
- FreeImage_SetTagType(fitag, FIDT_BYTE);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_UNDEFINED:
- FreeImage_SetTagType(fitag, FIDT_UNDEFINED);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_SBYTE:
- FreeImage_SetTagType(fitag, FIDT_SBYTE);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_SHORT:
- FreeImage_SetTagType(fitag, FIDT_SHORT);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_SSHORT:
- FreeImage_SetTagType(fitag, FIDT_SSHORT);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_LONG:
- FreeImage_SetTagType(fitag, FIDT_LONG);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_IFD:
- FreeImage_SetTagType(fitag, FIDT_IFD);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_SLONG:
- FreeImage_SetTagType(fitag, FIDT_SLONG);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-@@ -392,7 +403,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
- rvalue[2*i+1] = rational.getDenominator();
- }
- FreeImage_SetTagType(fitag, FIDT_RATIONAL);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, rvalue);
- free(rvalue);
-@@ -409,7 +420,7 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
- rvalue[2*i+1] = rational.getDenominator();
- }
- FreeImage_SetTagType(fitag, FIDT_RATIONAL);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, rvalue);
- free(rvalue);
-@@ -418,35 +429,35 @@ tiff_read_exif_tag(TIFF *tif, TagLib::MD
-
- case TIFF_FLOAT:
- FreeImage_SetTagType(fitag, FIDT_FLOAT);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_DOUBLE:
- FreeImage_SetTagType(fitag, FIDT_DOUBLE);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_LONG8: // BigTIFF 64-bit unsigned integer
- FreeImage_SetTagType(fitag, FIDT_LONG8);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_IFD8: // BigTIFF 64-bit unsigned integer (offset)
- FreeImage_SetTagType(fitag, FIDT_IFD8);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-
- case TIFF_SLONG8: // BigTIFF 64-bit signed integer
- FreeImage_SetTagType(fitag, FIDT_SLONG8);
-- FreeImage_SetTagLength(fitag, TIFFDataWidth(fip->field_type) * value_count);
-+ FreeImage_SetTagLength(fitag, TIFFDataWidth(TIFFFieldDataType(fip)) * value_count);
- FreeImage_SetTagCount(fitag, value_count);
- FreeImage_SetTagValue(fitag, raw_data);
- break;
-@@ -489,16 +500,16 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
-
- TagLib& tagLib = TagLib::instance();
-
-- TIFFDirectory *td = &tif->tif_dir;
--
- count = (short) TIFFGetTagListCount(tif);
- for(i = 0; i < count; i++) {
- uint32 tag = TIFFGetTagListEntry(tif, i);
- // read the tag
-- if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, td, tag))
-+ if (!tiff_read_exif_tag(tif, md_model, dib, tagLib, tag))
- return FALSE;
- }
-
-+/* Disabled for Fedora as it is using internal library structures. */
-+#if 0
- // we want to know values of standard tags too!!
-
- // loop over all Core Directory Tags
-@@ -533,13 +544,14 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
-
- // process *all* other tags (some will be ignored)
-
-- tiff_read_exif_tag(tif, md_model, dib, tagLib, td, fld->field_tag);
-+ tiff_read_exif_tag(tif, md_model, dib, tagLib, fld->field_tag);
-
-
- lastTag = fld->field_tag;
- }
-
- }
-+#endif
-
- return TRUE;
-
-@@ -611,6 +623,10 @@ Write all known exif tags
- */
- BOOL
- tiff_write_exif_tags(TIFF *tif, TagLib::MDMODEL md_model, FIBITMAP *dib) {
-+/* Disabled for Fedora as it is using internal library structures. Siberia
-+ * winter on upstream developer! :-) */
-+ return FALSE;
-+#if 0
- char defaultKey[16];
-
- // only EXIF_MAIN so far
-@@ -662,4 +678,5 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
- }
-
- return TRUE;
-+#endif
- }
-diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
---- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2014-01-16 00:49:42.338523316 +0100
-@@ -26,10 +26,10 @@
- #undef FAR
- #include
-
--#include "../LibJPEG/jinclude.h"
--#include "../LibJPEG/jpeglib.h"
--#include "../LibJPEG/jerror.h"
--#include "../LibJPEG/transupp.h"
-+#include
-+#include
-+#include
-+#include
- }
-
- #include "FreeImage.h"
-diff -rupN FreeImage/Source/LibJXR/image/sys/strcodec.c FreeImage-new/Source/LibJXR/image/sys/strcodec.c
---- FreeImage/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:27:03.000000000 +0100
-+++ FreeImage-new/Source/LibJXR/image/sys/strcodec.c 2014-01-16 00:49:42.338523316 +0100
-@@ -664,7 +664,7 @@
- //================================================================
- // Memory access functions
- //================================================================
--#if (defined(WIN32) && !defined(UNDER_CE) && !defined(__MINGW32__)) || (defined(UNDER_CE) && defined(_ARM_))
-+#if (defined(WIN32) && !defined(UNDER_CE)) || (defined(UNDER_CE) && defined(_ARM_))
- // WinCE ARM and Desktop x86
- #else
- // other platform
diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch
new file mode 100644
index 0000000000..19ec93a10e
--- /dev/null
+++ b/mingw-w64-FreeImage/FreeImage-3.17.0_CVE-2015-0852.patch
@@ -0,0 +1,216 @@
+diff -rupN FreeImage/Source/FreeImage/PluginPCX.cpp FreeImage-new/Source/FreeImage/PluginPCX.cpp
+--- FreeImage/Source/FreeImage/PluginPCX.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginPCX.cpp 2015-09-05 02:44:55.429436425 +0200
+@@ -30,7 +30,7 @@
+ // Constants + headers
+ // ----------------------------------------------------------
+
+-#define IO_BUF_SIZE 2048
++#define PCX_IO_BUF_SIZE 2048
+
+ // ----------------------------------------------------------
+
+@@ -120,17 +120,17 @@ readline(FreeImageIO &io, fi_handle hand
+
+ while (length--) {
+ if (count == 0) {
+- if (*ReadPos >= IO_BUF_SIZE - 1 ) {
+- if (*ReadPos == IO_BUF_SIZE - 1) {
++ if (*ReadPos >= PCX_IO_BUF_SIZE - 1 ) {
++ if (*ReadPos == PCX_IO_BUF_SIZE - 1) {
+ // we still have one BYTE, copy it to the start pos
+
+- *ReadBuf = ReadBuf[IO_BUF_SIZE - 1];
++ *ReadBuf = ReadBuf[PCX_IO_BUF_SIZE - 1];
+
+- io.read_proc(ReadBuf + 1, 1, IO_BUF_SIZE - 1, handle);
++ io.read_proc(ReadBuf + 1, 1, PCX_IO_BUF_SIZE - 1, handle);
+ } else {
+ // read the complete buffer
+
+- io.read_proc(ReadBuf, 1, IO_BUF_SIZE, handle);
++ io.read_proc(ReadBuf, 1, PCX_IO_BUF_SIZE, handle);
+ }
+
+ *ReadPos = 0;
+@@ -346,19 +346,9 @@ Load(FreeImageIO *io, fi_handle handle,
+ BOOL header_only = (flags & FIF_LOAD_NOPIXELS) == FIF_LOAD_NOPIXELS;
+
+ try {
+- // check PCX identifier
+-
+- long start_pos = io->tell_proc(handle);
+- BOOL validated = pcx_validate(io, handle);
+- io->seek_proc(handle, start_pos, SEEK_SET);
+- if(!validated) {
+- throw FI_MSG_ERROR_MAGIC_NUMBER;
+- }
+-
+- // process the header
+-
+ PCXHEADER header;
+
++ // process the header
+ if(io->read_proc(&header, sizeof(PCXHEADER), 1, handle) != 1) {
+ throw FI_MSG_ERROR_PARSING;
+ }
+@@ -366,20 +356,38 @@ Load(FreeImageIO *io, fi_handle handle,
+ SwapHeader(&header);
+ #endif
+
+- // allocate a new DIB
++ // process the window
++ const WORD *window = header.window; // left, upper, right,lower pixel coord.
++ const int left = window[0];
++ const int top = window[1];
++ const int right = window[2];
++ const int bottom = window[3];
+
+- unsigned width = header.window[2] - header.window[0] + 1;
+- unsigned height = header.window[3] - header.window[1] + 1;
+- unsigned bitcount = header.bpp * header.planes;
+-
+- if (bitcount == 24) {
+- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
+- } else {
+- dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
++ // check image size
++ if((left >= right) || (top >= bottom)) {
++ throw FI_MSG_ERROR_PARSING;
+ }
+
+- // if the dib couldn't be allocated, throw an error
++ const unsigned width = right - left + 1;
++ const unsigned height = bottom - top + 1;
++ const unsigned bitcount = header.bpp * header.planes;
+
++ // allocate a new dib
++ switch(bitcount) {
++ case 1:
++ case 4:
++ case 8:
++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount);
++ break;
++ case 24:
++ dib = FreeImage_AllocateHeader(header_only, width, height, bitcount, FI_RGBA_RED_MASK, FI_RGBA_GREEN_MASK, FI_RGBA_BLUE_MASK);
++ break;
++ default:
++ throw FI_MSG_ERROR_DIB_MEMORY;
++ break;
++ }
++
++ // if the dib couldn't be allocated, throw an error
+ if (!dib) {
+ throw FI_MSG_ERROR_DIB_MEMORY;
+ }
+@@ -426,19 +434,23 @@ Load(FreeImageIO *io, fi_handle handle,
+
+ if (palette_id == 0x0C) {
+ BYTE *cmap = (BYTE*)malloc(768 * sizeof(BYTE));
+- io->read_proc(cmap, 768, 1, handle);
+
+- pal = FreeImage_GetPalette(dib);
+- BYTE *pColormap = &cmap[0];
++ if(cmap) {
++ io->read_proc(cmap, 768, 1, handle);
+
+- for(int i = 0; i < 256; i++) {
+- pal[i].rgbRed = pColormap[0];
+- pal[i].rgbGreen = pColormap[1];
+- pal[i].rgbBlue = pColormap[2];
+- pColormap += 3;
++ pal = FreeImage_GetPalette(dib);
++ BYTE *pColormap = &cmap[0];
++
++ for(int i = 0; i < 256; i++) {
++ pal[i].rgbRed = pColormap[0];
++ pal[i].rgbGreen = pColormap[1];
++ pal[i].rgbBlue = pColormap[2];
++ pColormap += 3;
++ }
++
++ free(cmap);
+ }
+
+- free(cmap);
+ }
+
+ // wrong palette ID, perhaps a gray scale is needed ?
+@@ -463,12 +475,12 @@ Load(FreeImageIO *io, fi_handle handle,
+ return dib;
+ }
+
+- // calculate the line length for the PCX and the DIB
++ // calculate the line length for the PCX and the dib
+
+ // length of raster line in bytes
+- unsigned linelength = header.bytes_per_line * header.planes;
+- // length of DIB line (rounded to DWORD) in bytes
+- unsigned pitch = FreeImage_GetPitch(dib);
++ const unsigned linelength = header.bytes_per_line * header.planes;
++ // length of dib line (rounded to DWORD) in bytes
++ const unsigned pitch = FreeImage_GetPitch(dib);
+
+ // run-length encoding ?
+
+@@ -478,14 +490,18 @@ Load(FreeImageIO *io, fi_handle handle,
+ // ---------------
+
+ line = (BYTE*)malloc(linelength * sizeof(BYTE));
+- if(!line) throw FI_MSG_ERROR_MEMORY;
++ if(!line) {
++ throw FI_MSG_ERROR_MEMORY;
++ }
+
+- ReadBuf = (BYTE*)malloc(IO_BUF_SIZE * sizeof(BYTE));
+- if(!ReadBuf) throw FI_MSG_ERROR_MEMORY;
++ ReadBuf = (BYTE*)malloc(PCX_IO_BUF_SIZE * sizeof(BYTE));
++ if(!ReadBuf) {
++ throw FI_MSG_ERROR_MEMORY;
++ }
+
+ bits = FreeImage_GetScanLine(dib, height - 1);
+
+- int ReadPos = IO_BUF_SIZE;
++ int ReadPos = PCX_IO_BUF_SIZE;
+
+ if ((header.planes == 1) && ((header.bpp == 1) || (header.bpp == 8))) {
+ BYTE skip;
+@@ -497,7 +513,7 @@ Load(FreeImageIO *io, fi_handle handle,
+ // skip trailing garbage at the end of the scanline
+
+ for (unsigned count = written; count < linelength; count++) {
+- if (ReadPos < IO_BUF_SIZE) {
++ if (ReadPos < PCX_IO_BUF_SIZE) {
+ ReadPos++;
+ } else {
+ io->read_proc(&skip, sizeof(BYTE), 1, handle);
+@@ -513,7 +529,9 @@ Load(FreeImageIO *io, fi_handle handle,
+ unsigned x, y, written;
+
+ buffer = (BYTE*)malloc(width * sizeof(BYTE));
+- if(!buffer) throw FI_MSG_ERROR_MEMORY;
++ if(!buffer) {
++ throw FI_MSG_ERROR_MEMORY;
++ }
+
+ for (y = 0; y < height; y++) {
+ written = readline(*io, handle, line, linelength, bIsRLE, ReadBuf, &ReadPos);
+@@ -532,7 +550,7 @@ Load(FreeImageIO *io, fi_handle handle,
+ }
+ }
+
+- // then write the DIB row
++ // then write the dib row
+
+ for (x = 0; x < width / 2; x++) {
+ bits[x] = (buffer[2*x] << 4) | buffer[2*x+1];
+@@ -541,7 +559,7 @@ Load(FreeImageIO *io, fi_handle handle,
+ // skip trailing garbage at the end of the scanline
+
+ for (unsigned count = written; count < linelength; count++) {
+- if (ReadPos < IO_BUF_SIZE) {
++ if (ReadPos < PCX_IO_BUF_SIZE) {
+ ReadPos++;
+ } else {
+ io->read_proc(&skip, sizeof(BYTE), 1, handle);
diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch
new file mode 100644
index 0000000000..ab125eee76
--- /dev/null
+++ b/mingw-w64-FreeImage/FreeImage-3.17.0_mingw-makefiles.patch
@@ -0,0 +1,167 @@
+diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
+--- FreeImage/Makefile.fip 2015-09-17 22:51:21.797196208 +0200
++++ FreeImage-new/Makefile.fip 2015-09-24 01:18:01.576395215 +0200
+@@ -3,6 +3,14 @@
+ # This file can be generated by ./genfipsrclist.sh
+ include fipMakefile.srcs
+
++CC = gcc
++CXX = g++
++LD = g++
++AR = ar
++DLLTOOL = dlltool
++RC = windres
++PKGCONFIG = pkg-config
++
+ # General configuration variables:
+ DESTDIR ?= /
+ INCDIR ?= $(DESTDIR)/usr/include
+@@ -24,24 +32,21 @@ override CFLAGS += -DNO_LCMS
+ override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+ override CFLAGS += $(INCLUDE)
+ CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
++override CXXFLAGS += -DFIP_EXPORTS
+ # LibJXR
+ override CXXFLAGS += -D__ANSI__
+ override CXXFLAGS += $(INCLUDE)
+ LDFLAGS ?=
+-override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
+-
+-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- override CFLAGS += -fPIC
+- override CXXFLAGS += -fPIC
+-endif
++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR) -lgdi32
+
+ TARGET = freeimageplus
+ STATICLIB = lib$(TARGET).a
+-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
+-LIBNAME = lib$(TARGET).so
+-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
++IMPORTLIB = lib$(TARGET).dll.a
++EXPORTLIB = lib$(TARGET).exp
+ HEADER = Source/FreeImage.h
+ HEADERFIP = Wrapper/FreeImagePlus/FreeImagePlus.h
++RCFILE = Wrapper/FreeImagePlus/FreeImagePlus.rc
+
+
+ default: all
+@@ -51,7 +56,8 @@ all: dist
+ dist: FreeImage
+ mkdir -p Dist
+ cp *.a Dist/
+- cp *.so Dist/
++ cp *.dll Dist/
++ cp *.dll.a Dist/
+ cp Source/FreeImage.h Dist/
+ cp Wrapper/FreeImagePlus/FreeImagePlus.h Dist/
+
+@@ -66,21 +72,14 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
+ .cpp.o:
+ $(CXX) $(CXXFLAGS) -c $< -o $@
+
+-$(STATICLIB): $(MODULES)
+- $(AR) r $@ $(MODULES)
++%.coff: %.rc
++ $(RC) $(RCFLAGS) -o $@ $<
+
+-$(SHAREDLIB): $(MODULES)
+- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+-
+-install:
+- install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(HEADERFIP) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
+- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
++$(STATICLIB): $(MODULES)
++ $(AR) rs $@ $(MODULES)
+
+-clean:
+- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
++$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
+
++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
+diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
+--- FreeImage/Makefile.gnu 2015-09-17 22:51:21.798196232 +0200
++++ FreeImage-new/Makefile.gnu 2015-09-24 01:24:52.381788259 +0200
+@@ -3,6 +3,14 @@
+ # This file can be generated by ./gensrclist.sh
+ include Makefile.srcs
+
++CC = gcc
++CXX = g++
++LD = g++
++AR = ar
++DLLTOOL = dlltool
++RC = windres
++PKGCONFIG = pkg-config
++
+ # General configuration variables:
+ DESTDIR ?= /
+ INCDIR ?= $(DESTDIR)/usr/include
+@@ -16,18 +24,14 @@ LIBRARIES = -lstdc++
+ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+ CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+-override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
+-override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
+-
+-ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- override CFLAGS += -fPIC
+-endif
++override CFLAGS += $(INCLUDE) -D__ANSI__ -DFREEIMAGE_EXPORTS -I/mingw32/include/jxrlib -I/mingw64/include/jxrlib $(shell ${PKGCONFIG} --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
++override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell ${PKGCONFIG} --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+
+ TARGET = freeimage
+ STATICLIB = lib$(TARGET).a
+-SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).$(VER_MINOR).so
+-LIBNAME = lib$(TARGET).so
+-VERLIBNAME = $(LIBNAME).$(VER_MAJOR)
++SHAREDLIB = lib$(TARGET)-$(VER_MAJOR).dll
++IMPORTLIB = lib$(TARGET).dll.a
++EXPORTLIB = lib$(TARGET).exp
+ HEADER = Source/FreeImage.h
+
+
+@@ -39,7 +43,8 @@ all: dist
+ dist: FreeImage
+ mkdir -p Dist
+ cp *.a Dist/
+- cp *.so Dist/
++ cp *.dll Dist/
++ cp *.dll.a Dist/
+ cp Source/FreeImage.h Dist/
+
+ dos2unix:
+@@ -54,20 +59,10 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
+ $(CXX) $(CFLAGS) -c $< -o $@
+
+ $(STATICLIB): $(MODULES)
+- $(AR) r $@ $(MODULES)
+-
+-$(SHAREDLIB): $(MODULES)
+- $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+-
+-install:
+- install -d $(INCDIR) $(INSTALLDIR)
+- install -m 644 -o root -g root $(HEADER) $(INCDIR)
+- install -m 644 -o root -g root $(STATICLIB) $(INSTALLDIR)
+- install -m 755 -o root -g root $(SHAREDLIB) $(INSTALLDIR)
+- ln -sf $(SHAREDLIB) $(INSTALLDIR)/$(VERLIBNAME)
+- ln -sf $(VERLIBNAME) $(INSTALLDIR)/$(LIBNAME)
+-# ldconfig
++ $(AR) rs $@ $(MODULES)
+
+-clean:
+- rm -f core Dist/*.* u2dtmp* $(MODULES) $(STATICLIB) $(SHAREDLIB) $(LIBNAME)
++$(IMPORTLIB) $(EXPORTLIB): $(MODULES)
++ $(DLLTOOL) -e $(EXPORTLIB) -l $(IMPORTLIB) -D $(SHAREDLIB) $(DLLTOOLFLAGS) $(MODULES)
+
++$(SHAREDLIB): $(EXPORTLIB) $(RESOURCE)
++ $(LD) -shared -o $@ $(EXPORTLIB) $(MODULES) $(RESOURCE) $(LDFLAGS)
diff --git a/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch
new file mode 100644
index 0000000000..d5729bc108
--- /dev/null
+++ b/mingw-w64-FreeImage/FreeImage-3.17.0_unbundle.patch
@@ -0,0 +1,548 @@
+diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
+--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
++++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
++DIRLIST="Wrapper/FreeImagePlus"
+
+
+ echo "VER_MAJOR = 3" > fipMakefile.srcs
+@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
+ for DIR in $DIRLIST; do
+ echo -n " -I$DIR" >> fipMakefile.srcs
+ done
++echo -n " -IDist" >> fipMakefile.srcs
+ echo >> fipMakefile.srcs
+
+diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
+--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
++++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
++DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
+
+ echo "VER_MAJOR = 3" > Makefile.srcs
+ echo "VER_MINOR = 17.0" >> Makefile.srcs
+diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
+--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
++++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
+@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+ CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+ # OpenJPEG
+-CFLAGS += -DOPJ_STATIC
++override CFLAGS += -DOPJ_STATIC
+ # LibRaw
+-CFLAGS += -DNO_LCMS
++override CFLAGS += -DNO_LCMS
+ # LibJXR
+-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+-CFLAGS += $(INCLUDE)
++override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
++override CFLAGS += $(INCLUDE)
+ CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+ # LibJXR
+-CXXFLAGS += -D__ANSI__
+-CXXFLAGS += $(INCLUDE)
++override CXXFLAGS += -D__ANSI__
++override CXXFLAGS += $(INCLUDE)
++LDFLAGS ?=
++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- CFLAGS += -fPIC
+- CXXFLAGS += -fPIC
++ override CFLAGS += -fPIC
++ override CXXFLAGS += -fPIC
+ endif
+
+ TARGET = freeimageplus
+@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
+ $(AR) r $@ $(MODULES)
+
+ $(SHAREDLIB): $(MODULES)
+- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
+--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
++++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
+@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
+ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+ CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+-# OpenJPEG
+-CFLAGS += -DOPJ_STATIC
+-# LibRaw
+-CFLAGS += -DNO_LCMS
+-# LibJXR
+-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+-CFLAGS += $(INCLUDE)
+-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+-# LibJXR
+-CXXFLAGS += -D__ANSI__
+-CXXFLAGS += $(INCLUDE)
++override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
++override LDFLAGS += -ljpeg -ljpegxr $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp zlib)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- CFLAGS += -fPIC
+- CXXFLAGS += -fPIC
++ override CFLAGS += -fPIC
+ endif
+
+ TARGET = freeimage
+@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
+ $(CC) $(CFLAGS) -c $< -o $@
+
+ .cpp.o:
+- $(CXX) $(CXXFLAGS) -c $< -o $@
++ $(CXX) $(CFLAGS) -c $< -o $@
+
+ $(STATICLIB): $(MODULES)
+ $(AR) r $@ $(MODULES)
+
+ $(SHAREDLIB): $(MODULES)
+- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
+--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include
+ #include "J2KHelper.h"
+
+ // --------------------------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
+--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
+ s_plugins->AddNode(InitDDS);
+ s_plugins->AddNode(InitGIF);
+ s_plugins->AddNode(InitHDR);
+- s_plugins->AddNode(InitG3);
++/* The G3 fax format plugin is deliberately disabled in the Fedora build of
++ FreeImage as it requires that FreeImage uses a private copy of libtiff
++ which is a no no because of security reasons. */
++#if 0
++ s_plugins->AddNode(InitG3);
++#endif
+ s_plugins->AddNode(InitSGI);
+ s_plugins->AddNode(InitEXR);
+ s_plugins->AddNode(InitJ2K);
+diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
+--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -28,16 +28,16 @@
+ #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
+ #endif
+
+-#include "../OpenEXR/IlmImf/ImfIO.h"
+-#include "../OpenEXR/Iex/Iex.h"
+-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
+-#include "../OpenEXR/IlmImf/ImfInputFile.h"
+-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
+-#include "../OpenEXR/IlmImf/ImfChannelList.h"
+-#include "../OpenEXR/IlmImf/ImfRgba.h"
+-#include "../OpenEXR/IlmImf/ImfArray.h"
+-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
+-#include "../OpenEXR/Half/half.h"
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
++#include
+
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
+--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include
+ #include "J2KHelper.h"
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
+--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include
+ #include "J2KHelper.h"
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
+--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -35,9 +35,9 @@ extern "C" {
+ #undef FAR
+ #include
+
+-#include "../LibJPEG/jinclude.h"
+-#include "../LibJPEG/jpeglib.h"
+-#include "../LibJPEG/jerror.h"
++#include
++#include
++#include
+ }
+
+ #include "FreeImage.h"
+diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
+--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -23,7 +23,7 @@
+ #include "Utilities.h"
+ #include "../Metadata/FreeImageTag.h"
+
+-#include "../LibJXR/jxrgluelib/JXRGlue.h"
++#include
+
+ // ==========================================================
+ // Plugin Interface
+diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
+--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -40,8 +40,8 @@
+
+ // ----------------------------------------------------------
+
+-#include "../ZLib/zlib.h"
+-#include "../LibPNG/png.h"
++#include
++#include
+
+ // ----------------------------------------------------------
+
+diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
+--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -19,7 +19,7 @@
+ // Use at your own risk!
+ // ==========================================================
+
+-#include "../LibRawLite/libraw/libraw.h"
++#include
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
+--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -37,9 +37,9 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibTIFF4/tiffiop.h"
++#include
+ #include "../Metadata/FreeImageTag.h"
+-#include "../OpenEXR/Half/half.h"
++#include
+
+ #include "FreeImageIO.h"
+ #include "PSDParser.h"
+@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
+ return tif;
+ }
+
+-/**
+-Open a TIFF file for reading or writing
+-@param name
+-@param mode
+-*/
+-TIFF*
+-TIFFOpen(const char* name, const char* mode) {
+- return 0;
+-}
+-
+ // ----------------------------------------------------------
+ // TIFF library FreeImage-specific routines.
+ // ----------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
+--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -24,10 +24,10 @@
+
+ #include "../Metadata/FreeImageTag.h"
+
+-#include "../LibWebP/src/webp/decode.h"
+-#include "../LibWebP/src/webp/encode.h"
+-#include "../LibWebP/src/enc/vp8enci.h"
+-#include "../LibWebP/src/webp/mux.h"
++#include
++#include
++// #include "../LibWebP/src/enc/vp8enci.h"
++#include
+
+ // ==========================================================
+ // Plugin Interface
+diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
+--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -19,10 +19,9 @@
+ // Use at your own risk!
+ // ==========================================================
+
+-#include "../ZLib/zlib.h"
++#include
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
+
+ /**
+ Compresses a source buffer into a target buffer, using the ZLib library.
+@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
+ return 0;
+ case Z_OK: {
+ // patch header, setup crc and length (stolen from mod_trace_output)
+- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
++ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
+ crc = crc32(crc, source, source_size);
+ memcpy(target + 4 + dest_len, &crc, 4);
+ memcpy(target + 8 + dest_len, &source_size, 4);
+diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
+--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
++++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
+@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
+ typedef uint16_t WORD;
+ typedef uint32_t DWORD;
+ typedef int32_t LONG;
++// Disable these, they conflict with the (wrong) ones of libraw
++#if 0
+ typedef int64_t INT64;
+ typedef uint64_t UINT64;
++#endif
+ #else
+ // MS is not C99 ISO compliant
+ typedef long BOOL;
+@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
+ FIF_DDS = 24,
+ FIF_GIF = 25,
+ FIF_HDR = 26,
+- FIF_FAXG3 = 27,
++/* The G3 fax format plugin is deliberately disabled in the Fedora build of
++ FreeImage as it requires that FreeImage uses a private copy of libtiff
++ which is a no no because of security reasons. */
++#if 0
++ FIF_FAXG3 = 27,
++#endif
+ FIF_SGI = 28,
+ FIF_EXR = 29,
+ FIF_J2K = 30,
+@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
+ FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
+ };
+
++/* The FreeImage_JPEGTransform functions are deliberately disabled in the
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
++ of libjpeg which is a no no because of security reasons. */
++#if 0
+ /** Lossless JPEG transformations
+ Constants used in FreeImage_JPEGTransform
+ */
+@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
+ FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
+ FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
+ };
++#endif
+
+ /** Tone mapping operators.
+ Constants used in FreeImage_ToneMapping.
+@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
+ // --------------------------------------------------------------------------
+ // JPEG lossless transformation routines
+ // --------------------------------------------------------------------------
+-
++/* The FreeImage_JPEGTransform functions are deliberately disabled in the
+++ Fedora build of FreeImage as they require that FreeImage uses a private copy
+++ of libjpeg which is a no no because of security reasons. */
++#if 0
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
+@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
++#endif
+
+
+ // --------------------------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
+--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -26,10 +26,10 @@ extern "C" {
+ #undef FAR
+ #include
+
+-#include "../LibJPEG/jinclude.h"
+-#include "../LibJPEG/jpeglib.h"
+-#include "../LibJPEG/jerror.h"
+-#include "../LibJPEG/transupp.h"
++#include
++#include
++#include
++#include
+ }
+
+ #include "FreeImage.h"
+diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
+--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -30,6 +30,11 @@
+
+ #define MAX_TEXT_EXTENT 512
+
++// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
++typedef int64_t INT64;
++typedef uint64_t UINT64;
++
++
+ /**
+ Convert a tag to a C string
+ */
+diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
+--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -29,13 +29,18 @@
+ #pragma warning (disable : 4786) // identifier was truncated to 'number' characters
+ #endif
+
+-#include "../LibTIFF4/tiffiop.h"
++#include
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+ #include "FreeImageTag.h"
+ #include "FIRational.h"
+
++extern "C"
++{
++ int _TIFFDataSize(TIFFDataType type);
++}
++
+ // ----------------------------------------------------------
+ // Extended TIFF Directory GEO Tag Support
+ // ----------------------------------------------------------
+@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
+ // TIFF EXIF tag reading & writing
+ // ----------------------------------------------------------
+
++static uint32 exif_tag_ids[] = {
++ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
++ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
++ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
++ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
++ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
++ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
++ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
++ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
++ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
++ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
++ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
++ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
++ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
++ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
++ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
++ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
++ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
++ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
++ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
++ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
++ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
++ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
++ EXIFTAG_IMAGEUNIQUEID
++};
++static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
++
+ /**
+ Read a single Exif tag
+
+@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
+
+ // loop over all Core Directory Tags
+ // ### uses private data, but there is no other way
++ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
+ if(md_model == TagLib::EXIF_MAIN) {
+- const TIFFDirectory *td = &tif->tif_dir;
+-
+- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
+-
+- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
+- const TIFFField *fld = tif->tif_fields[fi];
+-
+- const uint32 tag_id = TIFFFieldTag(fld);
+-
+- if(tag_id == lastTag) {
+- continue;
+- }
+-
+- // test if tag value is set
+- // (lifted directly from LibTiff _TIFFWriteDirectory)
+-
+- if( fld->field_bit == FIELD_CUSTOM ) {
+- int is_set = FALSE;
+-
+- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
+- is_set |= (td->td_customValues[ci].info == fld);
+- }
+-
+- if( !is_set ) {
+- continue;
+- }
+-
+- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
+- continue;
+- }
+-
+- // process *all* other tags (some will be ignored)
+-
+- tiff_read_exif_tag(tif, tag_id, dib, md_model);
+-
+- lastTag = tag_id;
++ for (int i = 0; i < nExifTags; ++i) {
++ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
+ }
+-
+ }
+
+ return TRUE;
+@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
+
+ TagLib& tag_lib = TagLib::instance();
+
+- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
+- const TIFFField *fld = tif->tif_fields[fi];
+-
+- const uint32 tag_id = TIFFFieldTag(fld);
++ for (int fi = 0; fi < nExifTags; fi++) {
++ const uint32 tag_id = exif_tag_ids[fi];
++ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
+
+ if(skip_write_field(tif, tag_id)) {
+ // skip tags that are already handled by the LibTIFF writing process
diff --git a/mingw-w64-FreeImage/PKGBUILD b/mingw-w64-FreeImage/PKGBUILD
index 1ad0dd9f4c..811d4ecc5b 100644
--- a/mingw-w64-FreeImage/PKGBUILD
+++ b/mingw-w64-FreeImage/PKGBUILD
@@ -1,67 +1,61 @@
# Maintainer: Alexey Pavlov
_realname=FreeImage
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=3.16.0
-pkgrel=5
+pkgver=3.17.0
+pkgrel=1
pkgdesc="Library project for developers who would like to support popular graphics image formats (mingw-w64)."
arch=('any')
license=('GPL' 'custom:FIPL')
url="http://freeimage.sourceforge.net/"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
- "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
- "${MINGW_PACKAGE_PREFIX}-libpng"
- "${MINGW_PACKAGE_PREFIX}-libtiff"
- "${MINGW_PACKAGE_PREFIX}-LibRaw"
- "${MINGW_PACKAGE_PREFIX}-openjpeg2"
- "${MINGW_PACKAGE_PREFIX}-openexr"
- "${MINGW_PACKAGE_PREFIX}-libwebp")
-makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
+ "${MINGW_PACKAGE_PREFIX}-jxrlib"
+ "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
+ "${MINGW_PACKAGE_PREFIX}-libpng"
+ "${MINGW_PACKAGE_PREFIX}-libtiff"
+ "${MINGW_PACKAGE_PREFIX}-LibRaw"
+ "${MINGW_PACKAGE_PREFIX}-libwebp"
+ "${MINGW_PACKAGE_PREFIX}-openjpeg2"
+ "${MINGW_PACKAGE_PREFIX}-openexr")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-iconv"
+ "${MINGW_PACKAGE_PREFIX}-pkg-config"
+ "dos2unix" "make")
options=('strip' 'staticlibs' '!buildflags')
source=("http://downloads.sourceforge.net/sourceforge/freeimage/FreeImage${pkgver//./}.zip"
- 'FreeImage-3.16.0_mingw-makefiles.patch'
- 'FreeImage-3.16.0_unbundle.patch'
- 'FreeImage-3.16.0_disable-some-plugins.patch')
-md5sums=('1a2d1fff6204adbd479cc98818892fc1'
- '20a0a9f7257df79bbcbdec62ed2446d9'
- '824115841c4a5be8aa98a7b31ce07d79'
- 'ffd4a31d2d1c2cf19af3a1e6232f8fd6')
+ 'FreeImage-3.17.0_mingw-makefiles.patch'
+ 'FreeImage-3.17.0_unbundle.patch'
+ 'FreeImage-3.17.0_CVE-2015-0852.patch')
+md5sums=('459e15f0ec75d6efa3c7bd63277ead86'
+ '6510a7f7c715acf7bd182cd888d4787d'
+ 'b81acf43a202d03573932e1f98d63a60'
+ 'b21385e2da5dcdf4aa4e98d11150115d')
prepare() {
cd ${srcdir}/FreeImage
- # Convert to utf-8
- #iconv -f ISO-8859-15 -t UTF-8 Whatsnew.txt
- #iconv -f WINDOWS-1252 -t UTF-8 license-gplv3.txt
- #iconv -f ISO-8859-15 -t UTF-8 -o Whatsnew.txt.new Whatsnew.txt && \
- # touch -r Whatsnew.txt Whatsnew.txt.new && \
- # mv Whatsnew.txt.new Whatsnew.txt
+ patch -p1 -i ${srcdir}/FreeImage-3.17.0_unbundle.patch
+ patch -p1 -i ${srcdir}/FreeImage-3.17.0_mingw-makefiles.patch
+ patch -p1 -i ${srcdir}/FreeImage-3.17.0_CVE-2015-0852.patch
- #iconv -f WINDOWS-1252 -t UTF-8 -o license-gplv3.txt.new license-gplv3.txt && \
- # touch -r license-gplv3.txt license-gplv3.txt.new && \
- # mv license-gplv3.txt.new license-gplv3.txt
-
- patch -p1 -i ${srcdir}/FreeImage-3.16.0_mingw-makefiles.patch
- patch -p1 -i ${srcdir}/FreeImage-3.16.0_unbundle.patch
- patch -p1 -i ${srcdir}/FreeImage-3.16.0_disable-some-plugins.patch
-
- # Remove bundled libraries
- rm -rf Source/OpenEXR
- rm -rf Source/LibMNG
- rm -rf Source/LibOpenJPEG
- rm -rf Source/LibPNG
- rm -rf Source/LibRawLite
- rm -rf Source/LibTIFF
- rm -rf Source/LibJPEG
- rm -rf Source/LibTIFF4
- rm -rf Source/ZLib
- rm -rf Source/LibWebP
-
- # Mingw-w64 has its own header
- rm -rf Source/LibJXR/common/include/guiddef.h
+ # remove all included libs to make sure these don't get used during compile
+ rm -r Source/Lib* Source/ZLib Source/OpenEXR
+
+ # clear files which cannot be built due to dependencies on private headers
+ # (see also unbundle patch)
+ > Source/FreeImage/PluginG3.cpp
+ > Source/FreeImageToolkit/JPEGTransform.cpp
+
+ # sanitize encodings / line endings
+ for file in `find . -type f -name '*.c' -or -name '*.cpp' -or -name '*.h' -or -name '*.txt' -or -name Makefile`; do
+ ${MINGW_PREFIX}/bin/iconv -f ISO-8859-15 -t UTF-8 ${file} > ${file}.new && \
+ sed -i 's|\r||g' ${file}.new && \
+ touch -r ${file} ${file}.new && mv ${file}.new ${file}
+ done
#cp -f ${srcdir}/Makefile.mingw-w64 ${srcdir}/FreeImage/Makefile.mingw-w64
-
+
# Generate source list
sh ./gensrclist.sh
sh ./genfipsrclist.sh
@@ -70,32 +64,17 @@ prepare() {
build() {
cd ${srcdir}/FreeImage
- mkdir -p ${srcdir}/build-{shared,static}-${CARCH}
- lndir ${srcdir}/FreeImage ${srcdir}/build-shared-${CARCH}
- lndir ${srcdir}/FreeImage ${srcdir}/build-static-${CARCH}
+ mkdir -p ${srcdir}/build-${CARCH}
+ lndir ${srcdir}/FreeImage ${srcdir}/build-${CARCH}
plain "Build shared version..."
- cd ${srcdir}/build-shared-${CARCH}
+ cd ${srcdir}/build-${CARCH}
make \
MINGW_TARGET=${MINGW_CHOST} \
- FREEIMAGE_LIBRARY_TYPE="SHARED" \
- -f Makefile.mingw
+ -f Makefile.gnu
make \
MINGW_TARGET=${MINGW_CHOST} \
- FREEIMAGE_LIBRARY_TYPE="SHARED" \
- -f Makefile.fip
-
- plain "Build static version..."
- cd ${srcdir}/build-static-${CARCH}
- make \
- MINGW_TARGET=${MINGW_CHOST} \
- FREEIMAGE_LIBRARY_TYPE="STATIC" \
- -f Makefile.mingw
-
- make \
- MINGW_TARGET=${MINGW_CHOST} \
- FREEIMAGE_LIBRARY_TYPE="STATIC" \
-f Makefile.fip
}
@@ -105,20 +84,19 @@ package() {
install -d "${pkgdir}${MINGW_PREFIX}"/include
install -d "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage
- cd ${srcdir}/build-shared-${CARCH}
+ cd ${srcdir}/build-${CARCH}
install -m755 Dist/libfreeimage-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
install -m644 Dist/libfreeimage.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
install -m755 Dist/libfreeimageplus-*.dll "${pkgdir}${MINGW_PREFIX}"/bin/
install -m644 Dist/libfreeimageplus.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
install -m644 Dist/FreeImage.h "${pkgdir}${MINGW_PREFIX}"/include/
install -m644 Dist/FreeImagePlus.h "${pkgdir}${MINGW_PREFIX}"/include/
-
+
install -m644 Whatsnew.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
install -m644 license-fi.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
install -m644 license-gplv2.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
install -m644 license-gplv3.txt "${pkgdir}${MINGW_PREFIX}"/share/doc/FreeImage/
- cd ${srcdir}/build-static-${CARCH}
install -m644 Dist/libfreeimage.a "${pkgdir}${MINGW_PREFIX}"/lib/
install -m644 Dist/libfreeimageplus.a "${pkgdir}${MINGW_PREFIX}"/lib/
}
diff --git a/mingw-w64-LibRaw/PKGBUILD b/mingw-w64-LibRaw/PKGBUILD
index 559d23a8ee..b883e99487 100644
--- a/mingw-w64-LibRaw/PKGBUILD
+++ b/mingw-w64-LibRaw/PKGBUILD
@@ -1,58 +1,57 @@
# Maintainer: Alexey Pavlov
_realname=LibRaw
-
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=0.16.0
-pkgrel=1
+pkgver=0.16.2
+pkgrel=2
pkgdesc="Library for reading RAW files obtained from digital photo cameras (mingw-w64)"
arch=(any)
url="http://www.libraw.org"
license=("LGPL")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
- "${MINGW_PACKAGE_PREFIX}-lcms2"
- "${MINGW_PACKAGE_PREFIX}-jasper")
+ "${MINGW_PACKAGE_PREFIX}-lcms2"
+ "${MINGW_PACKAGE_PREFIX}-jasper")
options=('staticlibs' 'strip')
source=("http://www.libraw.org/data/${_realname}-${pkgver}.tar.gz"
- "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz"
- "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz"
- "LibRaw_wsock32.patch"
- "LibRaw_obsolete-macros.patch")
-sha256sums=('71f43871ec2535345c5c9b748f07813e49915170f9510b721a2be6478426cf96'
- '749d49694ce729166ec7a1faf7580780687ef190c756931bb075455ee8ed6697'
- 'f2e904f9baa7d173b5ade163c795f26e110255a758e31bd213086a5a61500b5c'
+ "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL2-${pkgver}.tar.gz"
+ "http://www.libraw.org/data/${_realname}-demosaic-pack-GPL3-${pkgver}.tar.gz"
+ "LibRaw_wsock32.patch"
+ "LibRaw_obsolete-macros.patch")
+sha256sums=('6344e355f7c23f13e266844b36265d5f624237ba5a62dc901c7b91b510a84187'
+ '2218f08d59866e7852938356c197b96a6f47d0b9221a261280e010540477e77b'
+ '749b5baa3a4f1f5c4ea4169b9293b02b0d2a0714aa01729327f23f82621c9735'
'4bd077917fb8f37fa736e3a8bf32fabe3df3ff5438b684acbb5adff8a6c2a73b'
'4a31c0ee066f43915beff6f7959b6b2cd246d390720df379bfc047d4cedb6a8f')
prepare() {
- mv $srcdir/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$pkgver/
- mv $srcdir/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-$pkgver/
- cd "$srcdir/${_realname}-$pkgver"
- patch -Np1 -i "$srcdir/LibRaw_wsock32.patch"
- patch -Np1 -i "$srcdir/LibRaw_obsolete-macros.patch"
-
+ mv ${srcdir}/${_realname}-demosaic-pack-GPL2-${pkgver} $srcdir/${_realname}-$}pkgver}/
+ mv ${srcdir}/${_realname}-demosaic-pack-GPL3-${pkgver} $srcdir/${_realname}-${pkgver}/
+ cd "${srcdir}/${_realname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/LibRaw_wsock32.patch"
+ patch -Np1 -i "${srcdir}/LibRaw_obsolete-macros.patch"
+
autoreconf -ifv
}
build() {
CPPFLAGS+=" -DLIBRAW_NODLL"
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
- mkdir -p "${srcdir}/build-${MINGW_CHOST}"
- cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-$pkgver/configure \
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-$pkgver/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-jasper \
- --enable-lcms \
- --enable-demosaic-pack-gpl2 \
- --enable-demosaic-pack-gpl3
+ --enable-lcms \
+ --enable-demosaic-pack-gpl2 \
+ --enable-demosaic-pack-gpl3
- make
+ make
}
package() {
- cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/mingw-w64-OpenBLAS-git/PKGBUILD b/mingw-w64-OpenBLAS-git/PKGBUILD
index 5ccaef810d..ed9707d3dc 100644
--- a/mingw-w64-OpenBLAS-git/PKGBUILD
+++ b/mingw-w64-OpenBLAS-git/PKGBUILD
@@ -10,7 +10,6 @@ provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
arch=('any')
url="http://www.openblas.net/"
license=('custom')
-groups=("${MINGW_PACKAGE_PREFIX}")
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}"
"${MINGW_PACKAGE_PREFIX}-openblas")
conflicts=("${MINGW_PACKAGE_PREFIX}-openblas")
@@ -20,10 +19,10 @@ options=('strip' 'staticlibs')
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gcc-libgfortran"
"${MINGW_PACKAGE_PREFIX}-libwinpthread")
-makedepends=("git"
+makedepends=("git"
"${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-gcc-fortran")
-source=("$_realname"::"git://github.com/xianyi/${_realname}")
+source=("${_realname}"::"git://github.com/xianyi/${_realname}")
sha1sums=('SKIP')
pkgver() {
@@ -84,7 +83,7 @@ package() {
fi
# Copy Licencse
- mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
+ mkdir -p ${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
cp -f ${srcdir}/${_realname}/LICENSE \
${pkgdir}${MINGW_PREFIX}/share/licenses/$_realname
cp -f ${srcdir}/${_realname}/lapack-netlib/LICENSE \
diff --git a/mingw-w64-PKGBUILD-common/build-kf5-shared b/mingw-w64-PKGBUILD-common/build-kf5-shared
new file mode 100644
index 0000000000..9954ccfb9c
--- /dev/null
+++ b/mingw-w64-PKGBUILD-common/build-kf5-shared
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+
+THISDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+# Listed in tier-order
+declare -a pkgs=(
+extra-cmake-modules
+attica-qt5
+karchive-qt5
+kcodecs-qt5
+kconfig-qt5
+kcoreaddons-qt5
+kdbusaddons-qt5
+kguiaddons-qt5
+ki18n-qt5
+kwindowsystem-qt5
+kcrash-qt5
+kglobalaccel-qt5
+kidletime-qt5
+kimageformats-qt5
+kitemmodels-qt5
+kitemviews-qt5
+kjs-qt5
+kplotting-qt5
+kwidgetsaddons-qt5
+solid-qt5
+)
+
+for pkg in "${pkgs[@]}"; do
+ pushd ${THISDIR}/../mingw-w64-${pkg}
+ export KF5_VARIANT=shared
+ rm -rf *pkg*xz src pkg
+ makepkg-mingw -siLf || exit 1
+ popd
+done
diff --git a/mingw-w64-PKGBUILD-common/kde-frameworks5 b/mingw-w64-PKGBUILD-common/kde-frameworks5
index 5161686ef2..282d8be024 100644
--- a/mingw-w64-PKGBUILD-common/kde-frameworks5
+++ b/mingw-w64-PKGBUILD-common/kde-frameworks5
@@ -8,8 +8,9 @@ _kde_f5_init_package() {
fi
_basename=${_PKG}
_realname=${_PKG}-qt5${_namesuff}
+ pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
- url="https://projects.kde.org/projects/frameworks/${_PKG}"
+ url=https://projects.kde.org/projects/frameworks/${_PKG}
}
_kde_f5_add_depends() {
@@ -31,4 +32,3 @@ _kde_f5_CMAKE_BUILD_TYPE() {
echo "Release"
fi
}
-
diff --git a/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git b/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git
new file mode 100644
index 0000000000..b7da52c7a6
--- /dev/null
+++ b/mingw-w64-PKGBUILD-templates/PKGBUILD.CMake-github-git
@@ -0,0 +1,61 @@
+# Maintainer: Some One
+
+_realname=somepackage
+pkgbase=mingw-w64-${_realname}-git
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
+provides="${MINGW_PACKAGE_PREFIX}-${_realname}"
+replaces="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=100.77777777
+pkgrel=1
+pkgdesc="Some package (git) (mingw-w64)"
+arch=('any')
+url="https://github.com/someproject/somepackage"
+license=('LICENSE')
+validpgpkeys=('gpg_KEY')
+makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
+ 'git')
+options=('strip' 'staticlibs')
+source=("${_realname}"::"git+https://github.com/someproject/somepackage.git#branch=master"
+ 0001-An-important-fix.patch
+ 0002-A-less-important-fix.patch)
+md5sums=('SKIP'
+ 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
+ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
+
+pkgver() {
+ cd "${srcdir}"/${_realname}
+ printf "%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "${srcdir}"/${_realname}
+ git am "${srcdir}"/0001-A-really-important-fix.patch
+ git am "${srcdir}"/0002-A-less-important-fix.patch
+}
+
+build() {
+ [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
+ mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
+
+ declare -a extra_config
+ if check_option "debug" "n"; then
+ extra_config+=("-DCMAKE_BUILD_TYPE=Release")
+ else
+ extra_config+=("-DCMAKE_BUILD_TYPE=Debug")
+ fi
+
+ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
+ ${MINGW_PREFIX}/bin/cmake \
+ -G'MSYS Makefiles' \
+ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
+ "${extra_config[@]}" \
+ -DBUILD_{SHARED,STATIC}_LIBS=ON \
+ ../${_realname}
+
+ make
+}
+
+package() {
+ cd "${srcdir}"/build-${CARCH}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball
index 5be959c042..9162c8bc73 100644
--- a/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball
+++ b/mingw-w64-PKGBUILD-templates/PKGBUILD.autotools-tarball
@@ -1,14 +1,15 @@
# Maintainer: Some One
_realname=somepackage
+pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
pkgver=1.0
pkgrel=1
-pkgdesc='Some package'
-groups=("${MINGW_PACKAGE_PREFIX}")
+pkgdesc="Some package (mingw-w64)"
arch=('any')
url='http://www.somepackage.org/'
license=('LICENSE')
+validpgpkeys=('gpg_KEY')
source=("http://www.somepackage.org/${_realname}/${_realname}-${pkgver}.tar.gz"
"0001-A-fix.patch")
sha1sums=("SKIP"
@@ -21,7 +22,7 @@ prepare() {
build() {
cd "$srcdir"/${_realname}-${pkgver}
- [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH}
+ [[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
@@ -30,6 +31,7 @@ build() {
--target=${MINGW_CHOST} \
--enable-static \
--enable-shared
+
make
}
diff --git a/mingw-w64-Pillow/PKGBUILD b/mingw-w64-Pillow/PKGBUILD
index 0f7e3d2fed..a71fc06f9d 100644
--- a/mingw-w64-Pillow/PKGBUILD
+++ b/mingw-w64-Pillow/PKGBUILD
@@ -1,14 +1,13 @@
# Maintainer: Alexey Pavlov
_realname=Pillow
+pkgbase=mingw-w64-python-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-python2-${_realname}" "${MINGW_PACKAGE_PREFIX}-python3-${_realname}")
-pkgver=2.6.0
+pkgver=3.0.0
_py2basever=2.7
-_py3basever=3.4m
-pkgrel=1
-pkgdesc="Python Imaging Library (PIL) fork. Python3 version (mingw-w64)"
+_py3basever=3.5m
+pkgrel=2
arch=('any')
-groups=("${MINGW_PACKAGE_PREFIX}")
license=('custom')
url="https://github.com/python-pillow/Pillow/"
depends=("${MINGW_PACKAGE_PREFIX}-freetype"
@@ -19,33 +18,34 @@ depends=("${MINGW_PACKAGE_PREFIX}-freetype"
"${MINGW_PACKAGE_PREFIX}-openjpeg2"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-python2-setuptools"
- "${MINGW_PACKAGE_PREFIX}-python3-setuptools"
- "${MINGW_PACKAGE_PREFIX}-tk")
+ "${MINGW_PACKAGE_PREFIX}-python3-setuptools"
+ "${MINGW_PACKAGE_PREFIX}-tk")
options=('staticlibs')
-source=("http://pypi.python.org/packages/source/P/$_realname/$_realname-$pkgver.tar.gz"
+source=("http://pypi.python.org/packages/source/P/${_realname}/${_realname}-${pkgver}.tar.gz"
freeze-support.patch)
-md5sums=('dd57c00352dcec1953b7790e1efabf23'
- '91fac3184fff48841738ce838abc6fdf')
+md5sums=('fc8ac44e93da09678eac7e30c9b7377d'
+ 'cff4ba2f6541c7ab2ab2e27a4d53df61')
prepare() {
- cd ${srcdir}/$_realname-$pkgver
+ cd ${srcdir}/${_realname}-${pkgver}
patch -p1 -i ${srcdir}/freeze-support.patch
cd ${srcdir}
- cp -r "$_realname-$pkgver" "python2-build-${CARCH}"
- cp -r "$_realname-$pkgver" "python3-build-${CARCH}"
+ cp -r "${_realname}-${pkgver}" "python2-build-${CARCH}"
+ cp -r "${_realname}-${pkgver}" "python3-build-${CARCH}"
}
package_python3-Pillow() {
+ pkgdesc="Python Imaging Library (PIL) fork Python3 version (mingw-w64)"
depends+=("${MINGW_PACKAGE_PREFIX}-python3")
optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module")
-
- cd "$srcdir/python3-build-${CARCH}"
- MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
- ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0
- install -Dm644 docs/LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-$_realname/LICENSE"
- install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/"
- install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python$_py3basever/" libImaging/*.h
+ cd "${srcdir}/python3-build-${CARCH}"
+ MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
+ ${MINGW_PREFIX}/bin/python3 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0
+
+ install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python3-${_realname}/LICENSE"
+ install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/"
+ install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py3basever}/" libImaging/*.h
# clean up bins
cd "${pkgdir}${MINGW_PREFIX}/bin"
@@ -55,26 +55,26 @@ package_python3-Pillow() {
}
package_python2-Pillow() {
- pkgdesc="Python Imaging Library (PIL) fork. Python2 version."
+ pkgdesc="Python Imaging Library (PIL) fork. Python2 version (mingw-w64)"
depends+=("${MINGW_PACKAGE_PREFIX}-python2")
optdepends=("${MINGW_PACKAGE_PREFIX}-tk: for the ImageTK module")
-
- cd "$srcdir/python2-build-${CARCH}"
+
+ cd "${srcdir}/python2-build-${CARCH}"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
- ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="$pkgdir/" --optimize=0
+ ${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}/" --optimize=0
sed -i 's|/usr/local/bin/python$|/usr/bin/env python2|' \
- "$pkgdir${MINGW_PREFIX}/lib/python$_py2basever/site-packages/PIL/OleFileIO.py"
+ "${pkgdir}${MINGW_PREFIX}/lib/python${_py2basever}/site-packages/PIL/OleFileIO.py"
- install -Dm644 docs/LICENSE "$pkgdir${MINGW_PREFIX}/share/licenses/python2-$_realname/LICENSE"
+ install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/python2-${_realname}/LICENSE"
- install -dm755 "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/"
- install -m644 -t "$pkgdir${MINGW_PREFIX}/include/python$_py2basever/" libImaging/*.h
+ install -dm755 "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/"
+ install -m644 -t "${pkgdir}${MINGW_PREFIX}/include/python${_py2basever}/" libImaging/*.h
# clean up bins
- cd "$pkgdir${MINGW_PREFIX}/bin"
+ cd "${pkgdir}${MINGW_PREFIX}/bin"
for f in *.py; do
- mv "$f" "${f%.py}2"
+ mv "${f}" "${f%.py}2"
done
}
diff --git a/mingw-w64-Pillow/freeze-support.patch b/mingw-w64-Pillow/freeze-support.patch
index db17f0aeda..530689445e 100644
--- a/mingw-w64-Pillow/freeze-support.patch
+++ b/mingw-w64-Pillow/freeze-support.patch
@@ -1,24 +1,24 @@
---- Pillow-2.5.1/mp_compile.py.orig 2014-07-10 17:52:44.000000000 +0400
-+++ Pillow-2.5.1/mp_compile.py 2014-07-12 01:13:13.373200000 +0400
-@@ -1,7 +1,7 @@
- # A monkey patch of the base distutils.ccompiler to use parallel builds
+--- Pillow-3.0.0/mp_compile.py.orig 2015-10-01 16:27:09.000000000 +0100
++++ Pillow-3.0.0/mp_compile.py 2015-10-05 23:34:17.226557000 +0100
+@@ -2,7 +2,7 @@
# Tested on 2.7, looks to be identical to 3.3.
+ from __future__ import print_function
-from multiprocessing import Pool, cpu_count
+from multiprocessing import Pool, cpu_count, freeze_support
from distutils.ccompiler import CCompiler
import os
-
-@@ -54,8 +54,10 @@
- try:
- # bug, only enable if we can make a Pool. see issue #790 and
- # http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing
-- pool = Pool(2)
-- CCompiler.compile = _mp_compile
-+ if __name__ == '__main__':
-+ freeze_support()
-+ pool = Pool(2)
-+ CCompiler.compile = _mp_compile
- except Exception as msg:
- print("Exception installing mp_compile, proceeding without: %s" %msg)
- else:
+ import sys
+@@ -72,8 +72,10 @@
+ try:
+ # bug, only enable if we can make a Pool. see issue #790 and
+ # http://stackoverflow.com/questions/6033599/oserror-38-errno-38-with-multiprocessing
+- pool = Pool(2)
+- CCompiler.compile = _mp_compile
++ if __name__ == '__main__':
++ freeze_support()
++ pool = Pool(2)
++ CCompiler.compile = _mp_compile
+ except Exception as msg:
+ print("Exception installing mp_compile, proceeding without:"
+ "%s" % msg)
diff --git a/mingw-w64-SDL/PKGBUILD b/mingw-w64-SDL/PKGBUILD
index eedfda423c..2d842884d3 100644
--- a/mingw-w64-SDL/PKGBUILD
+++ b/mingw-w64-SDL/PKGBUILD
@@ -1,10 +1,10 @@
# Maintainer: Alexey Pavlov
_realname=SDL
-
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.2.15
-pkgrel=3
+pkgrel=7
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (mingw-w64)"
arch=('any')
url="http://libsdl.org"
@@ -12,23 +12,26 @@ license=("LGPL")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv")
options=('staticlibs' 'strip')
-source=("$url/release/SDL-$pkgver.tar.gz")
+source=("${url}/release/SDL-${pkgver}.tar.gz")
md5sums=('9d96df8417572a2afb781a7c4c811a85')
build() {
+ [[ -d "build-${MINGW_CHOST}" ]] && rm -rf "build-${MINGW_CHOST}"
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/SDL-${pkgver}/configure \
+ ../SDL-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
- --host=${MINGW_CHOST}
+ --host=${MINGW_CHOST} \
+ --disable-assembly \
+ --enable-shared \
+ --enable-static
+
make
}
package() {
- mkdir -p "${pkgdir}${MINGW_PREFIX}/bin"
-
cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl.pc
}
diff --git a/mingw-w64-SDL2/PKGBUILD b/mingw-w64-SDL2/PKGBUILD
index 8cac88121c..2b1462947d 100644
--- a/mingw-w64-SDL2/PKGBUILD
+++ b/mingw-w64-SDL2/PKGBUILD
@@ -3,7 +3,7 @@
_realname=SDL2
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.0.3
-pkgrel=2
+pkgrel=3
pkgdesc="A library for portable low-level access to a video framebuffer, audio output, mouse, and keyboard (Version 2) (mingw-w64)"
arch=('any')
url="http://libsdl.org"
@@ -11,30 +11,37 @@ license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-libiconv")
options=('staticlibs' 'strip')
-source=("http://libsdl.org/release/SDL2-$pkgver.tar.gz"
- fix-linker-flags.patch)
+source=("http://libsdl.org/release/SDL2-${pkgver}.tar.gz"
+ fix-linker-flags.patch
+ SDL2-prevent-duplicate-d3d11-declarations.patch
+ SDL2-fix-gcc-compatibility.patch)
md5sums=('fe6c61d2e9df9ef570e7e80c6e822537'
- '932a4c42f068a9117c3c02efead14b29')
+ '932a4c42f068a9117c3c02efead14b29'
+ 'a70714d69deaea9e4f0cbfb17e9f4acf'
+ 'abbdbc90d737c8296b58d6af462b68b7')
prepare() {
cd "${srcdir}"/${_realname}-${pkgver}
patch -p1 -i ${srcdir}/fix-linker-flags.patch
-
+ patch -p1 -i ${srcdir}/SDL2-prevent-duplicate-d3d11-declarations.patch
+ patch -p1 -i ${srcdir}/SDL2-fix-gcc-compatibility.patch
+
./autogen.sh
}
build() {
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-${pkgver}/configure \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST}
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
sed -e "s|-mwindows||g" -i ${pkgdir}${MINGW_PREFIX}/lib/pkgconfig/sdl2.pc
}
diff --git a/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch b/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch
new file mode 100644
index 0000000000..a17e037e4a
--- /dev/null
+++ b/mingw-w64-SDL2/SDL2-fix-gcc-compatibility.patch
@@ -0,0 +1,413 @@
+--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100
++++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:21:30.123045735 +0100
+@@ -46,6 +46,9 @@
+ #endif /* __WINRT__ */
+
+
++#define SDL_DEBUG_STRINGIFY_ARG(str) #str
++#define SDL_DEBUG(str) SDL_DEBUG_STRINGIFY_ARG(__FUNCTION__) str
++
+ #define SAFE_RELEASE(X) if ((X)) { IUnknown_Release(SDL_static_cast(IUnknown*, X)); X = NULL; }
+
+
+@@ -910,7 +925,7 @@
+ blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
+ result = ID3D11Device_CreateBlendState(data->d3dDevice, &blendDesc, blendStateOutput);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBlendState", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBlendState"), result);
+ return result;
+ }
+
+@@ -992,14 +1007,14 @@
+
+ result = CreateDXGIFactoryFunc(&IID_IDXGIFactory2, &data->dxgiFactory);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", CreateDXGIFactory", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", CreateDXGIFactory"), result);
+ goto done;
+ }
+
+ /* FIXME: Should we use the default adapter? */
+ result = IDXGIFactory2_EnumAdapters(data->dxgiFactory, 0, &data->dxgiAdapter);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result);
+ goto done;
+ }
+
+@@ -1028,25 +1043,25 @@
+ &d3dContext /* Returns the device immediate context. */
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", D3D11CreateDevice", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", D3D11CreateDevice"), result);
+ goto done;
+ }
+
+ result = ID3D11Device_QueryInterface(d3dDevice, &IID_ID3D11Device1, &data->d3dDevice);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to ID3D11Device1", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to ID3D11Device1"), result);
+ goto done;
+ }
+
+ result = ID3D11DeviceContext_QueryInterface(d3dContext, &IID_ID3D11DeviceContext1, &data->d3dContext);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext to ID3D11DeviceContext1", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext to ID3D11DeviceContext1"), result);
+ goto done;
+ }
+
+ result = ID3D11Device_QueryInterface(d3dDevice, &IID_IDXGIDevice1, &dxgiDevice);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device to IDXGIDevice1", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device to IDXGIDevice1"), result);
+ goto done;
+ }
+
+@@ -1055,7 +1070,7 @@
+ */
+ result = IDXGIDevice1_SetMaximumFrameLatency(dxgiDevice, 1);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIDevice1::SetMaximumFrameLatency", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIDevice1::SetMaximumFrameLatency"), result);
+ goto done;
+ }
+
+@@ -1084,7 +1099,7 @@
+ break;
+
+ default:
+- SDL_SetError(__FUNCTION__ ", Unexpected feature level: %d", data->featureLevel);
++ SDL_SetError("%s, Unexpected feature level: %d", __FUNCTION__, data->featureLevel);
+ result = E_FAIL;
+ goto done;
+ }
+@@ -1097,7 +1112,7 @@
+ &data->vertexShader
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateVertexShader", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateVertexShader"), result);
+ goto done;
+ }
+
+@@ -1110,7 +1125,7 @@
+ &data->inputLayout
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateInputLayout", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateInputLayout"), result);
+ goto done;
+ }
+
+@@ -1122,7 +1137,7 @@
+ &data->colorPixelShader
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['color' shader]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['color' shader]"), result);
+ goto done;
+ }
+
+@@ -1133,7 +1148,7 @@
+ &data->texturePixelShader
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['textures' shader]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['textures' shader]"), result);
+ goto done;
+ }
+
+@@ -1144,7 +1159,7 @@
+ &data->yuvPixelShader
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreatePixelShader ['yuv' shader]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreatePixelShader ['yuv' shader]"), result);
+ goto done;
+ }
+
+@@ -1159,7 +1174,7 @@
+ &data->vertexShaderConstants
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex shader constants]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex shader constants]"), result);
+ goto done;
+ }
+
+@@ -1179,7 +1194,7 @@
+ &data->nearestPixelSampler
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [nearest-pixel filter]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [nearest-pixel filter]"), result);
+ goto done;
+ }
+
+@@ -1189,7 +1204,7 @@
+ &data->linearSampler
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateSamplerState [linear filter]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateSamplerState [linear filter]"), result);
+ goto done;
+ }
+
+@@ -1207,14 +1222,14 @@
+ rasterDesc.SlopeScaledDepthBias = 0.0f;
+ result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->mainRasterizer);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [main rasterizer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [main rasterizer]"), result);
+ goto done;
+ }
+
+ rasterDesc.ScissorEnable = TRUE;
+ result = ID3D11Device_CreateRasterizerState(data->d3dDevice, &rasterDesc, &data->clippedRasterizer);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRasterizerState [clipped rasterizer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRasterizerState [clipped rasterizer]"), result);
+ goto done;
+ }
+
+@@ -1374,7 +1389,7 @@
+ &data->swapChain
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForCoreWindow", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForCoreWindow"), result);
+ goto done;
+ }
+ } else if (usingXAML) {
+@@ -1384,18 +1399,18 @@
+ NULL,
+ &data->swapChain);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForComposition", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForComposition"), result);
+ goto done;
+ }
+
+ #if WINAPI_FAMILY == WINAPI_FAMILY_APP
+ result = ISwapChainBackgroundPanelNative_SetSwapChain(WINRT_GlobalSwapChainBackgroundPanelNative, (IDXGISwapChain *) data->swapChain);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ISwapChainBackgroundPanelNative::SetSwapChain", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ISwapChainBackgroundPanelNative::SetSwapChain"), result);
+ goto done;
+ }
+ #else
+- SDL_SetError(__FUNCTION__ ", XAML support is not yet available for Windows Phone");
++ SDL_SetError(SDL_DEBUG(", XAML support is not yet available for Windows Phone"));
+ result = E_FAIL;
+ goto done;
+ #endif
+@@ -1414,7 +1429,7 @@
+ &data->swapChain
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGIFactory2::CreateSwapChainForHwnd", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGIFactory2::CreateSwapChainForHwnd"), result);
+ goto done;
+ }
+ #else
+@@ -1464,7 +1479,7 @@
+ 0
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::ResizeBuffers", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::ResizeBuffers"), result);
+ goto done;
+ }
+ #endif
+@@ -1485,7 +1500,7 @@
+ if (data->swapEffect == DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL) {
+ result = IDXGISwapChain1_SetRotation(data->swapChain, data->rotation);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::SetRotation", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::SetRotation"), result);
+ goto done;
+ }
+ }
+@@ -1497,7 +1512,7 @@
+ &backBuffer
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::GetBuffer [back-buffer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::GetBuffer [back-buffer]"), result);
+ goto done;
+ }
+
+@@ -1508,7 +1523,7 @@
+ &data->mainRenderTargetView
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device::CreateRenderTargetView", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device::CreateRenderTargetView"), result);
+ goto done;
+ }
+
+@@ -1628,7 +1643,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
+ return -1;
+ }
+
+@@ -1646,7 +1661,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
+ return -1;
+ }
+
+@@ -1657,7 +1672,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D"), result);
+ return -1;
+ }
+ }
+@@ -1673,7 +1688,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
+ return -1;
+ }
+
+@@ -1685,7 +1700,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
+ return -1;
+ }
+ result = ID3D11Device_CreateShaderResourceView(rendererData->d3dDevice,
+@@ -1695,7 +1710,7 @@
+ );
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ "ID3D11Device1::CreateShaderResourceView", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG("ID3D11Device1::CreateShaderResourceView"), result);
+ return -1;
+ }
+ }
+@@ -1712,7 +1727,7 @@
+ &textureData->mainTextureRenderTargetView);
+ if (FAILED(result)) {
+ D3D11_DestroyTexture(renderer, texture);
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateRenderTargetView", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateRenderTargetView"), result);
+ return -1;
+ }
+ }
+@@ -1768,7 +1783,7 @@
+ NULL,
+ &stagingTexture);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ return -1;
+ }
+
+@@ -1781,7 +1796,7 @@
+ &textureMemory
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
+ SAFE_RELEASE(stagingTexture);
+ return -1;
+ }
+@@ -1943,7 +1958,7 @@
+ NULL,
+ &textureData->stagingTexture);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ return -1;
+ }
+
+@@ -1956,7 +1971,7 @@
+ &textureMemory
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
+ SAFE_RELEASE(textureData->stagingTexture);
+ return -1;
+ }
+@@ -2238,7 +2253,7 @@
+ &mappedResource
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [vertex buffer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [vertex buffer]"), result);
+ return -1;
+ }
+ SDL_memcpy(mappedResource.pData, vertexData, dataSizeInBytes);
+@@ -2262,7 +2277,7 @@
+ &rendererData->vertexBuffer
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateBuffer [vertex buffer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateBuffer [vertex buffer]"), result);
+ return -1;
+ }
+
+@@ -2732,7 +2747,7 @@
+ &backBuffer
+ );
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain1::GetBuffer [get back buffer]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain1::GetBuffer [get back buffer]"), result);
+ goto done;
+ }
+
+@@ -2749,7 +2764,7 @@
+ NULL,
+ &stagingTexture);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11Device1::CreateTexture2D [create staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11Device1::CreateTexture2D [create staging texture]"), result);
+ goto done;
+ }
+
+@@ -2781,7 +2796,7 @@
+ 0,
+ &textureMemory);
+ if (FAILED(result)) {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", ID3D11DeviceContext1::Map [map staging texture]", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", ID3D11DeviceContext1::Map [map staging texture]"), result);
+ goto done;
+ }
+
+@@ -2800,7 +2815,7 @@
+ * Get the error message, and attach some extra data to it.
+ */
+ char errorMessage[1024];
+- SDL_snprintf(errorMessage, sizeof(errorMessage), __FUNCTION__ ", Convert Pixels failed: %s", SDL_GetError());
++ SDL_snprintf(errorMessage, sizeof(errorMessage), "%s, Convert Pixels failed: %s", __FUNCTION__, SDL_GetError());
+ SDL_SetError(errorMessage);
+ goto done;
+ }
+@@ -2869,7 +2884,7 @@
+ /* We probably went through a fullscreen <-> windowed transition */
+ D3D11_CreateWindowSizeDependentResources(renderer);
+ } else {
+- WIN_SetErrorFromHRESULT(__FUNCTION__ ", IDXGISwapChain::Present", result);
++ WIN_SetErrorFromHRESULT(SDL_DEBUG(", IDXGISwapChain::Present"), result);
+ }
+ }
+ }
diff --git a/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch b/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch
new file mode 100644
index 0000000000..32670831d0
--- /dev/null
+++ b/mingw-w64-SDL2/SDL2-prevent-duplicate-d3d11-declarations.patch
@@ -0,0 +1,27 @@
+--- a/src/render/direct3d11/SDL_render_d3d11.c.orig 2015-03-21 20:17:57.816864185 +0100
++++ b/src/render/direct3d11/SDL_render_d3d11.c 2015-03-21 22:16:38.285858676 +0100
+@@ -132,12 +132,24 @@
+
+
+ /* Defined here so we don't have to include uuid.lib */
++#ifndef __IDXGIFactory2_INTERFACE_DEFINED__
+ static const GUID IID_IDXGIFactory2 = { 0x50c83a1c, 0xe072, 0x4c48, { 0x87, 0xb0, 0x36, 0x30, 0xfa, 0x36, 0xa6, 0xd0 } };
++#endif
++#ifndef __IDXGIDevice1_INTERFACE_DEFINED__
+ static const GUID IID_IDXGIDevice1 = { 0x77db970f, 0x6276, 0x48ba, { 0xba, 0x28, 0x07, 0x01, 0x43, 0xb4, 0x39, 0x2c } };
++#endif
++#ifndef __ID3D11Texture2D_INTERFACE_DEFINED__
+ static const GUID IID_ID3D11Texture2D = { 0x6f15aaf2, 0xd208, 0x4e89, { 0x9a, 0xb4, 0x48, 0x95, 0x35, 0xd3, 0x4f, 0x9c } };
++#endif
++#ifndef __ID3D11Device1_INTERFACE_DEFINED__
+ static const GUID IID_ID3D11Device1 = { 0xa04bfb29, 0x08ef, 0x43d6, { 0xa4, 0x9c, 0xa9, 0xbd, 0xbd, 0xcb, 0xe6, 0x86 } };
++#endif
++#ifndef __ID3D11DeviceContext1_INTERFACE_DEFINED__
+ static const GUID IID_ID3D11DeviceContext1 = { 0xbb2c6faa, 0xb5fb, 0x4082, { 0x8e, 0x6b, 0x38, 0x8b, 0x8c, 0xfa, 0x90, 0xe1 } };
++#endif
++#ifndef __ID3D11Debug_INTERFACE_DEFINED__
+ static const GUID IID_ID3D11Debug = { 0x79cf2233, 0x7536, 0x4948, { 0x9d, 0x36, 0x1e, 0x46, 0x92, 0xdc, 0x57, 0x60 } };
++#endif
+
+ /* Direct3D 11.x shaders
+
diff --git a/mingw-w64-SDL2_gfx/PKGBUILD b/mingw-w64-SDL2_gfx/PKGBUILD
index 592508260b..ffae4ff7db 100644
--- a/mingw-w64-SDL2_gfx/PKGBUILD
+++ b/mingw-w64-SDL2_gfx/PKGBUILD
@@ -3,29 +3,37 @@
_realname=SDL2_gfx
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.0.1
-pkgrel=1
-pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer."
+pkgrel=2
+pkgdesc="SDL graphics drawing primitives and other support functions wrapped up in an addon library for the Simple Direct Media (SDL) cross-platform API layer"
arch=('any')
url="http://cms.ferzkopp.net/index.php/software/13-sdl-gfx"
license=("zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-SDL2")
options=('staticlibs' 'strip')
-source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-$pkgver.tar.gz")
+source=("http://www.ferzkopp.net/Software/SDL2_gfx/SDL2_gfx-${pkgver}.tar.gz")
md5sums=('9c96816618e3e086d885d1d214e59d87')
+prepare() {
+ cd ${_realname}-${pkgver}
+ autoreconf -fiv
+}
+
build() {
+ export lt_cv_deplibs_check_method='pass_all'
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-${pkgver}/configure \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST}
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
- install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}
diff --git a/mingw-w64-SDL2_image/PKGBUILD b/mingw-w64-SDL2_image/PKGBUILD
index 29d20f83f0..d91bac0712 100644
--- a/mingw-w64-SDL2_image/PKGBUILD
+++ b/mingw-w64-SDL2_image/PKGBUILD
@@ -1,38 +1,40 @@
# Maintainer: Marty Plummer (The_NetZ)
_realname=SDL2_image
-
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=2.0.0
-pkgrel=2
+pkgrel=4
pkgdesc=("A simple library to load images of various formats as SDL surfaces (Version 2)")
arch=('any')
url="http://www.libsdl.org/projects/SDL_image"
license=('MIT')
depends=("${MINGW_PACKAGE_PREFIX}-SDL2"
- "${MINGW_PACKAGE_PREFIX}-libpng"
- "${MINGW_PACKAGE_PREFIX}-libtiff"
- "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
- "${MINGW_PACKAGE_PREFIX}-libwebp")
-makedepends=("${MINGW_PACKAGE_PREFIX}-cmake")
+ "${MINGW_PACKAGE_PREFIX}-libpng"
+ "${MINGW_PACKAGE_PREFIX}-libtiff"
+ "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
+ "${MINGW_PACKAGE_PREFIX}-libwebp")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
source=("${url}/release/${_realname}-${pkgver}.tar.gz")
sha1sums=('20b1b0db9dd540d6d5e40c7da8a39c6a81248865')
build() {
+ [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}/"
- "${srcdir}"/${_realname}-${pkgver}/configure \
- --disable-static \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
- --host=${MINGW_CHOST}
+ --host=${MINGW_CHOST} \
+ --enable-static \
+ --enable-shared
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}/"
+ make DESTDIR="${pkgdir}" install
- make DESTDIR="${pkgdir}/" install
install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING.txt" \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}
diff --git a/mingw-w64-SDL2_mixer/PKGBUILD b/mingw-w64-SDL2_mixer/PKGBUILD
index e7e3050ff6..f8c5fc291a 100644
--- a/mingw-w64-SDL2_mixer/PKGBUILD
+++ b/mingw-w64-SDL2_mixer/PKGBUILD
@@ -1,9 +1,10 @@
# Maintainer: Alexey Pavlov
_realname=SDL2_mixer
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.0.0
-pkgrel=4
+pkgrel=6
pkgdesc="A simple multi-channel audio mixer (Version 2) (mingw-w64)"
arch=('any')
url="http://www.libsdl.org/projects/SDL_mixer"
@@ -13,38 +14,46 @@ depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-SDL2"
"${MINGW_PACKAGE_PREFIX}-libvorbis"
"${MINGW_PACKAGE_PREFIX}-libmodplug"
- "${MINGW_PACKAGE_PREFIX}-smpeg2"
+ "${MINGW_PACKAGE_PREFIX}-libmad"
"${MINGW_PACKAGE_PREFIX}-flac"
"${MINGW_PACKAGE_PREFIX}-fluidsynth")
options=('staticlibs' 'strip')
noextract=(${_realname}-${pkgver}.tar.gz)
-source=("$url/release/${_realname}-${pkgver}.tar.gz")
-md5sums=('65f6d80df073a1fb3bb537fbda031b50')
+source=("$url/release/${_realname}-${pkgver}.tar.gz"
+ SDL2_mixer-find_lib.mingw.patch)
+md5sums=('65f6d80df073a1fb3bb537fbda031b50'
+ 'c891fc5d73238c85ff42cfe31213da7b')
prepare() {
- cd $startdir/
- [ -d $srcdir/${_realname}-$pkgver ] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C $srcdir || true
+ [[ -d ${srcdir}/${_realname}-${pkgver} ]] || tar -xzvf ${_realname}-${pkgver}.tar.gz -C ${srcdir} || true
cd "${srcdir}"/${_realname}-${pkgver}
+ patch -Np1 -i ${srcdir}/SDL2_mixer-find_lib.mingw.patch
+
sed -i "s|/etc/timidity|/etc/timidity++|g" timidity/config.h
sed -i "s|/etc/timidity++.cfg|/etc/timidity++/timidity.cfg|g" timidity/config.h
}
build() {
+ [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
- cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-${pkgver}/configure \
+ cd "${srcdir}/build-${MINGW_CHOST}/"
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-shared \
- --enable-static
+ --enable-static \
+ --enable-music-mp3 \
+ --disable-music-mp3-smpeg \
+ --enable-music-mp3-mad-gpl
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}
diff --git a/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch b/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch
new file mode 100644
index 0000000000..355aa263d0
--- /dev/null
+++ b/mingw-w64-SDL2_mixer/SDL2_mixer-find_lib.mingw.patch
@@ -0,0 +1,101 @@
+diff --git a/configure b/configure
+index 878381b..be39a38 100755
+--- a/configure
++++ b/configure
+@@ -11143,13 +11143,14 @@ find_lib()
+ gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
+ gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
+ env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`
++ env_path=`echo $PATH | sed 's/:/ /g'`
+ if test "$cross_compiling" = yes; then
+ host_lib_path=""
+ else
+ host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
+ fi
+- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
+- lib=`ls -- $path/$1 2>/dev/null | sed -e '/\.so\..*\./d' -e 's,.*/,,' | sort | tail -1`
++ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do
++ lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`
+ if test x$lib != x; then
+ echo $lib
+ return
+@@ -11938,7 +11939,7 @@ fi
+ *-*-darwin*)
+ modplug_lib=`find_lib libmodplug.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ modplug_lib=`find_lib "libmodplug*.dll"`
+ ;;
+ *)
+@@ -12070,7 +12071,7 @@ fi
+ *-*-darwin*)
+ mikmod_lib=`find_lib libmikmod.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ mikmod_lib=`find_lib "libmikmod*.dll"`
+ ;;
+ *)
+@@ -12132,7 +12133,7 @@ fi
+ *mingw32ce*)
+ use_music_midi_native=no
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ use_music_midi_native=yes
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
+ ;;
+@@ -12221,8 +12222,11 @@ fi
+ *-*-darwin*)
+ fluidsynth_lib=`find_lib libfluidsynth.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ fluidsynth_lib=`find_lib "fluidsynth*.dll"`
++ if test x$fluidsynth_lib = x; then
++ fluidsynth_lib=`find_lib "libfluidsynth*.dll"`
++ fi
+ ;;
+ *)
+ fluidsynth_lib=`find_lib "libfluidsynth[0-9]*.so.*"`
+@@ -12331,8 +12335,11 @@ fi
+ *-*-darwin*)
+ ogg_lib=`find_lib libvorbisidec.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ ogg_lib=`find_lib "vorbisidec*.dll"`
++ if test x$ogg_lib = x; then
++ ogg_lib=`find_lib "libvorbisidec*.dll"`
++ fi
+ ;;
+ *)
+ ogg_lib=`find_lib "libvorbisidec[0-9]*.so.*"`
+@@ -12409,7 +12416,7 @@ fi
+ *-*-darwin*)
+ ogg_lib=`find_lib libvorbisfile.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ ogg_lib=`find_lib "libvorbisfile*.dll"`
+ ;;
+ *)
+@@ -12545,7 +12552,7 @@ fi
+ *-*-darwin*)
+ flac_lib=`find_lib libFLAC.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ flac_lib=`find_lib "libFLAC-*.dll"`
+ ;;
+ *)
+@@ -12841,7 +12848,7 @@ rm -f core conftest.err conftest.$ac_objext \
+ *-*-darwin*)
+ smpeg_lib=`find_lib libsmpeg2.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ smpeg_lib=`find_lib "smpeg2*.dll"`
+ ;;
+ *)
diff --git a/mingw-w64-SDL2_net/PKGBUILD b/mingw-w64-SDL2_net/PKGBUILD
index e284e0e37b..5256723433 100644
--- a/mingw-w64-SDL2_net/PKGBUILD
+++ b/mingw-w64-SDL2_net/PKGBUILD
@@ -3,7 +3,7 @@
_realname=SDL2_net
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=2.0.0
-pkgrel=2
+pkgrel=3
pkgdesc="A small sample cross-platform networking library (Version 2) (mingw-w64)"
arch=('any')
url="http://www.libsdl.org/projects/SDL_net"
@@ -11,23 +11,24 @@ license=("MIT")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs" "${MINGW_PACKAGE_PREFIX}-SDL2")
options=('staticlibs' 'strip')
-source=("$url/release/${_realname}-${pkgver}.tar.gz")
+source=("${url}/release/${_realname}-${pkgver}.tar.gz")
md5sums=('83bcd0e67796b81b35b08a014c677200')
build() {
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-${pkgver}/configure \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-shared \
--enable-static
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
- make DESTDIR="$pkgdir" install
+ make DESTDIR="${pkgdir}" install
install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}
diff --git a/mingw-w64-SDL2_sound-hg/PKGBUILD b/mingw-w64-SDL2_sound-hg/PKGBUILD
index acdedd39d9..9ee67ce8c2 100644
--- a/mingw-w64-SDL2_sound-hg/PKGBUILD
+++ b/mingw-w64-SDL2_sound-hg/PKGBUILD
@@ -18,10 +18,11 @@ depends=("${MINGW_PACKAGE_PREFIX}-SDL2"
"${MINGW_PACKAGE_PREFIX}-flac"
"${MINGW_PACKAGE_PREFIX}-speex"
"${MINGW_PACKAGE_PREFIX}-physfs-hg")
+makedepends=('mercurial')
conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
options=('strip' 'staticlibs')
-source=($_realname::"hg+http://hg.icculus.org/icculus/SDL_sound"
+source=(${_realname}::"hg+http://hg.icculus.org/icculus/SDL_sound"
'pkgconfig.patch'
'physfs-renamed-export.patch'
'no-undefined.patch'
@@ -52,7 +53,7 @@ build() {
export lt_cv_deplibs_check_method='pass_all'
mkdir -p ${srcdir}/build-${MINGW_CHOST}
cd ${srcdir}/build-${MINGW_CHOST}
- ${srcdir}/${_realname}/configure \
+ ../${_realname}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
@@ -60,11 +61,11 @@ build() {
--enable-shared \
--enable-static \
--disable-mikmod
+
make
}
package() {
cd ${srcdir}/build-${MINGW_CHOST}
-
- make DESTDIR="$pkgdir/" install
+ make DESTDIR="${pkgdir}/" install
}
diff --git a/mingw-w64-SDL2_ttf/PKGBUILD b/mingw-w64-SDL2_ttf/PKGBUILD
index 9d0877af63..cdda89a06b 100644
--- a/mingw-w64-SDL2_ttf/PKGBUILD
+++ b/mingw-w64-SDL2_ttf/PKGBUILD
@@ -2,10 +2,9 @@
# Contributor: Sven-Hendrik Haase
_realname=SDL2_ttf
-
pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
pkgver=2.0.12
-pkgrel=1
+pkgrel=3
pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (Version 2)"
arch=('any')
url="http://www.libsdl.org/projects/SDL_ttf"
@@ -17,15 +16,18 @@ source=("$url/release/${_realname}-${pkgver}.tar.gz")
md5sums=('79787216b56cb4707f39d538f2225e00')
build() {
+ [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir -p ${srcdir}/build-${MINGW_CHOST}
cd ${srcdir}/build-${MINGW_CHOST}
- ${srcdir}/${_realname}-${pkgver}/configure \
- --disable-static \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
- --target=${MINGW_CHOST}
+ --target=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static
+
make
}
diff --git a/mingw-w64-SDL_gfx/PKGBUILD b/mingw-w64-SDL_gfx/PKGBUILD
new file mode 100644
index 0000000000..c7e451ff59
--- /dev/null
+++ b/mingw-w64-SDL_gfx/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Marty Plummer (The_NetZ)
+
+_realname=SDL_gfx
+pkgbase=mingw-w64-${_realname}
+pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
+pkgver=2.0.25
+pkgrel=3
+pkgdesc="SDL Graphic Primitives (mingw-w64)"
+arch=('any')
+url="http://www.ferzkopp.net/joomla/software-mainmenu-14/4-ferzkopps-linux-software/19-sdlgfx"
+license=('LGPL')
+depends=("${MINGW_PACKAGE_PREFIX}-SDL")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
+source=("http://www.ferzkopp.net/Software/SDL_gfx-2.0/${_realname}-${pkgver}.tar.gz")
+sha1sums=('20a89d0b71b7b790b830c70f17ed2c44100bc0f4')
+
+build() {
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
+ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-SDL_image/PKGBUILD b/mingw-w64-SDL_image/PKGBUILD
new file mode 100644
index 0000000000..3c5d60fe43
--- /dev/null
+++ b/mingw-w64-SDL_image/PKGBUILD
@@ -0,0 +1,42 @@
+# Maintainer: Marty Plummer (The_NetZ)
+
+_realname=SDL_image
+pkgbase=mingw-w64-${_realname}
+pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
+pkgver=1.2.12
+pkgrel=4
+pkgdesc="A simple library to load images of various formats as SDL surfaces (mingw-w64)"
+arch=('any')
+url="http://www.libsdl.org/projects/SDL_image"
+license=('MIT')
+depends=("${MINGW_PACKAGE_PREFIX}-SDL"
+ "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
+ "${MINGW_PACKAGE_PREFIX}-libpng"
+ "${MINGW_PACKAGE_PREFIX}-libtiff"
+ "${MINGW_PACKAGE_PREFIX}-libwebp"
+ "${MINGW_PACKAGE_PREFIX}-zlib")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
+source=("${url}/release/${_realname}-${pkgver}.tar.gz")
+sha1sums=('5e3e393d4e366638048bbb10d6a269ea3f4e4cf2')
+
+build() {
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}/"
+
+ make DESTDIR="${pkgdir}/" install
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
+ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-SDL_mixer/PKGBUILD b/mingw-w64-SDL_mixer/PKGBUILD
new file mode 100644
index 0000000000..d7288084e3
--- /dev/null
+++ b/mingw-w64-SDL_mixer/PKGBUILD
@@ -0,0 +1,75 @@
+# Maintainer: Alexey Pavlov
+
+_realname=SDL_mixer
+pkgbase=mingw-w64-${_realname}
+pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
+pkgver=1.2.12
+pkgrel=2
+pkgdesc="A simple multi-channel audio mixer (mingw-w64)"
+arch=('any')
+url="http://www.libsdl.org/projects/SDL_mixer/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-SDL"
+ "${MINGW_PACKAGE_PREFIX}-libvorbis"
+ "${MINGW_PACKAGE_PREFIX}-libmikmod"
+ "${MINGW_PACKAGE_PREFIX}-libmad"
+ )
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-pkg-config"
+ "${MINGW_PACKAGE_PREFIX}-fluidsynth")
+optdepends=("${MINGW_PACKAGE_PREFIX}-fluidsynth: MIDI software synth, replaces built-in timidity")
+source=(http://www.libsdl.org/projects/SDL_mixer/release/${_realname}-${pkgver}.tar.gz
+ mikmod1.patch
+ mikmod2.patch
+ fluidsynth-volume.patch
+ double-free-crash.patch
+ SDL_mixer-find_lib.mingw.patch)
+md5sums=('e03ff73d77a55e3572ad0217131dc4a1'
+ 'c335d4ff1fe86950d1fc730745c9c96d'
+ 'd13d98fef8ec51167a370fa7976a7a7f'
+ 'eceb06e3a8b31fee300d7f33478401d4'
+ 'b38c1b23751ca95631badeb9327d085e'
+ 'a116f6c880aae14d2a1657447bdbd81e')
+noextract=(${_realname}-${pkgver}.tar.gz)
+
+prepare() {
+ [[ -d ${srcdir}/${_realname}-${pkgver} ]] && rm -rf ${srcdir}/${_realname}-${pkgver}
+ tar -xzf ${srcdir}/${_realname}-${pkgver}.tar.gz -C ${srcdir} || true
+
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ patch -Np1 -i ${srcdir}/mikmod1.patch
+ patch -Np1 -i ${srcdir}/mikmod2.patch
+ patch -Np1 -i ${srcdir}/fluidsynth-volume.patch
+ patch -Np1 -i ${srcdir}/double-free-crash.patch
+ patch -Np1 -i ${srcdir}/SDL_mixer-find_lib.mingw.patch
+
+ #sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
+ # -e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
+ # -e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
+ # -i timidity/config.h
+}
+
+build() {
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static \
+ --disable-music-mp3 \
+ --enable-music-mp3-mad-gpl
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}/"
+
+ make DESTDIR="${pkgdir}/" install
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
+ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch b/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch
new file mode 100644
index 0000000000..84c163f5d1
--- /dev/null
+++ b/mingw-w64-SDL_mixer/SDL_mixer-find_lib.mingw.patch
@@ -0,0 +1,90 @@
+diff --git a/configure b/configure
+index e7c8c97..f6b9ad1 100755
+--- a/configure
++++ b/configure
+@@ -11850,12 +11850,13 @@ find_lib()
+ gcc_bin_path=`$CC -print-search-dirs 2>/dev/null | fgrep programs: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
+ gcc_lib_path=`$CC -print-search-dirs 2>/dev/null | fgrep libraries: | sed 's/[^=]*=\(.*\)/\1/' | sed 's/:/ /g'`
+ env_lib_path=`echo $LIBS $LDFLAGS $* | sed 's/-L[ ]*//g'`
++ env_path=`echo $PATH | sed 's/:/ /g'`
+ if test "$cross_compiling" = yes; then
+ host_lib_path=""
+ else
+ host_lib_path="/usr/$base_libdir /usr/local/$base_libdir"
+ fi
+- for path in $gcc_bin_path $gcc_lib_path $env_lib_path $host_lib_path; do
++ for path in $gcc_bin_path $gcc_lib_path $env_lib_path $env_path $host_lib_path; do
+ lib=`ls -- $path/$1 2>/dev/null | sort | sed 's/.*\/\(.*\)/\1/; q'`
+ if test x$lib != x; then
+ echo $lib
+@@ -12727,7 +12728,7 @@ fi
+ *-*-darwin*)
+ mikmod_lib=`find_lib libmikmod.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ mikmod_lib=`find_lib "libmikmod*.dll"`
+ ;;
+ *)
+@@ -12916,7 +12917,7 @@ fi
+ *mingw32ce*)
+ use_music_native_midi=no
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ use_music_native_midi=yes
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lwinmm"
+ ;;
+@@ -13159,8 +13160,11 @@ fi
+ fluidsynth_lib=`find_lib libfluidsynth.[0-9]*`
+ fi
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ fluidsynth_lib=`find_lib "fluidsynth*.dll"`
++ if test x$fluidsynth_lib = x; then
++ fluidsynth_lib=`find_lib "libfluidsynth*.dll"`
++ fi
+ ;;
+ *)
+ fluidsynth_lib=`find_lib "libfluidsynth.so.[0-9]"`
+@@ -13415,8 +13419,11 @@ fi
+ ogg_lib=`find_lib libvorbisidec.[0-9]*`
+ fi
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ ogg_lib=`find_lib "vorbisidec*.dll"`
++ if test x$ogg_lib = x; then
++ ogg_lib=`find_lib "libvorbisidec*.dll"`
++ fi
+ ;;
+ *)
+ ogg_lib=`find_lib "libvorbisidec.so.[0-9]"`
+@@ -13640,7 +13647,7 @@ fi
+ *-*-darwin*)
+ ogg_lib=`find_lib libvorbisfile.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ ogg_lib=`find_lib "libvorbisfile*.dll"`
+ ;;
+ *)
+@@ -14073,7 +14080,7 @@ fi
+ *-*-darwin*)
+ flac_lib=`find_lib libFLAC.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ flac_lib=`find_lib "libFLAC*.dll"`
+ ;;
+ *)
+@@ -14649,7 +14656,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ *-*-darwin*)
+ smpeg_lib=`find_lib libsmpeg.dylib`
+ ;;
+- *-*-cygwin* | *-*-mingw32*)
++ *-*-cygwin* | *-*-mingw*)
+ smpeg_lib=`find_lib "smpeg*.dll"`
+ ;;
+ *)
diff --git a/mingw-w64-SDL_mixer/double-free-crash.patch b/mingw-w64-SDL_mixer/double-free-crash.patch
new file mode 100644
index 0000000000..d1ee21147d
--- /dev/null
+++ b/mingw-w64-SDL_mixer/double-free-crash.patch
@@ -0,0 +1,31 @@
+
+# HG changeset patch
+# User Sam Lantinga
+# Date 1329087437 18000
+# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
+# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6
+Fixed 1418 - crash on double free if loading WAV file failed
+
+diff -r df72f22b4b41 -r 2d713670db9b mixer.c
+--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500
++++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500
+@@ -610,13 +610,15 @@
+ break;
+ default:
+ SDL_SetError("Unrecognized sound file type");
+- return(0);
++ if ( freesrc ) {
++ SDL_RWclose(src);
++ }
++ loaded = NULL;
++ break;
+ }
+ if ( !loaded ) {
++ /* The individual loaders have closed src if needed */
+ SDL_free(chunk);
+- if ( freesrc ) {
+- SDL_RWclose(src);
+- }
+ return(NULL);
+ }
+
diff --git a/mingw-w64-SDL_mixer/fluidsynth-volume.patch b/mingw-w64-SDL_mixer/fluidsynth-volume.patch
new file mode 100644
index 0000000000..a29be70801
--- /dev/null
+++ b/mingw-w64-SDL_mixer/fluidsynth-volume.patch
@@ -0,0 +1,22 @@
+
+# HG changeset patch
+# User James Le Cuirot
+# Date 1330896767 0
+# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
+# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd
+Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.
+
+diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
+--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500
++++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000
+@@ -176,8 +176,8 @@
+
+ void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
+ {
+- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */
+- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
++ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */
++ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
+ }
+
+ int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
diff --git a/mingw-w64-SDL_mixer/mikmod1.patch b/mingw-w64-SDL_mixer/mikmod1.patch
new file mode 100644
index 0000000000..21c9ea0aea
--- /dev/null
+++ b/mingw-w64-SDL_mixer/mikmod1.patch
@@ -0,0 +1,66 @@
+
+# HG changeset patch
+# User Sam Lantinga
+# Date 1342998807 25200
+# Node ID 56cad6484b04f83c8d42428c755a046678506436
+# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e
+Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver
+
+diff -r c92001a2c18f -r 56cad6484b04 CHANGES
+--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000
++++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700
+@@ -1,3 +1,7 @@
++1.2.13:
++Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
++ * Fixed malloc/free mismatch in the MikMod driver
++
+ 1.2.12:
+ Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
+ * Fixed seek offset with SMPEG (was relative, should be absolute)
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
+--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
+@@ -93,6 +93,13 @@
+ SDL_UnloadObject(mikmod.handle);
+ return -1;
+ }
++ mikmod.MikMod_free =
++ (void (*)(void*))
++ SDL_LoadFunction(mikmod.handle, "MikMod_free");
++ if ( mikmod.MikMod_free == NULL ) {
++ SDL_UnloadObject(mikmod.handle);
++ return -1;
++ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+ SDL_LoadFunction(mikmod.handle, "Player_Active");
+diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
+--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000
++++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700
+@@ -35,6 +35,7 @@
+ void (*MikMod_RegisterDriver)(struct MDRIVER*);
+ int* MikMod_errno;
+ char* (*MikMod_strerror)(int);
++ void (*MikMod_free)(void*);
+ BOOL (*Player_Active)(void);
+ void (*Player_Free)(MODULE*);
+ MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
+diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
+--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000
++++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700
+@@ -109,13 +109,13 @@
+
+ list = mikmod.MikMod_InfoDriver();
+ if ( list )
+- free(list);
++ mikmod.MikMod_free(list);
+ else
+ mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
+
+ list = mikmod.MikMod_InfoLoader();
+ if ( list )
+- free(list);
++ mikmod.MikMod_free(list);
+ else
+ mikmod.MikMod_RegisterAllLoaders();
+
diff --git a/mingw-w64-SDL_mixer/mikmod2.patch b/mingw-w64-SDL_mixer/mikmod2.patch
new file mode 100644
index 0000000000..32a0d6af22
--- /dev/null
+++ b/mingw-w64-SDL_mixer/mikmod2.patch
@@ -0,0 +1,34 @@
+
+# HG changeset patch
+# User Sam Lantinga
+# Date 1343000017 25200
+# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
+# Parent 56cad6484b04f83c8d42428c755a046678506436
+Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
+
+diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
+--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
++++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700
+@@ -97,8 +97,8 @@
+ (void (*)(void*))
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
+ if ( mikmod.MikMod_free == NULL ) {
+- SDL_UnloadObject(mikmod.handle);
+- return -1;
++ /* libmikmod 3.1 and earlier doesn't have it */
++ mikmod.MikMod_free = free;
+ }
+ mikmod.Player_Active =
+ (BOOL (*)(void))
+@@ -246,6 +246,11 @@
+ mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
+ mikmod.MikMod_errno = &MikMod_errno;
+ mikmod.MikMod_strerror = MikMod_strerror;
++#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
++ mikmod.MikMod_free = free;
++#else
++ mikmod.MikMod_free = MikMod_free;
++#endif
+ mikmod.Player_Active = Player_Active;
+ mikmod.Player_Free = Player_Free;
+ mikmod.Player_LoadGeneric = Player_LoadGeneric;
diff --git a/mingw-w64-SDL_net/PKGBUILD b/mingw-w64-SDL_net/PKGBUILD
new file mode 100644
index 0000000000..ede3dabb94
--- /dev/null
+++ b/mingw-w64-SDL_net/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Alexey Pavlov
+
+_realname=SDL_net
+pkgbase=mingw-w64-${_realname}
+pkgname=${MINGW_PACKAGE_PREFIX}-${_realname}
+pkgver=1.2.8
+pkgrel=1
+pkgdesc="A small sample cross-platform networking library (mingw-w64)"
+arch=('any')
+url="http://www.libsdl.org/projects/SDL_net"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-SDL")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
+source=(http://www.libsdl.org/projects/SDL_net/release/${_realname}-${pkgver}.tar.gz)
+md5sums=('20e64e61d65662db66c379034f11f718')
+
+build() {
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}/"
+
+ make DESTDIR="${pkgdir}/" install
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}/COPYING" \
+ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-SDL_ttf/PKGBUILD b/mingw-w64-SDL_ttf/PKGBUILD
new file mode 100644
index 0000000000..27129ba533
--- /dev/null
+++ b/mingw-w64-SDL_ttf/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Alexey Pavlov
+
+_realname=SDL_ttf
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=2.0.11
+pkgrel=4
+pkgdesc="A library that allows you to use TrueType fonts in your SDL applications (mingw-w64)"
+arch=('any')
+url="http://www.libsdl.org/projects/SDL_ttf/"
+license=("custom")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-pkg-config")
+depends=("${MINGW_PACKAGE_PREFIX}-SDL" "${MINGW_PACKAGE_PREFIX}-freetype")
+options=('staticlibs' 'strip')
+source=(http://www.libsdl.org/projects/SDL_ttf/release/${_realname}-${pkgver}.tar.gz)
+md5sums=('61e29bd9da8d245bc2471d1b2ce591aa')
+
+build() {
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --enable-shared \
+ --enable-static
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR="${pkgdir}" install
+ install -Dm644 "${srcdir}"/${_realname}-${pkgver}/COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-a52dec/a52dec-0.7.4-build.patch b/mingw-w64-a52dec/0001-a52dec-0.7.4-build.patch
similarity index 100%
rename from mingw-w64-a52dec/a52dec-0.7.4-build.patch
rename to mingw-w64-a52dec/0001-a52dec-0.7.4-build.patch
diff --git a/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch b/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch
new file mode 100644
index 0000000000..fd8b5e3a6a
--- /dev/null
+++ b/mingw-w64-a52dec/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch
@@ -0,0 +1,11 @@
+diff -urN a52dec-0.7.4-orig/configure.in a52dec-0.7.4/configure.in
+--- a52dec-0.7.4-orig/configure.in 2015-07-12 13:15:51.803347900 +0100
++++ a52dec-0.7.4/configure.in 2015-07-12 13:16:11.160455100 +0100
+@@ -85,7 +85,6 @@
+
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
+-AC_C_ALWAYS_INLINE
+ AC_C_RESTRICT
+ AC_TYPE_SIZE_T
+ AC_C_BIGENDIAN
diff --git a/mingw-w64-a52dec/PKGBUILD b/mingw-w64-a52dec/PKGBUILD
index c82fa05046..e3a2103ed2 100644
--- a/mingw-w64-a52dec/PKGBUILD
+++ b/mingw-w64-a52dec/PKGBUILD
@@ -1,41 +1,45 @@
# Maintainer: Alexey Pavlov
# Contributor: AlexWMF
-
+
_realname=a52dec
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=0.7.4
-pkgrel=1
-pkgdesc="A free library for decoding ATSC A/52 streams"
+pkgrel=3
+pkgdesc="A free library for decoding ATSC A/52 streams (mingw-w64)"
url="http://liba52.sourceforge.net/"
arch=('any')
license=('GPL2')
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
source=("http://liba52.sourceforge.net/files/${_realname}-${pkgver}.tar.gz"
- 'a52dec-0.7.4-build.patch')
+ '0001-a52dec-0.7.4-build.patch'
+ '0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch')
md5sums=('caa9f5bc44232dc8aeea773fea56be80'
- 'fa16f224a7dceb7613824380abef0052')
+ 'fa16f224a7dceb7613824380abef0052'
+ 'f3e200f41ecd682c6675d1b9c621c23b')
prepare() {
cd "${_realname}-${pkgver}"
- patch -Np1 -i "${srcdir}/a52dec-0.7.4-build.patch"
+ patch -Np1 -i "${srcdir}/0001-a52dec-0.7.4-build.patch"
+ patch -Np1 -i "${srcdir}/0002-do-not-AC_C_ALWAYS_INLINE-it-redefines-inline-breaking-mingw-w64-GCC-5.1.0-C99.patch"
sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.in
mv configure.in configure.ac
- ./bootstrap \
- --prefix=${MINGW_PREFIX}
+ ./bootstrap
}
build() {
- cd ${_realname}-${pkgver}
- ./configure \
+ [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
+ mkdir build-${MINGW_CHOST} && cd build-${MINGW_CHOST}
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-shared
+
make
}
package() {
- cd "${srcdir}/${_realname}-${pkgver}"
+ cd "${srcdir}/build-${MINGW_CHOST}"
make DESTDIR="${pkgdir}" install
- install -m644 liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/"
+ install -m644 ${srcdir}/${_realname}-${pkgver}/liba52/a52_internal.h "${pkgdir}${MINGW_PREFIX}/include/a52dec/"
}
diff --git a/mingw-w64-adwaita-icon-theme/PKGBUILD b/mingw-w64-adwaita-icon-theme/PKGBUILD
index a941fd5dc9..5805d3c20d 100644
--- a/mingw-w64-adwaita-icon-theme/PKGBUILD
+++ b/mingw-w64-adwaita-icon-theme/PKGBUILD
@@ -1,41 +1,35 @@
# Maintainer: Alexey Pavlov
_realname=adwaita-icon-theme
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=3.14.0
+pkgver=3.18.0
pkgrel=1
pkgdesc="GNOME icon theme (mingw-w64)"
arch=('any')
url="http://www.gnome.org"
license=("GPL")
-makedepends=("intltool")
+makedepends=("intltool" "icon-naming-utils")
depends=("${MINGW_PACKAGE_PREFIX}-hicolor-icon-theme"
- "${MINGW_PACKAGE_PREFIX}-icon-naming-utils"
- "${MINGW_PACKAGE_PREFIX}-gtk2"
- "${MINGW_PACKAGE_PREFIX}-librsvg"
- )
-groups=("${MINGW_PACKAGE_PREFIX}-gnome")
+ "${MINGW_PACKAGE_PREFIX}-librsvg")
options=(!libtool strip staticlibs)
install=theme-${CARCH}.install
-source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver%.*}/${_realname}-$pkgver.tar.xz
- 0001-localedir-fix.patch)
-sha256sums=('afacb6025a18be007e33a9663b92cee9d2745279bb00107a68e09b2806f9541f'
- '35b66334d0856bc44ef202c8df1bfa11f0be658b31b946ca49afe1c357c61adb')
+source=(http://ftp.gnome.org/pub/gnome/sources/${_realname}/${pkgver:0:4}/${_realname}-${pkgver}.tar.xz)
+sha256sums=('5e9ce726001fdd8ee93c394fdc3cdb9e1603bbed5b7c62df453ccf521ec50e58')
prepare() {
cd ${srcdir}/${_realname}-${pkgver}
- patch -p1 -i ${srcdir}/0001-localedir-fix.patch
- autoreconf -fvi
}
build() {
- [ -d ${srcdir}/build-${MINGW_CHOST} ] && rm -rf ${srcdir}/build-${MINGW_CHOST}
+ [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
mkdir ${srcdir}/build-${MINGW_CHOST}
cd ${srcdir}/build-${MINGW_CHOST}
../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST}
+
make
}
@@ -44,4 +38,8 @@ package() {
make DESTDIR="$pkgdir" install
mkdir -p ${pkgdir}${MINGW_PREFIX}/lib
mv ${pkgdir}${MINGW_PREFIX}/share/pkgconfig ${pkgdir}${MINGW_PREFIX}/lib/
+
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_LGPL ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_LGPL
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}"/COPYING_CCBYSA3 ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING_CCBYSA3
}
diff --git a/mingw-w64-adwaita-icon-theme/theme-i686.install b/mingw-w64-adwaita-icon-theme/theme-i686.install
index cd7e21db13..ff105002aa 100644
--- a/mingw-w64-adwaita-icon-theme/theme-i686.install
+++ b/mingw-w64-adwaita-icon-theme/theme-i686.install
@@ -1,6 +1,13 @@
post_install() {
- mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita
- mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache
+ [[ -f mingw32/bin/gtk-update-icon-cache.exe ]] && {
+ mingw32/bin/gtk-update-icon-cache -q -t -f mingw32/share/icons/Adwaita
+ }
+ [[ -f mingw32/bin/gtk-update-icon-cache-3.0.exe ]] && {
+ mingw32/bin/gtk-update-icon-cache-3.0 -q -t -f mingw32/share/icons/Adwaita
+ }
+ [[ -f mingw32/bin/gdk-pixbuf-query-loaders.exe ]] && {
+ mingw32/bin/gdk-pixbuf-query-loaders.exe --update-cache
+ }
}
post_upgrade() {
diff --git a/mingw-w64-adwaita-icon-theme/theme-x86_64.install b/mingw-w64-adwaita-icon-theme/theme-x86_64.install
index e4196332bd..5eb144e664 100644
--- a/mingw-w64-adwaita-icon-theme/theme-x86_64.install
+++ b/mingw-w64-adwaita-icon-theme/theme-x86_64.install
@@ -1,6 +1,13 @@
post_install() {
- mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita
- mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache
+ [[ -f mingw64/bin/gtk-update-icon-cache.exe ]] && {
+ mingw64/bin/gtk-update-icon-cache -q -t -f mingw64/share/icons/Adwaita
+ }
+ [[ -f mingw64/bin/gtk-update-icon-cache-3.0.exe ]] && {
+ mingw64/bin/gtk-update-icon-cache-3.0 -q -t -f mingw64/share/icons/Adwaita
+ }
+ [[ -f mingw64/bin/gdk-pixbuf-query-loaders.exe ]] && {
+ mingw64/bin/gdk-pixbuf-query-loaders.exe --update-cache
+ }
}
post_upgrade() {
diff --git a/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch
new file mode 100644
index 0000000000..accb200c4c
--- /dev/null
+++ b/mingw-w64-ag/0001-lang-Allow-both-extensions-and-full-filenames.patch
@@ -0,0 +1,240 @@
+From 8ef5dc35835c271e955979af7ccc660a9996debd Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Mon, 23 Feb 2015 21:46:45 +0000
+Subject: [PATCH 1/6] lang: Allow both extensions and full filenames
+
+Because many filetypes (e.g. make) are not indicated by the
+file extension but instead by the full filename (Makefile).
+
+Renames extension to pattern, but retains the existing format
+where each pattern is treated as an extension. Full filenames
+are indicated by prefixing the pattern with a '^'.
+---
+ src/lang.c | 57 ++++++++++++++++++++++++++++++++++-----------------------
+ src/lang.h | 24 +++++++++++++-----------
+ src/options.c | 28 ++++++++++++++--------------
+ 3 files changed, 61 insertions(+), 48 deletions(-)
+
+diff --git a/src/lang.c b/src/lang.c
+index 87cdcec..54f51ca 100644
+--- a/src/lang.c
++++ b/src/lang.c
+@@ -101,20 +101,27 @@ size_t get_lang_count() {
+ return sizeof(langs) / sizeof(lang_spec_t);
+ }
+
+-char *make_lang_regex(char *ext_array, size_t num_exts) {
++char *make_lang_regex(char *pat_array, size_t num_pats) {
+ int regex_capacity = 100;
+ char *regex = ag_malloc(regex_capacity);
+- int regex_length = 3;
++ int regex_length = 1;
+ int subsequent = 0;
+- char *extension;
++ char *pattern;
++ const char *dot = "\\.";
++ size_t strlen_dot = strlen(dot);
+ size_t i;
+
+- strcpy(regex, "\\.(");
++ strcpy(regex, "(");
+
+- for (i = 0; i < num_exts; ++i) {
+- extension = ext_array + i * SINGLE_EXT_LEN;
+- int extension_length = strlen(extension);
+- while (regex_length + extension_length + 3 + subsequent > regex_capacity) {
++ for (i = 0; i < num_pats; ++i) {
++ pattern = pat_array + i * SINGLE_PAT_LEN;
++ int is_extension = (*pattern == '^') ? 0 : 1;
++ int length = strlen(pattern);
++ if (is_extension == 0) {
++ pattern += 1;
++ length -= 1;
++ }
++ while (regex_length + length + 3 + subsequent > regex_capacity) {
+ regex_capacity *= 2;
+ regex = ag_realloc(regex, regex_capacity);
+ }
+@@ -123,8 +130,12 @@ char *make_lang_regex(char *ext_array, size_t num_exts) {
+ } else {
+ subsequent = 1;
+ }
+- strcpy(regex + regex_length, extension);
+- regex_length += extension_length;
++ if (is_extension == 1) {
++ strcpy(regex + regex_length, dot);
++ regex_length += strlen_dot;
++ }
++ strcpy(regex + regex_length, pattern);
++ regex_length += length;
+ }
+
+ regex[regex_length++] = ')';
+@@ -133,29 +144,29 @@ char *make_lang_regex(char *ext_array, size_t num_exts) {
+ return regex;
+ }
+
+-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts) {
++size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats) {
+ /* Keep it fixed as 100 for the reason that if you have more than 100
+ * file types to search, you'd better search all the files.
+ * */
+- size_t ext_capacity = 100;
+- (*exts) = (char *)ag_malloc(ext_capacity * SINGLE_EXT_LEN);
+- memset((*exts), 0, ext_capacity * SINGLE_EXT_LEN);
+- size_t num_of_extensions = 0;
++ size_t pat_capacity = 100;
++ (*pats) = (char *)ag_malloc(pat_capacity * SINGLE_PAT_LEN);
++ memset((*pats), 0, pat_capacity * SINGLE_PAT_LEN);
++ size_t num_of_patterns = 0;
+
+ size_t i;
+ for (i = 0; i < len; ++i) {
+ size_t j = 0;
+- const char *ext = langs[extension_index[i]].extensions[j];
++ const char *pat = langs[pattern_index[i]].patterns[j];
+ do {
+- if (num_of_extensions == ext_capacity) {
++ if (num_of_patterns == pat_capacity) {
+ break;
+ }
+- char *pos = (*exts) + num_of_extensions * SINGLE_EXT_LEN;
+- strncpy(pos, ext, strlen(ext));
+- ++num_of_extensions;
+- ext = langs[extension_index[i]].extensions[++j];
+- } while (ext);
++ char *pos = (*pats) + num_of_patterns * SINGLE_PAT_LEN;
++ strncpy(pos, pat, strlen(pat));
++ ++num_of_patterns;
++ pat = langs[pattern_index[i]].patterns[++j];
++ } while (pat);
+ }
+
+- return num_of_extensions;
++ return num_of_patterns;
+ }
+diff --git a/src/lang.h b/src/lang.h
+index d0007f9..202da4b 100644
+--- a/src/lang.h
++++ b/src/lang.h
+@@ -1,12 +1,12 @@
+ #ifndef LANG_H
+ #define LANG_H
+
+-#define MAX_EXTENSIONS 12
+-#define SINGLE_EXT_LEN 20
++#define MAX_PATTERNS 12
++#define SINGLE_PAT_LEN 20
+
+ typedef struct {
+ const char *name;
+- const char *extensions[MAX_EXTENSIONS];
++ const char *patterns[MAX_PATTERNS];
+ } lang_spec_t;
+
+ extern lang_spec_t langs[];
+@@ -17,20 +17,22 @@ extern lang_spec_t langs[];
+ size_t get_lang_count(void);
+
+ /**
+-Convert a NULL-terminated array of language extensions
+-into a regular expression of the form \.(extension1|extension2...)$
++Convert a NULL-terminated array of language patterns
++into a regular expression of the form (\.?pattern1|\.?pattern2...)$
++Patterns that begin with ^ are interpreted as full names, those
++without are interpreted as file extensions.
+
+ Caller is responsible for freeing the returned string.
+ */
+-char *make_lang_regex(char *ext_array, size_t num_exts);
++char *make_lang_regex(char *pat_array, size_t num_pats);
+
+
+ /**
+-Combine multiple file type extensions into one array.
++Combine multiple file type patterns into one array.
+
+-The combined result is returned through *exts*;
+-*exts* is one-dimension array, which can contain up to 100 extensions;
+-The number of extensions that *exts* actually contain is returned.
++The combined result is returned through *pats*;
++*pats* is one-dimension array, which can contain up to 100 patterns;
++The number of patterns that *pats* actually contain is returned.
+ */
+-size_t combine_file_extensions(size_t *extension_index, size_t len, char **exts);
++size_t combine_file_patterns(size_t *pattern_index, size_t len, char **pats);
+ #endif
+diff --git a/src/options.c b/src/options.c
+index 88ad65b..bafb1ea 100644
+--- a/src/options.c
++++ b/src/options.c
+@@ -210,9 +210,9 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ size_t longopts_len, full_len;
+ option_t *longopts;
+ char *lang_regex = NULL;
+- size_t *ext_index = NULL;
+- char *extensions = NULL;
+- size_t num_exts = 0;
++ size_t *pat_index = NULL;
++ char *patterns = NULL;
++ size_t num_pats = 0;
+
+ init_options();
+
+@@ -304,8 +304,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ full_len = (longopts_len + lang_count + 1);
+ longopts = ag_malloc(full_len * sizeof(option_t));
+ memcpy(longopts, base_longopts, sizeof(base_longopts));
+- ext_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count);
+- memset(ext_index, 0, sizeof(size_t) * lang_count);
++ pat_index = (size_t *)ag_malloc(sizeof(size_t) * lang_count);
++ memset(pat_index, 0, sizeof(size_t) * lang_count);
+
+ for (i = 0; i < lang_count; i++) {
+ option_t opt = { langs[i].name, no_argument, NULL, 0 };
+@@ -544,7 +544,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+
+ for (i = 0; i < lang_count; i++) {
+ if (strcmp(longopts[opt_index].name, langs[i].name) == 0) {
+- ext_index[lang_num++] = i;
++ pat_index[lang_num++] = i;
+ break;
+ }
+ }
+@@ -572,16 +572,16 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ free(file_search_regex);
+ }
+
+- if (ext_index[0]) {
+- num_exts = combine_file_extensions(ext_index, lang_num, &extensions);
+- lang_regex = make_lang_regex(extensions, num_exts);
++ if (pat_index[0]) {
++ num_pats = combine_file_patterns(pat_index, lang_num, &patterns);
++ lang_regex = make_lang_regex(patterns, num_pats);
+ compile_study(&opts.file_search_regex, &opts.file_search_regex_extra, lang_regex, 0, 0);
+ }
+
+- if (extensions) {
+- free(extensions);
++ if (patterns) {
++ free(patterns);
+ }
+- free(ext_index);
++ free(pat_index);
+ if (lang_regex) {
+ free(lang_regex);
+ }
+@@ -614,8 +614,8 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ for (lang_index = 0; lang_index < lang_count; lang_index++) {
+ printf(" --%s\n ", langs[lang_index].name);
+ int j;
+- for (j = 0; j < MAX_EXTENSIONS && langs[lang_index].extensions[j]; j++) {
+- printf(" .%s", langs[lang_index].extensions[j]);
++ for (j = 0; j < MAX_PATTERNS && langs[lang_index].patterns[j]; j++) {
++ printf(" .%s", langs[lang_index].patterns[j]);
+ }
+ printf("\n\n");
+ }
+--
+2.6.3
+
diff --git a/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch
new file mode 100644
index 0000000000..ff870af51a
--- /dev/null
+++ b/mingw-w64-ag/0002-options-Fix-ordering-problems-with-color.patch
@@ -0,0 +1,259 @@
+From 8560a5b4e4a3c984265c767f7b6fcc5aa787c654 Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Mon, 23 Feb 2015 22:12:15 +0000
+Subject: [PATCH 2/6] options: Fix ordering problems with --color
+
+Moved around the logic of setting opts.color so that:
+
+1. If the user explicitly requests or disables it, then
+ that is respected.
+
+2. Automatic disabling of color doesn't happen for FIFOs
+ on Windows since mintty.exe console handles are pipes.
+
+3. The old location of the isatty check meant that if the
+ user specified --color, then group would get set to 0,
+ color would be TRUE and the output would not show any
+ filenames at all.
+
+4. Default color to TRUE if MSYSCON env. var = mintty.exe
+---
+ configure.ac | 2 +-
+ src/options.c | 148 ++++++++++++++++++++++++++++++++++++----------------------
+ src/options.h | 10 ++++
+ 3 files changed, 102 insertions(+), 58 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 42aaf79..9e6b778 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -24,7 +24,7 @@ AX_PTHREAD(
+ )
+
+ # Run CFLAGS="-pg" ./configure if you want debug symbols
+-CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O2"
++CFLAGS="$CFLAGS $PTHREAD_CFLAGS $PCRE_CFLAGS -Wall -Wextra -Wformat=2 -Wno-format-nonliteral -Wshadow -Wpointer-arith -Wcast-qual -Wmissing-prototypes -Wno-missing-braces -std=gnu89 -D_GNU_SOURCE -O0"
+ LDFLAGS="$LDFLAGS"
+
+ case $host in
+diff --git a/src/options.c b/src/options.c
+index bafb1ea..f329887 100644
+--- a/src/options.c
++++ b/src/options.c
+@@ -140,8 +140,16 @@ void print_version(void) {
+ void init_options(void) {
+ memset(&opts, 0, sizeof(opts));
+ opts.casing = CASE_DEFAULT;
+- opts.color = TRUE;
+- opts.color_win_ansi = FALSE;
++ opts.color = COLOR_DEFAULT_TRUE;
++#ifdef _WIN32
++ const char* env_MSYSCON = getenv("MSYSCON");
++ opts.color_win_ansi = ((getenv("ANSICON") || getenv("CMDER_ROOT")
++ || (env_MSYSCON && !strcmp(env_MSYSCON, "mintty.exe"))))
++ ? COLOR_DEFAULT_TRUE : COLOR_DEFAULT_FALSE;
++#else
++ opts.color_win_ansi = COLOR_DEFAULT_FALSE;
++#endif
++
+ opts.max_matches_per_file = 0;
+ opts.max_search_depth = DEFAULT_MAX_SEARCH_DEPTH;
+ opts.multiline = TRUE;
+@@ -226,11 +234,11 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ { "before", optional_argument, NULL, 'B' },
+ { "break", no_argument, &opts.print_break, 1 },
+ { "case-sensitive", no_argument, NULL, 's' },
+- { "color", no_argument, &opts.color, 1 },
++ { "color", no_argument, &opts.color, COLOR_EXPLICIT_TRUE },
+ { "color-line-number", required_argument, NULL, 0 },
+ { "color-match", required_argument, NULL, 0 },
+ { "color-path", required_argument, NULL, 0 },
+- { "color-win-ansi", no_argument, &opts.color_win_ansi, TRUE },
++ { "color-win-ansi", no_argument, &opts.color_win_ansi, COLOR_EXPLICIT_TRUE },
+ { "column", no_argument, &opts.column, 1 },
+ { "context", optional_argument, NULL, 'C' },
+ { "count", no_argument, NULL, 'c' },
+@@ -262,7 +270,7 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ { "no-recurse", no_argument, NULL, 'n' },
+ { "noaffinity", no_argument, &opts.use_thread_affinity, 0 },
+ { "nobreak", no_argument, &opts.print_break, 0 },
+- { "nocolor", no_argument, &opts.color, 0 },
++ { "nocolor", no_argument, &opts.color, COLOR_EXPLICIT_FALSE },
+ { "nofilename", no_argument, NULL, 0 },
+ { "nofollow", no_argument, &opts.follow_symlinks, 0 },
+ { "nogroup", no_argument, &group, 0 },
+@@ -327,22 +335,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ }
+ }
+
+- /* If we're not outputting to a terminal. change output to:
+- * turn off colors
+- * print filenames on every line
+- */
+- if (!isatty(fileno(stdout))) {
+- opts.color = 0;
+- group = 0;
+-
+- /* Don't search the file that stdout is redirected to */
+- rv = fstat(fileno(stdout), &statbuf);
+- if (rv != 0) {
+- die("Error fstat()ing stdout");
+- }
+- opts.stdout_inode = statbuf.st_ino;
+- }
+-
+ char *file_search_regex = NULL;
+ while ((ch = getopt_long(argc, argv, "A:aB:C:cDG:g:FfHhiLlm:nop:QRrSsvVtuUwW:z0", longopts, &opt_index)) != -1) {
+ switch (ch) {
+@@ -662,42 +654,6 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ opts.after = opts.context;
+ }
+
+- if (opts.ackmate) {
+- opts.color = 0;
+- opts.print_break = 1;
+- group = 1;
+- opts.search_stream = 0;
+- }
+-
+- if (opts.vimgrep) {
+- opts.color = 0;
+- opts.print_break = 0;
+- group = 1;
+- opts.search_stream = 0;
+- opts.print_path = PATH_PRINT_NOTHING;
+- }
+-
+- if (opts.parallel) {
+- opts.search_stream = 0;
+- }
+-
+- if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) {
+- if (group) {
+- opts.print_break = 1;
+- } else {
+- opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE;
+- opts.print_break = 0;
+- }
+- }
+-
+- if (opts.search_stream) {
+- opts.print_break = 0;
+- opts.print_path = PATH_PRINT_NOTHING;
+- if (opts.print_line_numbers != 2) {
+- opts.print_line_numbers = 0;
+- }
+- }
+-
+ if (accepts_query && argc > 0) {
+ // use the provided query
+ opts.query = ag_strdup(argv[0]);
+@@ -761,6 +717,84 @@ void parse_options(int argc, char **argv, char **base_paths[], char **paths[]) {
+ (*paths)[i] = NULL;
+ (*base_paths)[i] = NULL;
+
++ /* If we're not outputting to a terminal. change output to:
++ * turn off colors
++ * print filenames on every line
++ */
++ if (!isatty(fileno(stdout))) {
++ /* Don't search the file that stdout is redirected to */
++ rv = fstat(fileno(stdout), &statbuf);
++ if (rv != 0) {
++ die("Error fstat()ing stdout");
++ }
++ opts.stdout_inode = statbuf.st_ino;
++ /* Assume the user knows best */
++ if (opts.color != COLOR_EXPLICIT_TRUE) {
++ /* On Windows redirection to regular file *can* br detected via
++ statbuf.st_mode & S_IFREG (while statbuf.st_ino is always 0) */
++ if (statbuf.st_ino != 0
++ || statbuf.st_mode & S_IFREG
++#if !defined(_WIN32)
++ /* On Windows bash.exe pipes cannot be distinguished from cmd.exe
++ pipes or mintty.exe console output (statbuf.st_mode & S_IFIFO)
++ so its best not to disable color output here. */
++ || statbuf.st_mode & S_IFIFO
++#endif
++ ) {
++ opts.color = COLOR_DEFAULT_FALSE;
++ group = 0;
++ }
++ }
++ }
++
++ if (opts.ackmate) {
++ opts.color = COLOR_EMULATION_FALSE;
++ opts.print_break = 1;
++ group = 1;
++ opts.search_stream = 0;
++ }
++
++ if (opts.vimgrep) {
++ opts.color = COLOR_EMULATION_FALSE;
++ opts.print_break = 0;
++ group = 1;
++ opts.search_stream = 0;
++ opts.print_path = PATH_PRINT_NOTHING;
++ }
++
++ if (opts.parallel) {
++ opts.search_stream = 0;
++ }
++
++ if (!(opts.print_path != PATH_PRINT_DEFAULT || opts.print_break == 0)) {
++ if (group) {
++ opts.print_break = 1;
++ } else {
++ opts.print_path = PATH_PRINT_DEFAULT_EACH_LINE;
++ opts.print_break = 0;
++ }
++ }
++
++ if (opts.search_stream) {
++ opts.print_break = 0;
++ opts.print_path = PATH_PRINT_NOTHING;
++ if (opts.print_line_numbers != 2) {
++ opts.print_line_numbers = 0;
++ }
++ }
++
++ if (opts.color == COLOR_DEFAULT_FALSE || opts.color == COLOR_EXPLICIT_FALSE ||
++ opts.color == COLOR_EMULATION_FALSE) {
++ opts.color = COLOR_FALSE;
++ } else {
++ opts.color = COLOR_TRUE;
++ }
++ if (opts.color_win_ansi == COLOR_DEFAULT_FALSE) {
++ opts.color_win_ansi = COLOR_FALSE;
++ } else {
++ opts.color_win_ansi = COLOR_TRUE;
++ }
++
+ #ifdef _WIN32
+ windows_use_ansi(opts.color_win_ansi);
+ #endif
+diff --git a/src/options.h b/src/options.h
+index ac213f2..2cf8c68 100644
+--- a/src/options.h
++++ b/src/options.h
+@@ -26,6 +26,16 @@ enum path_print_behavior {
+ PATH_PRINT_NOTHING
+ };
+
++enum color_behaviour {
++ COLOR_FALSE = 0,
++ COLOR_TRUE = 1,
++ COLOR_DEFAULT_FALSE,
++ COLOR_DEFAULT_TRUE,
++ COLOR_EXPLICIT_FALSE,
++ COLOR_EXPLICIT_TRUE,
++ COLOR_EMULATION_FALSE,
++};
++
+ typedef struct {
+ int ackmate;
+ pcre *ackmate_dir_filter;
+--
+2.6.3
+
diff --git a/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
new file mode 100644
index 0000000000..03b0d2e379
--- /dev/null
+++ b/mingw-w64-ag/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
@@ -0,0 +1,24 @@
+From 8a1495dce46227097c73adfbeb55cc4dea9c1a3d Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Mon, 23 Feb 2015 22:16:54 +0000
+Subject: [PATCH 3/6] lang: Add autotools (ac, am, in, m4, pc)
+
+---
+ src/lang.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lang.c b/src/lang.c
+index 54f51ca..b5b2a2b 100644
+--- a/src/lang.c
++++ b/src/lang.c
+@@ -8,6 +8,7 @@ lang_spec_t langs[] = {
+ { "actionscript", { "as", "mxml" } },
+ { "ada", { "ada", "adb", "ads" } },
+ { "asm", { "asm", "s" } },
++ { "autotools", { "ac", "am", "in", "m4", "pc" } },
+ { "batch", { "bat", "cmd" } },
+ { "bitbake", { "bb", "bbappend", "bbclass", "inc" } },
+ { "bro", { "bro", "bif" } },
+--
+2.6.3
+
diff --git a/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch
new file mode 100644
index 0000000000..0db6537af6
--- /dev/null
+++ b/mingw-w64-ag/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch
@@ -0,0 +1,29 @@
+From 778583071e6b237db7e80f08b63e62a6f1dc5d98 Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Mon, 23 Feb 2015 22:18:27 +0000
+Subject: [PATCH 4/6] lang: Add to make (^Makefile, ^Makefile.Debug,
+ ^Makefile.Release, *.make)
+
+All but one addition are full filename patterns. The
+Makefile.Debug and Makefile.Release ones are used by Qt, the *.make
+one is used by CMake.
+---
+ src/lang.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lang.c b/src/lang.c
+index b5b2a2b..ede3b85 100644
+--- a/src/lang.c
++++ b/src/lang.c
+@@ -45,7 +45,7 @@ lang_spec_t langs[] = {
+ { "lisp", { "lisp", "lsp" } },
+ { "lua", { "lua" } },
+ { "m4", { "m4" } },
+- { "make", { "Makefiles", "mk", "mak" } },
++ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } },
+ { "mako", { "mako" } },
+ { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } },
+ { "mason", { "mas", "mhtml", "mpl", "mtxt" } },
+--
+2.6.3
+
diff --git a/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch
new file mode 100644
index 0000000000..8327541a6d
--- /dev/null
+++ b/mingw-w64-ag/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch
@@ -0,0 +1,25 @@
+From 7faacc6b0552fb87e34f6b4ff7afc6b37edcfb68 Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Mon, 23 Feb 2015 22:21:26 +0000
+Subject: [PATCH 5/6] lang: Add makepkg (^PKGBUILD, diff, patch, in, install)
+
+Used by the makepkg build system of ArchLinux and MSYS2
+---
+ src/lang.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lang.c b/src/lang.c
+index ede3b85..fc4ae6b 100644
+--- a/src/lang.c
++++ b/src/lang.c
+@@ -46,6 +46,7 @@ lang_spec_t langs[] = {
+ { "lua", { "lua" } },
+ { "m4", { "m4" } },
+ { "make", { "^Makefile", "^Makefile.Debug", "^Makefile.Release", "Makefiles", "mk", "mak", "make" } },
++ { "makepkg", { "^PKGBUILD", "diff", "patch", "in", "install" } },
+ { "mako", { "mako" } },
+ { "markdown", { "markdown", "mdown", "mdwn", "mkdn", "mkd", "md" } },
+ { "mason", { "mas", "mhtml", "mpl", "mtxt" } },
+--
+2.6.3
+
diff --git a/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch
new file mode 100644
index 0000000000..bb59a9c468
--- /dev/null
+++ b/mingw-w64-ag/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch
@@ -0,0 +1,25 @@
+From 10d70a323b34491746fc2e563c7765b54ab7f0e9 Mon Sep 17 00:00:00 2001
+From: Ray Donnelly
+Date: Sat, 12 Dec 2015 19:55:47 +0000
+Subject: [PATCH 6/6] lang: Add cmake (^CMakeLists.txt, ^CMakeCache.txt ..
+
+.. ^CMakeError.log, ^CMakeOutput.log, cmake)
+---
+ src/lang.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lang.c b/src/lang.c
+index fc4ae6b..77a32dd 100644
+--- a/src/lang.c
++++ b/src/lang.c
+@@ -15,6 +15,7 @@ lang_spec_t langs[] = {
+ { "cc", { "c", "h", "xs" } },
+ { "cfmx", { "cfc", "cfm", "cfml" } },
+ { "clojure", { "clj", "cljs", "cljc", "cljx" } },
++ { "cmake", { "^CMakeLists.txt", "^CMakeCache.txt", "^CMakeError.log", "^CMakeOutput.log", "cmake" } },
+ { "coffee", { "coffee", "cjsx" } },
+ { "cpp", { "cpp", "cc", "C", "cxx", "m", "hpp", "hh", "h", "H", "hxx" } },
+ { "crystal", { "cr", "ecr" } },
+--
+2.6.3
+
diff --git a/mingw-w64-ag/PKGBUILD b/mingw-w64-ag/PKGBUILD
new file mode 100644
index 0000000000..170786013d
--- /dev/null
+++ b/mingw-w64-ag/PKGBUILD
@@ -0,0 +1,74 @@
+# Maintainer: Ray Donnelly
+# Maintainer: Martell Malone
+
+_realname=ag
+_longname=the_silver_searcher
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=0.31.0.r1666.0e577cc
+pkgrel=1
+pkgdesc="The Silver Searcher: An attempt to make something better than ack, which itself is better than grep (mingw-w64)"
+arch=('any')
+url="http://geoff.greer.fm/ag"
+license=("Apache")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-pkg-config"
+ "git")
+depends=("${MINGW_PACKAGE_PREFIX}-pcre"
+ "${MINGW_PACKAGE_PREFIX}-xz"
+ "${MINGW_PACKAGE_PREFIX}-zlib")
+options=('staticlibs') # '!strip' 'debug')
+source=("${_realname}"::"git+https://github.com/ggreer/the_silver_searcher.git"
+ "0001-lang-Allow-both-extensions-and-full-filenames.patch"
+ "0002-options-Fix-ordering-problems-with-color.patch"
+ "0003-lang-Add-autotools-ac-am-in-m4-pc.patch"
+ "0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch"
+ "0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch"
+ "0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch")
+md5sums=('SKIP'
+ '73e60af8e8f0eb12e69797a6377b3ba9'
+ '8364f2765d95d3a550cd7698c3540ab6'
+ '6dc9b48f11616f2392935d3297bdabbc'
+ 'e40bea74e7b32da3543d635e1984be64'
+ '40ef6ecb9db4c7b8ae6e8a13b5ecafb8'
+ '75e55c3d88d435994e8562d29ada825e')
+
+pkgver() {
+ cd ${srcdir}/${_realname}
+ local AC_INIT_VER=$(grep AC_INIT configure.ac -A5 | tr '\n' ' ' | sed -e 's/AC_INIT([^,]\+,\s*\[\?\([0-9.a-z]\+\).*/\1/')
+ printf "%s.r%s.%s" "${AC_INIT_VER}" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "${srcdir}"/${_realname}
+ git am "${srcdir}"/0001-lang-Allow-both-extensions-and-full-filenames.patch
+ git am "${srcdir}"/0002-options-Fix-ordering-problems-with-color.patch
+ git am "${srcdir}"/0003-lang-Add-autotools-ac-am-in-m4-pc.patch
+ git am "${srcdir}"/0004-lang-Add-to-make-Makefile-Makefile.Debug-Makefile.Re.patch
+ git am "${srcdir}"/0005-lang-Add-makepkg-PKGBUILD-diff-patch-in-install.patch
+ git am "${srcdir}"/0006-lang-Add-cmake-CMakeLists.txt-CMakeCache.txt.patch
+
+ # configure.ac forces -O2, so force it to -O0 if debugging.
+ if check_option "debug" "y"; then
+ sed -i "s#-O2#-O0#g" configure.ac
+ fi
+
+ autoreconf -fi
+}
+
+build() {
+
+ mkdir -p "${srcdir}/build-${CARCH}"
+ cd "${srcdir}/build-${CARCH}"
+
+ "${srcdir}"/${_realname}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --{build,host}=${MINGW_CHOST}
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${CARCH}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/mingw-w64-allegro/PKGBUILD b/mingw-w64-allegro/PKGBUILD
index f2d6019aea..5243b13809 100644
--- a/mingw-w64-allegro/PKGBUILD
+++ b/mingw-w64-allegro/PKGBUILD
@@ -1,70 +1,62 @@
# Maintainer: Alexey Pavlov
_realname=allegro
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=5.0.10
-pkgrel=2
+pkgver=5.1.12.0
+pkgrel=1
pkgdesc="Portable library mainly aimed at video game and multimedia programming (mingw-w64)"
arch=(any)
-url="http://alleg.sourceforge.net"
-license=("custom")
-makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
- "${MINGW_PACKAGE_PREFIX}-cmake"
- "${MINGW_PACKAGE_PREFIX}-freetype"
- "${MINGW_PACKAGE_PREFIX}-physfs"
- "${MINGW_PACKAGE_PREFIX}-libvorbis"
- "${MINGW_PACKAGE_PREFIX}-flac"
- "${MINGW_PACKAGE_PREFIX}-libpng"
- "${MINGW_PACKAGE_PREFIX}-openal"
- "${MINGW_PACKAGE_PREFIX}-dumb"
- "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo")
+url="http://liballeg.org/"
+license=("ZLIB")
+makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
+ "${MINGW_PACKAGE_PREFIX}-dumb"
+ "${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-flac"
+ "${MINGW_PACKAGE_PREFIX}-freetype"
+ "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo"
+ "${MINGW_PACKAGE_PREFIX}-libpng"
+ "${MINGW_PACKAGE_PREFIX}-libvorbis"
+ "${MINGW_PACKAGE_PREFIX}-openal"
+ "${MINGW_PACKAGE_PREFIX}-physfs"
+ "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs")
-optdepends=(
- "${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio"
- "${MINGW_PACKAGE_PREFIX}-flac: allegro_audio"
- "${MINGW_PACKAGE_PREFIX}-freetype: allegro_font"
- "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image"
- "${MINGW_PACKAGE_PREFIX}-libpng: allegro_image"
- "${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio"
- "${MINGW_PACKAGE_PREFIX}-openal: allegro_audio"
- "${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs")
+optdepends=("${MINGW_PACKAGE_PREFIX}-dumb: allegro_audio"
+ "${MINGW_PACKAGE_PREFIX}-flac: allegro_audio"
+ "${MINGW_PACKAGE_PREFIX}-freetype: allegro_font"
+ "${MINGW_PACKAGE_PREFIX}-libjpeg-turbo: allegro_image"
+ "${MINGW_PACKAGE_PREFIX}-libpng: allegro_image"
+ "${MINGW_PACKAGE_PREFIX}-libvorbis: allegro_audio"
+ "${MINGW_PACKAGE_PREFIX}-openal: allegro_audio"
+ "${MINGW_PACKAGE_PREFIX}-physfs: allegro_physfs")
options=('strip' 'staticlibs')
-source=("http://downloads.sourceforge.net/alleg/allegro-$pkgver.tar.gz")
+source=(${_realname}-${pkgver}.tar.gz::https://github.com/liballeg/allegro5/archive/${pkgver}.tar.gz)
conflicts=("${MINGW_PACKAGE_PREFIX}-allegro-static")
provides=("${MINGW_PACKAGE_PREFIX}-allegro-static")
-sha256sums=('71b81080f34f6e485edd0c51f22923c18ff967d5db438e591e6f3885d5bdcda1')
+sha256sums=('4d9aa8a4cc83fd0887f00969aa5ce8d141a3838fa31cd937d019b4319a73a793')
prepare() {
- cd "$srcdir/allegro-$pkgver"
+ cd "${srcdir}/${_realname}5-${pkgver}"
sed -i "s,DS3DALG_DEFAULT,GUID_NULL,g" "addons/audio/dsound.cpp"
}
build() {
- mkdir -p ${pkgdir}${MINGW_PREFIX}
- pushd ${pkgdir}${MINGW_PREFIX} > /dev/null
- export PREFIX_WIN=`pwd -W`
- popd > /dev/null
-
- pushd ${MINGW_PREFIX} > /dev/null
- export PREFIX_DEPS=`pwd -W`
- popd > /dev/null
-
- export DXSDK_DIR=${PREFIX_DEPS}/${MINGW_CHOST}
- mkdir "$srcdir/build-${MINGW_CHOST}" && cd "$srcdir/build-${MINGW_CHOST}"
+ [[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
+ mkdir -p "${srcdir}/build-${MINGW_CHOST}" && cd "${srcdir}/build-${MINGW_CHOST}"
+ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
${MINGW_PREFIX}/bin/cmake \
-G"MSYS Makefiles" \
- -DCMAKE_INSTALL_PREFIX:PATH=${PREFIX_WIN} \
+ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
-DCMAKE_BUILD_TYPE=Release \
-DWANT_DEMO=OFF \
-DWANT_DOCS=OFF \
-DWANT_EXAMPLES=OFF \
-DINSTALL_PKG_CONFIG_FILES=ON \
- ../${_realname}-${pkgver}
+ ../${_realname}5-${pkgver}
make
}
package() {
- cd "$srcdir/build-${MINGW_CHOST}"
- make install
- find "${pkgdir}${MINGW_PREFIX}" -name '*.bat' -o -name '*.def' -o -name '*.exp' | xargs -rtl1 rm
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR=${pkgdir} install
}
diff --git a/mingw-w64-angleproject-git/0000-build-fix.patch b/mingw-w64-angleproject-git/0000-build-fix.patch
new file mode 100644
index 0000000000..ca8359d139
--- /dev/null
+++ b/mingw-w64-angleproject-git/0000-build-fix.patch
@@ -0,0 +1,77 @@
+diff --git a/src/angle.gyp b/src/angle.gyp
+index 4095547..3db4840 100644
+--- a/src/angle.gyp
++++ b/src/angle.gyp
+@@ -76,7 +76,7 @@
+ [
+ {
+ 'destination': '<(angle_gen_path)',
+- 'files': [ 'copy_compiler_dll.bat', '<(angle_id_script_base)' ],
++ 'files': [ '<(angle_id_script_base)' ],
+ },
+ ],
+ 'conditions':
+@@ -206,10 +206,10 @@
+ 'outputs': [ '<(PRODUCT_DIR)/d3dcompiler_47.dll' ],
+ 'action':
+ [
+- "<(angle_gen_path)/copy_compiler_dll.bat",
+- "$(PlatformName)",
+- "<(windows_sdk_path)",
+- "<(PRODUCT_DIR)"
++# "<(angle_gen_path)/copy_compiler_dll.bat",
++# "$(PlatformName)",
++# "<(windows_sdk_path)",
++# "<(PRODUCT_DIR)"
+ ],
+ },
+ ], #actions
+diff --git a/src/common/mathutil.h b/src/common/mathutil.h
+index e096b1a..716aeb6 100644
+--- a/src/common/mathutil.h
++++ b/src/common/mathutil.h
+@@ -16,6 +16,7 @@
+ #include
+ #include
+ #include
++#include
+
+ namespace gl
+ {
+diff --git a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
+index cdf3b8e..59aacb8 100644
+--- a/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
++++ b/src/libANGLE/renderer/d3d/d3d11/Blit11.cpp
+@@ -55,6 +55,7 @@
+ #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlef2darrayps.h"
+ #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzlei2darrayps.h"
+ #include "libANGLE/renderer/d3d/d3d11/shaders/compiled/swizzleui2darrayps.h"
++#include
+
+ namespace rx
+ {
+diff --git a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
+index ae42f36..0f1fed8 100644
+--- a/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
++++ b/src/libANGLE/renderer/d3d/d3d11/RenderStateCache.cpp
+@@ -16,6 +16,7 @@
+ #include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
+ #include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
+ #include "third_party/murmurhash/MurmurHash3.h"
++#include
+
+ namespace rx
+ {
+diff --git a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
+index c4b79ee..f22609b 100644
+--- a/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
++++ b/src/libANGLE/renderer/gl/wgl/functionswgl_typedefs.h
+@@ -23,7 +23,7 @@ typedef HGLRC(WINAPI *PFNWGLCREATELAYERCONTEXTPROC)(HDC, int);
+ typedef BOOL(WINAPI *PFNWGLDELETECONTEXTPROC)(HGLRC);
+ typedef HGLRC(WINAPI *PFNWGLGETCURRENTCONTEXTPROC)(VOID);
+ typedef HDC(WINAPI *PFNWGLGETCURRENTDCPROC)(VOID);
+-typedef PROC(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR);
++typedef void*(WINAPI *PFNWGLGETPROCADDRESSPROC)(LPCSTR);
+ typedef BOOL(WINAPI *PFNWGLMAKECURRENTPROC)(HDC, HGLRC);
+ typedef BOOL(WINAPI *PFNWGLSHARELISTSPROC)(HGLRC, HGLRC);
+ typedef BOOL(WINAPI *PFNWGLUSEFONTBITMAPSAPROC)(HDC, DWORD, DWORD, DWORD);
diff --git a/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch b/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
deleted file mode 100644
index 06ab16abdb..0000000000
--- a/mingw-w64-angleproject-git/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 88297d02fd1aed6cac258b72d9d0a8baabad6203 Mon Sep 17 00:00:00 2001
-From: Thomas Hartmann
-Date: Mon, 17 Feb 2014 16:56:51 +0200
-Subject: [PATCH] Fix compilation for MSVC 2008 and std::tuple
-
-For MSVC 2008 make_tuple is in the tr1 namespace.
-
-Change-Id: I4a51f6cabdf068993869b404b12ed1484a21a9d4
----
- src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
-index 610a5ef..51d7f0b 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/IndexRangeCache.cpp
-@@ -81,7 +81,11 @@ IndexRangeCache::IndexRange::IndexRange(GLenum typ, intptr_t off, GLsizei c)
-
- bool IndexRangeCache::IndexRange::operator<(const IndexRange& rhs) const
- {
-+#if defined(_MSC_VER) && _MSC_VER < 1600
-+ return std::tr1::make_tuple(type, offset, count) < std::tr1::make_tuple(rhs.type, rhs.offset, rhs.count);
-+#else
- return std::make_tuple(type, offset, count) < std::make_tuple(rhs.type, rhs.offset, rhs.count);
-+#endif
- }
-
- IndexRangeCache::IndexBounds::IndexBounds()
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch b/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
deleted file mode 100644
index 8b91d4b8ea..0000000000
--- a/mingw-w64-angleproject-git/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 95e3ca47772ef0552662b1d04b7ee08d9d1d2338 Mon Sep 17 00:00:00 2001
-From: Kai Koehne
-Date: Mon, 17 Feb 2014 16:59:19 +0200
-Subject: [PATCH] Fix compilation of ANGLE with mingw-tdm64 gcc 4.8.1
-
-Do not rely on sprintf_s being declared/defined. This also fixes
-deployment to Windows XP.
-
-See https://chromium-review.googlesource.com/#/c/182975/ for a similar
-commit proposed upstream.
-
-Task-number: QTBUG-36242
-Change-Id: I520e2f61aeab34963e7a57baafd413c7db93f110
----
- src/3rdparty/angle/src/libEGL/Display.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp
-index a382c3b..13ef701 100644
---- a/src/3rdparty/angle/src/libEGL/Display.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Display.cpp
-@@ -523,7 +523,7 @@ void Display::initVendorString()
- if (mRenderer && mRenderer->getLUID(&adapterLuid))
- {
- char adapterLuidString[64];
-- sprintf_s(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart);
-+ snprintf(adapterLuidString, sizeof(adapterLuidString), " (adapter LUID: %08x%08x)", adapterLuid.HighPart, adapterLuid.LowPart);
-
- mVendorString += adapterLuidString;
- }
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch b/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
deleted file mode 100644
index 7d70057a9a..0000000000
--- a/mingw-w64-angleproject-git/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a03d8f647816767525489a2b26663d897f0264a0 Mon Sep 17 00:00:00 2001
-From: Kai Koehne
-Date: Tue, 18 Feb 2014 09:34:39 +0200
-Subject: [PATCH] Fix compilation with MinGW gcc 64 bit
-
-Fix compilation of ANGLE with gcc 4.8.0 64 bit: The
-
- reinterpret_cast(void*)
-
-was causing
-
- error: cast from 'const void*' to 'long unsigned int' loses precision
-
-Task-number: QTBUG-34395
-Change-Id: Ibde75dd4b5536f3827bdf0ab02a15e93a1a8a4f0
----
- src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-index 1880056..637cf9a 100644
---- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0;
- class TraceID {
- public:
- explicit TraceID(const void* id, unsigned char* flags) :
-- m_data(static_cast(reinterpret_cast(id)))
-+ m_data(reinterpret_cast(id))
- {
- *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
- }
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch b/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
deleted file mode 100644
index 2c95c5bcfa..0000000000
--- a/mingw-w64-angleproject-git/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 9b24b25eeb5ca97d7978c6840fdb1e903bf63a55 Mon Sep 17 00:00:00 2001
-From: Friedemann Kleint
-Date: Tue, 18 Feb 2014 09:52:52 +0200
-Subject: [PATCH] Make it possible to link ANGLE statically for
- single-thread use.
-
-Fix exports and provide static instances of thread-local
-data depending on QT_OPENGL_ES_2_ANGLE_STATIC.
-
-Change-Id: Ifab25a820adf5953bb3b09036de53dbf7f1a7fd5
----
- src/3rdparty/angle/include/KHR/khrplatform.h | 2 +-
- src/3rdparty/angle/src/libEGL/main.cpp | 6 ++++++
- src/3rdparty/angle/src/libGLESv2/main.cpp | 6 ++++++
- 3 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/include/KHR/khrplatform.h b/src/3rdparty/angle/include/KHR/khrplatform.h
-index c9e6f17..1ac2d3f 100644
---- a/src/3rdparty/angle/include/KHR/khrplatform.h
-+++ b/src/3rdparty/angle/include/KHR/khrplatform.h
-@@ -97,7 +97,7 @@
- *-------------------------------------------------------------------------
- * This precedes the return type of the function in the function prototype.
- */
--#if defined(_WIN32) && !defined(__SCITECH_SNAP__)
-+#if defined(_WIN32) && !defined(__SCITECH_SNAP__) && !defined(QT_OPENGL_ES_2_ANGLE_STATIC)
- # define KHRONOS_APICALL __declspec(dllimport)
- #elif defined (__SYMBIAN32__)
- # define KHRONOS_APICALL IMPORT_C
-diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp
-index 80dcc34..772b8eb 100644
---- a/src/3rdparty/angle/src/libEGL/main.cpp
-+++ b/src/3rdparty/angle/src/libEGL/main.cpp
-@@ -106,7 +106,13 @@ namespace egl
-
- Current *GetCurrentData()
- {
-+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC
- Current *current = (Current*)TlsGetValue(currentTLS);
-+#else
-+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt.
-+ static Current s_current = { EGL_SUCCESS, EGL_OPENGL_ES_API, EGL_NO_DISPLAY, EGL_NO_SURFACE, EGL_NO_SURFACE };
-+ Current *current = &s_current;
-+#endif
-
- // ANGLE issue 488: when the dll is loaded after thread initialization,
- // thread local storage (current) might not exist yet.
-diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp
-index 50e2593..6b459d3 100644
---- a/src/3rdparty/angle/src/libGLESv2/main.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/main.cpp
-@@ -89,7 +89,13 @@ namespace gl
-
- Current *GetCurrentData()
- {
-+#ifndef QT_OPENGL_ES_2_ANGLE_STATIC
- Current *current = (Current*)TlsGetValue(currentTLS);
-+#else
-+ // No precautions for thread safety taken as ANGLE is used single-threaded in Qt.
-+ static Current s_current = { 0, 0 };
-+ Current *current = &s_current;
-+#endif
-
- // ANGLE issue 488: when the dll is loaded after thread initialization,
- // thread local storage (current) might not exist yet.
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch b/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch
deleted file mode 100644
index 475ec55b0e..0000000000
--- a/mingw-w64-angleproject-git/0005-Fix-build-when-SSE2-is-not-available.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From cebc37237a74a130dffaefad0a10da17abc42981 Mon Sep 17 00:00:00 2001
-From: Andy Shaw
-Date: Tue, 18 Feb 2014 09:59:17 +0200
-Subject: [PATCH] Fix build when SSE2 is not available.
-
-Although SSE2 support is detected at runtime it still may not be
-available at build time, so we have to ensure it only uses SSE2
-when it is available at build time too.
-
-Change-Id: I86c45a6466ab4cec79aa0f62b0d5230a78ad825a
----
- src/3rdparty/angle/src/libGLESv2/mathutil.h | 2 ++
- src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp | 6 +++++-
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/mathutil.h b/src/3rdparty/angle/src/libGLESv2/mathutil.h
-index f902131..6474b66 100644
---- a/src/3rdparty/angle/src/libGLESv2/mathutil.h
-+++ b/src/3rdparty/angle/src/libGLESv2/mathutil.h
-@@ -92,6 +92,7 @@ inline bool supportsSSE2()
- return supports;
- }
-
-+#if defined(_M_IX86) || defined(_M_AMD64) // ARM doesn't provide __cpuid()
- int info[4];
- __cpuid(info, 0);
-
-@@ -101,6 +102,7 @@ inline bool supportsSSE2()
-
- supports = (info[3] >> 26) & 1;
- }
-+#endif
-
- checked = true;
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
-index 8511946..cd12d8c 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d9/Image9.cpp
-@@ -373,11 +373,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
- switch (mInternalFormat)
- {
- case GL_ALPHA8_EXT:
-+#if defined(__SSE2__)
- if (gl::supportsSSE2())
- {
- loadAlphaDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
- }
- else
-+#endif
- {
- loadAlphaDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
- }
-@@ -413,11 +415,13 @@ void Image9::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heigh
- loadRGB565DataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
- break;
- case GL_RGBA8_OES:
-+#if defined(__SSE2__)
- if (gl::supportsSSE2())
- {
- loadRGBAUByteDataToBGRASSE2(width, height, inputPitch, input, locked.Pitch, locked.pBits);
- }
- else
-+#endif
- {
- loadRGBAUByteDataToBGRA(width, height, inputPitch, input, locked.Pitch, locked.pBits);
- }
-@@ -729,4 +733,4 @@ void Image9::copy(GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width,
- mDirty = true;
- }
-
--}
-\ No newline at end of file
-+}
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch b/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
deleted file mode 100644
index cf31245b95..0000000000
--- a/mingw-w64-angleproject-git/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 68ba96d224a84389567f506661a78c32b307e84d Mon Sep 17 00:00:00 2001
-From: Kai Koehne
-Date: Tue, 18 Feb 2014 10:29:14 +0200
-Subject: [PATCH] Fix compilation of libGLESv2 with older MinGW-w64
- headers
-
-Fix compilation of libGLESv2 for mingw-headers predating MinGW-w64
-svn commit 5567 (like MinGW-builds gcc 4.7.2-rev8, the toolchain
-we officially support).
-
-Commit 5567 added the D3DCOMPILER_DLL define to d3dcompiler.h, but with
-a trailing semicolon that has then fixed in commit 5783. Any toolchain
-that ships MinGW-w64 headers from a version in between (like
-MinGW-builds gcc 4.7.2-rev11) will unfortunately remain broken.
-
-Change-Id: I31272a1a991c4fc0f1611f8fb7510be51d6bb925
----
- .../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++++++++
- 1 file changed, 19 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-index 3407353..e74120d 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -24,6 +24,25 @@
- #define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380)
- #endif
-
-+#ifdef __MINGW32__
-+
-+#ifndef D3DCOMPILER_DLL
-+
-+// Add define + typedefs for older MinGW-w64 headers (pre 5783)
-+
-+#define D3DCOMPILER_DLL L"d3dcompiler_43.dll"
-+
-+HRESULT WINAPI D3DCompile(const void *data, SIZE_T data_size, const char *filename,
-+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
-+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
-+typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const char *filename,
-+ const D3D_SHADER_MACRO *defines, ID3DInclude *include, const char *entrypoint,
-+ const char *target, UINT sflags, UINT eflags, ID3DBlob **shader, ID3DBlob **error_messages);
-+
-+#endif // D3DCOMPILER_DLL
-+
-+#endif // __MINGW32__
-+
- namespace rx
- {
-
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch b/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch
deleted file mode 100644
index 62a88d42c7..0000000000
--- a/mingw-w64-angleproject-git/0007-Make-DX9-DX11-mutually-exclusive.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From e1b26c6669cafb5c1298d6e5476c24686fccf1bd Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Thu, 20 Feb 2014 16:46:15 +0200
-Subject: [PATCH] Make DX9/DX11 support configurable
-
-ANGLE supports selecting the renderer on creation, choosing between
-D3D11 and D3D9 backends. This patch improves upon this by enabling the
-D3D backend(s) at compile time. This can make the binary size smaller
-(no extra render is built) and ensures compatibility with Windows Runtime
-when building only the D3D11 renderer.
-
-Change-Id: Id9473e0e631721083fe4026d475e37603a144c37
----
- src/3rdparty/angle/src/libEGL/Display.cpp | 4 +++-
- src/3rdparty/angle/src/libGLESv2/Texture.cpp | 6 +++++-
- src/3rdparty/angle/src/libGLESv2/precompiled.h | 10 +++++++---
- .../angle/src/libGLESv2/renderer/Renderer.cpp | 19 +++++++++++++------
- 4 files changed, 28 insertions(+), 11 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp
-index 13ef701..a7f5f5a 100644
---- a/src/3rdparty/angle/src/libEGL/Display.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Display.cpp
-@@ -471,7 +471,6 @@ bool Display::hasExistingWindowSurface(HWND window)
-
- void Display::initExtensionString()
- {
-- HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll"));
- bool shareHandleSupported = mRenderer->getShareHandleSupport();
-
- mExtensionString = "";
-@@ -487,10 +486,13 @@ void Display::initExtensionString()
-
- mExtensionString += "EGL_ANGLE_query_surface_pointer ";
-
-+#if defined(ANGLE_ENABLE_D3D9)
-+ HMODULE swiftShader = GetModuleHandle(TEXT("swiftshader_d3d9.dll"));
- if (swiftShader)
- {
- mExtensionString += "EGL_ANGLE_software_display ";
- }
-+#endif
-
- if (shareHandleSupported)
- {
-diff --git a/src/3rdparty/angle/src/libGLESv2/Texture.cpp b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-index 3deecaf..3257d05 100644
---- a/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/Texture.cpp
-@@ -14,7 +14,11 @@
- #include "libGLESv2/main.h"
- #include "libGLESv2/mathutil.h"
- #include "libGLESv2/utilities.h"
--#include "libGLESv2/renderer/d3d9/Blit.h"
-+#if defined(ANGLE_ENABLE_D3D9)
-+# include "libGLESv2/renderer/d3d9/Blit.h"
-+#else
-+# define D3DFMT_UNKNOWN DXGI_FORMAT_UNKNOWN
-+#endif
- #include "libGLESv2/Renderbuffer.h"
- #include "libGLESv2/renderer/Image.h"
- #include "libGLESv2/renderer/Renderer.h"
-diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h
-index 58ad181..79490b1 100644
---- a/src/3rdparty/angle/src/libGLESv2/precompiled.h
-+++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h
-@@ -32,10 +32,14 @@
- #include
- #include
-
--#include
--#include
--#include
--#include
-+#if defined(ANGLE_ENABLE_D3D9)
-+# include
-+#endif
-+#if defined(ANGLE_ENABLE_D3D11)
-+# include
-+# include
-+# include
-+#endif
- #include
-
- #ifdef _MSC_VER
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-index 86be93f..3407353 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -11,14 +11,17 @@
- #include "libGLESv2/main.h"
- #include "libGLESv2/Program.h"
- #include "libGLESv2/renderer/Renderer.h"
--#include "libGLESv2/renderer/d3d9/Renderer9.h"
--#include "libGLESv2/renderer/d3d11/Renderer11.h"
-+#if defined(ANGLE_ENABLE_D3D9)
-+# include "libGLESv2/renderer/d3d9/Renderer9.h"
-+#endif
-+#if defined(ANGLE_ENABLE_D3D11)
-+# include "libGLESv2/renderer/d3d11/Renderer11.h"
-+#endif
- #include "libGLESv2/utilities.h"
- #include "third_party/trace_event/trace_event.h"
-
--#if !defined(ANGLE_ENABLE_D3D11)
--// Enables use of the Direct3D 11 API for a default display, when available
--#define ANGLE_ENABLE_D3D11 0
-+#ifndef D3DERR_OUTOFVIDEOMEMORY
-+#define D3DERR_OUTOFVIDEOMEMORY MAKE_HRESULT(1, 0x876, 380)
- #endif
-
- namespace rx
-@@ -177,7 +180,8 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
- rx::Renderer *renderer = NULL;
- EGLint status = EGL_BAD_ALLOC;
-
-- if (ANGLE_ENABLE_D3D11 ||
-+#if defined(ANGLE_ENABLE_D3D11)
-+ if (displayId == EGL_DEFAULT_DISPLAY ||
- displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
- displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
- {
-@@ -200,7 +204,9 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
- // Failed to create a D3D11 renderer, try creating a D3D9 renderer
- delete renderer;
- }
-+#endif // ANGLE_ENABLE_D3D11
-
-+#if defined(ANGLE_ENABLE_D3D9)
- bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
- renderer = new rx::Renderer9(display, hDc, softwareDevice);
-
-@@ -213,6 +219,7 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
- {
- return renderer;
- }
-+#endif // ANGLE_ENABLE_D3D9
-
- return NULL;
- }
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch b/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
deleted file mode 100644
index c7cfafc246..0000000000
--- a/mingw-w64-angleproject-git/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0fede57f6fc052942b910995fdfa4cd76a32f586 Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Tue, 18 Feb 2014 12:11:45 +0200
-Subject: [PATCH] ANGLE: Dynamically load D3D compiler from a list or the
- environment
-
-If the default compiler cannot be found, load it from a list of DLL names,
-including a non-versioned proxy DLL provided by Qt. On Desktop Windows,
-the default compiler can also be specified by an environment variable,
-QT_D3DCOMPILER_DLL.
-
-Change-Id: I0d7a8a8a36cc571836f8fa59ea14513b9b19c19b
----
- .../angle/src/libGLESv2/renderer/Renderer.cpp | 34 ++++++++++++++++++++--
- 1 file changed, 32 insertions(+), 2 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-index e74120d..94cbc0e 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -43,6 +43,10 @@ typedef HRESULT (WINAPI *pD3DCompile)(const void *data, SIZE_T data_size, const
-
- #endif // __MINGW32__
-
-+#ifndef QT_D3DCOMPILER_DLL
-+#define QT_D3DCOMPILER_DLL D3DCOMPILER_DLL
-+#endif
-+
- namespace rx
- {
-
-@@ -77,10 +81,36 @@ bool Renderer::initializeCompiler()
- }
- #endif // ANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES
-
-- if (!mD3dCompilerModule)
-+ // Load the compiler DLL specified by the environment, or default to QT_D3DCOMPILER_DLL
-+#if !defined(ANGLE_OS_WINRT)
-+ const wchar_t *defaultCompiler = _wgetenv(L"QT_D3DCOMPILER_DLL");
-+ if (!defaultCompiler)
-+ defaultCompiler = QT_D3DCOMPILER_DLL;
-+#else // !ANGLE_OS_WINRT
-+# ifdef _DEBUG
-+ const wchar_t *defaultCompiler = L"d3dcompiler_qtd.dll";
-+# else
-+ const wchar_t *defaultCompiler = L"d3dcompiler_qt.dll";
-+# endif
-+#endif // ANGLE_OS_WINRT
-+
-+ const wchar_t *compilerDlls[] = {
-+ defaultCompiler,
-+ L"d3dcompiler_47.dll",
-+ L"d3dcompiler_46.dll",
-+ L"d3dcompiler_45.dll",
-+ L"d3dcompiler_44.dll",
-+ L"d3dcompiler_43.dll",
-+ 0
-+ };
-+
-+ // Load the first available known compiler DLL
-+ for (int i = 0; compilerDlls[i]; ++i)
- {
- // Load the version of the D3DCompiler DLL associated with the Direct3D version ANGLE was built with.
-- mD3dCompilerModule = LoadLibrary(D3DCOMPILER_DLL);
-+ mD3dCompilerModule = LoadLibrary(compilerDlls[i]);
-+ if (mD3dCompilerModule)
-+ break;
- }
-
- if (!mD3dCompilerModule)
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch b/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch
deleted file mode 100644
index d40748ae75..0000000000
--- a/mingw-w64-angleproject-git/0009-ANGLE-Support-WinRT.patch
+++ /dev/null
@@ -1,1181 +0,0 @@
-From 46b8b123ada1787c68525cd07dcdbfdbc003bcc5 Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Thu, 20 Feb 2014 16:49:13 +0200
-Subject: [PATCH] ANGLE: Support WinRT
-
-This enables EGL for WinRT's native types, and adjusts some codepaths
-to accommodate differences between desktop Windows and WinRT.
-
-- WinRT native handles added to eglplatform.h
-- References to native handles in libEGL/libGLESv2 follow eglplatform.h
-- D3D 11.1 structures and methods used when necessary
-- TLS replaced with thread attribute
-- LocalAlloc/Free replaced with Heap API
-
-Change-Id: Ia90377e700d335a1c569c2145008dd4b0dfd84d3
-Reviewed-by: Friedemann Kleint
----
- src/3rdparty/angle/include/EGL/eglplatform.h | 10 ++-
- .../angle/src/compiler/translator/osinclude.h | 20 +++---
- .../src/compiler/translator/ossource_posix.cpp | 8 +++
- .../angle/src/compiler/translator/ossource_win.cpp | 8 +++
- .../src/compiler/translator/ossource_winrt.cpp | 75 ++++++++++++++++++++++
- src/3rdparty/angle/src/libEGL/Display.cpp | 11 ++--
- src/3rdparty/angle/src/libEGL/Display.h | 7 +-
- src/3rdparty/angle/src/libEGL/Surface.cpp | 42 +++++++++++-
- src/3rdparty/angle/src/libEGL/Surface.h | 6 +-
- src/3rdparty/angle/src/libEGL/libEGL.cpp | 4 +-
- src/3rdparty/angle/src/libEGL/main.cpp | 29 ++++++++-
- src/3rdparty/angle/src/libGLESv2/Context.cpp | 1 +
- src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp | 1 +
- src/3rdparty/angle/src/libGLESv2/main.cpp | 27 ++++++++
- src/3rdparty/angle/src/libGLESv2/main.h | 2 +-
- src/3rdparty/angle/src/libGLESv2/precompiled.h | 45 ++++++++++++-
- .../angle/src/libGLESv2/renderer/Renderer.cpp | 15 +++--
- .../angle/src/libGLESv2/renderer/Renderer.h | 3 +-
- .../angle/src/libGLESv2/renderer/SwapChain.h | 5 +-
- .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 13 +++-
- .../src/libGLESv2/renderer/d3d11/Renderer11.h | 5 +-
- .../src/libGLESv2/renderer/d3d11/SwapChain11.cpp | 37 +++++++++--
- .../src/libGLESv2/renderer/d3d11/SwapChain11.h | 2 +-
- .../libGLESv2/renderer/d3d11/shaders/Clear11.hlsl | 4 ++
- src/3rdparty/angle/src/libGLESv2/utilities.cpp | 48 ++++++++++++++
- 25 files changed, 378 insertions(+), 50 deletions(-)
- create mode 100644 src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp
-
-diff --git a/src/3rdparty/angle/include/EGL/eglplatform.h b/src/3rdparty/angle/include/EGL/eglplatform.h
-index 34283f2..eb15ae5 100644
---- a/src/3rdparty/angle/include/EGL/eglplatform.h
-+++ b/src/3rdparty/angle/include/EGL/eglplatform.h
-@@ -67,7 +67,15 @@
- * implementations.
- */
-
--#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
-+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP) /* Windows Runtime */
-+
-+struct IUnknown;
-+
-+typedef int EGLNativeDisplayType;
-+typedef void *EGLNativePixmapType;
-+typedef IUnknown *EGLNativeWindowType;
-+
-+#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
- #ifndef WIN32_LEAN_AND_MEAN
- #define WIN32_LEAN_AND_MEAN 1
- #endif
-diff --git a/src/3rdparty/angle/src/compiler/translator/osinclude.h b/src/3rdparty/angle/src/compiler/translator/osinclude.h
-index c3063d6..cccfa63 100644
---- a/src/3rdparty/angle/src/compiler/translator/osinclude.h
-+++ b/src/3rdparty/angle/src/compiler/translator/osinclude.h
-@@ -13,7 +13,11 @@
- //
-
- #if defined(_WIN32) || defined(_WIN64)
-+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
-+#define ANGLE_OS_WINRT
-+#else
- #define ANGLE_OS_WIN
-+#endif
- #elif defined(__APPLE__) || defined(__linux__) || \
- defined(__FreeBSD__) || defined(__OpenBSD__) || \
- defined(__NetBSD__) || defined(__DragonFly__) || \
-@@ -25,7 +29,7 @@
- #error Unsupported platform.
- #endif
-
--#if defined(ANGLE_OS_WIN)
-+#if defined(ANGLE_OS_WIN) || defined(ANGLE_OS_WINRT)
- #define STRICT
- #define VC_EXTRALEAN 1
- #include
-@@ -44,23 +48,17 @@
- #if defined(ANGLE_OS_WIN)
- typedef DWORD OS_TLSIndex;
- #define OS_INVALID_TLS_INDEX (TLS_OUT_OF_INDEXES)
-+#elif defined(ANGLE_OS_WINRT)
-+typedef size_t OS_TLSIndex;
-+#define OS_INVALID_TLS_INDEX ((DWORD)0xFFFFFF)
- #elif defined(ANGLE_OS_POSIX)
- typedef pthread_key_t OS_TLSIndex;
- #define OS_INVALID_TLS_INDEX (static_cast(-1))
- #endif // ANGLE_OS_WIN
-
- OS_TLSIndex OS_AllocTLSIndex();
-+void *OS_GetTLSValue(OS_TLSIndex nIndex);
- bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue);
- bool OS_FreeTLSIndex(OS_TLSIndex nIndex);
-
--inline void* OS_GetTLSValue(OS_TLSIndex nIndex)
--{
-- ASSERT(nIndex != OS_INVALID_TLS_INDEX);
--#if defined(ANGLE_OS_WIN)
-- return TlsGetValue(nIndex);
--#elif defined(ANGLE_OS_POSIX)
-- return pthread_getspecific(nIndex);
--#endif // ANGLE_OS_WIN
--}
--
- #endif // __OSINCLUDE_H
-diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp
-index 90a3757..d4bba4c 100644
---- a/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp
-+++ b/src/3rdparty/angle/src/compiler/translator/ossource_posix.cpp
-@@ -33,6 +33,14 @@ OS_TLSIndex OS_AllocTLSIndex()
- }
-
-
-+void *OS_GetTLSValue(OS_TLSIndex nIndex)
-+{
-+ ASSERT(nIndex != OS_INVALID_TLS_INDEX);
-+
-+ return pthread_getspecific(nIndex);
-+}
-+
-+
- bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
- {
- if (nIndex == OS_INVALID_TLS_INDEX) {
-diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp
-index 2cc5871..abd8bc7 100644
---- a/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp
-+++ b/src/3rdparty/angle/src/compiler/translator/ossource_win.cpp
-@@ -29,6 +29,14 @@ OS_TLSIndex OS_AllocTLSIndex()
- }
-
-
-+void *OS_GetTLSValue(OS_TLSIndex nIndex)
-+{
-+ ASSERT(nIndex != OS_INVALID_TLS_INDEX);
-+
-+ return TlsGetValue(nIndex);
-+}
-+
-+
- bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
- {
- if (nIndex == OS_INVALID_TLS_INDEX) {
-diff --git a/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp b/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp
-new file mode 100644
-index 0000000..bb061ca
---- /dev/null
-+++ b/src/3rdparty/angle/src/compiler/translator/ossource_winrt.cpp
-@@ -0,0 +1,75 @@
-+//
-+// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+//
-+
-+#include "compiler/translator/osinclude.h"
-+//
-+// This file contains contains Windows Runtime specific functions
-+//
-+
-+#if !defined(ANGLE_OS_WINRT)
-+#error Trying to build a WinRT specific file in a non-WinRT build.
-+#endif
-+
-+#include
-+
-+
-+//
-+// Thread Local Storage Operations
-+//
-+__declspec(thread) std::vector *tls = nullptr;
-+__declspec(thread) std::vector *freeIndices = nullptr;
-+
-+OS_TLSIndex OS_AllocTLSIndex()
-+{
-+ if (!tls)
-+ tls = new std::vector;
-+
-+ if (freeIndices && !freeIndices->empty()) {
-+ OS_TLSIndex index = freeIndices->back();
-+ freeIndices->pop_back();
-+ return index;
-+ } else {
-+ tls->push_back(nullptr);
-+ return tls->size() - 1;
-+ }
-+}
-+
-+
-+void *OS_GetTLSValue(OS_TLSIndex nIndex)
-+{
-+ ASSERT(nIndex != OS_INVALID_TLS_INDEX);
-+ ASSERT(tls);
-+
-+ return tls->at(nIndex);
-+}
-+
-+
-+bool OS_SetTLSValue(OS_TLSIndex nIndex, void *lpvValue)
-+{
-+ if (!tls || nIndex >= tls->size() || nIndex == OS_INVALID_TLS_INDEX) {
-+ ASSERT(0 && "OS_SetTLSValue(): Invalid TLS Index");
-+ return false;
-+ }
-+
-+ tls->at(nIndex) = lpvValue;
-+ return true;
-+}
-+
-+
-+bool OS_FreeTLSIndex(OS_TLSIndex nIndex)
-+{
-+ if (!tls || nIndex >= tls->size() || nIndex == OS_INVALID_TLS_INDEX) {
-+ ASSERT(0 && "OS_SetTLSValue(): Invalid TLS Index");
-+ return false;
-+ }
-+
-+ if (!freeIndices)
-+ freeIndices = new std::vector;
-+
-+ freeIndices->push_back(nIndex);
-+
-+ return true;
-+}
-diff --git a/src/3rdparty/angle/src/libEGL/Display.cpp b/src/3rdparty/angle/src/libEGL/Display.cpp
-index a7f5f5a..e75a4b6 100644
---- a/src/3rdparty/angle/src/libEGL/Display.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Display.cpp
-@@ -1,3 +1,4 @@
-+#include "../libGLESv2/precompiled.h"
- //
- // Copyright (c) 2002-2013 The ANGLE Project Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
-@@ -40,13 +41,13 @@ egl::Display *Display::getDisplay(EGLNativeDisplayType displayId)
-
- // FIXME: Check if displayId is a valid display device context
-
-- egl::Display *display = new egl::Display(displayId, (HDC)displayId);
-+ egl::Display *display = new egl::Display(displayId);
-
- displays[displayId] = display;
- return display;
- }
-
--Display::Display(EGLNativeDisplayType displayId, HDC deviceContext) : mDc(deviceContext)
-+Display::Display(EGLNativeDisplayType displayId)
- {
- mDisplayId = displayId;
- mRenderer = NULL;
-@@ -71,7 +72,7 @@ bool Display::initialize()
- return true;
- }
-
-- mRenderer = glCreateRenderer(this, mDc, mDisplayId);
-+ mRenderer = glCreateRenderer(this, mDisplayId);
-
- if (!mRenderer)
- {
-@@ -186,7 +187,7 @@ bool Display::getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value)
-
-
-
--EGLSurface Display::createWindowSurface(HWND window, EGLConfig config, const EGLint *attribList)
-+EGLSurface Display::createWindowSurface(EGLNativeWindowType window, EGLConfig config, const EGLint *attribList)
- {
- const Config *configuration = mConfigSet.get(config);
- EGLint postSubBufferSupported = EGL_FALSE;
-@@ -456,7 +457,7 @@ bool Display::isValidSurface(egl::Surface *surface)
- return mSurfaceSet.find(surface) != mSurfaceSet.end();
- }
-
--bool Display::hasExistingWindowSurface(HWND window)
-+bool Display::hasExistingWindowSurface(EGLNativeWindowType window)
- {
- for (SurfaceSet::iterator surface = mSurfaceSet.begin(); surface != mSurfaceSet.end(); surface++)
- {
-diff --git a/src/3rdparty/angle/src/libEGL/Display.h b/src/3rdparty/angle/src/libEGL/Display.h
-index c816e4e..cd07bb3 100644
---- a/src/3rdparty/angle/src/libEGL/Display.h
-+++ b/src/3rdparty/angle/src/libEGL/Display.h
-@@ -38,7 +38,7 @@ class Display
- bool getConfigs(EGLConfig *configs, const EGLint *attribList, EGLint configSize, EGLint *numConfig);
- bool getConfigAttrib(EGLConfig config, EGLint attribute, EGLint *value);
-
-- EGLSurface createWindowSurface(HWND window, EGLConfig config, const EGLint *attribList);
-+ EGLSurface createWindowSurface(EGLNativeWindowType window, EGLConfig config, const EGLint *attribList);
- EGLSurface createOffscreenSurface(EGLConfig config, HANDLE shareHandle, const EGLint *attribList);
- EGLContext createContext(EGLConfig configHandle, const gl::Context *shareContext, bool notifyResets, bool robustAccess);
-
-@@ -49,7 +49,7 @@ class Display
- bool isValidConfig(EGLConfig config);
- bool isValidContext(gl::Context *context);
- bool isValidSurface(egl::Surface *surface);
-- bool hasExistingWindowSurface(HWND window);
-+ bool hasExistingWindowSurface(EGLNativeWindowType window);
-
- rx::Renderer *getRenderer() { return mRenderer; };
-
-@@ -63,12 +63,11 @@ class Display
- private:
- DISALLOW_COPY_AND_ASSIGN(Display);
-
-- Display(EGLNativeDisplayType displayId, HDC deviceContext);
-+ Display(EGLNativeDisplayType displayId);
-
- bool restoreLostDevice();
-
- EGLNativeDisplayType mDisplayId;
-- const HDC mDc;
-
- bool mSoftwareDevice;
-
-diff --git a/src/3rdparty/angle/src/libEGL/Surface.cpp b/src/3rdparty/angle/src/libEGL/Surface.cpp
-index 12f8dfd..3443355 100644
---- a/src/3rdparty/angle/src/libEGL/Surface.cpp
-+++ b/src/3rdparty/angle/src/libEGL/Surface.cpp
-@@ -1,3 +1,4 @@
-+#include "../libGLESv2/precompiled.h"
- //
- // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
-@@ -22,10 +23,15 @@
- #include "libEGL/main.h"
- #include "libEGL/Display.h"
-
-+#if defined(ANGLE_OS_WINRT)
-+#include
-+#include
-+#endif
-+
- namespace egl
- {
-
--Surface::Surface(Display *display, const Config *config, HWND window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported)
-+Surface::Surface(Display *display, const Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported)
- : mDisplay(display), mConfig(config), mWindow(window), mPostSubBufferSupported(postSubBufferSupported)
- {
- mRenderer = mDisplay->getRenderer();
-@@ -98,6 +104,7 @@ bool Surface::resetSwapChain()
-
- if (mWindow)
- {
-+#if !defined(ANGLE_OS_WINRT)
- RECT windowRect;
- if (!GetClientRect(getWindowHandle(), &windowRect))
- {
-@@ -109,6 +116,16 @@ bool Surface::resetSwapChain()
-
- width = windowRect.right - windowRect.left;
- height = windowRect.bottom - windowRect.top;
-+#else
-+ ABI::Windows::Foundation::Rect windowRect;
-+ ABI::Windows::UI::Core::ICoreWindow *window;
-+ HRESULT hr = mWindow->QueryInterface(IID_PPV_ARGS(&window));
-+ if (FAILED(hr))
-+ return false;
-+ window->get_Bounds(&windowRect);
-+ width = windowRect.Width;
-+ height = windowRect.Height;
-+#endif
- }
- else
- {
-@@ -221,7 +238,7 @@ bool Surface::swapRect(EGLint x, EGLint y, EGLint width, EGLint height)
- return true;
- }
-
--HWND Surface::getWindowHandle()
-+EGLNativeWindowType Surface::getWindowHandle()
- {
- return mWindow;
- }
-@@ -230,6 +247,7 @@ HWND Surface::getWindowHandle()
- #define kSurfaceProperty _TEXT("Egl::SurfaceOwner")
- #define kParentWndProc _TEXT("Egl::SurfaceParentWndProc")
-
-+#if !defined(ANGLE_OS_WINRT)
- static LRESULT CALLBACK SurfaceWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
- {
- if (message == WM_SIZE)
-@@ -243,9 +261,13 @@ static LRESULT CALLBACK SurfaceWindowProc(HWND hwnd, UINT message, WPARAM wparam
- WNDPROC prevWndFunc = reinterpret_cast(GetProp(hwnd, kParentWndProc));
- return CallWindowProc(prevWndFunc, hwnd, message, wparam, lparam);
- }
-+#endif
-
- void Surface::subclassWindow()
- {
-+#if defined(ANGLE_OS_WINRT)
-+ mWindowSubclassed = false;
-+#else
- if (!mWindow)
- {
- return;
-@@ -269,10 +291,12 @@ void Surface::subclassWindow()
- SetProp(mWindow, kSurfaceProperty, reinterpret_cast(this));
- SetProp(mWindow, kParentWndProc, reinterpret_cast(oldWndProc));
- mWindowSubclassed = true;
-+#endif
- }
-
- void Surface::unsubclassWindow()
- {
-+#if !defined(ANGLE_OS_WINRT)
- if(!mWindowSubclassed)
- {
- return;
-@@ -295,10 +319,12 @@ void Surface::unsubclassWindow()
- RemoveProp(mWindow, kSurfaceProperty);
- RemoveProp(mWindow, kParentWndProc);
- mWindowSubclassed = false;
-+#endif
- }
-
- bool Surface::checkForOutOfDateSwapChain()
- {
-+#if !defined(ANGLE_OS_WINRT)
- RECT client;
- if (!GetClientRect(getWindowHandle(), &client))
- {
-@@ -309,6 +335,16 @@ bool Surface::checkForOutOfDateSwapChain()
- // Grow the buffer now, if the window has grown. We need to grow now to avoid losing information.
- clientWidth = client.right - client.left;
- clientHeight = client.bottom - client.top;
-+#else
-+ ABI::Windows::Foundation::Rect windowRect;
-+ ABI::Windows::UI::Core::ICoreWindow *window;
-+ HRESULT hr = mWindow->QueryInterface(IID_PPV_ARGS(&window));
-+ if (FAILED(hr))
-+ return false;
-+ window->get_Bounds(&windowRect);
-+ int clientWidth = windowRect.Width;
-+ int clientHeight = windowRect.Height;
-+#endif
- sizeDirty = clientWidth != getWidth() || clientHeight != getHeight();
- }
-
-diff --git a/src/3rdparty/angle/src/libEGL/Surface.h b/src/3rdparty/angle/src/libEGL/Surface.h
-index 938b800..1d2303c 100644
---- a/src/3rdparty/angle/src/libEGL/Surface.h
-+++ b/src/3rdparty/angle/src/libEGL/Surface.h
-@@ -34,7 +34,7 @@ class Config;
- class Surface
- {
- public:
-- Surface(Display *display, const egl::Config *config, HWND window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported);
-+ Surface(Display *display, const egl::Config *config, EGLNativeWindowType window, EGLint fixedSize, EGLint width, EGLint height, EGLint postSubBufferSupported);
- Surface(Display *display, const egl::Config *config, HANDLE shareHandle, EGLint width, EGLint height, EGLenum textureFormat, EGLenum textureTarget);
-
- ~Surface();
-@@ -43,7 +43,7 @@ class Surface
- void release();
- bool resetSwapChain();
-
-- HWND getWindowHandle();
-+ EGLNativeWindowType getWindowHandle();
- bool swap();
- bool postSubBuffer(EGLint x, EGLint y, EGLint width, EGLint height);
-
-@@ -79,7 +79,7 @@ private:
- bool resetSwapChain(int backbufferWidth, int backbufferHeight);
- bool swapRect(EGLint x, EGLint y, EGLint width, EGLint height);
-
-- const HWND mWindow; // Window that the surface is created for.
-+ const EGLNativeWindowType mWindow; // Window that the surface is created for.
- bool mWindowSubclassed; // Indicates whether we successfully subclassed mWindow for WM_RESIZE hooking
- const egl::Config *mConfig; // EGL config surface was created with
- EGLint mHeight; // Height of surface
-diff --git a/src/3rdparty/angle/src/libEGL/libEGL.cpp b/src/3rdparty/angle/src/libEGL/libEGL.cpp
-index 0ea46d4..b2944d5 100644
---- a/src/3rdparty/angle/src/libEGL/libEGL.cpp
-+++ b/src/3rdparty/angle/src/libEGL/libEGL.cpp
-@@ -308,14 +308,16 @@ EGLSurface __stdcall eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EG
- return EGL_NO_SURFACE;
- }
-
-+#if !defined(ANGLE_OS_WINRT)
- HWND window = (HWND)win;
-
- if (!IsWindow(window))
- {
- return egl::error(EGL_BAD_NATIVE_WINDOW, EGL_NO_SURFACE);
- }
-+#endif
-
-- return display->createWindowSurface(window, config, attrib_list);
-+ return display->createWindowSurface(win, config, attrib_list);
- }
- catch(std::bad_alloc&)
- {
-diff --git a/src/3rdparty/angle/src/libEGL/main.cpp b/src/3rdparty/angle/src/libEGL/main.cpp
-index 772b8eb..e972691 100644
---- a/src/3rdparty/angle/src/libEGL/main.cpp
-+++ b/src/3rdparty/angle/src/libEGL/main.cpp
-@@ -1,3 +1,4 @@
-+#include "../libGLESv2/precompiled.h"
- //
- // Copyright (c) 2002-2012 The ANGLE Project Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
-@@ -10,14 +11,23 @@
-
- #include "common/debug.h"
-
-+#if !defined(ANGLE_OS_WINRT)
- static DWORD currentTLS = TLS_OUT_OF_INDEXES;
-+#else
-+static __declspec(thread) void *currentTLS = 0;
-+#endif
-
- namespace egl
- {
-
- Current *AllocateCurrent()
- {
-+#if !defined(ANGLE_OS_WINRT)
- Current *current = (egl::Current*)LocalAlloc(LPTR, sizeof(egl::Current));
-+#else
-+ currentTLS = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(Current));
-+ Current *current = (egl::Current*)currentTLS;
-+#endif
-
- if (!current)
- {
-@@ -25,8 +35,10 @@ Current *AllocateCurrent()
- return NULL;
- }
-
-+#if !defined(ANGLE_OS_WINRT)
- ASSERT(currentTLS != TLS_OUT_OF_INDEXES);
- TlsSetValue(currentTLS, current);
-+#endif
-
- current->error = EGL_SUCCESS;
- current->API = EGL_OPENGL_ES_API;
-@@ -39,12 +51,20 @@ Current *AllocateCurrent()
-
- void DeallocateCurrent()
- {
-+#if !defined(ANGLE_OS_WINRT)
- void *current = TlsGetValue(currentTLS);
-
- if (current)
- {
- LocalFree((HLOCAL)current);
- }
-+#else
-+ if (currentTLS)
-+ {
-+ HeapFree(GetProcessHeap(), 0, currentTLS);
-+ currentTLS = 0;
-+ }
-+#endif
- }
-
- }
-@@ -69,13 +89,14 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved
- }
- }
- #endif
--
-+#if !defined(ANGLE_OS_WINRT)
- currentTLS = TlsAlloc();
-
- if (currentTLS == TLS_OUT_OF_INDEXES)
- {
- return FALSE;
- }
-+#endif
- }
- // Fall throught to initialize index
- case DLL_THREAD_ATTACH:
-@@ -91,7 +112,9 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved
- case DLL_PROCESS_DETACH:
- {
- egl::DeallocateCurrent();
-+#if !defined(ANGLE_OS_WINRT)
- TlsFree(currentTLS);
-+#endif
- }
- break;
- default:
-@@ -107,7 +130,11 @@ namespace egl
-
- Current *GetCurrentData()
- {
-+#if !defined(ANGLE_OS_WINRT)
- Current *current = (Current*)TlsGetValue(currentTLS);
-+#else
-+ Current *current = (Current*)currentTLS;
-+#endif
-
- // ANGLE issue 488: when the dll is loaded after thread initialization,
- // thread local storage (current) might not exist yet.
-diff --git a/src/3rdparty/angle/src/libGLESv2/Context.cpp b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-index 1a058b6..e651785 100644
---- a/src/3rdparty/angle/src/libGLESv2/Context.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/Context.cpp
-@@ -1076,6 +1076,7 @@ void Context::setRenderbufferStorage(GLsizei width, GLsizei height, GLenum inter
- case GL_RGB565:
- case GL_RGB8_OES:
- case GL_RGBA8_OES:
-+ case GL_BGRA8_EXT:
- renderbuffer = new gl::Colorbuffer(mRenderer,width, height, internalformat, samples);
- break;
- case GL_STENCIL_INDEX8:
-diff --git a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp
-index a33481e..814dfbf 100644
---- a/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/libGLESv2.cpp
-@@ -4895,6 +4895,7 @@ void __stdcall glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samp
- case GL_RGBA8_OES:
- case GL_STENCIL_INDEX8:
- case GL_DEPTH24_STENCIL8_OES:
-+ case GL_BGRA8_EXT:
- context->setRenderbufferStorage(width, height, internalformat, samples);
- break;
- default:
-diff --git a/src/3rdparty/angle/src/libGLESv2/main.cpp b/src/3rdparty/angle/src/libGLESv2/main.cpp
-index 6b459d3..95f4b8d 100644
---- a/src/3rdparty/angle/src/libGLESv2/main.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/main.cpp
-@@ -11,14 +11,23 @@
-
- #include "libGLESv2/Context.h"
-
-+#if !defined(ANGLE_OS_WINRT)
- static DWORD currentTLS = TLS_OUT_OF_INDEXES;
-+#else
-+static __declspec(thread) void *currentTLS = 0;
-+#endif
-
- namespace gl
- {
-
- Current *AllocateCurrent()
- {
-+#if !defined(ANGLE_OS_WINRT)
- Current *current = (Current*)LocalAlloc(LPTR, sizeof(Current));
-+#else
-+ currentTLS = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(Current));
-+ Current *current = (Current*)currentTLS;
-+#endif
-
- if (!current)
- {
-@@ -26,8 +35,10 @@ Current *AllocateCurrent()
- return NULL;
- }
-
-+#if !defined(ANGLE_OS_WINRT)
- ASSERT(currentTLS != TLS_OUT_OF_INDEXES);
- TlsSetValue(currentTLS, current);
-+#endif
-
- current->context = NULL;
- current->display = NULL;
-@@ -37,12 +48,20 @@ Current *AllocateCurrent()
-
- void DeallocateCurrent()
- {
-+#if !defined(ANGLE_OS_WINRT)
- void *current = TlsGetValue(currentTLS);
-
- if (current)
- {
- LocalFree((HLOCAL)current);
- }
-+#else
-+ if (currentTLS)
-+ {
-+ HeapFree(GetProcessHeap(), 0, currentTLS);
-+ currentTLS = 0;
-+ }
-+#endif
- }
-
- }
-@@ -53,12 +72,14 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved
- {
- case DLL_PROCESS_ATTACH:
- {
-+#if !defined(ANGLE_OS_WINRT)
- currentTLS = TlsAlloc();
-
- if (currentTLS == TLS_OUT_OF_INDEXES)
- {
- return FALSE;
- }
-+#endif
- }
- // Fall throught to initialize index
- case DLL_THREAD_ATTACH:
-@@ -74,7 +95,9 @@ extern "C" BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved
- case DLL_PROCESS_DETACH:
- {
- gl::DeallocateCurrent();
-+#if !defined(ANGLE_OS_WINRT)
- TlsFree(currentTLS);
-+#endif
- }
- break;
- default:
-@@ -90,7 +113,11 @@ namespace gl
-
- Current *GetCurrentData()
- {
-+#if !defined(ANGLE_OS_WINRT)
- Current *current = (Current*)TlsGetValue(currentTLS);
-+#else
-+ Current *current = (Current*)currentTLS;
-+#endif
-
- // ANGLE issue 488: when the dll is loaded after thread initialization,
- // thread local storage (current) might not exist yet.
-diff --git a/src/3rdparty/angle/src/libGLESv2/main.h b/src/3rdparty/angle/src/libGLESv2/main.h
-index b413f23..69465c9 100644
---- a/src/3rdparty/angle/src/libGLESv2/main.h
-+++ b/src/3rdparty/angle/src/libGLESv2/main.h
-@@ -57,7 +57,7 @@ gl::Context *glCreateContext(const gl::Context *shareContext, rx::Renderer *rend
- void glDestroyContext(gl::Context *context);
- void glMakeCurrent(gl::Context *context, egl::Display *display, egl::Surface *surface);
- gl::Context *glGetCurrentContext();
--rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId);
-+rx::Renderer *glCreateRenderer(egl::Display *display, EGLNativeDisplayType displayId);
- void glDestroyRenderer(rx::Renderer *renderer);
-
- __eglMustCastToProperFunctionPointerType __stdcall glGetProcAddress(const char *procname);
-diff --git a/src/3rdparty/angle/src/libGLESv2/precompiled.h b/src/3rdparty/angle/src/libGLESv2/precompiled.h
-index 79490b1..2ff09f5 100644
---- a/src/3rdparty/angle/src/libGLESv2/precompiled.h
-+++ b/src/3rdparty/angle/src/libGLESv2/precompiled.h
-@@ -32,15 +32,56 @@
- #include
- #include
-
-+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY==WINAPI_FAMILY_APP || WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP)
-+# define ANGLE_OS_WINRT
-+# if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP
-+# define ANGLE_OS_WINPHONE
-+# endif
-+#endif
-+
- #if defined(ANGLE_ENABLE_D3D9)
- # include
- #endif
- #if defined(ANGLE_ENABLE_D3D11)
--# include
-+# if !defined(ANGLE_OS_WINRT)
-+# include
-+# else
-+# include
-+# define Sleep(x) WaitForSingleObjectEx(GetCurrentThread(), x, FALSE)
-+# define GetVersion() WINVER
-+# define LoadLibrary(x) LoadPackagedLibrary(x, NULL)
-+# endif
- # include
- # include
- #endif
--#include
-+#if !defined(ANGLE_OS_WINPHONE)
-+# include
-+#endif
-+
-+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL0
-+#define D3DCOMPILE_OPTIMIZATION_LEVEL0 (1 << 14)
-+#endif
-+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL1
-+#define D3DCOMPILE_OPTIMIZATION_LEVEL1 0
-+#endif
-+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL2
-+#define D3DCOMPILE_OPTIMIZATION_LEVEL2 ((1 << 14) | (1 << 15))
-+#endif
-+#ifndef D3DCOMPILE_OPTIMIZATION_LEVEL3
-+#define D3DCOMPILE_OPTIMIZATION_LEVEL3 (1 << 15)
-+#endif
-+#ifndef D3DCOMPILE_DEBUG
-+#define D3DCOMPILE_DEBUG (1 << 0)
-+#endif
-+#ifndef D3DCOMPILE_SKIP_OPTIMIZATION
-+#define D3DCOMPILE_SKIP_OPTIMIZATION (1 << 2)
-+#endif
-+#ifndef D3DCOMPILE_AVOID_FLOW_CONTROL
-+#define D3DCOMPILE_AVOID_FLOW_CONTROL (1 << 9)
-+#endif
-+#ifndef D3DCOMPILE_PREFER_FLOW_CONTROL
-+#define D3DCOMPILE_PREFER_FLOW_CONTROL (1 << 10)
-+#endif
-
- #ifdef _MSC_VER
- #include
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-index 94cbc0e..5278113 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.cpp
-@@ -224,17 +224,22 @@ ShaderBlob *Renderer::compileToBinary(gl::InfoLog &infoLog, const char *hlsl, co
- extern "C"
- {
-
--rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayType displayId)
-+rx::Renderer *glCreateRenderer(egl::Display *display, EGLNativeDisplayType displayId)
- {
- rx::Renderer *renderer = NULL;
- EGLint status = EGL_BAD_ALLOC;
-
-+#if defined(ANGLE_OS_WINRT)
-+ if (displayId == EGL_DEFAULT_DISPLAY)
-+ displayId = EGL_D3D11_ONLY_DISPLAY_ANGLE;
-+#endif
-+
- #if defined(ANGLE_ENABLE_D3D11)
- if (displayId == EGL_DEFAULT_DISPLAY ||
- displayId == EGL_D3D11_ELSE_D3D9_DISPLAY_ANGLE ||
- displayId == EGL_D3D11_ONLY_DISPLAY_ANGLE)
- {
-- renderer = new rx::Renderer11(display, hDc);
-+ renderer = new rx::Renderer11(display);
-
- if (renderer)
- {
-@@ -257,7 +262,7 @@ rx::Renderer *glCreateRenderer(egl::Display *display, HDC hDc, EGLNativeDisplayT
-
- #if defined(ANGLE_ENABLE_D3D9)
- bool softwareDevice = (displayId == EGL_SOFTWARE_DISPLAY_ANGLE);
-- renderer = new rx::Renderer9(display, hDc, softwareDevice);
-+ renderer = new rx::Renderer9(display, displayId, softwareDevice);
-
- if (renderer)
- {
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h
-index 7244a0a..79578b2 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/Renderer.h
-@@ -1,3 +1,4 @@
-+#include "../precompiled.h"
- //
- // Copyright (c) 2012-2013 The ANGLE Project Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
-@@ -113,7 +114,7 @@ class Renderer
-
- virtual void sync(bool block) = 0;
-
-- virtual SwapChain *createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) = 0;
-+ virtual SwapChain *createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat) = 0;
-
- virtual void setSamplerState(gl::SamplerType type, int index, const gl::SamplerState &sampler) = 0;
- virtual void setTexture(gl::SamplerType type, int index, gl::Texture *texture) = 0;
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h
-index f09f19b..8231fbc 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/SwapChain.h
-@@ -1,3 +1,4 @@
-+#include "../precompiled.h"
- //
- // Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
-@@ -22,7 +23,7 @@ namespace rx
- class SwapChain
- {
- public:
-- SwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
-+ SwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
- : mWindow(window), mShareHandle(shareHandle), mBackBufferFormat(backBufferFormat), mDepthBufferFormat(depthBufferFormat)
- {
- }
-@@ -37,7 +38,7 @@ class SwapChain
- virtual HANDLE getShareHandle() {return mShareHandle;};
-
- protected:
-- const HWND mWindow; // Window that the surface is created for.
-+ const EGLNativeWindowType mWindow; // Window that the surface is created for.
- const GLenum mBackBufferFormat;
- const GLenum mDepthBufferFormat;
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-index d9fcb7a..7f166fd 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-@@ -66,7 +66,7 @@ enum
- MAX_TEXTURE_IMAGE_UNITS_VTF_SM4 = 16
- };
-
--Renderer11::Renderer11(egl::Display *display, HDC hDc) : Renderer(display), mDc(hDc)
-+Renderer11::Renderer11(egl::Display *display) : Renderer(display)
- {
- mVertexDataManager = NULL;
- mIndexDataManager = NULL;
-@@ -137,6 +137,7 @@ EGLint Renderer11::initialize()
- return EGL_NOT_INITIALIZED;
- }
-
-+#if !defined(ANGLE_OS_WINRT)
- mDxgiModule = LoadLibrary(TEXT("dxgi.dll"));
- mD3d11Module = LoadLibrary(TEXT("d3d11.dll"));
-
-@@ -146,6 +147,7 @@ EGLint Renderer11::initialize()
- return EGL_NOT_INITIALIZED;
- }
-
-+
- // create the D3D11 device
- ASSERT(mDevice == NULL);
- PFN_D3D11_CREATE_DEVICE D3D11CreateDevice = (PFN_D3D11_CREATE_DEVICE)GetProcAddress(mD3d11Module, "D3D11CreateDevice");
-@@ -155,6 +157,7 @@ EGLint Renderer11::initialize()
- ERR("Could not retrieve D3D11CreateDevice address - aborting!\n");
- return EGL_NOT_INITIALIZED;
- }
-+#endif
-
- D3D_FEATURE_LEVEL featureLevels[] =
- {
-@@ -203,8 +206,12 @@ EGLint Renderer11::initialize()
- }
- }
-
-+#if !defined(ANGLE_OS_WINRT)
- IDXGIDevice *dxgiDevice = NULL;
-- result = mDevice->QueryInterface(__uuidof(IDXGIDevice), (void**)&dxgiDevice);
-+#else
-+ IDXGIDevice1 *dxgiDevice = NULL;
-+#endif
-+ result = mDevice->QueryInterface(IID_PPV_ARGS(&dxgiDevice));
-
- if (FAILED(result))
- {
-@@ -522,7 +529,7 @@ void Renderer11::sync(bool block)
- }
- }
-
--SwapChain *Renderer11::createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
-+SwapChain *Renderer11::createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat)
- {
- return new rx::SwapChain11(this, window, shareHandle, backBufferFormat, depthBufferFormat);
- }
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-index 1b6760b..ba3f0c6 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-@@ -39,7 +39,7 @@ enum
- class Renderer11 : public Renderer
- {
- public:
-- Renderer11(egl::Display *display, HDC hDc);
-+ Renderer11(egl::Display *display);
- virtual ~Renderer11();
-
- static Renderer11 *makeRenderer11(Renderer *renderer);
-@@ -52,7 +52,7 @@ class Renderer11 : public Renderer
-
- virtual void sync(bool block);
-
-- virtual SwapChain *createSwapChain(HWND window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat);
-+ virtual SwapChain *createSwapChain(EGLNativeWindowType window, HANDLE shareHandle, GLenum backBufferFormat, GLenum depthBufferFormat);
-
- virtual void setSamplerState(gl::SamplerType type, int index, const gl::SamplerState &sampler);
- virtual void setTexture(gl::SamplerType type, int index, gl::Texture *texture);
-@@ -203,7 +203,6 @@ class Renderer11 : public Renderer
-
- HMODULE mD3d11Module;
- HMODULE mDxgiModule;
-- HDC mDc;
-
- bool mDeviceLost;
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp
-index d2b53a7..bd97d5c 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.cpp
-@@ -18,7 +18,7 @@
- namespace rx
- {
-
--SwapChain11::SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle,
-+SwapChain11::SwapChain11(Renderer11 *renderer, EGLNativeWindowType window, HANDLE shareHandle,
- GLenum backBufferFormat, GLenum depthBufferFormat)
- : mRenderer(renderer), SwapChain(window, shareHandle, backBufferFormat, depthBufferFormat)
- {
-@@ -361,25 +361,50 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
-
- if (mWindow)
- {
-+#if !defined(ANGLE_OS_WINRT)
- IDXGIFactory *factory = mRenderer->getDxgiFactory();
-
- DXGI_SWAP_CHAIN_DESC swapChainDesc = {0};
-- swapChainDesc.BufferCount = 2;
- swapChainDesc.BufferDesc.Format = gl_d3d11::ConvertRenderbufferFormat(mBackBufferFormat);
- swapChainDesc.BufferDesc.Width = backbufferWidth;
- swapChainDesc.BufferDesc.Height = backbufferHeight;
-+ swapChainDesc.BufferCount = 2;
- swapChainDesc.BufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED;
- swapChainDesc.BufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED;
- swapChainDesc.BufferDesc.RefreshRate.Numerator = 0;
- swapChainDesc.BufferDesc.RefreshRate.Denominator = 1;
-+ swapChainDesc.Windowed = TRUE;
-+ swapChainDesc.OutputWindow = mWindow;
-+#else
-+ IDXGIFactory2 *factory;
-+ HRESULT result = mRenderer->getDxgiFactory()->QueryInterface(IID_PPV_ARGS(&factory));
-+ ASSERT(SUCCEEDED(result));
-+
-+ DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0};
-+ swapChainDesc.Format = gl_d3d11::ConvertRenderbufferFormat(mBackBufferFormat);
-+ swapChainDesc.Width = backbufferWidth;
-+ swapChainDesc.Height = backbufferHeight;
-+ swapChainDesc.Stereo = FALSE;
-+#if !defined(ANGLE_OS_WINPHONE)
-+ swapChainDesc.BufferCount = 2;
-+ swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL;
-+#else
-+ swapChainDesc.BufferCount = 1;
-+ swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-+#endif
-+#endif
- swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- swapChainDesc.Flags = 0;
-- swapChainDesc.OutputWindow = mWindow;
- swapChainDesc.SampleDesc.Count = 1;
- swapChainDesc.SampleDesc.Quality = 0;
-- swapChainDesc.Windowed = TRUE;
-
-+#if !defined(ANGLE_OS_WINRT)
- HRESULT result = factory->CreateSwapChain(device, &swapChainDesc, &mSwapChain);
-+#else
-+ IDXGISwapChain1 *swapChain;
-+ result = factory->CreateSwapChainForCoreWindow(device, mWindow, &swapChainDesc, NULL, &swapChain);
-+ mSwapChain = swapChain;
-+#endif
-
- if (FAILED(result))
- {
-@@ -390,6 +415,7 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
- {
- return EGL_CONTEXT_LOST;
- }
-+#if !defined(ANGLE_OS_WINRT)
- else
- {
- // We cannot create a swap chain for an HWND that is owned by a different process on some versions of
-@@ -408,6 +434,9 @@ EGLint SwapChain11::reset(int backbufferWidth, int backbufferHeight, EGLint swap
- return EGL_BAD_ALLOC;
- }
- }
-+#else
-+ return EGL_BAD_ALLOC;
-+#endif
- }
-
- result = mSwapChain->GetBuffer(0, __uuidof(ID3D11Texture2D), (LPVOID*)&mBackBufferTexture);
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h
-index 8001046..2a030c8 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/SwapChain11.h
-@@ -19,7 +19,7 @@ class Renderer11;
- class SwapChain11 : public SwapChain
- {
- public:
-- SwapChain11(Renderer11 *renderer, HWND window, HANDLE shareHandle,
-+ SwapChain11(Renderer11 *renderer, EGLNativeWindowType window, HANDLE shareHandle,
- GLenum backBufferFormat, GLenum depthBufferFormat);
- virtual ~SwapChain11();
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl
-index 042ac69..cb132dc 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/shaders/Clear11.hlsl
-@@ -12,10 +12,12 @@ struct PS_OutputMultiple
- float4 color1 : SV_TARGET1;
- float4 color2 : SV_TARGET2;
- float4 color3 : SV_TARGET3;
-+#ifdef SM4
- float4 color4 : SV_TARGET4;
- float4 color5 : SV_TARGET5;
- float4 color6 : SV_TARGET6;
- float4 color7 : SV_TARGET7;
-+#endif
- };
-
- PS_OutputMultiple PS_ClearMultiple(in float4 inPosition : SV_POSITION, in float4 inColor : COLOR)
-@@ -25,10 +27,12 @@ PS_OutputMultiple PS_ClearMultiple(in float4 inPosition : SV_POSITION, in float4
- outColor.color1 = inColor;
- outColor.color2 = inColor;
- outColor.color3 = inColor;
-+#ifdef SM4
- outColor.color4 = inColor;
- outColor.color5 = inColor;
- outColor.color6 = inColor;
- outColor.color7 = inColor;
-+#endif
- return outColor;
- }
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/utilities.cpp b/src/3rdparty/angle/src/libGLESv2/utilities.cpp
-index 32df49e..30765ff 100644
---- a/src/3rdparty/angle/src/libGLESv2/utilities.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/utilities.cpp
-@@ -9,6 +9,14 @@
-
- #include "libGLESv2/utilities.h"
- #include "libGLESv2/mathutil.h"
-+#if defined(ANGLE_OS_WINRT)
-+# include
-+# include
-+# include
-+# include
-+ using namespace Microsoft::WRL;
-+ using namespace ABI::Windows::Storage;
-+#endif
-
- namespace gl
- {
-@@ -737,6 +745,7 @@ bool IsTriangleMode(GLenum drawMode)
-
- std::string getTempPath()
- {
-+#if !defined(ANGLE_OS_WINRT)
- char path[MAX_PATH];
- DWORD pathLen = GetTempPathA(sizeof(path) / sizeof(path[0]), path);
- if (pathLen == 0)
-@@ -751,6 +760,45 @@ std::string getTempPath()
- UNREACHABLE();
- return std::string();
- }
-+#else
-+ static std::string path;
-+
-+ while (path.empty()) {
-+ ComPtr factory;
-+ Wrappers::HStringReference classId(RuntimeClass_Windows_Storage_ApplicationData);
-+ HRESULT result = RoGetActivationFactory(classId.Get(), IID_PPV_ARGS(&factory));
-+ if (FAILED(result))
-+ break;
-+
-+ ComPtr applicationData;
-+ result = factory->get_Current(&applicationData);
-+ if (FAILED(result))
-+ break;
-+
-+ ComPtr storageFolder;
-+ result = applicationData->get_LocalFolder(&storageFolder);
-+ if (FAILED(result))
-+ break;
-+
-+ ComPtr localFolder;
-+ result = storageFolder.As(&localFolder);
-+ if (FAILED(result))
-+ break;
-+
-+ HSTRING localFolderPath;
-+ result = localFolder->get_Path(&localFolderPath);
-+ if (FAILED(result))
-+ break;
-+
-+ std::wstring_convert< std::codecvt_utf8 > converter;
-+ path = converter.to_bytes(WindowsGetStringRawBuffer(localFolderPath, NULL));
-+ if (path.empty())
-+ {
-+ UNREACHABLE();
-+ break;
-+ }
-+ }
-+#endif
-
- return path;
- }
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch b/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
deleted file mode 100644
index 34c881ba21..0000000000
--- a/mingw-w64-angleproject-git/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
+++ /dev/null
@@ -1,426 +0,0 @@
-From e84f947df4ae095eae600550749b3a4e8de5ee8b Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Thu, 20 Feb 2014 16:51:36 +0200
-Subject: [PATCH] ANGLE: Enable D3D11 for feature level 9 cards
-
-Enable use of ANGLE on lower-end hardware, such as Surface RT and
-Windows Phone 8.
-
-Based on https://codereview.appspot.com/12917046/
-
-Change-Id: Ice536802e4eedc1d264abd0dd65960638fce59e4
----
- .../angle/src/libGLESv2/renderer/d3d11/Image11.cpp | 7 +-
- .../libGLESv2/renderer/d3d11/RenderStateCache.cpp | 5 +-
- .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 90 ++++++++++++++++++++--
- .../src/libGLESv2/renderer/d3d11/Renderer11.h | 1 +
- .../libGLESv2/renderer/d3d11/TextureStorage11.cpp | 10 +--
- .../libGLESv2/renderer/d3d11/renderer11_utils.cpp | 4 +-
- .../libGLESv2/renderer/d3d11/renderer11_utils.h | 2 +-
- 7 files changed, 100 insertions(+), 19 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
-index 2b07b9d..5d039a3 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Image11.cpp
-@@ -142,7 +142,7 @@ bool Image11::redefine(Renderer *renderer, GLint internalformat, GLsizei width,
- mHeight = height;
- mInternalFormat = internalformat;
- // compute the d3d format that will be used
-- mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat);
-+ mDXGIFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
- mActualFormat = d3d11_gl::ConvertTextureInternalFormat(mDXGIFormat);
-
- if (mStagingTexture)
-@@ -191,7 +191,10 @@ void Image11::loadData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei heig
- switch (mInternalFormat)
- {
- case GL_ALPHA8_EXT:
-- loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
-+ if (mRenderer->getFeatureLevel() >= D3D_FEATURE_LEVEL_10_0)
-+ loadAlphaDataToNative(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
-+ else
-+ loadAlphaDataToBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData);
- break;
- case GL_LUMINANCE8_EXT:
- loadLuminanceDataToNativeOrBGRA(width, height, inputPitch, input, mappedImage.RowPitch, offsetMappedData, false);
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
-index 0047e04..a1c324c 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/RenderStateCache.cpp
-@@ -419,7 +419,8 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa
- samplerDesc.BorderColor[2] = 0.0f;
- samplerDesc.BorderColor[3] = 0.0f;
- samplerDesc.MinLOD = gl_d3d11::ConvertMinLOD(samplerState.minFilter, samplerState.lodOffset);
-- samplerDesc.MaxLOD = gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset);
-+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0
-+ ? gl_d3d11::ConvertMaxLOD(samplerState.minFilter, samplerState.lodOffset) : FLT_MAX;
-
- ID3D11SamplerState *dx11SamplerState = NULL;
- HRESULT result = mDevice->CreateSamplerState(&samplerDesc, &dx11SamplerState);
-@@ -435,4 +436,4 @@ ID3D11SamplerState *RenderStateCache::getSamplerState(const gl::SamplerState &sa
- }
- }
-
--}
-\ No newline at end of file
-+}
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-index 7f166fd..31d976d 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-@@ -164,6 +164,11 @@ EGLint Renderer11::initialize()
- D3D_FEATURE_LEVEL_11_0,
- D3D_FEATURE_LEVEL_10_1,
- D3D_FEATURE_LEVEL_10_0,
-+#if !defined(ANGLE_ENABLE_D3D9)
-+ D3D_FEATURE_LEVEL_9_3,
-+ D3D_FEATURE_LEVEL_9_2,
-+ D3D_FEATURE_LEVEL_9_1,
-+#endif
- };
-
- HRESULT result = S_OK;
-@@ -1533,7 +1538,7 @@ void Renderer11::applyUniforms(gl::ProgramBinary *programBinary, gl::UniformArra
- }
-
- // needed for the point sprite geometry shader
-- if (mCurrentGeometryConstantBuffer != mDriverConstantBufferPS)
-+ if (mFeatureLevel >= D3D_FEATURE_LEVEL_10_0 && mCurrentGeometryConstantBuffer != mDriverConstantBufferPS)
- {
- mDeviceContext->GSSetConstantBuffers(0, 1, &mDriverConstantBufferPS);
- mCurrentGeometryConstantBuffer = mDriverConstantBufferPS;
-@@ -1956,6 +1961,11 @@ bool Renderer11::testDeviceResettable()
- D3D_FEATURE_LEVEL_11_0,
- D3D_FEATURE_LEVEL_10_1,
- D3D_FEATURE_LEVEL_10_0,
-+#if !defined(ANGLE_ENABLE_D3D9)
-+ D3D_FEATURE_LEVEL_9_3,
-+ D3D_FEATURE_LEVEL_9_2,
-+ D3D_FEATURE_LEVEL_9_1,
-+#endif
- };
-
- ID3D11Device* dummyDevice;
-@@ -2139,6 +2149,11 @@ float Renderer11::getTextureMaxAnisotropy() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return D3D10_MAX_MAXANISOTROPY;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ return 16;
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return D3D_FL9_1_DEFAULT_MAX_ANISOTROPY;
- default: UNREACHABLE();
- return 0;
- }
-@@ -2158,6 +2173,11 @@ Range Renderer11::getViewportBounds() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return Range(D3D10_VIEWPORT_BOUNDS_MIN, D3D10_VIEWPORT_BOUNDS_MAX);
-+ case D3D_FEATURE_LEVEL_9_3:
-+ return Range(D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2);
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return Range(D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * -2, D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION * 2);
- default: UNREACHABLE();
- return Range(0, 0);
- }
-@@ -2172,6 +2192,10 @@ unsigned int Renderer11::getMaxVertexTextureImageUnits() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return MAX_TEXTURE_IMAGE_UNITS_VTF_SM4;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return 0;
- default: UNREACHABLE();
- return 0;
- }
-@@ -2195,14 +2219,14 @@ unsigned int Renderer11::getReservedFragmentUniformVectors() const
- unsigned int Renderer11::getMaxVertexUniformVectors() const
- {
- META_ASSERT(MAX_VERTEX_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
-- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
-+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1);
- return MAX_VERTEX_UNIFORM_VECTORS_D3D11;
- }
-
- unsigned int Renderer11::getMaxFragmentUniformVectors() const
- {
- META_ASSERT(MAX_FRAGMENT_UNIFORM_VECTORS_D3D11 <= D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT);
-- ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_10_0);
-+ ASSERT(mFeatureLevel >= D3D_FEATURE_LEVEL_9_1);
- return MAX_FRAGMENT_UNIFORM_VECTORS_D3D11;
- }
-
-@@ -2216,6 +2240,10 @@ unsigned int Renderer11::getMaxVaryingVectors() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return D3D10_VS_OUTPUT_REGISTER_COUNT;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return 8;
- default: UNREACHABLE();
- return 0;
- }
-@@ -2229,6 +2257,10 @@ bool Renderer11::getNonPower2TextureSupport() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return true;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return false;
- default: UNREACHABLE();
- return false;
- }
-@@ -2242,6 +2274,11 @@ bool Renderer11::getOcclusionQuerySupport() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return true;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ return true;
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return false;
- default: UNREACHABLE();
- return false;
- }
-@@ -2254,7 +2291,11 @@ bool Renderer11::getInstancingSupport() const
- case D3D_FEATURE_LEVEL_11_0:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
-- return true;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ return true;
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return false;
- default: UNREACHABLE();
- return false;
- }
-@@ -2276,6 +2317,11 @@ bool Renderer11::getDerivativeInstructionSupport() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return true;
-+ case D3D_FEATURE_LEVEL_9_3:
-+ return true;
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return false;
- default: UNREACHABLE();
- return false;
- }
-@@ -2294,6 +2340,9 @@ int Renderer11::getMajorShaderModel() const
- case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MAJOR_VERSION; // 5
- case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MAJOR_VERSION; // 4
- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MAJOR_VERSION; // 4
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MAJOR_VERSION; // 4 (level 9)
- default: UNREACHABLE(); return 0;
- }
- }
-@@ -2305,6 +2354,9 @@ int Renderer11::getMinorShaderModel() const
- case D3D_FEATURE_LEVEL_11_0: return D3D11_SHADER_MINOR_VERSION; // 0
- case D3D_FEATURE_LEVEL_10_1: return D3D10_1_SHADER_MINOR_VERSION; // 1
- case D3D_FEATURE_LEVEL_10_0: return D3D10_SHADER_MINOR_VERSION; // 0
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: return D3D10_SHADER_MINOR_VERSION; // 0 (level 9)
- default: UNREACHABLE(); return 0;
- }
- }
-@@ -2330,6 +2382,11 @@ int Renderer11::getMaxViewportDimension() const
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
- return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
-+ case D3D_FEATURE_LEVEL_9_3:
-+ return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1:
-+ return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
- default: UNREACHABLE();
- return 0;
- }
-@@ -2342,6 +2399,9 @@ int Renderer11::getMaxTextureWidth() const
- case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
-+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
- default: UNREACHABLE(); return 0;
- }
- }
-@@ -2353,6 +2413,9 @@ int Renderer11::getMaxTextureHeight() const
- case D3D_FEATURE_LEVEL_11_0: return D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 16384
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 8192
-+ case D3D_FEATURE_LEVEL_9_3: return D3D_FL9_3_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 4096
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: return D3D_FL9_1_REQ_TEXTURE2D_U_OR_V_DIMENSION; // 2048
- default: UNREACHABLE(); return 0;
- }
- }
-@@ -2364,6 +2427,9 @@ bool Renderer11::get32BitIndexSupport() const
- case D3D_FEATURE_LEVEL_11_0:
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0: return D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP >= 32; // true
-+ case D3D_FEATURE_LEVEL_9_3:
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: return false;
- default: UNREACHABLE(); return false;
- }
- }
-@@ -2410,6 +2476,8 @@ unsigned int Renderer11::getMaxRenderTargets() const
- {
- META_ASSERT(D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
- META_ASSERT(D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
-+ META_ASSERT(D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
-+ META_ASSERT(D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT <= gl::IMPLEMENTATION_MAX_DRAW_BUFFERS);
-
- switch (mFeatureLevel)
- {
-@@ -2417,6 +2485,9 @@ unsigned int Renderer11::getMaxRenderTargets() const
- return D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT; // 8
- case D3D_FEATURE_LEVEL_10_1:
- case D3D_FEATURE_LEVEL_10_0:
-+ case D3D_FEATURE_LEVEL_9_3: // return D3D_FL9_3_SIMULTANEOUS_RENDER_TARGET_COUNT; // 4
-+ case D3D_FEATURE_LEVEL_9_2:
-+ case D3D_FEATURE_LEVEL_9_1: // return D3D_FL9_1_SIMULTANEOUS_RENDER_TARGET_COUNT; // 1
- // Feature level 10.0 and 10.1 cards perform very poorly when the pixel shader
- // outputs to multiple RTs that are not bound.
- // TODO: Remove pixel shader outputs for render targets that are not bound.
-@@ -2603,7 +2674,7 @@ bool Renderer11::copyTexture(ID3D11ShaderResourceView *source, const gl::Rectang
- samplerDesc.BorderColor[2] = 0.0f;
- samplerDesc.BorderColor[3] = 0.0f;
- samplerDesc.MinLOD = 0.0f;
-- samplerDesc.MaxLOD = 0.0f;
-+ samplerDesc.MaxLOD = mDevice->GetFeatureLevel() >= D3D_FEATURE_LEVEL_10_0 ? 0.0f : FLT_MAX;
-
- result = mDevice->CreateSamplerState(&samplerDesc, &mCopySampler);
- ASSERT(SUCCEEDED(result));
-@@ -2848,7 +2919,7 @@ ShaderExecutable *Renderer11::loadExecutable(const void *function, size_t length
-
- ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const char *shaderHLSL, rx::ShaderType type, D3DWorkaroundType workaround)
- {
-- const char *profile = NULL;
-+ std::string profile;
-
- switch (type)
- {
-@@ -2866,7 +2937,12 @@ ShaderExecutable *Renderer11::compileToExecutable(gl::InfoLog &infoLog, const ch
- return NULL;
- }
-
-- ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile, D3DCOMPILE_OPTIMIZATION_LEVEL0, false);
-+ if (mFeatureLevel == D3D_FEATURE_LEVEL_9_3)
-+ profile += "_level_9_3";
-+ else if (mFeatureLevel == D3D_FEATURE_LEVEL_9_2 || mFeatureLevel == D3D_FEATURE_LEVEL_9_1)
-+ profile += "_level_9_1";
-+
-+ ID3DBlob *binary = (ID3DBlob*)compileToBinary(infoLog, shaderHLSL, profile.c_str(), D3DCOMPILE_OPTIMIZATION_LEVEL0, false);
- if (!binary)
- return NULL;
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-index ba3f0c6..a8a722c 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.h
-@@ -177,6 +177,7 @@ class Renderer11 : public Renderer
- ID3D11Device *getDevice() { return mDevice; }
- ID3D11DeviceContext *getDeviceContext() { return mDeviceContext; };
- IDXGIFactory *getDxgiFactory() { return mDxgiFactory; };
-+ D3D_FEATURE_LEVEL getFeatureLevel() { return mFeatureLevel; }
-
- bool getRenderTargetResource(gl::Renderbuffer *colorbuffer, unsigned int *subresourceIndex, ID3D11Texture2D **resource);
- void unapplyRenderTargets();
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
-index 5f6ea21..fdfbe52 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/TextureStorage11.cpp
-@@ -222,14 +222,14 @@ TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, SwapChain11 *swapch
- }
-
- TextureStorage11_2D::TextureStorage11_2D(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, GLsizei width, GLsizei height)
-- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable))
-+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable))
- {
- for (unsigned int i = 0; i < gl::IMPLEMENTATION_MAX_TEXTURE_LEVELS; i++)
- {
- mRenderTarget[i] = NULL;
- }
-
-- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat);
-+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
- if (d3d11::IsDepthStencilFormat(convertedFormat))
- {
- mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat);
-@@ -331,7 +331,7 @@ RenderTarget *TextureStorage11_2D::getRenderTarget(int level)
- srvDesc.Format = mShaderResourceFormat;
- srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
- srvDesc.Texture2D.MostDetailedMip = level;
-- srvDesc.Texture2D.MipLevels = 1;
-+ srvDesc.Texture2D.MipLevels = level ? 1 : -1;
-
- ID3D11ShaderResourceView *srv;
- result = device->CreateShaderResourceView(mTexture, &srvDesc, &srv);
-@@ -440,7 +440,7 @@ void TextureStorage11_2D::generateMipmap(int level)
- }
-
- TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLenum internalformat, GLenum usage, bool forceRenderable, int size)
-- : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat), usage, forceRenderable))
-+ : TextureStorage11(renderer, GetTextureBindFlags(gl_d3d11::ConvertTextureFormat(internalformat, Renderer11::makeRenderer11(renderer)->getFeatureLevel()), usage, forceRenderable))
- {
- for (unsigned int i = 0; i < 6; i++)
- {
-@@ -450,7 +450,7 @@ TextureStorage11_Cube::TextureStorage11_Cube(Renderer *renderer, int levels, GLe
- }
- }
-
-- DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat);
-+ DXGI_FORMAT convertedFormat = gl_d3d11::ConvertTextureFormat(internalformat, mRenderer->getFeatureLevel());
- if (d3d11::IsDepthStencilFormat(convertedFormat))
- {
- mTextureFormat = d3d11::GetDepthTextureFormat(convertedFormat);
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
-index 6f06024..34b8259 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.cpp
-@@ -329,7 +329,7 @@ DXGI_FORMAT ConvertRenderbufferFormat(GLenum format)
- return DXGI_FORMAT_R8G8B8A8_UNORM;
- }
-
--DXGI_FORMAT ConvertTextureFormat(GLenum internalformat)
-+DXGI_FORMAT ConvertTextureFormat(GLenum internalformat, D3D_FEATURE_LEVEL featureLevel)
- {
- switch (internalformat)
- {
-@@ -342,7 +342,7 @@ DXGI_FORMAT ConvertTextureFormat(GLenum internalformat)
- case GL_LUMINANCE8_ALPHA8_EXT:
- return DXGI_FORMAT_R8G8B8A8_UNORM;
- case GL_ALPHA8_EXT:
-- return DXGI_FORMAT_A8_UNORM;
-+ return featureLevel >= D3D_FEATURE_LEVEL_10_0 ? DXGI_FORMAT_A8_UNORM : DXGI_FORMAT_B8G8R8A8_UNORM;
- case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
- case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
- return DXGI_FORMAT_BC1_UNORM;
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
-index 1bc48c1..70ad4fe 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/renderer11_utils.h
-@@ -32,7 +32,7 @@ FLOAT ConvertMinLOD(GLenum minFilter, unsigned int lodOffset);
- FLOAT ConvertMaxLOD(GLenum minFilter, unsigned int lodOffset);
-
- DXGI_FORMAT ConvertRenderbufferFormat(GLenum format);
--DXGI_FORMAT ConvertTextureFormat(GLenum format);
-+DXGI_FORMAT ConvertTextureFormat(GLenum format, D3D_FEATURE_LEVEL featureLevel);
- }
-
- namespace d3d11_gl
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch b/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
deleted file mode 100644
index fdee11d324..0000000000
--- a/mingw-w64-angleproject-git/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8ea24fcce69900f42299fd01772714a566f9111e Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Mon, 24 Feb 2014 11:08:23 +0200
-Subject: [PATCH] ANGLE: Fix compilation error on MinGW caused by trace_event.h
-
-The event trace header in ANGLE's third_party directory has an unused
-template which causes a compilation error on MinGW. Disable this part
-of the code.
-
-Change-Id: I167eac56507fafba34e3eb5ce6071d8f136a4e41
----
- src/3rdparty/angle/src/third_party/trace_event/trace_event.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-index 637cf9a..96ac910 100644
---- a/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-+++ b/src/3rdparty/angle/src/third_party/trace_event/trace_event.h
-@@ -791,6 +791,7 @@ private:
- // TraceEventSamplingStateScope records the current sampling state
- // and sets a new sampling state. When the scope exists, it restores
- // the sampling state having recorded.
-+#if 0 // This is not used by ANGLE and causes a compilation error on MinGW
- template
- class SamplingStateScope {
- public:
-@@ -818,6 +819,7 @@ public:
- private:
- const char* m_previousState;
- };
-+#endif
-
- } // namespace TraceEvent
-
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch b/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch
deleted file mode 100644
index fe16d1d7b2..0000000000
--- a/mingw-w64-angleproject-git/0012-ANGLE-fix-semantic-index-lookup.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 15b694fa33cf76f93de62b8106972083f5fb3114 Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Fri, 21 Feb 2014 13:34:21 +0200
-Subject: [PATCH] ANGLE: fix semantic index lookup
-
-The sorted semantic index table was returning a direct mapping to the
-new indices, instead of the old indices. This caused a mismatch in the
-GL type lookup for the translated attribute.
-
-Change-Id: I75d05ed707f56c45210e3dcbc277f894e3dc5a48
----
- src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 2 +-
- src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-index 41a83b6..13c515a 100644
---- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-@@ -2643,7 +2643,7 @@ void ProgramBinary::sortAttributesByLayout(rx::TranslatedAttribute attributes[MA
- for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
- {
- int oldIndex = mAttributesByLayout[i];
-- sortedSemanticIndices[i] = mSemanticIndex[oldIndex];
-+ sortedSemanticIndices[i] = oldIndex;
- attributes[i] = oldTranslatedAttributes[oldIndex];
- }
- }
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
-index 3418e89..4940b8c 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/InputLayoutCache.cpp
-@@ -103,10 +103,10 @@ GLenum InputLayoutCache::applyVertexBuffers(TranslatedAttribute attributes[gl::M
- // Record the type of the associated vertex shader vector in our key
- // This will prevent mismatched vertex shaders from using the same input layout
- GLint attributeSize;
-- programBinary->getActiveAttribute(ilKey.elementCount, 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL);
-+ programBinary->getActiveAttribute(sortedSemanticIndices[i], 0, NULL, &attributeSize, &ilKey.elements[ilKey.elementCount].glslElementType, NULL);
-
- ilKey.elements[ilKey.elementCount].desc.SemanticName = semanticName;
-- ilKey.elements[ilKey.elementCount].desc.SemanticIndex = sortedSemanticIndices[i];
-+ ilKey.elements[ilKey.elementCount].desc.SemanticIndex = i;
- ilKey.elements[ilKey.elementCount].desc.Format = attributes[i].attribute->mArrayEnabled ? vertexBuffer->getDXGIFormat(*attributes[i].attribute) : DXGI_FORMAT_R32G32B32A32_FLOAT;
- ilKey.elements[ilKey.elementCount].desc.InputSlot = i;
- ilKey.elements[ilKey.elementCount].desc.AlignedByteOffset = 0;
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch b/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch
deleted file mode 100644
index 11c32880df..0000000000
--- a/mingw-w64-angleproject-git/0013-ANGLE-Allow-for-universal-program-binaries.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 5eeb4a06f182b4fc0e3dcb82f47fcf4286890f94 Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Fri, 21 Feb 2014 08:35:01 +0200
-Subject: [PATCH] ANGLE: Allow for universal program binaries
-
-As a safety precaution, ANGLE writes the commit hash, optimization level,
-and adapter ID to its binary format. However, this hurts portability
-between systems by making shader pre-compilation/caching artificially
-system-specific.
-
-The shader compiler doesn't take the target adapter into account, and the
-optimization level information discarded by ANGLE anyway. So, allow ANGLE
-to bypass these checks on systems where precompilation is required (i.e.
-WinRT). The default mechanism still applies unless
-ANGLE_ENABLE_UNIVERSAL_BINARY is passed as a define.
-
-Change-Id: Iec6d833fd7010ed163978557238f00e7ac6ae416
----
- src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-index 8896665..41a83b6 100644
---- a/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/ProgramBinary.cpp
-@@ -1637,6 +1637,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
- return false;
- }
-
-+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
- unsigned char commitString[ANGLE_COMMIT_HASH_SIZE];
- stream.read(commitString, ANGLE_COMMIT_HASH_SIZE);
- if (memcmp(commitString, ANGLE_COMMIT_HASH, sizeof(unsigned char) * ANGLE_COMMIT_HASH_SIZE) != 0)
-@@ -1652,6 +1653,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
- infoLog.append("Mismatched compilation flags.");
- return false;
- }
-+#endif
-
- for (int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
- {
-@@ -1742,6 +1744,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
-
- const char *ptr = (const char*) binary + stream.offset();
-
-+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
- const GUID *binaryIdentifier = (const GUID *) ptr;
- ptr += sizeof(GUID);
-
-@@ -1751,6 +1754,7 @@ bool ProgramBinary::load(InfoLog &infoLog, const void *binary, GLsizei length)
- infoLog.append("Invalid program binary.");
- return false;
- }
-+#endif
-
- const char *pixelShaderFunction = ptr;
- ptr += pixelShaderSize;
-@@ -1808,9 +1812,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
- stream.write(GL_PROGRAM_BINARY_ANGLE);
- stream.write(ANGLE_MAJOR_VERSION);
- stream.write(ANGLE_MINOR_VERSION);
-+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
- stream.write(ANGLE_COMMIT_HASH, ANGLE_COMMIT_HASH_SIZE);
- stream.write(ANGLE_COMPILE_OPTIMIZATION_LEVEL);
--
-+#endif
- for (unsigned int i = 0; i < MAX_VERTEX_ATTRIBS; ++i)
- {
- stream.write(mLinkedAttribute[i].type);
-@@ -1866,7 +1871,9 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
- UINT geometryShaderSize = (mGeometryExecutable != NULL) ? mGeometryExecutable->getLength() : 0;
- stream.write(geometryShaderSize);
-
-+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
- GUID identifier = mRenderer->getAdapterIdentifier();
-+#endif
-
- GLsizei streamLength = stream.length();
- const void *streamData = stream.data();
-@@ -1889,8 +1896,10 @@ bool ProgramBinary::save(void* binary, GLsizei bufSize, GLsizei *length)
- memcpy(ptr, streamData, streamLength);
- ptr += streamLength;
-
-+#if !defined(ANGLE_ENABLE_UNIVERSAL_BINARY)
- memcpy(ptr, &identifier, sizeof(GUID));
- ptr += sizeof(GUID);
-+#endif
-
- memcpy(ptr, mPixelExecutable->getFunction(), pixelShaderSize);
- ptr += pixelShaderSize;
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch b/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch
deleted file mode 100644
index 52dfcd6da2..0000000000
--- a/mingw-w64-angleproject-git/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch
+++ /dev/null
@@ -1,256 +0,0 @@
-From d7eb7ea643f00d47447d755b4a2125922d69a3b3 Mon Sep 17 00:00:00 2001
-From: Andrew Knight
-Date: Thu, 20 Mar 2014 13:21:29 +0200
-Subject: [PATCH] ANGLE D3D11: Fix internal index buffer for level 9 hardware
-
-Some level 9 hardware does not support 32-bit indices, and in most
-places this is already checked. It would appear that most phone
-hardware actually does support 32-bit indices, and so this bug wasn't
-caught until testing on the Surface RT. This is not surprising, as some
-level 9 resources are only a minimum for the hardware spec, not the
-true limit of the device/driver.
-
-This patch provides the general fix to use 16-bit indices on such
-hardware, but a whitelist of known good GPUs should be added to enable
-32-bit indices where available.
-
-Change-Id: I282ede5dd4a323037ade6c44b7cfac2c6445b491
----
- .../src/libGLESv2/renderer/d3d11/Renderer11.cpp | 169 ++++++++++++---------
- 1 file changed, 94 insertions(+), 75 deletions(-)
-
-diff --git a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-index 31d976d..2de477b 100644
---- a/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-+++ b/src/3rdparty/angle/src/libGLESv2/renderer/d3d11/Renderer11.cpp
-@@ -1137,6 +1137,84 @@ void Renderer11::drawElements(GLenum mode, GLsizei count, GLenum type, const GLv
- }
- }
-
-+template
-+static void fillLineLoopIndices(GLenum type, GLsizei count, const GLvoid *indices, T *data)
-+{
-+ switch (type)
-+ {
-+ case GL_NONE: // Non-indexed draw
-+ for (int i = 0; i < count; i++)
-+ {
-+ data[i] = i;
-+ }
-+ data[count] = 0;
-+ break;
-+ case GL_UNSIGNED_BYTE:
-+ for (int i = 0; i < count; i++)
-+ {
-+ data[i] = static_cast(indices)[i];
-+ }
-+ data[count] = static_cast(indices)[0];
-+ break;
-+ case GL_UNSIGNED_SHORT:
-+ for (int i = 0; i < count; i++)
-+ {
-+ data[i] = static_cast(indices)[i];
-+ }
-+ data[count] = static_cast(indices)[0];
-+ break;
-+ case GL_UNSIGNED_INT:
-+ for (int i = 0; i < count; i++)
-+ {
-+ data[i] = static_cast(indices)[i];
-+ }
-+ data[count] = static_cast(indices)[0];
-+ break;
-+ default: UNREACHABLE();
-+ }
-+}
-+
-+template
-+static void fillTriangleFanIndices(GLenum type, unsigned int numTris, const GLvoid *indices, T *data)
-+{
-+ switch (type)
-+ {
-+ case GL_NONE: // Non-indexed draw
-+ for (unsigned int i = 0; i < numTris; i++)
-+ {
-+ data[i*3 + 0] = 0;
-+ data[i*3 + 1] = i + 1;
-+ data[i*3 + 2] = i + 2;
-+ }
-+ break;
-+ case GL_UNSIGNED_BYTE:
-+ for (unsigned int i = 0; i < numTris; i++)
-+ {
-+ data[i*3 + 0] = static_cast(indices)[0];
-+ data[i*3 + 1] = static_cast(indices)[i + 1];
-+ data[i*3 + 2] = static_cast(indices)[i + 2];
-+ }
-+ break;
-+ case GL_UNSIGNED_SHORT:
-+ for (unsigned int i = 0; i < numTris; i++)
-+ {
-+ data[i*3 + 0] = static_cast(indices)[0];
-+ data[i*3 + 1] = static_cast(indices)[i + 1];
-+ data[i*3 + 2] = static_cast(indices)[i + 2];
-+ }
-+ break;
-+ case GL_UNSIGNED_INT:
-+ for (unsigned int i = 0; i < numTris; i++)
-+ {
-+ data[i*3 + 0] = static_cast(indices)[0];
-+ data[i*3 + 1] = static_cast(indices)[i + 1];
-+ data[i*3 + 2] = static_cast(indices)[i + 2];
-+ }
-+ break;
-+ default: UNREACHABLE();
-+ }
-+}
-+
- void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices, int minIndex, gl::Buffer *elementArrayBuffer)
- {
- // Get the raw indices for an indexed draw
-@@ -1148,10 +1226,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
- indices = static_cast(storage->getData()) + offset;
- }
-
-+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT;
-+
- if (!mLineLoopIB)
- {
- mLineLoopIB = new StreamingIndexBufferInterface(this);
-- if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT))
-+ if (!mLineLoopIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType))
- {
- delete mLineLoopIB;
- mLineLoopIB = NULL;
-@@ -1171,7 +1251,7 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
- }
-
- const unsigned int spaceNeeded = (static_cast(count) + 1) * sizeof(unsigned int);
-- if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT))
-+ if (!mLineLoopIB->reserveBufferSpace(spaceNeeded, indexType))
- {
- ERR("Could not reserve enough space in looping index buffer for GL_LINE_LOOP.");
- return gl::error(GL_OUT_OF_MEMORY);
-@@ -1185,42 +1265,12 @@ void Renderer11::drawLineLoop(GLsizei count, GLenum type, const GLvoid *indices,
- return gl::error(GL_OUT_OF_MEMORY);
- }
-
-- unsigned int *data = reinterpret_cast(mappedMemory);
-+ if (indexType == GL_UNSIGNED_SHORT)
-+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory));
-+ else
-+ fillLineLoopIndices(type, count, indices, reinterpret_cast(mappedMemory));
- unsigned int indexBufferOffset = offset;
-
-- switch (type)
-- {
-- case GL_NONE: // Non-indexed draw
-- for (int i = 0; i < count; i++)
-- {
-- data[i] = i;
-- }
-- data[count] = 0;
-- break;
-- case GL_UNSIGNED_BYTE:
-- for (int i = 0; i < count; i++)
-- {
-- data[i] = static_cast(indices)[i];
-- }
-- data[count] = static_cast(indices)[0];
-- break;
-- case GL_UNSIGNED_SHORT:
-- for (int i = 0; i < count; i++)
-- {
-- data[i] = static_cast(indices)[i];
-- }
-- data[count] = static_cast(indices)[0];
-- break;
-- case GL_UNSIGNED_INT:
-- for (int i = 0; i < count; i++)
-- {
-- data[i] = static_cast(indices)[i];
-- }
-- data[count] = static_cast(indices)[0];
-- break;
-- default: UNREACHABLE();
-- }
--
- if (!mLineLoopIB->unmapBuffer())
- {
- ERR("Could not unmap index buffer for GL_LINE_LOOP.");
-@@ -1251,10 +1301,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
- indices = static_cast(storage->getData()) + offset;
- }
-
-+ const int indexType = get32BitIndexSupport() ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT;
-+
- if (!mTriangleFanIB)
- {
- mTriangleFanIB = new StreamingIndexBufferInterface(this);
-- if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, GL_UNSIGNED_INT))
-+ if (!mTriangleFanIB->reserveBufferSpace(INITIAL_INDEX_BUFFER_SIZE, indexType))
- {
- delete mTriangleFanIB;
- mTriangleFanIB = NULL;
-@@ -1276,7 +1328,7 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
- }
-
- const unsigned int spaceNeeded = (numTris * 3) * sizeof(unsigned int);
-- if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, GL_UNSIGNED_INT))
-+ if (!mTriangleFanIB->reserveBufferSpace(spaceNeeded, indexType))
- {
- ERR("Could not reserve enough space in scratch index buffer for GL_TRIANGLE_FAN.");
- return gl::error(GL_OUT_OF_MEMORY);
-@@ -1290,45 +1342,12 @@ void Renderer11::drawTriangleFan(GLsizei count, GLenum type, const GLvoid *indic
- return gl::error(GL_OUT_OF_MEMORY);
- }
-
-- unsigned int *data = reinterpret_cast(mappedMemory);
-+ if (indexType == GL_UNSIGNED_SHORT)
-+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory));
-+ else
-+ fillTriangleFanIndices(type, numTris, indices, reinterpret_cast(mappedMemory));
- unsigned int indexBufferOffset = offset;
-
-- switch (type)
-- {
-- case GL_NONE: // Non-indexed draw
-- for (unsigned int i = 0; i < numTris; i++)
-- {
-- data[i*3 + 0] = 0;
-- data[i*3 + 1] = i + 1;
-- data[i*3 + 2] = i + 2;
-- }
-- break;
-- case GL_UNSIGNED_BYTE:
-- for (unsigned int i = 0; i < numTris; i++)
-- {
-- data[i*3 + 0] = static_cast(indices)[0];
-- data[i*3 + 1] = static_cast(indices)[i + 1];
-- data[i*3 + 2] = static_cast(indices)[i + 2];
-- }
-- break;
-- case GL_UNSIGNED_SHORT:
-- for (unsigned int i = 0; i < numTris; i++)
-- {
-- data[i*3 + 0] = static_cast(indices)[0];
-- data[i*3 + 1] = static_cast(indices)[i + 1];
-- data[i*3 + 2] = static_cast(indices)[i + 2];
-- }
-- break;
-- case GL_UNSIGNED_INT:
-- for (unsigned int i = 0; i < numTris; i++)
-- {
-- data[i*3 + 0] = static_cast(indices)[0];
-- data[i*3 + 1] = static_cast(indices)[i + 1];
-- data[i*3 + 2] = static_cast(indices)[i + 2];
-- }
-- break;
-- default: UNREACHABLE();
-- }
-
- if (!mTriangleFanIB->unmapBuffer())
- {
---
-1.8.4.msysgit.0
-
diff --git a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch b/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch
deleted file mode 100644
index 8a717cf0dd..0000000000
--- a/mingw-w64-angleproject-git/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From b4275810a50e298b4d8b038f6842a56ee7711471 Mon Sep 17 00:00:00 2001
-From: Ray Donnelly
-Date: Fri, 7 Feb 2014 12:58:41 +0000
-Subject: [PATCH 1/2] Untangle OS from GENERATOR a bit for MSYS2
-
----
- build/common.gypi | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/common.gypi b/build/common.gypi
-index b0a497f..db85e04 100644
---- a/build/common.gypi
-+++ b/build/common.gypi
-@@ -228,7 +228,7 @@
- },
- 'conditions':
- [
-- [ 'OS == "win" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"',
-+ [ 'OS == "win" and GENERATOR == "msvs" and MSVS_VERSION != "2010e" and MSVS_VERSION != "2012e"',
- {
- 'Debug_x64':
- {
---
-1.8.5.3
-
diff --git a/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch b/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch
deleted file mode 100644
index 089ac20089..0000000000
--- a/mingw-w64-angleproject-git/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-From 873f5103485641cda5bff523edcd417e28840532 Mon Sep 17 00:00:00 2001
-From: Ray Donnelly
-Date: Fri, 7 Feb 2014 17:15:51 +0000
-Subject: [PATCH 2/2] Move event_tracer{.cpp,.h} to libGLESv2 instead of common
-
----
- src/common/event_tracer.cpp | 49 -------------------------------
- src/common/event_tracer.h | 41 --------------------------
- src/libGLESv2/event_tracer.cpp | 49 +++++++++++++++++++++++++++++++
- src/libGLESv2/event_tracer.h | 41 ++++++++++++++++++++++++++
- src/third_party/trace_event/trace_event.h | 2 +-
- 5 files changed, 91 insertions(+), 91 deletions(-)
- delete mode 100644 src/common/event_tracer.cpp
- delete mode 100644 src/common/event_tracer.h
- create mode 100644 src/libGLESv2/event_tracer.cpp
- create mode 100644 src/libGLESv2/event_tracer.h
-
-diff --git a/src/common/event_tracer.cpp b/src/common/event_tracer.cpp
-deleted file mode 100644
-index 142373d..0000000
---- a/src/common/event_tracer.cpp
-+++ /dev/null
-@@ -1,49 +0,0 @@
--// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#include "common/event_tracer.h"
--
--namespace gl
--{
--
--GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
--AddTraceEventFunc g_addTraceEvent;
--
--} // namespace gl
--
--extern "C" {
--
--void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag,
-- AddTraceEventFunc addTraceEvent)
--{
-- gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag;
-- gl::g_addTraceEvent = addTraceEvent;
--}
--
--} // extern "C"
--
--namespace gl
--{
--
--const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
--{
-- if (g_getCategoryEnabledFlag)
-- {
-- return g_getCategoryEnabledFlag(name);
-- }
-- static unsigned char disabled = 0;
-- return &disabled;
--}
--
--void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
-- int numArgs, const char** argNames, const unsigned char* argTypes,
-- const unsigned long long* argValues, unsigned char flags)
--{
-- if (g_addTraceEvent)
-- {
-- g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
-- }
--}
--
--} // namespace gl
-diff --git a/src/common/event_tracer.h b/src/common/event_tracer.h
-deleted file mode 100644
-index 14b7b29..0000000
---- a/src/common/event_tracer.h
-+++ /dev/null
-@@ -1,41 +0,0 @@
--// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
--// Use of this source code is governed by a BSD-style license that can be
--// found in the LICENSE file.
--
--#ifndef COMMON_EVENT_TRACER_H_
--#define COMMON_EVENT_TRACER_H_
--
--#if !defined(TRACE_ENTRY)
--#if defined(_WIN32)
--#define TRACE_ENTRY __stdcall
--#else
--#define TRACE_ENTRY
--#endif // // _WIN32
--#endif //TRACE_ENTRY
--
--extern "C" {
--
--typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
--typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name,
-- unsigned long long id, int numArgs, const char** argNames,
-- const unsigned char* argTypes, const unsigned long long* argValues,
-- unsigned char flags);
--
--// extern "C" so that it has a reasonable name for GetProcAddress.
--void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag,
-- AddTraceEventFunc add_trace_event_func);
--
--}
--
--namespace gl
--{
--
--const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name);
--
--void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
-- int numArgs, const char** argNames, const unsigned char* argTypes,
-- const unsigned long long* argValues, unsigned char flags);
--
--}
--
--#endif // COMMON_EVENT_TRACER_H_
-diff --git a/src/libGLESv2/event_tracer.cpp b/src/libGLESv2/event_tracer.cpp
-new file mode 100644
-index 0000000..b38e7c3
---- /dev/null
-+++ b/src/libGLESv2/event_tracer.cpp
-@@ -0,0 +1,49 @@
-+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#include "event_tracer.h"
-+
-+namespace gl
-+{
-+
-+GetCategoryEnabledFlagFunc g_getCategoryEnabledFlag;
-+AddTraceEventFunc g_addTraceEvent;
-+
-+} // namespace gl
-+
-+extern "C" {
-+
-+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc getCategoryEnabledFlag,
-+ AddTraceEventFunc addTraceEvent)
-+{
-+ gl::g_getCategoryEnabledFlag = getCategoryEnabledFlag;
-+ gl::g_addTraceEvent = addTraceEvent;
-+}
-+
-+} // extern "C"
-+
-+namespace gl
-+{
-+
-+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name)
-+{
-+ if (g_getCategoryEnabledFlag)
-+ {
-+ return g_getCategoryEnabledFlag(name);
-+ }
-+ static unsigned char disabled = 0;
-+ return &disabled;
-+}
-+
-+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
-+ int numArgs, const char** argNames, const unsigned char* argTypes,
-+ const unsigned long long* argValues, unsigned char flags)
-+{
-+ if (g_addTraceEvent)
-+ {
-+ g_addTraceEvent(phase, categoryGroupEnabled, name, id, numArgs, argNames, argTypes, argValues, flags);
-+ }
-+}
-+
-+} // namespace gl
-diff --git a/src/libGLESv2/event_tracer.h b/src/libGLESv2/event_tracer.h
-new file mode 100644
-index 0000000..14b7b29
---- /dev/null
-+++ b/src/libGLESv2/event_tracer.h
-@@ -0,0 +1,41 @@
-+// Copyright (c) 2012 The ANGLE Project Authors. All rights reserved.
-+// Use of this source code is governed by a BSD-style license that can be
-+// found in the LICENSE file.
-+
-+#ifndef COMMON_EVENT_TRACER_H_
-+#define COMMON_EVENT_TRACER_H_
-+
-+#if !defined(TRACE_ENTRY)
-+#if defined(_WIN32)
-+#define TRACE_ENTRY __stdcall
-+#else
-+#define TRACE_ENTRY
-+#endif // // _WIN32
-+#endif //TRACE_ENTRY
-+
-+extern "C" {
-+
-+typedef const unsigned char* (*GetCategoryEnabledFlagFunc)(const char* name);
-+typedef void (*AddTraceEventFunc)(char phase, const unsigned char* categoryGroupEnabled, const char* name,
-+ unsigned long long id, int numArgs, const char** argNames,
-+ const unsigned char* argTypes, const unsigned long long* argValues,
-+ unsigned char flags);
-+
-+// extern "C" so that it has a reasonable name for GetProcAddress.
-+void TRACE_ENTRY SetTraceFunctionPointers(GetCategoryEnabledFlagFunc get_category_enabled_flag,
-+ AddTraceEventFunc add_trace_event_func);
-+
-+}
-+
-+namespace gl
-+{
-+
-+const unsigned char* TraceGetTraceCategoryEnabledFlag(const char* name);
-+
-+void TraceAddTraceEvent(char phase, const unsigned char* categoryGroupEnabled, const char* name, unsigned long long id,
-+ int numArgs, const char** argNames, const unsigned char* argTypes,
-+ const unsigned long long* argValues, unsigned char flags);
-+
-+}
-+
-+#endif // COMMON_EVENT_TRACER_H_
-diff --git a/src/third_party/trace_event/trace_event.h b/src/third_party/trace_event/trace_event.h
-index 1880056..ebd5a1e 100644
---- a/src/third_party/trace_event/trace_event.h
-+++ b/src/third_party/trace_event/trace_event.h
-@@ -144,7 +144,7 @@
-
- #include
-
--#include "common/event_tracer.h"
-+#include "libGLESv2/event_tracer.h"
-
- // By default, const char* argument values are assumed to have long-lived scope
- // and will not be copied. Use this macro to force a const char* to be copied.
---
-1.8.5.3
-
diff --git a/mingw-w64-angleproject-git/D3DCompiler_43-i686.dll b/mingw-w64-angleproject-git/D3DCompiler_43-i686.dll
deleted file mode 100644
index ab9616191f..0000000000
Binary files a/mingw-w64-angleproject-git/D3DCompiler_43-i686.dll and /dev/null differ
diff --git a/mingw-w64-angleproject-git/D3DCompiler_43-x86_64.dll b/mingw-w64-angleproject-git/D3DCompiler_43-x86_64.dll
deleted file mode 100644
index 1539d83c2a..0000000000
Binary files a/mingw-w64-angleproject-git/D3DCompiler_43-x86_64.dll and /dev/null differ
diff --git a/mingw-w64-angleproject-git/PKGBUILD b/mingw-w64-angleproject-git/PKGBUILD
index d6286804fc..139de5f772 100644
--- a/mingw-w64-angleproject-git/PKGBUILD
+++ b/mingw-w64-angleproject-git/PKGBUILD
@@ -2,125 +2,70 @@
# Contributor: Ray Donnelly
_realname=angleproject
+pkgabse=mingw-w64-${_realname}-git
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
-pkgver=1.3.r2070
+pkgver=2.1.r5408
pkgrel=1
pkgdesc='Angle project built from git source (mingw-w64)'
arch=('any')
url='http://code.google.com/p/angleproject/'
license=('LGPLv2+')
-groups=('mingw-w64')
depends=()
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" 'gyp-svn' 'git')
provides=("${MINGW_PACKAGE_PREFIX}-angleproject")
conflicts=("${MINGW_PACKAGE_PREFIX}-angleproject")
options=('!strip' 'staticlibs')
-source=('angleproject::git+https://chromium.googlesource.com/angle/angle'
- D3DCompiler_43-i686.dll
- D3DCompiler_43-x86_64.dll
- 'angleproject-include-import-library-and-use-def-file.patch'
- 'angleproject-fix-mingw-compatibility.patch'
- 'angleproject-export-shader-symbols.patch'
- 'angleproject-fix-trace_event.patch'
- 'angleproject-fix-renderer9-stencilformat.patch'
- '0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch'
- '0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch'
- 0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
- 0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
- 0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
- 0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
- 0005-Fix-build-when-SSE2-is-not-available.patch
- 0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
- 0007-Make-DX9-DX11-mutually-exclusive.patch
- 0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
- 0009-ANGLE-Support-WinRT.patch
- 0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
- 0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
- 0012-ANGLE-fix-semantic-index-lookup.patch
- 0013-ANGLE-Allow-for-universal-program-binaries.patch
- 0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch)
+source=("angleproject"::git+https://chromium.googlesource.com/angle/angle
+ 0000-build-fix.patch
+ angleproject-export-shader-symbols.patch
+ angleproject-include-import-library-and-use-def-file.patch
+ libEGL_mingw32.def
+ libGLESv2_mingw32.def)
md5sums=('SKIP'
- '1c9b45e87528b8bb8cfa884ea0099a85'
- 'ada0c39d4eacdc81fd84163a95d62079'
- '4bf401fa460cc60802106fa6646b10df'
- '10b197b483a543fcf7e1ae5ec379848f'
- 'be79402d4cf03e26f467d9f738823d3a'
- '59a3d60f5b1b6676056444db8a7883fe'
- '5f30f3a3c668e4a76920a71e0dddc87d'
- 'd680608c3826af8ed61292ed693a6776'
- '992b68a3e691467e8f067d2a01cc5e8a'
- 'c690dcdc1940cdba4a10f5509bbdbde5'
- '743518f9c30ce102bf9db07ff4b04c5b'
- 'a9a3412a013f792a170181a370807ce0'
- '53b6de972d6827dced411ced3a748980'
- '701479de7b6c9e5e6261d795d989996d'
- '671f29fa7abd9eadd2bcc8d7e0e34b5d'
- 'b49eb1e053587dd356a67c8c7318ef1e'
- 'b08b19bb0a562cb16442412d5d664277'
- '45cc38b7271bfed011dd40999dd8d12b'
- '8d80596af43f645be9d5114435c4706e'
- '4d7b3d22a71973b2dd552367ffb483b0'
- 'e103408c432bde88659b8f4618db32d1'
- '357849298a8b1ebfa73a9fa6648a12b5'
- '5faf59851fda5052282dbaf34602f778')
+ '3caf19560f2b8cac70f4a27b23093775'
+ '70615a5e327a53fd60cc4dec916842c0'
+ '2ca332d9c13bae82300d417595e1d48d'
+ '232a2f50c3b55247f95fecfab1bec60e'
+ 'f5519fd7fc7f654c0805fbd802a5722d')
pkgver() {
cd "$srcdir/angleproject"
- local _major=$(head -n 4 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
- local _minor=$(head -n 4 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
+ local _major=$(head -n 14 src/common/version.h | grep 'ANGLE_MAJOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
+ local _minor=$(head -n 14 src/common/version.h | grep 'ANGLE_MINOR_VERSION' | sed -e 's/.* //' | tr '\n' '.' | sed 's/.$/\n/')
printf "%s.%s.r%s" "$_major" "$_minor" "$(git rev-list --count HEAD)"
}
+prepare() {
+ cd "${srcdir}"/${_realname}
+
+ cp ${srcdir}/libEGL_mingw32.def src/libEGL/
+ cp ${srcdir}/libGLESv2_mingw32.def src/libGLESv2/
+
+ ### Fedora team patches ###
+ patch -p1 -i ${srcdir}/0000-build-fix.patch
+
+ # Make sure an import library is created and the correct .def file is used during the build
+ patch -p1 -i ${srcdir}/angleproject-include-import-library-and-use-def-file.patch
+
+ # WebKit depends on symbols which are used in the static library called translator_hlsl
+ # This static library is linked into the libGLESv2 shared library
+ # To allow building WebKit export the required symbols in the libGLESv2 shared library
+ patch -p1 -i ${srcdir}/angleproject-export-shader-symbols.patch
+
+ #echo "" > src/copy_compiler_dll.bat
+ #chmod +x src/copy_compiler_dll.bat
+}
+
build() {
cd "${srcdir}"/angleproject
export PYTHON=/usr/bin/python2
- # Make sure an import library is created and the correct .def file is used during the build
- patch -p0 -i "${srcdir}"/angleproject-include-import-library-and-use-def-file.patch
- # .def pieces taken from http://qt.gitorious.org/qt/qtbase/commit/b2c44985e740d0a0ea86b7b9f4cc849258ac2340
- patch -p0 -i "${srcdir}"/angleproject-fix-mingw-compatibility.patch
+ #export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
+ #export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- # WebKit depends on symbols which are used in the static library called translator
- # This static library is linked into the libGLESv2 shared library
- # To allow building WebKit export the required symbols in the libGLESv2 shared library
- patch -p0 -i "${srcdir}"/angleproject-export-shader-symbols.patch
-
- # Fix missing methods in trace_event.h
- patch -p0 -i "${srcdir}"/angleproject-fix-trace_event.patch
-
- # Fix stencil format method in renderer9_utils.cpp
- patch -p0 -i "${srcdir}"/angleproject-fix-renderer9-stencilformat.patch
-
- # Untangle OS and GENERATOR some.
- patch -p1 -i "${srcdir}"/0050-Untangle-OS-from-GENERATOR-a-bit-for-MSYS2.patch
-
- # Fix multiply defined 'SetTraceFunctionPointers'
- patch -p1 -i "${srcdir}"/0051-Move-event_tracer-.cpp-.h-to-libGLESv2-instead-of-co.patch
-
- # Patches from Qt5
- patch -p4 -i "${srcdir}"/0001-Fix-compilation-for-MSVC-2008-and-std-tuple.patch
- patch -p4 -i "${srcdir}"/0002-Fix-compilation-of-ANGLE-with-mingw-tdm64-gcc-4.8.1.patch
- #patch -p4 -i "${srcdir}"/0003-Fix-compilation-with-MinGW-gcc-64-bit.patch
- #patch -p4 -i "${srcdir}"/0004-Make-it-possible-to-link-ANGLE-statically-for-single.patch
- patch -p4 -i "${srcdir}"/0005-Fix-build-when-SSE2-is-not-available.patch
- #patch -p4 -i "${srcdir}"/0006-Fix-compilation-of-libGLESv2-with-older-MinGW-w64-he.patch
- #patch -p4 -i "${srcdir}"/0007-Make-DX9-DX11-mutually-exclusive.patch
- #patch -p4 -i "${srcdir}"/0008-ANGLE-Dynamically-load-D3D-compiler-from-a-list-of-k.patch
- #patch -p4 -i "${srcdir}"/0009-ANGLE-Support-WinRT.patch
- patch -p4 -i "${srcdir}"/0010-ANGLE-Enable-D3D11-for-feature-level-9-cards.patch
- #patch -p4 -i "${srcdir}"/0011-ANGLE-Fix-compilation-error-on-MinGW-caused-by-trace.patch
- patch -p4 -i "${srcdir}"/0012-ANGLE-fix-semantic-index-lookup.patch
- #patch -p4 -i "${srcdir}"/0013-ANGLE-Allow-for-universal-program-binaries.patch
- #patch -p4 -i "${srcdir}"/0014-ANGLE-D3D11-Fix-internal-index-buffer-for-level-9-ha.patch
-
- export CFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
- export CXXFLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4"
-
sed -i -e 's_python _python2 _g' -e 's_"python"_"python2"_g' -e "s_'python'_'python2'_g" -e 's_/usr/bin/python_/usr/bin/python2_g' $(find -type f)
sed -i -e 's|vsprintf_s|vsprintf|g' $(find . \( -name '*.h' -or -name '*.cpp' \) -and -type f)
- mkdir -p build-${MINGW_CHOST} && pushd build-${MINGW_CHOST}
-
if [ "${MINGW_CHOST}" = "i686-w64-mingw32" ]
then
_target="win32"
@@ -128,55 +73,65 @@ build() {
_target="win64"
fi
- gyp -D OS=win --format make -D TARGET=$_target --depth . -I ../build/common.gypi ../src/build_angle.gyp
+ gyp -D OS=win -D MSVS_VERSION="" -D TARGET=${_target} --format make --depth . -I build/common.gypi src/angle.gyp
- # Fix linking of libtranslator.a
- sed -i \
- -e s@'$(obj).target/$(TARGET)/../src/common/event_tracer.o'@@g \
- -e s@'$(obj).target/$(TARGET)/../src/common/RefCountObject.o'@@g \
- -e s@'$(obj).target/$(TARGET)/../src/common/debug.o'@@g \
- "${srcdir}"/angleproject/src/translator{,_static}.target.mk
+ # Make sure the correct libraries are linked in
+ #sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid'@ ../src/libGLESv2.target.mk
+ #sed -i s@'^LIBS :='@'LIBS := -ld3d9 -ldxguid -L. -lGLESv2'@ ../src/libEGL.target.mk
# LINK=g++ is to prevent using flock to serialize linking.
LINK=g++ make -j1 V=1 CXXFLAGS="-std=c++11 -msse2 -DUNICODE -D_UNICODE"
- ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \
- out/Debug/obj.target/libGLESv2/../src/common/*.o \
- out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/*.o \
- out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d9/*.o \
- out/Debug/obj.target/libGLESv2/../src/libGLESv2/renderer/d3d11/*.o \
- out/Debug/obj.target/libGLESv2/../src/libGLESv2/*.o \
- #out/Debug/obj.target/../src/libtranslator.a \
- #out/Debug/obj.target/../src/libpreprocessor.a
- ${MINGW_PREFIX}/bin/ar rcs libEGL.a \
- out/Debug/obj.target/libEGL/../src/common/*.o \
- out/Debug/obj.target/libEGL/../src/libEGL/*.o
+ # ${MINGW_PREFIX}/bin/ar rcs libGLESv2.a \
+ # out/Debug/obj.target/src/common/*.o \
+ # out/Debug/obj.target/src/common/win32/*.o \
+ # out/Debug/obj.target/src/compiler/translator/*.o \
+ # out/Debug/obj.target/src/compiler/translator/depgraph/*.o \
+ # out/Debug/obj.target/src/compiler/translator/timing/*.o \
+ # out/Debug/obj.target/src/compiler/preprocessor/*.o \
+ # out/Debug/obj.target/src/third_party/compiler/*.o \
+ # out/Debug/obj.target/src/third_party/murmurhash/*.o \
+ # out/Debug/obj.target/src/third_party/systeminfo/*.o \
+ # out/Debug/obj.target/src/libGLESv2/*.o \
+ # out/Debug/obj.target/src/libANGLE/renderer/*.o \
+ # out/Debug/obj.target/src/libANGLE/renderer/d3d/*.o \
+ # out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d9/*.o \
+ # out/Debug/obj.target/src/libANGLE/renderer/d3d/d3d11/*.o
- popd
+ # ${MINGW_PREFIX}/bin/ar rcs libEGL.a \
+ # out/Debug/obj.target/libEGL/../src/common/RefCountObject.o \
+ # out/Debug/obj.target/libEGL/../src/common/angleutils.o \
+ # out/Debug/obj.target/libEGL/../src/common/debug.o \
+ # out/Debug/obj.target/libEGL/../src/common/event_tracer.o \
+ # out/Debug/obj.target/libEGL/../src/common/mathutil.o \
+ # out/Debug/obj.target/libEGL/../src/common/tls.o \
+ # out/Debug/obj.target/libEGL/../src/common/utilities.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/AttributeMap.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/Config.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/Display.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/Error.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/Surface.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/libEGL.o \
+ # out/Debug/obj.target/libEGL/../src/libEGL/main.o \
+ # out/Debug/obj.target/libEGL/../src/common/win32/NativeWindow.o
}
package() {
cd "${srcdir}"/angleproject
- pushd build-${MINGW_CHOST}
mkdir -p "${pkgdir}${MINGW_PREFIX}"/{bin,lib,include}
- install out/Debug/src/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll
- install out/Debug/src/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll
+ install out/Debug/lib.target/libGLESv2.dll "${pkgdir}${MINGW_PREFIX}"/bin/libGLESv2.dll
+ install out/Debug/lib.target/libEGL.dll "${pkgdir}${MINGW_PREFIX}"/bin/libEGL.dll
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/bin/*.dll
- install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/
- install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/
+ #install libGLESv2.a "${pkgdir}${MINGW_PREFIX}"/lib/
+ #install libEGL.a "${pkgdir}${MINGW_PREFIX}"/lib/
- ${MINGW_PREFIX}/bin/strip --strip-debug "${pkgdir}${MINGW_PREFIX}"/lib/libEGL.a
install libEGL.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
install libGLESv2.dll.a "${pkgdir}${MINGW_PREFIX}"/lib/
${MINGW_PREFIX}/bin/strip --strip-unneeded "${pkgdir}${MINGW_PREFIX}"/lib/*.dll.a
- cp -Rv ../include/* "${pkgdir}${MINGW_PREFIX}"/include/
-
- popd
-
- install -Dm755 ${srcdir}/D3DCompiler_43-${CARCH}.dll "${pkgdir}${MINGW_PREFIX}"/bin/D3DCompiler_43.dll
+ cp -Rv include/* "${pkgdir}${MINGW_PREFIX}"/include/
}
diff --git a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch
index dabb859311..2d94a9a921 100644
--- a/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch
+++ b/mingw-w64-angleproject-git/angleproject-export-shader-symbols.patch
@@ -1,37 +1,54 @@
---- src/libGLESv2/libGLESv2.def.orig 2014-01-06 11:49:13.494061976 +0100
-+++ src/libGLESv2/libGLESv2.def 2014-01-06 11:49:15.984075067 +0100
-@@ -186,3 +186,14 @@ EXPORTS
+--- angle/src/libGLESv2/libGLESv2.def.orig 2014-12-30 12:59:07.560620988 +0100
++++ angle/src/libGLESv2/libGLESv2.def 2014-12-30 13:00:22.381399755 +0100
+@@ -144,6 +144,7 @@
+ glViewport @142
- ; Setting up TRACE macro callbacks
- SetTraceFunctionPointers @180
-+
-+ ; WebKit dependencies..
-+ ShInitBuiltInResources @200 NONAME
-+ ShInitialize @201 NONAME
-+ ShDestruct @202 NONAME
-+ ShGetInfo @203 NONAME
-+ ShGetInfoLog @204 NONAME
-+ ShGetObjectCode @207 NONAME
-+ ShCompile @208 NONAME
-+ ShConstructCompiler @209 NONAME
-+ ShGetVariableInfo @210 NONAME
---- src/libGLESv2/libGLESv2_mingw32.def.orig 2014-01-06 13:17:51.686441162 +0100
-+++ src/libGLESv2/libGLESv2_mingw32.def 2014-01-06 13:17:21.853045374 +0100
-@@ -180,3 +180,17 @@ EXPORTS
- glGetCurrentContext @147 NONAME
- glGetProcAddress@4 @148 NONAME
- glBindTexImage@4 @158 NONAME
-+ glCreateRenderer @177 NONAME
-+ glDestroyRenderer @178 NONAME
-+ glDrawBuffersEXT@8 @179 NONAME
+ ; Extensions
++ glTexImage3DOES @143
+ glBlitFramebufferANGLE @149
+ glRenderbufferStorageMultisampleANGLE @150
+ glDeleteFencesNV @151
+@@ -291,3 +292,25 @@
+ ANGLEPlatformCurrent @290
+ ANGLEPlatformInitialize @291
+ ANGLEPlatformShutdown @292
++
++ ; EGL dependencies
++ glCreateContext @144 NONAME
++ glDestroyContext @145 NONAME
++ glMakeCurrent @146 NONAME
++ glGetCurrentContext @147 NONAME
++ glGetProcAddress @148 NONAME
++ glBindTexImage @158 NONAME
++ glCreateRenderer @177 NONAME
++ glDestroyRenderer @178 NONAME
++
++ ; WebKit dependencies
++ ShInitBuiltInResources @300 NONAME
++ ShInitialize @301 NONAME
++ ShDestruct @302 NONAME
++ ShGetInfo @303 NONAME
++ ShGetInfoLog @304 NONAME
++ ShGetVariableInfo @305 NONAME
++ ShGetObjectCode @306 NONAME
++ ShCompile @307 NONAME
++ ShConstructCompiler @308 NONAME
++
+--- angle/src/libGLESv2/libGLESv2_mingw32.def.orig 2014-12-30 12:59:07.561620998 +0100
++++ angle/src/libGLESv2/libGLESv2_mingw32.def 2014-12-30 13:01:37.782182097 +0100
+@@ -294,3 +294,15 @@
+ glBindTexImage@4 @158 NONAME
+ glCreateRenderer @177 NONAME
+ glDestroyRenderer @178 NONAME
++
++ ; WebKit dependencies
++ ShInitBuiltInResources @300 NONAME
++ ShInitialize @301 NONAME
++ ShDestruct @302 NONAME
++ ShGetInfo @303 NONAME
++ ShGetInfoLog @304 NONAME
++ ShGetVariableInfo @305 NONAME
++ ShGetObjectCode @306 NONAME
++ ShCompile @307 NONAME
++ ShConstructCompiler @308 NONAME
+
-+ ; WebKit dependencies..
-+ ShInitBuiltInResources @200 NONAME
-+ ShInitialize @201 NONAME
-+ ShDestruct @202 NONAME
-+ ShGetInfo @203 NONAME
-+ ShGetInfoLog @204 NONAME
-+ ShGetObjectCode @207 NONAME
-+ ShCompile @208 NONAME
-+ ShConstructCompiler @209 NONAME
-+ ShGetVariableInfo @210 NONAME
diff --git a/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch b/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch
deleted file mode 100644
index a0444194d8..0000000000
--- a/mingw-w64-angleproject-git/angleproject-fix-mingw-compatibility.patch
+++ /dev/null
@@ -1,224 +0,0 @@
---- /dev/null
-+++ src/libEGL/libEGL_mingw32.def
-@@ -0,0 +1,36 @@
-+LIBRARY libEGL
-+EXPORTS
-+ eglBindAPI@4 @14
-+ eglBindTexImage@12 @20
-+ eglChooseConfig@20 @7
-+ eglCopyBuffers@12 @33
-+ eglCreateContext@16 @23
-+ eglCreatePbufferFromClientBuffer@20 @18
-+ eglCreatePbufferSurface@12 @10
-+ eglCreatePixmapSurface@16 @11
-+ eglCreateWindowSurface@16 @9
-+ eglDestroyContext@8 @24
-+ eglDestroySurface@8 @12
-+ eglGetConfigAttrib@16 @8
-+ eglGetConfigs@16 @6
-+ eglGetCurrentContext@0 @26
-+ eglGetCurrentDisplay@0 @28
-+ eglGetCurrentSurface@4 @27
-+ eglGetDisplay@4 @2
-+ eglGetError@0 @1
-+ eglGetProcAddress@4 @34
-+ eglInitialize@12 @3
-+ eglMakeCurrent@16 @25
-+ eglQueryAPI@0 @15
-+ eglQueryContext@16 @29
-+ eglQueryString@8 @5
-+ eglQuerySurface@16 @13
-+ eglReleaseTexImage@12 @21
-+ eglReleaseThread@0 @17
-+ eglSurfaceAttrib@16 @19
-+ eglSwapBuffers@8 @32
-+ eglSwapInterval@8 @22
-+ eglTerminate@4 @4
-+ eglWaitClient@0 @16
-+ eglWaitGL@0 @30
-+ eglWaitNative@4 @31
---- /dev/null
-+++ src/libGLESv2/libGLESv2_mingw32.def
-@@ -0,0 +1,182 @@
-+LIBRARY libGLESv2
-+EXPORTS
-+ glActiveTexture@4 @1
-+ glAttachShader@8 @2
-+ glBindAttribLocation@12 @3
-+ glBindBuffer@8 @4
-+ glBindFramebuffer@8 @5
-+ glBindRenderbuffer@8 @6
-+ glBindTexture@8 @7
-+ glBlendColor@16 @8
-+ glBlendEquation@4 @9
-+ glBlendEquationSeparate@8 @10
-+ glBlendFunc@8 @11
-+ glBlendFuncSeparate@16 @12
-+ glBufferData@16 @13
-+ glBufferSubData@16 @14
-+ glCheckFramebufferStatus@4 @15
-+ glClear@4 @16
-+ glClearColor@16 @17
-+ glClearDepthf@4 @18
-+ glClearStencil@4 @19
-+ glColorMask@16 @20
-+ glCompileShader@4 @21
-+ glCompressedTexImage2D@32 @22
-+ glCompressedTexSubImage2D@36 @23
-+ glCopyTexImage2D@32 @24
-+ glCopyTexSubImage2D@32 @25
-+ glCreateProgram@0 @26
-+ glCreateShader@4 @27
-+ glCullFace@4 @28
-+ glDeleteBuffers@8 @29
-+ glDeleteFramebuffers@8 @30
-+ glDeleteProgram@4 @32
-+ glDeleteRenderbuffers@8 @33
-+ glDeleteShader@4 @34
-+ glDeleteTextures@8 @31
-+ glDepthFunc@4 @36
-+ glDepthMask@4 @37
-+ glDepthRangef@8 @38
-+ glDetachShader@8 @35
-+ glDisable@4 @39
-+ glDisableVertexAttribArray@4 @40
-+ glDrawArrays@12 @41
-+ glDrawElements@16 @42
-+ glEnable@4 @43
-+ glEnableVertexAttribArray@4 @44
-+ glFinish@0 @45
-+ glFlush@0 @46
-+ glFramebufferRenderbuffer@16 @47
-+ glFramebufferTexture2D@20 @48
-+ glFrontFace@4 @49
-+ glGenBuffers@8 @50
-+ glGenFramebuffers@8 @52
-+ glGenRenderbuffers@8 @53
-+ glGenTextures@8 @54
-+ glGenerateMipmap@4 @51
-+ glGetActiveAttrib@28 @55
-+ glGetActiveUniform@28 @56
-+ glGetAttachedShaders@16 @57
-+ glGetAttribLocation@8 @58
-+ glGetBooleanv@8 @59
-+ glGetBufferParameteriv@12 @60
-+ glGetError@0 @61
-+ glGetFloatv@8 @62
-+ glGetFramebufferAttachmentParameteriv@16 @63
-+ glGetIntegerv@8 @64
-+ glGetProgramInfoLog@16 @66
-+ glGetProgramiv@12 @65
-+ glGetRenderbufferParameteriv@12 @67
-+ glGetShaderInfoLog@16 @69
-+ glGetShaderPrecisionFormat@16 @70
-+ glGetShaderSource@16 @71
-+ glGetShaderiv@12 @68
-+ glGetString@4 @72
-+ glGetTexParameterfv@12 @73
-+ glGetTexParameteriv@12 @74
-+ glGetUniformLocation@8 @77
-+ glGetUniformfv@12 @75
-+ glGetUniformiv@12 @76
-+ glGetVertexAttribPointerv@12 @80
-+ glGetVertexAttribfv@12 @78
-+ glGetVertexAttribiv@12 @79
-+ glHint@8 @81
-+ glIsBuffer@4 @82
-+ glIsEnabled@4 @83
-+ glIsFramebuffer@4 @84
-+ glIsProgram@4 @85
-+ glIsRenderbuffer@4 @86
-+ glIsShader@4 @87
-+ glIsTexture@4 @88
-+ glLineWidth@4 @89
-+ glLinkProgram@4 @90
-+ glPixelStorei@8 @91
-+ glPolygonOffset@8 @92
-+ glReadPixels@28 @93
-+ glReleaseShaderCompiler@0 @94
-+ glRenderbufferStorage@16 @95
-+ glSampleCoverage@8 @96
-+ glScissor@16 @97
-+ glShaderBinary@20 @98
-+ glShaderSource@16 @99
-+ glStencilFunc@12 @100
-+ glStencilFuncSeparate@16 @101
-+ glStencilMask@4 @102
-+ glStencilMaskSeparate@8 @103
-+ glStencilOp@12 @104
-+ glStencilOpSeparate@16 @105
-+ glTexImage2D@36 @106
-+ glTexParameterf@12 @107
-+ glTexParameterfv@12 @108
-+ glTexParameteri@12 @109
-+ glTexParameteriv@12 @110
-+ glTexSubImage2D@36 @111
-+ glUniform1f@8 @112
-+ glUniform1fv@12 @113
-+ glUniform1i@8 @114
-+ glUniform1iv@12 @115
-+ glUniform2f@12 @116
-+ glUniform2fv@12 @117
-+ glUniform2i@12 @118
-+ glUniform2iv@12 @119
-+ glUniform3f@16 @120
-+ glUniform3fv@12 @121
-+ glUniform3i@16 @122
-+ glUniform3iv@12 @123
-+ glUniform4f@20 @124
-+ glUniform4fv@12 @125
-+ glUniform4i@20 @126
-+ glUniform4iv@12 @127
-+ glUniformMatrix2fv@16 @128
-+ glUniformMatrix3fv@16 @129
-+ glUniformMatrix4fv@16 @130
-+ glUseProgram@4 @131
-+ glValidateProgram@4 @132
-+ glVertexAttrib1f@8 @133
-+ glVertexAttrib1fv@8 @134
-+ glVertexAttrib2f@12 @135
-+ glVertexAttrib2fv@8 @136
-+ glVertexAttrib3f@16 @137
-+ glVertexAttrib3fv@8 @138
-+ glVertexAttrib4f@20 @139
-+ glVertexAttrib4fv@8 @140
-+ glVertexAttribPointer@24 @141
-+ glViewport@16 @142
-+
-+ ; Extensions
-+ glTexImage3DOES@40 @143
-+ glBlitFramebufferANGLE@40 @149
-+ glRenderbufferStorageMultisampleANGLE@20 @150
-+ glDeleteFencesNV@8 @151
-+ glFinishFenceNV@4 @152
-+ glGenFencesNV@8 @153
-+ glGetFenceivNV@12 @154
-+ glIsFenceNV@4 @155
-+ glSetFenceNV@8 @156
-+ glTestFenceNV@4 @157
-+ glGetTranslatedShaderSourceANGLE@16 @159
-+ glTexStorage2DEXT@20 @160
-+ glGetGraphicsResetStatusEXT@0 @161
-+ glReadnPixelsEXT@32 @162
-+ glGetnUniformfvEXT@16 @163
-+ glGetnUniformivEXT@16 @164
-+ glGenQueriesEXT@8 @165
-+ glDeleteQueriesEXT@8 @166
-+ glIsQueryEXT@4 @167
-+ glBeginQueryEXT@8 @168
-+ glEndQueryEXT@4 @169
-+ glGetQueryivEXT@12 @170
-+ glGetQueryObjectuivEXT@12 @171
-+ glVertexAttribDivisorANGLE@8 @172
-+ glDrawArraysInstancedANGLE@16 @173
-+ glDrawElementsInstancedANGLE@20 @174
-+ glProgramBinaryOES@16 @175
-+ glGetProgramBinaryOES@20 @176
-+
-+ ; EGL dependencies
-+ glCreateContext @144 NONAME
-+ glDestroyContext @145 NONAME
-+ glMakeCurrent @146 NONAME
-+ glGetCurrentContext @147 NONAME
-+ glGetProcAddress@4 @148 NONAME
-+ glBindTexImage@4 @158 NONAME
diff --git a/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch b/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch
deleted file mode 100644
index a0b931767c..0000000000
--- a/mingw-w64-angleproject-git/angleproject-fix-renderer9-stencilformat.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- src.orig/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:45.401522829 +0100
-+++ src/libGLESv2/renderer/d3d9/renderer9_utils.cpp 2014-01-17 22:54:52.004935151 +0100
-@@ -13,6 +13,7 @@
- #include "libGLESv2/Context.h"
-
- #include "common/debug.h"
-+#include
-
- namespace gl_d3d9
- {
-@@ -381,9 +382,12 @@ GLenum ConvertDepthStencilFormat(D3DFORM
- return GL_DEPTH_COMPONENT16;
- case D3DFMT_D24S8:
- return GL_DEPTH24_STENCIL8_OES;
-+ case D3DFMT_D32:
-+ return GL_DEPTH_COMPONENT16;
- case D3DFMT_UNKNOWN:
- return GL_NONE;
- default:
-+ printf("unknown D3DFORMAT (stencil format): %d\n", (int)format);
- UNREACHABLE();
- }
-
diff --git a/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch b/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch
deleted file mode 100644
index fd04d82fb3..0000000000
--- a/mingw-w64-angleproject-git/angleproject-fix-trace_event.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- src/third_party/trace_event/trace_event.h.orig 2014-01-06 10:40:41.106093009 +0100
-+++ src/third_party/trace_event/trace_event.h 2014-01-06 10:40:09.310989874 +0100
-@@ -587,7 +587,7 @@ const unsigned long long noEventId = 0;
- class TraceID {
- public:
- explicit TraceID(const void* id, unsigned char* flags) :
-- m_data(static_cast(reinterpret_cast(id)))
-+ m_data((unsigned long long)id)
- {
- *flags |= TRACE_EVENT_FLAG_MANGLE_ID;
- }
-@@ -806,14 +806,14 @@ public:
- }
-
- // FIXME: Make load/store to traceSamplingState[] thread-safe and atomic.
-- static inline const char* current()
-+ /*static inline const char* current()
- {
- return reinterpret_cast(*gl::traceSamplingState[BucketNumber]);
- }
- static inline void set(const char* categoryAndName)
- {
- *gl::traceSamplingState[BucketNumber] = reinterpret_cast(const_cast(categoryAndName));
-- }
-+ }*/
-
- private:
- const char* m_previousState;
diff --git a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch
index e32d436113..95166f138d 100644
--- a/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch
+++ b/mingw-w64-angleproject-git/angleproject-include-import-library-and-use-def-file.patch
@@ -1,45 +1,38 @@
---- src.orig/libEGL.gypi 2014-01-11 12:17:37.971020837 +0100
-+++ src/libEGL.gypi 2014-01-11 12:20:05.406870084 +0100
-@@ -13,6 +13,14 @@
- 'target_name': 'libEGL',
- 'type': 'shared_library',
- 'dependencies': [ 'libGLESv2', 'commit_id' ],
-+ 'conditions': [
-+ ['TARGET=="win32" and GENERATOR == "make"', {
-+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL_mingw32.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
-+ }],
-+ ['TARGET=="win64" and GENERATOR == "make"', {
-+ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a ../src/libEGL/libEGL.def -Wl,--whole-archive -L. -lGLESv2 -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
-+ }],
-+ ],
- 'include_dirs':
- [
- '.',
---- src.orig/libGLESv2.gypi 2014-01-11 12:17:37.971020837 +0100
-+++ src/libGLESv2.gypi 2014-01-11 12:19:22.916166993 +0100
-@@ -23,6 +23,14 @@
- 'target_name': 'libGLESv2',
- 'type': 'shared_library',
- 'dependencies': [ 'translator', 'commit_id', 'copy_compiler_dll' ],
-+ 'conditions': [
-+ ['TARGET=="win32" and GENERATOR == "make"', {
-+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2_mingw32.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
-+ }],
-+ ['TARGET=="win64" and GENERATOR == "make"', {
-+ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a ../src/libGLESv2/libGLESv2.def -Wl,--whole-archive -ld3d9 -ldxguid -Wl,--no-whole-archive' ],
-+ }],
-+ ],
- 'include_dirs':
- [
- '.',
---- src.orig/angle.gypi 2014-01-11 12:28:41.414124056 +0100
-+++ src/angle.gypi 2014-01-11 12:31:06.065777743 +0100
-@@ -38,7 +38,7 @@
- 'message': 'Copying D3D Compiler DLL...',
- 'inputs': [ 'copy_compiler_dll.bat' ],
- 'outputs': [ '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
-- 'action': ["<(angle_relative_src_path)/copy_compiler_dll.bat", "$(PlatformName)", "<(windows_sdk_path)", "<(PRODUCT_DIR)" ],
-+ 'action': ["touch", '<(PRODUCT_DIR)/D3DCompiler_46.dll' ],
- }
- ] #actions
- },
+--- angleproject/src/libEGL.gypi.orig 2015-07-10 11:42:08.230786800 +0300
++++ angleproject/src/libEGL.gypi 2015-07-10 11:44:01.168491900 +0300
+@@ -48,7 +48,16 @@
+ {
+ 'msvs_enable_winphone' : '1',
+ }],
++ ['TARGET=="win32"', {
++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ],
++ }],
++ ['TARGET=="win64"', {
++ 'ldflags': [ '-Wl,--out-implib,libEGL.dll.a' ],
++ }],
+ ],
++ 'libraries': [
++ '-ldxguid -ld3d9 -lgdi32'
++ ]
+ },
+ ],
+ }
+--- angleproject/src/libGLESv2.gypi.orig 2015-07-10 11:41:58.223787600 +0300
++++ angleproject/src/libGLESv2.gypi 2015-07-10 11:44:36.585949800 +0300
+@@ -826,7 +826,16 @@
+ {
+ 'msvs_enable_winphone' : '1',
+ }],
++ ['TARGET=="win32"', {
++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ],
++ }],
++ ['TARGET=="win64"', {
++ 'ldflags': [ '-Wl,--out-implib,libGLESv2.dll.a' ],
++ }],
+ ],
++ 'libraries': [
++ '-ldxguid -ld3d9 -lgdi32'
++ ]
+ },
+ ],
+ }
diff --git a/mingw-w64-angleproject-git/libEGL_mingw32.def b/mingw-w64-angleproject-git/libEGL_mingw32.def
new file mode 100644
index 0000000000..dde91748ed
--- /dev/null
+++ b/mingw-w64-angleproject-git/libEGL_mingw32.def
@@ -0,0 +1,53 @@
+LIBRARY libEGL
+EXPORTS
+ eglBindAPI@4 @14
+ eglBindTexImage@12 @20
+ eglChooseConfig@20 @7
+ eglCopyBuffers@12 @33
+ eglCreateContext@16 @23
+ eglCreatePbufferFromClientBuffer@20 @18
+ eglCreatePbufferSurface@12 @10
+ eglCreatePixmapSurface@16 @11
+ eglCreateWindowSurface@16 @9
+ eglDestroyContext@8 @24
+ eglDestroySurface@8 @12
+ eglGetConfigAttrib@16 @8
+ eglGetConfigs@16 @6
+ eglGetCurrentContext@0 @26
+ eglGetCurrentDisplay@0 @28
+ eglGetCurrentSurface@4 @27
+ eglGetDisplay@4 @2
+ eglGetError@0 @1
+ eglGetProcAddress@4 @34
+ eglInitialize@12 @3
+ eglMakeCurrent@16 @25
+ eglQueryAPI@0 @15
+ eglQueryContext@16 @29
+ eglQueryString@8 @5
+ eglQuerySurface@16 @13
+ eglReleaseTexImage@12 @21
+ eglReleaseThread@0 @17
+ eglSurfaceAttrib@16 @19
+ eglSwapBuffers@8 @32
+ eglSwapInterval@8 @22
+ eglTerminate@4 @4
+ eglWaitClient@0 @16
+ eglWaitGL@0 @30
+ eglWaitNative@4 @31
+
+ ; Extensions
+ eglGetPlatformDisplayEXT@12 @35
+ eglQuerySurfacePointerANGLE@16 @36
+ eglPostSubBufferNV@24 @37
+
+ ; 1.5 entry points
+ eglCreateSync@12 @38
+ eglDestroySyn@8 @39
+ eglClientWaitSync@16 @40
+ eglGetSyncAttrib@16 @41
+ eglCreateImage@20 @42
+ eglDestroyImage@8 @43
+ eglGetPlatformDisplay@12 @44
+ eglCreatePlatformWindowSurface@16 @45
+ eglCreatePlatformPixmapSurface@16 @46
+ eglWaitSync@12 @47
diff --git a/mingw-w64-angleproject-git/libGLESv2_mingw32.def b/mingw-w64-angleproject-git/libGLESv2_mingw32.def
new file mode 100644
index 0000000000..c5b015ff6e
--- /dev/null
+++ b/mingw-w64-angleproject-git/libGLESv2_mingw32.def
@@ -0,0 +1,304 @@
+LIBRARY libGLESv2
+EXPORTS
+ glActiveTexture@4 @1
+ glAttachShader@8 @2
+ glBindAttribLocation@12 @3
+ glBindBuffer@8 @4
+ glBindFramebuffer@8 @5
+ glBindRenderbuffer@8 @6
+ glBindTexture@8 @7
+ glBlendColor@16 @8
+ glBlendEquation@4 @9
+ glBlendEquationSeparate@8 @10
+ glBlendFunc@8 @11
+ glBlendFuncSeparate@16 @12
+ glBufferData@16 @13
+ glBufferSubData@16 @14
+ glCheckFramebufferStatus@4 @15
+ glClear@4 @16
+ glClearColor@16 @17
+ glClearDepthf@4 @18
+ glClearStencil@4 @19
+ glColorMask@16 @20
+ glCompileShader@4 @21
+ glCompressedTexImage2D@32 @22
+ glCompressedTexSubImage2D@36 @23
+ glCopyTexImage2D@32 @24
+ glCopyTexSubImage2D@32 @25
+ glCreateProgram@0 @26
+ glCreateShader@4 @27
+ glCullFace@4 @28
+ glDeleteBuffers@8 @29
+ glDeleteFramebuffers@8 @30
+ glDeleteProgram@4 @32
+ glDeleteRenderbuffers@8 @33
+ glDeleteShader@4 @34
+ glDeleteTextures@8 @31
+ glDepthFunc@4 @36
+ glDepthMask@4 @37
+ glDepthRangef@8 @38
+ glDetachShader@8 @35
+ glDisable@4 @39
+ glDisableVertexAttribArray@4 @40
+ glDrawArrays@12 @41
+ glDrawElements@16 @42
+ glEnable@4 @43
+ glEnableVertexAttribArray@4 @44
+ glFinish@0 @45
+ glFlush@0 @46
+ glFramebufferRenderbuffer@16 @47
+ glFramebufferTexture2D@20 @48
+ glFrontFace@4 @49
+ glGenBuffers@8 @50
+ glGenFramebuffers@8 @52
+ glGenRenderbuffers@8 @53
+ glGenTextures@8 @54
+ glGenerateMipmap@4 @51
+ glGetActiveAttrib@28 @55
+ glGetActiveUniform@28 @56
+ glGetAttachedShaders@16 @57
+ glGetAttribLocation@8 @58
+ glGetBooleanv@8 @59
+ glGetBufferParameteriv@12 @60
+ glGetError@0 @61
+ glGetFloatv@8 @62
+ glGetFramebufferAttachmentParameteriv@16 @63
+ glGetIntegerv@8 @64
+ glGetProgramInfoLog@16 @66
+ glGetProgramiv@12 @65
+ glGetRenderbufferParameteriv@12 @67
+ glGetShaderInfoLog@16 @69
+ glGetShaderPrecisionFormat@16 @70
+ glGetShaderSource@16 @71
+ glGetShaderiv@12 @68
+ glGetString@4 @72
+ glGetTexParameterfv@12 @73
+ glGetTexParameteriv@12 @74
+ glGetUniformLocation@8 @77
+ glGetUniformfv@12 @75
+ glGetUniformiv@12 @76
+ glGetVertexAttribPointerv@12 @80
+ glGetVertexAttribfv@12 @78
+ glGetVertexAttribiv@12 @79
+ glHint@8 @81
+ glIsBuffer@4 @82
+ glIsEnabled@4 @83
+ glIsFramebuffer@4 @84
+ glIsProgram@4 @85
+ glIsRenderbuffer@4 @86
+ glIsShader@4 @87
+ glIsTexture@4 @88
+ glLineWidth@4 @89
+ glLinkProgram@4 @90
+ glPixelStorei@8 @91
+ glPolygonOffset@8 @92
+ glReadPixels@28 @93
+ glReleaseShaderCompiler@0 @94
+ glRenderbufferStorage@16 @95
+ glSampleCoverage@8 @96
+ glScissor@16 @97
+ glShaderBinary@20 @98
+ glShaderSource@16 @99
+ glStencilFunc@12 @100
+ glStencilFuncSeparate@16 @101
+ glStencilMask@4 @102
+ glStencilMaskSeparate@8 @103
+ glStencilOp@12 @104
+ glStencilOpSeparate@16 @105
+ glTexImage2D@36 @106
+ glTexParameterf@12 @107
+ glTexParameterfv@12 @108
+ glTexParameteri@12 @109
+ glTexParameteriv@12 @110
+ glTexSubImage2D@36 @111
+ glUniform1f@8 @112
+ glUniform1fv@12 @113
+ glUniform1i@8 @114
+ glUniform1iv@12 @115
+ glUniform2f@12 @116
+ glUniform2fv@12 @117
+ glUniform2i@12 @118
+ glUniform2iv@12 @119
+ glUniform3f@16 @120
+ glUniform3fv@12 @121
+ glUniform3i@16 @122
+ glUniform3iv@12 @123
+ glUniform4f@20 @124
+ glUniform4fv@12 @125
+ glUniform4i@20 @126
+ glUniform4iv@12 @127
+ glUniformMatrix2fv@16 @128
+ glUniformMatrix3fv@16 @129
+ glUniformMatrix4fv@16 @130
+ glUseProgram@4 @131
+ glValidateProgram@4 @132
+ glVertexAttrib1f@8 @133
+ glVertexAttrib1fv@8 @134
+ glVertexAttrib2f@12 @135
+ glVertexAttrib2fv@8 @136
+ glVertexAttrib3f@16 @137
+ glVertexAttrib3fv@8 @138
+ glVertexAttrib4f@20 @139
+ glVertexAttrib4fv@8 @140
+ glVertexAttribPointer@24 @141
+ glViewport@16 @142
+
+ ; Extensions
+ glTexImage3DOES@40 @143
+ glBlitFramebufferANGLE@40 @149
+ glRenderbufferStorageMultisampleANGLE@20 @150
+ glDeleteFencesNV@8 @151
+ glFinishFenceNV@4 @152
+ glGenFencesNV@8 @153
+ glGetFenceivNV@12 @154
+ glIsFenceNV@4 @155
+ glSetFenceNV@8 @156
+ glTestFenceNV@4 @157
+ glGetTranslatedShaderSourceANGLE@16 @159
+ glTexStorage2DEXT@20 @160
+ glGetGraphicsResetStatusEXT@0 @161
+ glReadnPixelsEXT@32 @162
+ glGetnUniformfvEXT@16 @163
+ glGetnUniformivEXT@16 @164
+ glGenQueriesEXT@8 @165
+ glDeleteQueriesEXT@8 @166
+ glIsQueryEXT@4 @167
+ glBeginQueryEXT@8 @168
+ glEndQueryEXT@4 @169
+ glGetQueryivEXT@12 @170
+ glGetQueryObjectuivEXT@12 @171
+ glVertexAttribDivisorANGLE@8 @172
+ glDrawArraysInstancedANGLE@16 @173
+ glDrawElementsInstancedANGLE@20 @174
+ glProgramBinaryOES@16 @175
+ glGetProgramBinaryOES@20 @176
+ glDrawBuffersEXT@8 @179
+ glMapBufferOES@8 @285
+ glUnmapBufferOES@4 @286
+ glGetBufferPointervOES@12 @287
+ glMapBufferRangeEXT@16 @288
+ glFlushMappedBufferRangeEXT@12 @289
+
+ ; GLES 3.0 Functions
+ glReadBuffer@4 @180
+ glDrawRangeElements@24 @181
+ glTexImage3D@40 @182
+ glTexSubImage3D@44 @183
+ glCopyTexSubImage3D@36 @184
+ glCompressedTexImage3D@36 @185
+ glCompressedTexSubImage3D@44 @186
+ glGenQueries@8 @187
+ glDeleteQueries@8 @188
+ glIsQuery@4 @189
+ glBeginQuery@8 @190
+ glEndQuery@4 @191
+ glGetQueryiv@12 @192
+ glGetQueryObjectuiv@12 @193
+ glUnmapBuffer@4 @194
+ glGetBufferPointerv@12 @195
+ glDrawBuffers@8 @196
+ glUniformMatrix2x3fv@16 @197
+ glUniformMatrix3x2fv@16 @198
+ glUniformMatrix2x4fv@16 @199
+ glUniformMatrix4x2fv@16 @200
+ glUniformMatrix3x4fv@16 @201
+ glUniformMatrix4x3fv@16 @202
+ glBlitFramebuffer@40 @203
+ glRenderbufferStorageMultisample@20 @204
+ glFramebufferTextureLayer@20 @205
+ glMapBufferRange@16 @206
+ glFlushMappedBufferRange@12 @207
+ glBindVertexArray@4 @208
+ glDeleteVertexArrays@8 @209
+ glGenVertexArrays@8 @210
+ glIsVertexArray@4 @211
+ glGetIntegeri_v@12 @212
+ glBeginTransformFeedback@4 @213
+ glEndTransformFeedback@0 @214
+ glBindBufferRange@20 @215
+ glBindBufferBase@12 @216
+ glTransformFeedbackVaryings@16 @217
+ glGetTransformFeedbackVarying@28 @218
+ glVertexAttribIPointer@20 @219
+ glGetVertexAttribIiv@12 @220
+ glGetVertexAttribIuiv@12 @221
+ glVertexAttribI4i@20 @222
+ glVertexAttribI4ui@20 @223
+ glVertexAttribI4iv@8 @224
+ glVertexAttribI4uiv@8 @225
+ glGetUniformuiv@12 @226
+ glGetFragDataLocation@8 @227
+ glUniform1ui@8 @228
+ glUniform2ui@12 @229
+ glUniform3ui@16 @230
+ glUniform4ui@20 @231
+ glUniform1uiv@12 @232
+ glUniform2uiv@12 @233
+ glUniform3uiv@12 @234
+ glUniform4uiv@12 @235
+ glClearBufferiv@12 @236
+ glClearBufferuiv@12 @237
+ glClearBufferfv@12 @238
+ glClearBufferfi@16 @239
+ glGetStringi@8 @240
+ glCopyBufferSubData@20 @241
+ glGetUniformIndices@16 @242
+ glGetActiveUniformsiv@20 @243
+ glGetUniformBlockIndex@8 @244
+ glGetActiveUniformBlockiv@16 @245
+ glGetActiveUniformBlockName@20 @246
+ glUniformBlockBinding@12 @247
+ glDrawArraysInstanced@16 @248
+ glDrawElementsInstanced@20 @249
+ glFenceSync@8 @250
+ glIsSync@4 @251
+ glDeleteSync@4 @252
+ glClientWaitSync@16 @253
+ glWaitSync@16 @254
+ glGetInteger64v@8 @255
+ glGetSynciv@20 @256
+ glGetInteger64i_v@12 @257
+ glGetBufferParameteri64v@12 @258
+ glGenSamplers@8 @259
+ glDeleteSamplers@8 @260
+ glIsSampler@4 @261
+ glBindSampler@8 @262
+ glSamplerParameteri@12 @263
+ glSamplerParameteriv@12 @264
+ glSamplerParameterf@12 @265
+ glSamplerParameterfv@12 @266
+ glGetSamplerParameteriv@12 @267
+ glGetSamplerParameterfv@12 @268
+ glVertexAttribDivisor@8 @269
+ glBindTransformFeedback@8 @270
+ glDeleteTransformFeedbacks@8 @271
+ glGenTransformFeedbacks@8 @272
+ glIsTransformFeedback@4 @273
+ glPauseTransformFeedback@0 @274
+ glResumeTransformFeedback@0 @275
+ glGetProgramBinary@20 @276
+ glProgramBinary@16 @277
+ glProgramParameteri@12 @278
+ glInvalidateFramebuffer@12 @279
+ glInvalidateSubFramebuffer@28 @280
+ glTexStorage2D@20 @281
+ glTexStorage3D@24 @282
+ glGetInternalformativ@20 @283
+
+ ; Setting up TRACE macro callbacks
+ SetTraceFunctionPointers @284
+
+ ; ANGLE Platform Implementation
+ ANGLEPlatformCurrent @290
+ ANGLEPlatformInitialize @291
+ ANGLEPlatformShutdown @292
+
+ ; EGL dependencies
+ glCreateContext @144 NONAME
+ glDestroyContext @145 NONAME
+ glMakeCurrent @146 NONAME
+ glGetCurrentContext @147 NONAME
+ glGetProcAddress@4 @148 NONAME
+ glBindTexImage@4 @158 NONAME
+ glCreateRenderer @177 NONAME
+ glDestroyRenderer @178 NONAME
diff --git a/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch b/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch
new file mode 100644
index 0000000000..c0fe83b85c
--- /dev/null
+++ b/mingw-w64-ansicon-git/0001-Do-not-invoke-cmd-in-makefile.patch
@@ -0,0 +1,42 @@
+From ba0444146c35848917101b28f3463cd0df08a02d Mon Sep 17 00:00:00 2001
+From: David Macek
+Date: Tue, 10 Mar 2015 00:22:35 +0100
+Subject: [PATCH] Do not invoke cmd in makefile
+
+---
+ makefile.gcc | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/makefile.gcc b/makefile.gcc
+index 7000335..281cbe7 100644
+--- a/makefile.gcc
++++ b/makefile.gcc
+@@ -90,7 +90,7 @@ ansicon32: x86 x86/ansicon.exe x86/ANSI32.dll x64 x64/ANSI32.dll
+ ansicon64: x64 x64/ansicon.exe x64/ANSI64.dll
+
+ x86:
+- cmd /c "mkdir x86"
++ mkdir x86
+
+ x86/ansicon.exe: x86/ansicon.o $(X86OBJS) x86/procrva.o x86/ansiconv.o
+ $(LDmsg)$(CC) -m32 $+ -s -o $@ $(IVER)
+@@ -99,7 +99,7 @@ x86/ANSI32.dll: x86/ANSI.o $(X86OBJS) x86/ansiv.o
+ $(LDmsg)$(CC) -m32 $+ -s -o $@ -mdll -Wl,-shared,--image-base,0xAC0000
+
+ x64:
+- cmd /c "mkdir x64"
++ mkdir x64
+
+ x64/ansicon.exe: x64/ansicon.o $(X64OBJS) x64/ansiconv.o
+ $(LDmsg)$(CC) -m64 $+ -s -o $@ $(IVER)
+@@ -121,5 +121,5 @@ x64/util.o: version.h
+ # Need two commands, because if the directory doesn't exist, it won't delete
+ # anything at all.
+ clean:
+- -cmd /c "del x86\*.o 2>nul"
+- -cmd /c "del x64\*.o 2>nul"
++ rm -f x86\*.o
++ rm -f x64\*.o
+--
+2.3.1
+
diff --git a/mingw-w64-ansicon-git/PKGBUILD b/mingw-w64-ansicon-git/PKGBUILD
new file mode 100644
index 0000000000..4280a0b160
--- /dev/null
+++ b/mingw-w64-ansicon-git/PKGBUILD
@@ -0,0 +1,62 @@
+# Maintainer: David Macek
+
+_realname=ansicon
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}-git"
+pkgver=1.70.r65.3acc7a9
+pkgrel=2
+pkgdesc="Process ANSI escape sequences for Windows console programs (mingw-w64)"
+arch=('any')
+url="http://adoxa.altervista.org/ansicon/"
+license=("zlib")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "git")
+provides=("${MINGW_PACKAGE_PREFIX}-${_realname}")
+conflicts=("${MINGW_PACKAGE_PREFIX}-${_realname}")
+source=("git+https://github.com/adoxa/ansicon.git"
+ "0001-Do-not-invoke-cmd-in-makefile.patch"
+ "ansicon.bat")
+md5sums=('SKIP'
+ '50d56e1bb2591b895305e0070b96699a'
+ 'f1d2f1358bf4a2140383a1327b8882ef')
+
+pkgver() {
+ cd ${srcdir}/${_realname}
+ printf "%s.r%s.%s" "$(grep PVERSA version.h | sed -r 's/.*"(.+)".*/\1/')" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "${srcdir}/${_realname}"
+ patch -p1 -i "${srcdir}/0001-Do-not-invoke-cmd-in-makefile.patch"
+}
+
+build() {
+ local _bit
+ case ${CARCH} in
+ x86_64) _bit=64 ;;
+ i686) _bit=32 ;;
+ esac
+
+ cd "${srcdir}/${_realname}"
+ ARCH=${_bit} make -f makefile.gcc
+}
+
+package() {
+ local _arch _bit
+ case ${CARCH} in
+ x86_64) _arch=64; _bit=64 ;;
+ i686) _arch=86; _bit=32 ;;
+ esac
+
+ cd "${srcdir}/${_realname}"
+
+ mkdir -p "${pkgdir}${MINGW_PREFIX}/bin"
+ cp "${srcdir}/ansicon.bat" "${pkgdir}${MINGW_PREFIX}/bin"
+ cp "x${_arch}/ansicon.exe" "${pkgdir}${MINGW_PREFIX}/bin/ansicon_x${_arch}.exe"
+ cp "x${_arch}/ansi${_bit}.dll" "${pkgdir}${MINGW_PREFIX}/bin/ansi${_bit}.dll"
+
+ mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}"
+ cp readme.* sequences.txt G1.* "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}"
+
+ mkdir -p "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
+ cp LICENSE.txt "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}"
+}
diff --git a/mingw-w64-ansicon-git/ansicon.bat b/mingw-w64-ansicon-git/ansicon.bat
new file mode 100644
index 0000000000..b46c40d2cd
--- /dev/null
+++ b/mingw-w64-ansicon-git/ansicon.bat
@@ -0,0 +1,56 @@
+::
+:: Copyright (c) 2012 Martin Ridgers
+::
+::
+:: Permission is hereby granted, free of charge, to any person obtaining a copy
+:: of this software and associated documentation files (the "Software"), to deal
+:: in the Software without restriction, including without limitation the rights
+:: to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+:: copies of the Software, and to permit persons to whom the Software is
+:: furnished to do so, subject to the following conditions:
+::
+:: The above copyright notice and this permission notice shall be included in
+:: all copies or substantial portions of the Software.
+::
+:: THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+:: IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+:: FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+:: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+:: LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+:: OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+:: SOFTWARE.
+::
+
+@echo off
+
+:: Pass through to appropriate loader.
+::
+if /i "%PROCESSOR_ARCHITECTURE%"=="x86" (
+ call :loader_x86 %*
+) else if /i "%PROCESSOR_ARCHITECTURE%"=="amd64" (
+ call :loader_x64 %*
+)
+
+:end
+goto :eof
+
+:: Helper functions to avoid cmd.exe's issues with brackets.
+:loader_x86
+if exist "%~dp0../../mingw32/bin/%~n0_x86.exe" (
+ "%~dp0../../mingw32/bin/%~n0_x86.exe" %*
+ exit /b 0
+) else (
+ echo Cannot find "%~dp0../../mingw32/bin/%~n0_x86.exe" >&2
+ exit /b 1
+)
+
+:loader_x64
+if exist "%~dp0../../mingw64/bin/%~n0_x64.exe" (
+ "%~dp0../../mingw64/bin/%~n0_x64.exe" %*
+ exit /b 0
+) else (
+ echo Cannot find "%~dp0../../mingw64/bin/%~n0_x64.exe" >&2
+ exit /b 1
+)
+
+exit /b 0
diff --git a/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch b/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch
new file mode 100644
index 0000000000..3a66e4b23c
--- /dev/null
+++ b/mingw-w64-antiword/0001-Make-antiword.exe-relocatable-on-Windows.patch
@@ -0,0 +1,144 @@
+From 80bde3fbfa74a884b71e6900b9b0be79fbbce35b Mon Sep 17 00:00:00 2001
+From: Johannes Schindelin
+Date: Thu, 1 Oct 2015 14:59:12 +0200
+Subject: [PATCH] Make antiword.exe relocatable on Windows
+
+This change allows antiword to find its resource files relative to the
+executable file: it is expected to live in `/bin/antiword.exe`
+and the resource files will be found in `/share/antiword/`.
+
+Signed-off-by: Johannes Schindelin
+---
+ antiword.h | 1 +
+ fonts_u.c | 2 +-
+ misc.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ options.c | 17 +++--------------
+ 4 files changed, 68 insertions(+), 15 deletions(-)
+
+diff --git a/antiword.h b/antiword.h
+index 3f4aad5..d24b640 100644
+--- a/antiword.h
++++ b/antiword.h
+@@ -454,6 +454,7 @@ extern BOOL bAllZero(const UCHAR *, size_t);
+ extern BOOL bGetNormalizedCodeset(char *, size_t, BOOL *);
+ extern const char *szGetDefaultMappingFile(void);
+ extern time_t tConvertDTTM(ULONG);
++extern FILE *fOpenResource(const char *szFilename, const char *szSuffix);
+ /* notes.c */
+ extern void vDestroyNotesInfoLists(void);
+ extern void vGetNotesInfo(FILE *, const pps_info_type *,
+diff --git a/fonts_u.c b/fonts_u.c
+index a99f7d2..280a7f2 100644
+--- a/fonts_u.c
++++ b/fonts_u.c
+@@ -78,7 +78,7 @@ pOpenFontTableFile(void)
+ szGlobalFile = GLOBAL_ANTIWORD_DIR FILE_SEPARATOR FONTNAMES_FILE;
+ DBG_MSG(szGlobalFile);
+
+- pFile = fopen(szGlobalFile, "r");
++ pFile = fOpenResource(FONTNAMES_FILE, "r");
+ if (pFile != NULL) {
+ return pFile;
+ }
+diff --git a/misc.c b/misc.c
+index 609a2f0..a9610d0 100644
+--- a/misc.c
++++ b/misc.c
+@@ -892,3 +892,66 @@ tConvertDTTM(ULONG ulDTTM)
+ NO_DBG_MSG(ctime(&tResult));
+ return tResult;
+ } /* end of tConvertDTTM */
++
++#ifdef __MINGW64_VERSION_MAJOR
++#define WIN32_LEAN_AND_MEAN
++#include
++#endif
++
++/*
++ * Opens an Antiword resource file
++ *
++ * returns the handle for the file, or NULL
++ */
++FILE
++*fOpenResource(const char *szFilename, const char *szSuffix)
++{
++#ifndef __MINGW64_VERSION_MAJOR
++ static char szPath[PATH_MAX+1];
++
++ snprintf(szPath, sizeof(szPath),
++ GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s",
++ szFilename, szSuffix ? szSuffix : "");
++#else
++ static char szPath[32768];
++ static size_t tPrefixLen = (size_t)-1;
++
++ if (tPrefixLen == (size_t)-1) {
++ tPrefixLen = (size_t)
++ GetModuleFileName(NULL, szPath, sizeof(szPath));
++ if (tPrefixLen && tPrefixLen < sizeof(szPath)) {
++ const char *dir = GLOBAL_ANTIWORD_DIR;
++
++ /* Strip suffix `antiword.exe` */
++ while (tPrefixLen > 0 && szPath[tPrefixLen-1] != '\\') {
++ tPrefixLen--;
++ }
++ /* Strip `bin/` directory */
++ if (tPrefixLen > 5 && !memcmp(szPath+(tPrefixLen-5),
++ "\\bin\\",5)) {
++ tPrefixLen -= 4;
++ }
++ /* Append GLOBAL_ANTIWORD_DIR, skipping /usr/ or / */
++ if (*dir && *dir == '/') {
++ dir++;
++ if (!memcmp(dir, "usr/", 4))
++ dir += 4;
++ }
++ while (*dir && tPrefixLen < sizeof(szPath)-1) {
++ char c = *(dir++);
++ szPath[tPrefixLen++] = c == '/' ? '\\' : c;
++ }
++ /* Make sure the prefix ends in a file separator */
++ if (tPrefixLen && tPrefixLen < sizeof(szPath)-1 &&
++ szPath[tPrefixLen-1] != '\\') {
++ szPath[tPrefixLen++] = '\\';
++ }
++ szPath[tPrefixLen]='\0';
++ }
++ }
++
++ snprintf(szPath + tPrefixLen, sizeof(szPath) - tPrefixLen,
++ "%s%s", szFilename, szSuffix ? szSuffix : "");
++#endif
++ return fopen(szPath, "r");
++} /* end of fOpenResource */
+diff --git a/options.c b/options.c
+index 8379fef..dd6ced9 100644
+--- a/options.c
++++ b/options.c
+@@ -236,20 +236,9 @@ pOpenCharacterMappingFile(const char *szLeafname)
+ }
+
+ /* Try the global version of the mapping file */
+- if (tFilenameLen <
+- sizeof(szMappingFile) -
+- sizeof(GLOBAL_ANTIWORD_DIR) -
+- sizeof(FILE_SEPARATOR)) {
+- sprintf(szMappingFile,
+- GLOBAL_ANTIWORD_DIR FILE_SEPARATOR "%s%s",
+- szLeafname, szSuffix);
+- DBG_MSG(szMappingFile);
+- pFile = fopen(szMappingFile, "r");
+- if (pFile != NULL) {
+- return pFile;
+- }
+- } else {
+- werr(0, "Global mappingfilename too long, ignored");
++ pFile = fOpenResource(szLeafname, szSuffix);
++ if (pFile != NULL) {
++ return pFile;
+ }
+ werr(0, "I can't open your mapping file (%s%s)\n"
+ "It is not in '%s" FILE_SEPARATOR ANTIWORD_DIR "' nor in '"
+--
+2.5.3.windows.1
+
diff --git a/mingw-w64-antiword/PKGBUILD b/mingw-w64-antiword/PKGBUILD
new file mode 100644
index 0000000000..eb745d6848
--- /dev/null
+++ b/mingw-w64-antiword/PKGBUILD
@@ -0,0 +1,66 @@
+# Maintainer: Matthias Aßhauer
+
+_realname=antiword
+pkgbase=mingw-w64-${_realname}
+pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
+pkgver=0.37
+pkgrel=2
+pkgdesc="Convert MS Word 2.0-2003 documents to plain text or PostScript (mingw-w64)"
+arch=('any')
+license=('GPL3+')
+url="http://www.winfield.demon.nl/"
+options=('strip')
+source=("http://www.winfield.demon.nl/linux/${_realname}-${pkgver}.tar.gz"
+ "0001-Make-antiword.exe-relocatable-on-Windows.patch")
+md5sums=('f868e2a269edcbc06bf77e89a55898d1'
+ 'db9a6ceb7df5b16bcfe00fe856205d86')
+provides=("${_realname}")
+noextract=("${_realname}-${pkgver}.tar.gz")
+
+prepare(){
+ tar xzf "${_realname}-${pkgver}.tar.gz" || tar xzf "${_realname}-${pkgver}.tar.gz"
+ cd "${srcdir}/${_realname}-${pkgver}"
+ patch -p1 -i "${srcdir}/0001-Make-antiword.exe-relocatable-on-Windows.patch"
+}
+
+build() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ make -f Makefile.Linux clean
+ make -f Makefile.Linux ${_realname}
+}
+
+package() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ install -D -m755 ${_realname}.exe ${pkgdir}${MINGW_PREFIX}/bin/${_realname}.exe
+ install -D -m755 Resources/8859-1.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-1.txt
+ install -D -m755 Resources/8859-2.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-2.txt
+ install -D -m755 Resources/8859-3.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-3.txt
+ install -D -m755 Resources/8859-4.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-4.txt
+ install -D -m755 Resources/8859-5.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-5.txt
+ install -D -m755 Resources/8859-6.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-6.txt
+ install -D -m755 Resources/8859-7.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-7.txt
+ install -D -m755 Resources/8859-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-8.txt
+ install -D -m755 Resources/8859-9.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-9.txt
+ install -D -m755 Resources/8859-10.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-10.txt
+ install -D -m755 Resources/8859-11.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-11.txt
+ install -D -m755 Resources/8859-13.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-13.txt
+ install -D -m755 Resources/8859-14.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-14.txt
+ install -D -m755 Resources/8859-15.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-15.txt
+ install -D -m755 Resources/8859-16.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/8859-16.txt
+ install -D -m755 Resources/cp437.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp437.txt
+ install -D -m755 Resources/cp850.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp850.txt
+ install -D -m755 Resources/cp852.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp852.txt
+ install -D -m755 Resources/cp862.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp862.txt
+ install -D -m755 Resources/cp864.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp864.txt
+ install -D -m755 Resources/cp866.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp866.txt
+ install -D -m755 Resources/cp1250.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1250.txt
+ install -D -m755 Resources/cp1251.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1251.txt
+ install -D -m755 Resources/cp1252.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/cp1252.txt
+ install -D -m755 Resources/koi8-r.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-r.txt
+ install -D -m755 Resources/koi8-u.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/koi8-u.txt
+ install -D -m755 Resources/MacCyrillic.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacCyrillic.txt
+ install -D -m755 Resources/MacRoman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/MacRoman.txt
+ install -D -m755 Resources/roman.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/roman.txt
+ install -D -m755 Resources/UTF-8.txt ${pkgdir}${MINGW_PREFIX}/share/${_realname}/UTF-8.txt
+ install -D -m755 Resources/fontnames ${pkgdir}${MINGW_PREFIX}/share/${_realname}/fontnames
+}
diff --git a/mingw-w64-apr-util/PKGBUILD b/mingw-w64-apr-util/PKGBUILD
new file mode 100644
index 0000000000..dbdab3f7c4
--- /dev/null
+++ b/mingw-w64-apr-util/PKGBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Alexey Pavlov
+
+_realname=apr-util
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=1.5.4
+pkgrel=2
+pkgdesc="The Apache Portable Runtime (mingw-w64)"
+arch=('any')
+url="http://apr.apache.org/"
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool")
+depends=("${MINGW_PACKAGE_PREFIX}-apr"
+ "${MINGW_PACKAGE_PREFIX}-expat"
+ "${MINGW_PACKAGE_PREFIX}-sqlite3")
+options=('!libtool')
+license=('APACHE')
+source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc}
+ plugins.patch)
+md5sums=('2202b18f269ad606d70e1864857ed93c'
+ 'SKIP'
+ '9db9f3c4b14749988e9133aaa0658fcd')
+
+prepare() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ patch -p1 -i ${srcdir}/plugins.patch
+ #./buildconf --with-apr=${MINGW_PREFIX}
+ autoreconf -fi
+}
+
+build() {
+ [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
+ mkdir -p build-${MINGW_CHOST}
+ cd build-${MINGW_CHOST}
+
+ ../${_realname}-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --build=${MINGW_CHOST} \
+ --target=${MINGW_CHOST} \
+ --host=${MINGW_CHOST} \
+ --with-apr=${MINGW_PREFIX} \
+ --with-expat=${MINGW_PREFIX} \
+ --without-gdbm \
+ --without-ldap \
+ --without-pgsql \
+ --with-sqlite3=${MINGW_PREFIX}
+
+ make -j1
+}
+
+check() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make -j1 check
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/mingw-w64-apr-util/plugins.patch b/mingw-w64-apr-util/plugins.patch
new file mode 100644
index 0000000000..8024bf79ce
--- /dev/null
+++ b/mingw-w64-apr-util/plugins.patch
@@ -0,0 +1,36 @@
+
+
+From: David Rothenberger
+
+
+---
+ Makefile.in | 2 +-
+ ldap/apr_ldap_stub.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 963fead..c9827de 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -23,7 +23,7 @@ INSTALL = @INSTALL@
+ INSTALL_DATA = @INSTALL_DATA@
+
+ APU_MODULES = @APU_MODULES@
+-LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -rpath $(APU_DSO_LIBDIR)
++LINK_MODULE = $(LIBTOOL) $(LTFLAGS) --mode=link $(CC) $(LT_LDFLAGS) $(ALL_CFLAGS) $(ALL_LDFLAGS) $(APRUTIL_LDFLAGS) -release $(APRUTIL_MAJOR_VERSION) -module -no-undefined -rpath $(APU_DSO_LIBDIR) @abs_builddir@/lib@APRUTIL_LIBNAME@.la $(APRUTIL_LIBS)
+ APU_DSO_LIBDIR = @APU_DSO_LIBDIR@
+
+ LT_VERSION = @APU_LTVERSION@
+diff --git a/ldap/apr_ldap_stub.c b/ldap/apr_ldap_stub.c
+index 97c1551..9df76b7 100644
+--- a/ldap/apr_ldap_stub.c
++++ b/ldap/apr_ldap_stub.c
+@@ -45,7 +45,7 @@ static apr_status_t load_ldap(apr_pool_t *pool)
+ return rv;
+ }
+
+-#if defined(WIN32)
++#if defined(WIN32) || defined(__CYGWIN__)
+ modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".dll";
+ #else
+ modname = "apr_ldap-" APU_STRINGIFY(APU_MAJOR_VERSION) ".so";
diff --git a/mingw-w64-apr/PKGBUILD b/mingw-w64-apr/PKGBUILD
new file mode 100644
index 0000000000..7dc0c6b3c1
--- /dev/null
+++ b/mingw-w64-apr/PKGBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Drew Waranis
+
+_realname=apr
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=1.5.2
+pkgrel=2
+pkgdesc="The Apache Portable Runtime (mingw-w64)"
+arch=('any')
+url="https://apr.apache.org/"
+license=('APACHE')
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-libtool")
+source=(http://www.apache.org/dist/apr/${_realname}-${pkgver}.tar.bz2{,.asc}
+ 'apr_ssize_t.patch'
+ 'apr_wtypes.patch')
+md5sums=('4e9769f3349fe11fc0a5e1b224c236aa'
+ 'SKIP'
+ 'b91081b97f838246446c5795371faf6a'
+ '0326d335f035f8f13dea4296efb1faab')
+
+prepare() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+
+ patch -p0 -i ${srcdir}/apr_ssize_t.patch
+ patch -p0 -i ${srcdir}/apr_wtypes.patch
+
+ ./buildconf
+ # autoreconf -fi
+}
+
+build() {
+ [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
+ mkdir -p build-${MINGW_CHOST}
+ cd build-${MINGW_CHOST}
+
+ # Disable IPv6.
+ ../${_realname}-${pkgver}/configure \
+ --prefix="${MINGW_PREFIX}" \
+ --includedir="${MINGW_PREFIX}/include/apr-1" \
+ --with-installbuilddir="${MINGW_PREFIX}/share/apr-1/build" \
+ --enable-nonportable-atomics \
+ --with-devrandom=/dev/urandom \
+ --disable-ipv6
+
+ make
+}
+
+#check() {
+# cd "${srcdir}/build-${MINGW_CHOST}"
+# make -j1 check
+#}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/mingw-w64-apr/apr_ssize_t.patch b/mingw-w64-apr/apr_ssize_t.patch
new file mode 100644
index 0000000000..5cb261b909
--- /dev/null
+++ b/mingw-w64-apr/apr_ssize_t.patch
@@ -0,0 +1,24 @@
+Index: configure.in
+===================================================================
+--- configure.in (revision 1161414)
++++ configure.in (working copy)
+@@ -1643,6 +1643,9 @@
+ elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long"; then
+ ssize_t_fmt="ld"
+ AC_MSG_RESULT(%ld)
++elif test "$ac_cv_sizeof_ssize_t" = "$ac_cv_sizeof_long_long"; then
++ ssize_t_fmt="lld"
++ AC_MSG_RESULT(%lld)
+ else
+ AC_ERROR([could not determine the proper format for apr_ssize_t])
+ fi
+@@ -1660,6 +1663,9 @@
+ elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long"; then
+ size_t_fmt="ld"
+ AC_MSG_RESULT(%ld)
++elif test "$ac_cv_sizeof_size_t" = "$ac_cv_sizeof_long_long"; then
++ size_t_fmt="lld"
++ AC_MSG_RESULT(%lld)
+ else
+ AC_ERROR([could not determine the proper format for apr_size_t])
+ fi
diff --git a/mingw-w64-apr/apr_wtypes.patch b/mingw-w64-apr/apr_wtypes.patch
new file mode 100644
index 0000000000..6024b55fd8
--- /dev/null
+++ b/mingw-w64-apr/apr_wtypes.patch
@@ -0,0 +1,30 @@
+--- include/arch/win32/apr_private.h.orig 2014-07-03 14:34:47 -0500
++++ include/arch/win32/apr_private.h 2014-07-03 14:35:51 -0500
+@@ -45,13 +45,9 @@
+ */
+ #ifndef _WIN32_WCE
+ #define HAVE_ACLAPI 1
+-#ifdef __wtypes_h__
++#define COM_NO_WINDOWS_H
+ #include
+-#else
+-#define __wtypes_h__
+-#include
+-#undef __wtypes_h__
+-#endif
++#undef COM_NO_WINDOWS_H
+ #else
+ #define HAVE_ACLAPI 0
+ #endif
+--- file_io/win32/filestat.c.orig 2014-07-03 14:42:41 -0500
++++ file_io/win32/filestat.c 2014-07-03 14:43:09 -0500
+@@ -15,7 +15,9 @@
+ */
+
+ #include "apr.h"
++#define COM_NO_WINDOWS_H
+ #include
++#undef COM_NO_WINDOWS_H
+ #include "apr_private.h"
+ #include "apr_arch_file_io.h"
+ #include "apr_file_io.h"
diff --git a/mingw-w64-aria2/0001-libintl-vprintf.patch b/mingw-w64-aria2/0001-libintl-vprintf.patch
deleted file mode 100644
index 09a0c08956..0000000000
--- a/mingw-w64-aria2/0001-libintl-vprintf.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/OutputFile.h.orig 2014-09-11 18:24:10.000000000 +0200
-+++ src/OutputFile.h 2014-10-05 03:19:06.818377800 +0200
-@@ -40,6 +40,9 @@
- #include
- #include
-
-+// include just to cancel libintl's #define vprintf libintl_vprintf
-+#include
-+
- namespace aria2 {
-
- class OutputFile {
diff --git a/mingw-w64-aria2/PKGBUILD b/mingw-w64-aria2/PKGBUILD
index e38867a4c4..6f08c1aae6 100644
--- a/mingw-w64-aria2/PKGBUILD
+++ b/mingw-w64-aria2/PKGBUILD
@@ -1,50 +1,46 @@
# Maintainer: David Macek
_realname=aria2
+pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
-pkgver=1.18.8
-pkgrel=2
+pkgver=1.19.2
+pkgrel=1
pkgdesc="A multi-protocol & multi-source, cross platform download utility (mingw-w64)"
arch=('any')
url="http://aria2.sourceforge.net/"
license=('GPL2')
-makedepends=("${MINGW_PACKAGE_PREFIX}-pkg-config"
- "${MINGW_PACKAGE_PREFIX}-gcc")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-pkg-config")
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-gettext"
"${MINGW_PACKAGE_PREFIX}-c-ares"
+ "${MINGW_PACKAGE_PREFIX}-cppunit"
+ "${MINGW_PACKAGE_PREFIX}-libiconv"
+ "${MINGW_PACKAGE_PREFIX}-libssh2"
+ "${MINGW_PACKAGE_PREFIX}-libuv"
+ "${MINGW_PACKAGE_PREFIX}-libxml2"
"${MINGW_PACKAGE_PREFIX}-openssl"
"${MINGW_PACKAGE_PREFIX}-sqlite3"
- "${MINGW_PACKAGE_PREFIX}-gmp"
- "${MINGW_PACKAGE_PREFIX}-nettle"
- "${MINGW_PACKAGE_PREFIX}-libxml2"
- "${MINGW_PACKAGE_PREFIX}-libgcrypt"
- "${MINGW_PACKAGE_PREFIX}-libiconv"
- "${MINGW_PACKAGE_PREFIX}-expat"
"${MINGW_PACKAGE_PREFIX}-zlib"
- "${MINGW_PACKAGE_PREFIX}-libuv")
-optdepends=(
- "${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon")
-source=("http://sourceforge.net/projects/aria2/files/stable/$_realname-$pkgver/$_realname-$pkgver.tar.xz"
- '0001-libintl-vprintf.patch')
-md5sums=('3e03b8a6faf36fd76e6ffb58b5d6f6a5'
- '67473d1562bce194b78e64f67adff650')
+ )
+optdepends=("${MINGW_PACKAGE_PREFIX}-ruby: aria2rpc and aria2mon")
+source=(${_realname}-${pkgver}.tar.gz::https://github.com/tatsuhiro-t/aria2/archive/release-${pkgver}.tar.gz)
+md5sums=('38e18cb9856bc592c5fc8c2dd687bf38')
prepare() {
- cd "${srcdir}"/${_realname}-${pkgver}
- patch -p0 -i "${srcdir}"/0001-libintl-vprintf.patch
+ cd "${_realname}-release-${pkgver}"
+ autoreconf -fiv
}
build() {
- mkdir -p "${srcdir}"/build-${CARCH}
- cd "${srcdir}"/build-${CARCH}
-
- # add missing library
- export LIBS=-lintl
+ [[ -d build-${MINGW_CHOST} ]] && rm -rf build-${MINGW_CHOST}
+ mkdir -p build-${MINGW_CHOST}
+ cd build-${MINGW_CHOST}
# disabling gnutls and wintls so we will fall back to openssl
- ../${_realname}-${pkgver}/configure \
+ ../${_realname}-release-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
+ --with-bashcompletiondir=${MINGW_PREFIX}/share/bash-completion/completions \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-static \
@@ -52,15 +48,19 @@ build() {
--without-gnutls \
--without-wintls \
--enable-libaria2
+
make
}
package() {
- cd "${srcdir}"/build-${CARCH}
+ cd "build-${MINGW_CHOST}"
make DESTDIR="${pkgdir}" install
- cd "${srcdir}"/${_realname}-${pkgver}
+
+ cd "../${_realname}-release-${pkgver}"
+
install -Dm0755 doc/xmlrpc/aria2rpc "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc
install -Dm0755 doc/xmlrpc/aria2mon "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon
echo '@ruby -- "%~dp0aria2rpc" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2rpc.cmd
echo '@ruby -- "%~dp0aria2mon" %*' > "${pkgdir}"${MINGW_PREFIX}/bin/aria2mon.cmd
+ rm ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/xmlrpc/aria2{rpc,mon}
}
diff --git a/mingw-w64-aribb24/PKGBUILD b/mingw-w64-aribb24/PKGBUILD
index e4a0268477..a730279f7d 100644
--- a/mingw-w64-aribb24/PKGBUILD
+++ b/mingw-w64-aribb24/PKGBUILD
@@ -3,7 +3,7 @@
_realname=aribb24
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.0.3
-pkgrel=1
+pkgrel=2
pkgdesc="A library for ARIB STD-B24, decoding JIS 8 bit characters and parsing MPEG-TS stream (mingw-w64)"
arch=('any')
url="https://github.com/nkoriyama/aribb24"
@@ -25,16 +25,17 @@ prepare() {
build() {
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
- "${srcdir}"/${_realname}-${pkgver}/configure \
+ ../${_realname}-${pkgver}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--enable-static \
--enable-shared
+
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
- make -j1 DESTDIR="$pkgdir" install
+ make -j1 DESTDIR="${pkgdir}" install
}
diff --git a/mingw-w64-arm-none-eabi-newlib/PKGBUILD b/mingw-w64-arm-none-eabi-newlib/PKGBUILD
index da1630dd04..dc6476d5f0 100644
--- a/mingw-w64-arm-none-eabi-newlib/PKGBUILD
+++ b/mingw-w64-arm-none-eabi-newlib/PKGBUILD
@@ -123,7 +123,7 @@ build() {
--disable-nls \
CFLAGS="${NEWLIB_CFLAGS}" \
PATH="${armgccpath}:${PATH}"
- make PATH="${armgccpath}:${PATH}"
+ make PATH="${armgccpath}:${PATH}"
}
package() {
diff --git a/mingw-w64-armadillo/0001-mingw-config-fix.patch b/mingw-w64-armadillo/0001-mingw-config-fix.patch
new file mode 100644
index 0000000000..1243ef002d
--- /dev/null
+++ b/mingw-w64-armadillo/0001-mingw-config-fix.patch
@@ -0,0 +1,23 @@
+diff -Naur a/include/armadillo_bits/config.hpp.cmake b/include/armadillo_bits/config.hpp.cmake
+--- a/include/armadillo_bits/config.hpp.cmake 2015-04-10 11:54:47.000000000 +0600
++++ b/include/armadillo_bits/config.hpp.cmake 2015-05-17 14:14:07.119929900 +0600
+@@ -6,7 +6,18 @@
+ // License, v. 2.0. If a copy of the MPL was not distributed with this
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-
++#if defined(_WIN64)
++ #if !defined(ARMA_BLAS_LONG) && !defined(ARMA_BLAS_LONG_LONG)
++ #define ARMA_BLAS_LONG_LONG
++ #endif
++ #if !defined(ARMA_64BIT_WORD)
++ #define ARMA_64BIT_WORD
++ #endif
++#elif defined(_WIN32)
++ #if !defined(ARMA_32BIT_WORD)
++ #define ARMA_32BIT_WORD
++ #endif
++#endif
+
+ #if !defined(ARMA_USE_LAPACK)
+ #cmakedefine ARMA_USE_LAPACK
diff --git a/mingw-w64-armadillo/PKGBUILD b/mingw-w64-armadillo/PKGBUILD
new file mode 100644
index 0000000000..01dc2120e3
--- /dev/null
+++ b/mingw-w64-armadillo/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Hurcan Solter
+
+_realname=armadillo
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=6.200.4
+pkgrel=1
+pkgdesc="C++ linear algebra library (mingw-w64)"
+arch=('any')
+url="http://arma.sourceforge.net/"
+license=(MPL2)
+depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
+ "${MINGW_PACKAGE_PREFIX}-openblas")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc"
+ "${MINGW_PACKAGE_PREFIX}-cmake")
+install=${_realname}-${CARCH}.install
+source=(http://sourceforge.net/projects/arma/files/${_realname}-${pkgver}.tar.gz
+ 0001-mingw-config-fix.patch)
+md5sums=('20c9de6ad06b4339a7fd3f67d78922e4'
+ '5ce663ba53e15ee85fcd7a0b01006672')
+
+prepare() {
+ cd "${srcdir}/${_realname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/0001-mingw-config-fix.patch"
+}
+
+build() {
+ [[ -d ${srcdir}/build-${MINGW_CHOST} ]] && rm -rf ${srcdir}/build-${MINGW_CHOST}
+ mkdir -p ${srcdir}/build-${MINGW_CHOST} && cd ${srcdir}/build-${MINGW_CHOST}
+
+ MSYS2_ARG_CONV_EXCL="-DCMAKE_INSTALL_PREFIX=" \
+ ${MINGW_PREFIX}/bin/cmake.exe \
+ -G"MSYS Makefiles" \
+ -DCMAKE_INSTALL_PREFIX=${MINGW_PREFIX} \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLAPACK_NAMES=openblas \
+ ../${_realname}-${pkgver}
+
+ make
+}
+
+package() {
+ cd "${srcdir}/build-${MINGW_CHOST}"
+ make DESTDIR=${pkgdir} install
+
+ #local _INSTALL_PREFIX_WIN="$(cygpath -am "${pkgdir}${MINGW_PREFIX}")"
+ #local _MINGW_PREFIX_WIN="$(cygpath -am "${MINGW_PREFIX}")"
+
+ #sed -s -e "s|${_INSTALL_PREFIX_WIN}|${MINGW_PREFIX}|g" \
+ # -e "s|${_MINGW_PREFIX_WIN}|${MINGW_PREFIX}|g" -i "${pkgdir}${MINGW_PREFIX}/share/Armadillo/CMake/"*.cmake
+
+ install -d ${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}
+ install -m644 "${srcdir}/${_realname}-${pkgver}/"*{.html,.png,.pdf,README.txt} \
+ "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}/"
+
+ install -Dm644 "${srcdir}/${_realname}-${pkgver}/LICENSE.txt" \
+ "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE.txt"
+}
diff --git a/mingw-w64-armadillo/armadillo-i686.install b/mingw-w64-armadillo/armadillo-i686.install
new file mode 100644
index 0000000000..5d8ea57482
--- /dev/null
+++ b/mingw-w64-armadillo/armadillo-i686.install
@@ -0,0 +1,9 @@
+post_install() {
+ local _prefix="/mingw32"
+ local _prefix_win="$(cygpath -m "${_prefix}")"
+ sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/mingw-w64-armadillo/armadillo-x86_64.install b/mingw-w64-armadillo/armadillo-x86_64.install
new file mode 100644
index 0000000000..d91d264725
--- /dev/null
+++ b/mingw-w64-armadillo/armadillo-x86_64.install
@@ -0,0 +1,9 @@
+post_install() {
+ local _prefix="/mingw64"
+ local _prefix_win="$(cygpath -m "${_prefix}")"
+ sed -s "s|${_prefix}|${_prefix_win}|g" -i "${_prefix}/share/Armadillo/CMake/"*.cmake
+}
+
+post_upgrade() {
+ post_install
+}
diff --git a/mingw-w64-arpack/PKGBUILD b/mingw-w64-arpack/PKGBUILD
new file mode 100644
index 0000000000..92304d5676
--- /dev/null
+++ b/mingw-w64-arpack/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id$
+# Maintainer (ArchLinux): Alexander Rødseth
+# Contributor (ArchLinux): William Rea
+# Contributor (ArchLinux): Stefan Husmann
+# Maintainer (MSYS2): Ray Donnelly
+
+_realname=arpack
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=3.2.0
+pkgrel=1
+arch=('any')
+pkgdesc='Fortran77 subroutines designed to solve large scale eigenvalue problems (mingw-w64)'
+url='http://forge.scilab.org/index.php/p/arpack-ng/'
+license=('BSD')
+depends=("${MINGW_PACKAGE_PREFIX}-openblas")
+makedepends=("${MINGW_PACKAGE_PREFIX}-gcc-fortran")
+provides=("${MINGW_PACKAGE_PREFIX}-arpack-ng")
+source=(#"http://forge.scilab.org/upload/$_realname-ng/files/$_realname-ng_${pkgver}.tar.gz"
+ ${_realname}-${pkgver}.tar.gz::https://github.com/opencollab/arpack-ng/archive/${pkgver}.tar.gz)
+sha256sums=('ce6de85d8de6ae3a741fb9d6169c194ff1b2ffdab289f7af8e41d71bb7818cbb')
+
+build() {
+ [ -d "${srcdir}"/build-${CARCH} ] && rm -rf "${srcdir}"/build-${CARCH}
+ mkdir "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
+
+ ../${_realname}-ng-${pkgver}/configure \
+ --prefix=${MINGW_PREFIX} \
+ --with-blas=openblas \
+ --disable-mpi
+
+ make F77="gfortran"
+}
+
+package() {
+ cd "${srcdir}"/build-${CARCH}
+
+ make DESTDIR="${pkgdir}"/ install
+ install -Dm644 ${srcdir}/${_realname}-ng-${pkgver}/COPYING \
+ ${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/COPYING
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/mingw-w64-aspell-de/001-unixy-dirs.patch b/mingw-w64-aspell-de/001-unixy-dirs.patch
new file mode 100644
index 0000000000..c37d462182
--- /dev/null
+++ b/mingw-w64-aspell-de/001-unixy-dirs.patch
@@ -0,0 +1,15 @@
+--- aspell6-de-20030222-1/configure.orig 2015-08-21 17:45:17.008196500 +0200
++++ aspell6-de-20030222-1/configure 2015-08-21 17:46:06.620617000 +0200
+@@ -73,10 +73,12 @@ if test x = "x$PREZIP"
+
+ echo $ECHO_N "Finding Dictionary file location ... $ECHO_C"
+ dictdir=`$ASPELL dump config dict-dir`
++dictdir=`cygpath -u $dictdir`
+ echo $dictdir
+
+ echo $ECHO_N "Finding Data file location ... $ECHO_C"
+ datadir=`$ASPELL dump config data-dir`
++datadir=`cygpath -u $datadir`
+ echo $datadir
+
+ echo "ASPELL = `which $ASPELL`" > Makefile
diff --git a/mingw-w64-aspell-de/PKGBUILD b/mingw-w64-aspell-de/PKGBUILD
new file mode 100644
index 0000000000..cf52d3f9c9
--- /dev/null
+++ b/mingw-w64-aspell-de/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Alexey Pavlov
+
+_realname=aspell-de
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=20030222
+pkgrel=1
+pkgdesc="German dictionary for aspell (mingw-w64)"
+arch=('any')
+url="http://aspell.net/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-aspell")
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/de/aspell6-de-${pkgver}-1.tar.bz2
+ 001-unixy-dirs.patch)
+md5sums=('5950c5c8a36fc93d4d7616591bace6a6'
+ '71e32e4d2c2eeb14f3f358bb13dab1e1')
+sha1sums=('a06b1153404f6d1f9bd8aa03d596c14093e561c7'
+ 'ffdb6ab423aa5772a411ec7c997d2472f72e8448')
+
+prepare() {
+ cd "${srcdir}/aspell6-de-${pkgver}-1"
+ patch -p1 -i ${srcdir}/001-unixy-dirs.patch
+}
+
+build() {
+ cd "${srcdir}/aspell6-de-${pkgver}-1"
+ ./configure
+ sed -i 's/C\:\\msys64\\/\//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-de-${pkgver}-1"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-aspell-en/001-unixy-dirs.patch b/mingw-w64-aspell-en/001-unixy-dirs.patch
new file mode 100644
index 0000000000..7aca3e04db
--- /dev/null
+++ b/mingw-w64-aspell-en/001-unixy-dirs.patch
@@ -0,0 +1,15 @@
+--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300
++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300
+@@ -73,10 +73,12 @@
+
+ echo $ECHO_N "Finding Dictionary file location ... $ECHO_C"
+ dictdir=`$ASPELL dump config dict-dir`
++dictdir=`cygpath -u $dictdir`
+ echo $dictdir
+
+ echo $ECHO_N "Finding Data file location ... $ECHO_C"
+ datadir=`$ASPELL dump config data-dir`
++datadir=`cygpath -u $datadir`
+ echo $datadir
+
+ echo "ASPELL = `which $ASPELL`" > Makefile
diff --git a/mingw-w64-aspell-en/PKGBUILD b/mingw-w64-aspell-en/PKGBUILD
new file mode 100644
index 0000000000..5700043fea
--- /dev/null
+++ b/mingw-w64-aspell-en/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Alexey Pavlov
+
+_realname=aspell-en
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=7.1
+pkgrel=1
+pkgdesc="English dictionary for aspell (mingw-w64)"
+arch=('any')
+url="http://aspell.net/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-aspell")
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/en/aspell6-en-${pkgver}-0.tar.bz2
+ 001-unixy-dirs.patch)
+md5sums=('beba5e8f3afd3ed1644653bb685b2dfb'
+ '59759a5f0047312a49f5817a83a8a2f9')
+sha1sums=('d45ccda0c03e2a679c2936487ec851a1896b8150'
+ 'a624663ef98117b62f45cab4ade44cce3105ef4d')
+
+prepare() {
+ cd "${srcdir}/aspell6-en-${pkgver}-0"
+ patch -p1 -i ${srcdir}/001-unixy-dirs.patch
+}
+
+build() {
+ cd "${srcdir}/aspell6-en-${pkgver}-0"
+ ./configure
+ sed -i 's/C\:\\msys64\\/\//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-en-${pkgver}-0"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-aspell-es/001-unixy-dirs.patch b/mingw-w64-aspell-es/001-unixy-dirs.patch
new file mode 100644
index 0000000000..7aca3e04db
--- /dev/null
+++ b/mingw-w64-aspell-es/001-unixy-dirs.patch
@@ -0,0 +1,15 @@
+--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300
++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300
+@@ -73,10 +73,12 @@
+
+ echo $ECHO_N "Finding Dictionary file location ... $ECHO_C"
+ dictdir=`$ASPELL dump config dict-dir`
++dictdir=`cygpath -u $dictdir`
+ echo $dictdir
+
+ echo $ECHO_N "Finding Data file location ... $ECHO_C"
+ datadir=`$ASPELL dump config data-dir`
++datadir=`cygpath -u $datadir`
+ echo $datadir
+
+ echo "ASPELL = `which $ASPELL`" > Makefile
diff --git a/mingw-w64-aspell-es/PKGBUILD b/mingw-w64-aspell-es/PKGBUILD
new file mode 100644
index 0000000000..833c45db74
--- /dev/null
+++ b/mingw-w64-aspell-es/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Oscar Fuentes
+
+_realname=aspell-es
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+_pkgver=1.11-2
+pkgver=${_pkgver//-/.}
+pkgrel=1
+pkgdesc="Spanish dictionary for aspell (mingw-w64)"
+arch=('any')
+url="http://aspell.net/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-aspell")
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/es/aspell6-es-${_pkgver}.tar.bz2
+ 001-unixy-dirs.patch)
+md5sums=('8406336a89c64e47e96f4153d0af70c4'
+ '59759a5f0047312a49f5817a83a8a2f9')
+sha1sums=('18acfa4bc08433e920bb015b158e43643e5125cf'
+ 'a624663ef98117b62f45cab4ade44cce3105ef4d')
+
+prepare() {
+ cd "${srcdir}/aspell6-es-${_pkgver}"
+ patch -p1 -i ${srcdir}/001-unixy-dirs.patch
+}
+
+build() {
+ cd "${srcdir}/aspell6-es-${_pkgver}"
+ ./configure
+ sed -i 's/C\:\\msys64\\/\//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-es-${_pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-aspell-fr/001-unixy-dirs.patch b/mingw-w64-aspell-fr/001-unixy-dirs.patch
new file mode 100644
index 0000000000..27817e4aab
--- /dev/null
+++ b/mingw-w64-aspell-fr/001-unixy-dirs.patch
@@ -0,0 +1,15 @@
+--- aspell-fr-0.50-3/configure.orig 2015-08-24 15:25:37.040164200 +0200
++++ aspell-fr-0.50-3/configure 2015-08-24 15:26:51.598072800 +0200
+@@ -69,10 +69,12 @@ if test x = "x$WORD_LIST_COMPRESS"
+
+ echo $ECHO_N "Finding Dictionary file location ... $ECHO_C"
+ dictdir=`$ASPELL dump config dict-dir`
++dictdir=`cygpath -u $dictdir`
+ echo $dictdir
+
+ echo $ECHO_N "Finding Data file location ... $ECHO_C"
+ datadir=`$ASPELL dump config data-dir`
++datadir=`cygpath -u $datadir`
+ echo $datadir
+
+ echo "ASPELL = $ASPELL" > Makefile
diff --git a/mingw-w64-aspell-fr/PKGBUILD b/mingw-w64-aspell-fr/PKGBUILD
new file mode 100644
index 0000000000..275a2d1647
--- /dev/null
+++ b/mingw-w64-aspell-fr/PKGBUILD
@@ -0,0 +1,37 @@
+# Maintainer: Alexey Pavlov
+
+_realname=aspell-fr
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+pkgver=0.50
+pkgrel=1
+pkgdesc="French dictionary for aspell (mingw-w64)"
+arch=('any')
+url="http://aspell.net/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-aspell")
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/fr/aspell-fr-${pkgver}-3.tar.bz2
+ 001-unixy-dirs.patch)
+md5sums=('53a2d05c4e8f7fabd3cefe24db977be7'
+ '2bdec16a2dc204a49378609f90fb436f')
+sha1sums=('4712f81069eb20763aaf855f73b2819f4805f132'
+ 'f386c73e7bb57563850e980d723f2711608fd7ea')
+
+prepare() {
+ cd "${srcdir}/aspell-fr-${pkgver}-3"
+ patch -p1 -i ${srcdir}/001-unixy-dirs.patch
+}
+
+build() {
+ cd "${srcdir}/aspell-fr-${pkgver}-3"
+ ./configure
+ sed -i 's/C\:\\msys64\\/\//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell-fr-${pkgver}-3"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-aspell-ru/001-unixy-dirs.patch b/mingw-w64-aspell-ru/001-unixy-dirs.patch
new file mode 100644
index 0000000000..7aca3e04db
--- /dev/null
+++ b/mingw-w64-aspell-ru/001-unixy-dirs.patch
@@ -0,0 +1,15 @@
+--- aspell6-en-7.1-0/configure.orig 2015-07-27 12:03:47.683663100 +0300
++++ aspell6-en-7.1-0/configure 2015-07-27 12:05:05.653865300 +0300
+@@ -73,10 +73,12 @@
+
+ echo $ECHO_N "Finding Dictionary file location ... $ECHO_C"
+ dictdir=`$ASPELL dump config dict-dir`
++dictdir=`cygpath -u $dictdir`
+ echo $dictdir
+
+ echo $ECHO_N "Finding Data file location ... $ECHO_C"
+ datadir=`$ASPELL dump config data-dir`
++datadir=`cygpath -u $datadir`
+ echo $datadir
+
+ echo "ASPELL = `which $ASPELL`" > Makefile
diff --git a/mingw-w64-aspell-ru/PKGBUILD b/mingw-w64-aspell-ru/PKGBUILD
new file mode 100644
index 0000000000..bec2a004ed
--- /dev/null
+++ b/mingw-w64-aspell-ru/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Alexey Pavlov
+
+_realname=aspell-ru
+pkgbase=mingw-w64-${_realname}
+pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
+_pkgver=0.99f7-1
+pkgver=${_pkgver//-/.}
+pkgrel=1
+pkgdesc="Russian dictionary for aspell (mingw-w64)"
+arch=('any')
+url="http://aspell.net/"
+license=('custom')
+depends=("${MINGW_PACKAGE_PREFIX}-aspell")
+source=(ftp://ftp.gnu.org/gnu/aspell/dict/ru/aspell6-ru-${_pkgver}.tar.bz2
+ 001-unixy-dirs.patch)
+md5sums=('c4c98eaa5e77ad3adccbc5c96cb57cb3'
+ '59759a5f0047312a49f5817a83a8a2f9')
+sha1sums=('e012fa03645f4ff1f5ba9df6b215ea4ffc6fd9cf'
+ 'a624663ef98117b62f45cab4ade44cce3105ef4d')
+
+prepare() {
+ cd "${srcdir}/aspell6-ru-${_pkgver}"
+ patch -p1 -i ${srcdir}/001-unixy-dirs.patch
+}
+
+build() {
+ cd "${srcdir}/aspell6-ru-${_pkgver}"
+ ./configure
+ sed -i 's/C\:\\msys64\\/\//' Makefile
+ make
+}
+
+package() {
+ cd "${srcdir}/aspell6-ru-${_pkgver}"
+ make DESTDIR="${pkgdir}" install
+
+ install -D -m644 Copyright "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
+}
diff --git a/mingw-w64-aspell/0001-use-namespace.mingw.patch b/mingw-w64-aspell/0001-use-namespace.mingw.patch
new file mode 100644
index 0000000000..bb1f411d64
--- /dev/null
+++ b/mingw-w64-aspell/0001-use-namespace.mingw.patch
@@ -0,0 +1,18 @@
+--- aspell-0.60.7-20110707/common/file_util.cpp.orig 2004-11-15 12:29:53.000000000 +0000
++++ aspell-0.60.7-20110707/common/file_util.cpp 2014-02-19 11:11:58.100765300 +0000
+@@ -30,6 +30,7 @@
+ # define ACCESS _access
+ # include
+ # include
++# include "asc_ctype.hpp"
+
+ #else
+
+@@ -38,6 +39,7 @@
+
+ #endif
+
++using namespace acommon;
+
+ namespace acommon {
+
diff --git a/mingw-w64-aspell/0002-printf.mingw.patch b/mingw-w64-aspell/0002-printf.mingw.patch
new file mode 100644
index 0000000000..3b808a2983
--- /dev/null
+++ b/mingw-w64-aspell/0002-printf.mingw.patch
@@ -0,0 +1,36 @@
+--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-02-19 11:24:42.255300600 +0000
++++ aspell-0.60.7-20110707/common/config.cpp 2014-02-19 11:23:47.492846700 +0000
+@@ -39,6 +39,9 @@
+ #include "vararray.hpp"
+ #include "string_list.hpp"
+
++#define printf printf
++#include "libintl.h"
++#undef printf
+ #include "gettext.h"
+
+ #include "iostream.hpp"
+--- aspell-0.60.7-20110707/modules/speller/default/language.cpp.orig 2011-07-05 00:28:44.000000000 +0000
++++ aspell-0.60.7-20110707/modules/speller/default/language.cpp 2014-02-19 11:25:32.094629400 +0000
+@@ -24,6 +24,9 @@
+ # include
+ #endif
+
++#define printf printf
++#include "libintl.h"
++#undef printf
+ #include "gettext.h"
+
+ namespace aspeller {
+--- aspell-0.60.7-20110707/prog/aspell.cpp.orig 2011-07-04 14:36:05.000000000 +0000
++++ aspell-0.60.7-20110707/prog/aspell.cpp 2014-02-19 11:26:37.049377600 +0000
+@@ -59,6 +59,9 @@
+ #include "hash-t.hpp"
+ #include "hash_fun.hpp"
+
++#define printf printf
++#include "libintl.h"
++#undef printf
+ #include "gettext.h"
+
+ using namespace acommon;
diff --git a/mingw-w64-aspell/0003-no-undefined-on.mingw.patch b/mingw-w64-aspell/0003-no-undefined-on.mingw.patch
new file mode 100644
index 0000000000..80c7960051
--- /dev/null
+++ b/mingw-w64-aspell/0003-no-undefined-on.mingw.patch
@@ -0,0 +1,11 @@
+--- aspell-0.60.7-20110707/Makefile.am.orig 2011-07-07 01:01:39.000000000 +0000
++++ aspell-0.60.7-20110707/Makefile.am 2014-02-19 11:56:42.396127500 +0000
+@@ -203,7 +203,7 @@
+ else # not COMPILE_IN_FILTERS
+
+ dynamic_optfiles += ${optfiles}
+-filter_ldflags = -module -avoid-version
++filter_ldflags = -module -avoid-version -no-undefined
+
+ ### Add name of filter library containing your filter. Name always
+ ### must look like lib-filter.la see development manual
diff --git a/mingw-w64-aspell/0004-reloc.mingw.patch b/mingw-w64-aspell/0004-reloc.mingw.patch
new file mode 100644
index 0000000000..706f2b0223
--- /dev/null
+++ b/mingw-w64-aspell/0004-reloc.mingw.patch
@@ -0,0 +1,123 @@
+--- aspell-0.60.7-20110707/common/info.cpp.orig 2004-11-10 06:18:45.000000000 +0000
++++ aspell-0.60.7-20110707/common/info.cpp 2014-03-20 14:46:13.395537900 +0000
+@@ -39,6 +39,19 @@
+
+ #include "gettext.h"
+
++#ifdef ENABLE_W32_PREFIX
++extern "C" {
++static HINSTANCE dll_hinstance;
++
++BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
++{
++ if (fdwReason == DLL_PROCESS_ATTACH)
++ dll_hinstance = hinstDLL;
++ return TRUE;
++}
++}
++#endif
++
+ namespace acommon {
+
+ class Dir {
+@@ -778,4 +789,60 @@
+ return data;
+ }
+
++#ifdef ENABLE_W32_PREFIX
++
++const char *
++get_w32_prefix ()
++{
++
++ static char *wprefix = NULL;
++
++/*
++ Entry * next;
++ String key;
++ String value;
++ String file;
++*/
++ if (wprefix == NULL)
++ {
++ DWORD bsize = MAX_PATH;
++ DWORD l = bsize;
++ char *bslash, *slash;
++ char *buf = (char *) malloc (bsize);
++ while (l == bsize)
++ {
++ l = GetModuleFileNameA (dll_hinstance, buf, bsize);
++ if (l == 0)
++ {
++ DebugBreak ();
++ abort ();
++ }
++ if (l == bsize)
++ {
++ buf = (char *) realloc ((void *) buf, bsize * 2);
++ bsize *= 2;
++ l = bsize;
++ }
++ }
++ bslash = strrchr (buf, '\\');
++ slash = strrchr (buf, '/');
++ if (bslash > slash)
++ slash = bslash;
++ slash[0] = '\0';
++ l = strlen (buf);
++ if (l > 3 && strcmp (&buf[l - 3], "bin") == 0)
++ {
++ bslash = strrchr (buf, '\\');
++ slash = strrchr (buf, '/');
++ if (bslash > slash)
++ slash = bslash;
++ slash[0] = '\0';
++ }
++ wprefix = buf;
++
++ }
++ return wprefix;
++}
++#endif
++
+ }
+--- aspell-0.60.7-20110707/common/info.hpp.orig 2004-05-30 10:49:17.000000000 +0000
++++ aspell-0.60.7-20110707/common/info.hpp 2014-03-20 14:45:24.476325900 +0000
+@@ -140,8 +140,7 @@
+ };
+
+
+-
+-
++ const char * get_w32_prefix ();
+ }
+
+ #endif /* ASPELL_INFO__HPP */
+--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 13:52:58.851882300 +0000
++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 14:17:49.116621900 +0000
+@@ -310,6 +310,14 @@
+ const Entry * res = 0;
+ const Entry * cur = first_;
+
++#ifdef ENABLE_W32_PREFIX
++ if (key == "prefix")
++ {
++ Entry *e = new Config::Entry();
++ e->value = get_w32_prefix ();
++ return e;
++ }
++#endif
+ while (cur) {
+ if (cur->key == key && cur->action != NoOp) res = cur;
+ cur = cur->next;
+--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 15:11:29.935614000 +0000
++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 15:22:47.619168900 +0000
+@@ -22,6 +22,8 @@
+ # include
+ #endif
+
++#include "info.hpp"
++#include
+ #include "cache.hpp"
+ #include "asc_ctype.hpp"
+ #include "config.hpp"
diff --git a/mingw-w64-aspell/0005-w32-home.all.patch b/mingw-w64-aspell/0005-w32-home.all.patch
new file mode 100644
index 0000000000..588997f63c
--- /dev/null
+++ b/mingw-w64-aspell/0005-w32-home.all.patch
@@ -0,0 +1,24 @@
+--- aspell-0.60.7-20110707/common/config.cpp.orig 2014-03-20 19:51:08.756753700 +0000
++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 20:15:54.984480600 +0000
+@@ -664,6 +664,21 @@
+ } else { // sep == '|'
+ assert(replace[0] == '$');
+ const char * env = getenv(replace.c_str()+1);
++ if (NULL == env && strcmp (replace.c_str() + 1, "HOME") == 0)
++ {
++ const char *hd, *hp;
++ hd = getenv("HOMEDRIVE");
++ hp = getenv("HOMEPATH");
++ if (hd && hp)
++ {
++ char tmpbuf[strlen ("HOME=") + strlen (hd) + strlen (hp) + 1];
++ strcpy (tmpbuf, "HOME=");
++ strcpy (&tmpbuf[strlen ("HOME=")], hd);
++ strcpy (&tmpbuf[strlen ("HOME=") + strlen (hd)], hp);
++ putenv (tmpbuf);
++ env = getenv(replace.c_str()+1);
++ }
++ }
+ final_str += env ? env : second;
+ }
+ replace = "";
diff --git a/mingw-w64-aspell/0006-abort.mingw.patch b/mingw-w64-aspell/0006-abort.mingw.patch
new file mode 100644
index 0000000000..26c4722729
--- /dev/null
+++ b/mingw-w64-aspell/0006-abort.mingw.patch
@@ -0,0 +1,236 @@
+diff -ur aspell-0.60.7-20110707.orig/common/config.cpp aspell-0.60.7-20110707/common/config.cpp
+--- aspell-0.60.7-20110707.orig/common/config.cpp 2014-03-20 22:31:38.359557900 +0000
++++ aspell-0.60.7-20110707/common/config.cpp 2014-03-20 22:39:19.296089400 +0000
+@@ -623,7 +623,7 @@
+
+ } else {
+
+- abort(); // this should not happen
++ DebugBreak(); // this should not happen
+
+ }
+
+@@ -857,7 +857,7 @@
+ case ListClear:
+ return make_err(no_value_clear, entry->key);
+ default:
+- abort(); // this shouldn't happen
++ DebugBreak(); // this shouldn't happen
+ }
+ } else {
+ entry->place_holder = -1;
+diff -ur aspell-0.60.7-20110707.orig/common/itemize.cpp aspell-0.60.7-20110707/common/itemize.cpp
+--- aspell-0.60.7-20110707.orig/common/itemize.cpp 2004-01-03 12:06:24.000000000 +0000
++++ aspell-0.60.7-20110707/common/itemize.cpp 2014-03-20 22:39:22.191457100 +0000
+@@ -97,7 +97,7 @@
+ RET_ON_ERR(d.clear());
+ break;
+ default:
+- abort();
++ DebugBreak();
+ }
+ }
+ return no_err;
+diff -ur aspell-0.60.7-20110707.orig/common/posib_err.cpp aspell-0.60.7-20110707/common/posib_err.cpp
+--- aspell-0.60.7-20110707.orig/common/posib_err.cpp 2004-11-21 02:52:22.000000000 +0000
++++ aspell-0.60.7-20110707/common/posib_err.cpp 2014-03-20 22:39:24.232716300 +0000
+@@ -100,7 +100,7 @@
+ fputs(_("Unhandled Error: "), stderr);
+ fputs(err_->err->mesg, stderr);
+ fputs("\n", stderr);
+- abort();
++ DebugBreak();
+ }
+ #endif
+
+diff -ur aspell-0.60.7-20110707.orig/common/string_list.hpp aspell-0.60.7-20110707/common/string_list.hpp
+--- aspell-0.60.7-20110707.orig/common/string_list.hpp 2004-06-17 12:41:47.000000000 +0000
++++ aspell-0.60.7-20110707/common/string_list.hpp 2014-03-20 22:39:26.609018100 +0000
+@@ -90,7 +90,7 @@
+ }
+
+ bool empty() const { return first == 0; }
+- unsigned int size() const { abort(); return 0; }
++ unsigned int size() const { DebugBreak(); return 0; }
+
+ };
+
+diff -ur aspell-0.60.7-20110707.orig/lib/find_speller.cpp aspell-0.60.7-20110707/lib/find_speller.cpp
+--- aspell-0.60.7-20110707.orig/lib/find_speller.cpp 2005-08-30 08:34:03.000000000 +0000
++++ aspell-0.60.7-20110707/lib/find_speller.cpp 2014-03-20 22:39:30.995575100 +0000
+@@ -384,7 +384,7 @@
+ b_size.req_type = '+';
+ }
+ if (!asc_isdigit(p[0]) || !asc_isdigit(p[1]) || p[2] != '\0')
+- abort(); //FIXME: create an error condition here
++ DebugBreak(); //FIXME: create an error condition here
+ b_size.requested = atoi(p);
+ b_size.init();
+
+diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/data.cpp aspell-0.60.7-20110707/modules/speller/default/data.cpp
+--- aspell-0.60.7-20110707.orig/modules/speller/default/data.cpp 2011-07-04 14:30:16.000000000 +0000
++++ aspell-0.60.7-20110707/modules/speller/default/data.cpp 2014-03-20 22:39:33.647911900 +0000
+@@ -439,7 +439,7 @@
+ w = new_default_replacement_dict();
+ break;
+ default:
+- abort();
++ DebugBreak();
+ }
+
+ RET_ON_ERR(w->load(true_file_name, config, new_dicts, speller));
+diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/phonetic.cpp aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp
+--- aspell-0.60.7-20110707.orig/modules/speller/default/phonetic.cpp 2004-05-21 00:15:58.000000000 +0000
++++ aspell-0.60.7-20110707/modules/speller/default/phonetic.cpp 2014-03-20 22:39:36.033214800 +0000
+@@ -194,7 +194,7 @@
+ } else if (name == lang->name()) {
+ sl = new PhonetSoundslike(lang);
+ } else {
+- abort(); // FIXME
++ DebugBreak(); // FIXME
+ }
+ PosibErrBase pe = sl->setup(iconv);
+ if (pe.has_err()) {
+diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/readonly_ws.cpp aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp
+--- aspell-0.60.7-20110707.orig/modules/speller/default/readonly_ws.cpp 2011-07-04 22:00:38.000000000 +0000
++++ aspell-0.60.7-20110707/modules/speller/default/readonly_ws.cpp 2014-03-20 22:39:39.614669600 +0000
+@@ -108,7 +108,7 @@
+
+ static inline void mmap_free(char *, unsigned int)
+ {
+- abort();
++ DebugBreak();
+ }
+
+ #endif
+@@ -210,7 +210,7 @@
+ InsensitiveHash hash;
+ InsensitiveEqual equal;
+ bool is_nonexistent(Value v) const {return v == u32int_max;}
+- void make_nonexistent(const Value & v) const {abort();}
++ void make_nonexistent(const Value & v) const {DebugBreak();}
+ };
+ typedef VectorHashTable WordLookup;
+
+diff -ur aspell-0.60.7-20110707.orig/modules/speller/default/speller_impl.cpp aspell-0.60.7-20110707/modules/speller/default/speller_impl.cpp
+--- aspell-0.60.7-20110707.orig/modules/speller/default/speller_impl.cpp 2011-07-04 14:30:16.000000000 +0000
++++ aspell-0.60.7-20110707/modules/speller/default/speller_impl.cpp 2014-03-20 22:39:43.524666100 +0000
+@@ -380,7 +380,7 @@
+ static PosibErr save_repl(SpellerImpl * m, bool value) {
+ // FIXME
+ // m->save_on_saveall(DataSet::Id(&m->personal_repl()), value);
+- abort(); return no_err;
++ DebugBreak(); return no_err;
+ }
+ static PosibErr