summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile237
-rw-r--r--doc/gmsl.html704
-rw-r--r--ext/__gmsl919
-rwxr-xr-xext/config.guess1558
-rw-r--r--ext/gmsl89
-rw-r--r--ext/gmsl-tests730
-rw-r--r--index.html428
-rw-r--r--src/a52dec.mk27
-rw-r--r--src/apr-1.patch33
-rw-r--r--src/apr.mk2
-rw-r--r--src/armadillo-1-staticlib.patch19
-rw-r--r--src/armadillo-2-nocmakeconfigfiles.patch2
-rw-r--r--src/armadillo.mk4
-rw-r--r--src/assimp-test.c31
-rw-r--r--src/assimp.mk32
-rw-r--r--src/atk-2-portability.patch15
-rw-r--r--src/atk.mk9
-rw-r--r--src/atkmm.mk4
-rw-r--r--src/autoconf.mk26
-rw-r--r--src/automake.mk26
-rw-r--r--src/binutils.mk20
-rw-r--r--src/bison.mk26
-rw-r--r--src/blas.mk14
-rw-r--r--src/boost-1-intrinsics-fix.patch37
-rw-r--r--src/boost-2-winerror.patch17
-rw-r--r--src/boost.mk4
-rw-r--r--src/bullet-1-pkgconfig.patch22
-rw-r--r--src/bullet-test.cpp29
-rw-r--r--src/bullet.mk38
-rw-r--r--src/bzip2.mk15
-rw-r--r--src/cairo.mk13
-rw-r--r--src/cblas.mk36
-rw-r--r--src/cfitsio.mk4
-rw-r--r--src/check.mk27
-rw-r--r--src/chromaprint.mk23
-rw-r--r--src/cloog.mk31
-rw-r--r--src/cmake.mk26
-rw-r--r--src/cminpack.mk4
-rw-r--r--src/cppunit.mk6
-rw-r--r--src/crystalhd.mk21
-rw-r--r--src/curl.mk10
-rw-r--r--src/dbus.mk13
-rw-r--r--src/devil.mk8
-rw-r--r--src/dlfcn-win32-1-configure-fixes.patch35
-rw-r--r--src/dlfcn-win32.mk30
-rw-r--r--src/eigen.mk6
-rw-r--r--src/exiv2-1-lpsapi.patch41
-rw-r--r--src/exiv2-issue847.patch268
-rw-r--r--src/exiv2-r2796.patch87
-rw-r--r--src/exiv2.mk4
-rw-r--r--src/expat.mk4
-rw-r--r--src/faad2.mk9
-rw-r--r--src/ffmpeg-1-libbluray-pkg-config.patch16
-rw-r--r--src/ffmpeg.mk47
-rw-r--r--src/fftw.mk15
-rw-r--r--src/file.mk4
-rw-r--r--src/flac.mk5
-rw-r--r--src/flann.mk5
-rw-r--r--src/flex.mk26
-rw-r--r--src/fltk.mk7
-rw-r--r--src/fontconfig-1-fix_mktemp_s.patch16
-rw-r--r--src/fontconfig.mk9
-rw-r--r--src/freeglut-1-fixes.patch5
-rw-r--r--src/freeglut.mk7
-rw-r--r--src/freetds.mk6
-rw-r--r--src/freetype.mk10
-rw-r--r--src/fribidi.mk12
-rw-r--r--src/ftgl.mk6
-rw-r--r--src/gc.mk4
-rw-r--r--src/gcc-2-darwin-no-pie.patch28
-rw-r--r--src/gcc-2-intrinsics.patch (renamed from src/gcc-3-intrinsics.patch)0
-rw-r--r--src/gcc-cloog.mk29
-rw-r--r--src/gcc-gmp.mk11
-rw-r--r--src/gcc-isl.mk28
-rw-r--r--src/gcc-mpc.mk32
-rw-r--r--src/gcc-mpfr.mk14
-rw-r--r--src/gcc.mk102
-rw-r--r--src/gd-1-libpng15.patch17
-rw-r--r--src/gd.mk34
-rw-r--r--src/gdal.mk9
-rw-r--r--src/gdb.mk6
-rw-r--r--src/gdk-pixbuf.mk12
-rw-r--r--src/geos.mk4
-rw-r--r--src/gettext.mk8
-rw-r--r--src/giflib.mk4
-rw-r--r--src/glew.mk58
-rw-r--r--src/glfw2-test.c28
-rw-r--r--src/glfw2.mk32
-rw-r--r--src/glfw3-1-fixes.patch108
-rw-r--r--src/glfw3-test.c41
-rw-r--r--src/glfw3.mk35
-rw-r--r--src/glib-1-fixes.patch91
-rw-r--r--src/glib.mk9
-rw-r--r--src/glibmm.mk9
-rw-r--r--src/gmp.mk21
-rw-r--r--src/gnutls-1-fixes.patch105
-rw-r--r--src/gnutls-2-add-missing-export.patch16
-rw-r--r--src/gnutls.mk15
-rw-r--r--src/graphicsmagick.mk11
-rw-r--r--src/gsl.mk4
-rw-r--r--src/gsoap-1-fixes.patch2
-rw-r--r--src/gsoap.mk4
-rw-r--r--src/gst-plugins-base.mk4
-rw-r--r--src/gst-plugins-good.mk4
-rw-r--r--src/gstreamer-1-fixes.patch27
-rw-r--r--src/gstreamer.mk4
-rw-r--r--src/gtk2-1-fixes.patch46
-rw-r--r--src/gtk2.mk11
-rw-r--r--src/guile-1-win32.patch21
-rw-r--r--src/guile.mk12
-rw-r--r--src/harfbuzz.mk10
-rw-r--r--src/hdf5-3-fix-autoconf-version.patch7
-rw-r--r--src/hdf5.mk42
-rw-r--r--src/icu4c-1-fixes.patch26
-rw-r--r--src/icu4c-2-dll_fix.patch16
-rw-r--r--src/icu4c.mk24
-rw-r--r--src/ilmbase.mk9
-rw-r--r--src/imagemagick.mk6
-rw-r--r--src/isl.mk30
-rw-r--r--src/itk-1-hostcheck.patch14
-rw-r--r--src/itk-1-tryrun.patch (renamed from src/itk-2-tryrun.patch)0
-rw-r--r--src/itk.mk4
-rw-r--r--src/jasper.mk6
-rw-r--r--src/jpeg-1-fixes.patch25
-rw-r--r--src/jpeg.mk18
-rw-r--r--src/lame.mk23
-rw-r--r--src/lapack-test.c55
-rw-r--r--src/lapack.mk17
-rw-r--r--src/lcms-1-fixes.patch2
-rw-r--r--src/lcms.mk9
-rw-r--r--src/lcms1.mk5
-rw-r--r--src/lensfun-1-memset.patch14
-rw-r--r--src/lensfun.mk6
-rw-r--r--src/libass.mk9
-rw-r--r--src/libbluray-1-fix-strncasecmp.patch20
-rw-r--r--src/libbluray.mk33
-rw-r--r--src/libcdio.mk22
-rw-r--r--src/libcroco.mk4
-rw-r--r--src/libdca-1-mark-tables-as-static-constants.patch719
-rw-r--r--src/libdca-2-normalisation-factor-sqrt2+output-bias.patch112
-rw-r--r--src/libdca-3-sanity-check-for-subframes-and-prim_channels.patch27
-rw-r--r--src/libdca-4-fix-random-crashes-caused-by-invalid-32-bit-shifts.patch48
-rw-r--r--src/libdca-5-avoid-crashing-with-invalid-frames.patch31
-rw-r--r--src/libdca-test.c23
-rw-r--r--src/libdca.mk31
-rw-r--r--src/libdvdcss.mk25
-rw-r--r--src/libdvdnav.mk40
-rw-r--r--src/libdvdread.mk45
-rw-r--r--src/libffi.mk4
-rw-r--r--src/libftdi1-1-dont-build-tests.patch14
-rw-r--r--src/libftdi1.mk25
-rw-r--r--src/libgcrypt-1-mingw-w64.patch156
-rw-r--r--src/libgcrypt.mk9
-rw-r--r--src/libglade-1-fixes.patch32
-rw-r--r--src/libglade.mk3
-rw-r--r--src/libgomp.mk14
-rw-r--r--src/libgpg_error.mk6
-rw-r--r--src/libgsf.mk9
-rw-r--r--src/libiconv.mk4
-rw-r--r--src/libidn.mk9
-rw-r--r--src/libircclient-1-fixes.patch67
-rw-r--r--src/libircclient.mk4
-rw-r--r--src/liblo.mk4
-rw-r--r--src/libltdl.mk23
-rw-r--r--src/libmad.mk6
-rw-r--r--src/libmicrohttpd-1-fixes.patch27
-rw-r--r--src/libmicrohttpd-test.c46
-rw-r--r--src/libmicrohttpd.mk40
-rw-r--r--src/libmng-1-fixes.patch32
-rw-r--r--src/libmng.mk26
-rw-r--r--src/libmpcdec-1-configure_ac.patch47
-rw-r--r--src/libmpcdec.mk29
-rw-r--r--src/libntlm.mk4
-rw-r--r--src/libpano13.mk4
-rw-r--r--src/libpng-test.c1
-rw-r--r--src/libpng.mk13
-rw-r--r--src/librsvg-1-fixes.patch34
-rw-r--r--src/librsvg.mk12
-rw-r--r--src/libsamplerate.mk21
-rw-r--r--src/libsigc++.mk5
-rw-r--r--src/libsndfile.mk4
-rw-r--r--src/libssh2.mk4
-rw-r--r--src/libtool.mk16
-rw-r--r--src/libusb1.mk23
-rw-r--r--src/libvpx-1-fixes.patch99
-rw-r--r--src/libvpx.mk12
-rw-r--r--src/libxml++.mk9
-rw-r--r--src/libxml2.mk5
-rw-r--r--src/libzip.mk4
-rw-r--r--src/llvm.mk7
-rw-r--r--src/lua.mk4
-rw-r--r--src/lzo.mk6
-rw-r--r--src/m4.mk28
-rw-r--r--src/matio.mk6
-rw-r--r--src/mdbtools.mk10
-rw-r--r--src/mingw-utils.mk7
-rw-r--r--src/mingw-w64-1-math-h.patch18
-rw-r--r--src/mingw-w64-2-float-h.patch25
-rw-r--r--src/mingw-w64.mk17
-rw-r--r--src/mman-win32-1-include_name_change.patch12
-rw-r--r--src/mman-win32.mk28
-rw-r--r--src/mpc.mk37
-rw-r--r--src/mpfr.mk15
-rw-r--r--src/mpg123.mk29
-rw-r--r--src/mxml.mk4
-rw-r--r--src/ncurses.mk7
-rw-r--r--src/netpbm.mk4
-rw-r--r--src/nettle.mk9
-rw-r--r--src/nlopt.mk26
-rw-r--r--src/nsis.mk8
-rw-r--r--src/ocaml-cairo.mk1
-rw-r--r--src/ocaml-lablgl-1-fixes.patch33
-rw-r--r--src/ocaml-lablgl.mk8
-rw-r--r--src/ocaml-lablgtk2.mk3
-rw-r--r--src/ocaml-native-1-fixes.patch22
-rw-r--r--src/ogg.mk5
-rw-r--r--src/openblas.mk45
-rw-r--r--src/opencore-amr.mk10
-rw-r--r--src/opencv-1-fixes.patch278
-rw-r--r--src/opencv.mk19
-rw-r--r--src/openexr-1-disable-zlib_winapi.patch25
-rw-r--r--src/openexr-2-fix-include.patch20
-rw-r--r--src/openexr.mk9
-rw-r--r--src/openmp-validation-1-fixes.patch43
-rw-r--r--src/openmp-validation-2-test-crlf.patch44
-rw-r--r--src/openmp-validation.mk34
-rw-r--r--src/openscenegraph-1-disable-broken-plugins.patch19
-rw-r--r--src/openscenegraph.mk7
-rw-r--r--src/openssl-1-fixes.patch (renamed from src/openssl-2-pod.patch)442
-rw-r--r--src/openssl-1-winsock2.patch42
-rw-r--r--src/openssl.mk15
-rw-r--r--src/opus.mk12
-rw-r--r--src/opusfile-1-fseeko64.patch66
-rw-r--r--src/opusfile-2-lrint-lib.patch64
-rw-r--r--src/opusfile.mk6
-rw-r--r--src/pango-1-fixes.patch2
-rw-r--r--src/pango.mk9
-rw-r--r--src/pcre.mk20
-rw-r--r--src/pdcurses.mk11
-rw-r--r--src/pixman.mk9
-rw-r--r--src/pkgconf.mk90
-rw-r--r--src/plibc-test.c19
-rw-r--r--src/plibc.mk34
-rw-r--r--src/poco.mk6
-rw-r--r--src/polarssl.mk28
-rw-r--r--src/poppler-1-win32.patch2
-rw-r--r--src/poppler.mk19
-rw-r--r--src/popt.mk4
-rw-r--r--src/portaudio-1-win32.patch73
-rw-r--r--src/portaudio.mk29
-rw-r--r--src/portmidi.mk9
-rw-r--r--src/postgresql.mk13
-rw-r--r--src/protobuf.mk4
-rw-r--r--src/pthreads-w32-1-fixes.patch62
-rw-r--r--src/pthreads-w32.mk12
-rw-r--r--src/pthreads.mk10
-rw-r--r--src/qt-1-cherrypicks.patch114
-rw-r--r--src/qt-2-designer.patch16
-rw-r--r--src/qt.mk29
-rw-r--r--src/qtactiveqt-1.patch4
-rw-r--r--src/qtactiveqt.mk10
-rw-r--r--src/qtbase-1-cherrypicks.patch88
-rw-r--r--src/qtbase-1.patch105
-rw-r--r--src/qtbase.mk34
-rw-r--r--src/qtconnectivity.mk21
-rw-r--r--src/qtdeclarative.mk14
-rw-r--r--src/qtgraphicaleffects.mk10
-rw-r--r--src/qtimageformats-1.patch (renamed from src/qtimageformats-1-cherrypicks.patch)8
-rw-r--r--src/qtimageformats.mk10
-rw-r--r--src/qtjsbackend.mk21
-rw-r--r--src/qtlocation.mk21
-rw-r--r--src/qtmultimedia-1.patch (renamed from src/qtmultimedia-1-cherrypicks.patch)6
-rw-r--r--src/qtmultimedia.mk10
-rw-r--r--src/qtquick1.mk10
-rw-r--r--src/qtquickcontrols.mk10
-rw-r--r--src/qtscript.mk10
-rw-r--r--src/qtsensors.mk10
-rw-r--r--src/qtserialport.mk10
-rw-r--r--src/qtservice-1-fixes.patch115
-rw-r--r--src/qtservice.mk21
-rw-r--r--src/qtsvg.mk10
-rw-r--r--src/qttools.mk10
-rw-r--r--src/qttranslations.mk10
-rw-r--r--src/qtwebkit.mk23
-rw-r--r--src/qtwinextras-1.patch25
-rw-r--r--src/qtwinextras.mk23
-rw-r--r--src/qtxmlpatterns-1.patch10
-rw-r--r--src/qtxmlpatterns.mk10
-rw-r--r--src/qwt_qt4-1-fixes-crlf.patch23
-rw-r--r--src/qwt_qt4.mk28
-rw-r--r--src/readline-1.patch21
-rw-r--r--src/readline.mk8
-rw-r--r--src/rubberband.mk38
-rw-r--r--src/sdl.mk8
-rw-r--r--src/sdl2-1-dinput.patch17
-rw-r--r--src/sdl2-2-dxgi.patch18
-rw-r--r--src/sdl2.mk33
-rw-r--r--src/sdl2_image.mk33
-rw-r--r--src/sdl2_mixer.mk50
-rw-r--r--src/sdl2_net-test.c19
-rw-r--r--src/sdl2_net.mk36
-rw-r--r--src/sdl2_ttf.mk31
-rw-r--r--src/sdl_gfx.mk7
-rw-r--r--src/sdl_image.mk4
-rw-r--r--src/sdl_mixer.mk4
-rw-r--r--src/sdl_rwhttp-test.c46
-rw-r--r--src/sdl_rwhttp.mk36
-rw-r--r--src/sdl_ttf.mk2
-rw-r--r--src/sfml.mk28
-rw-r--r--src/smpeg2.mk41
-rw-r--r--src/sox.mk2
-rw-r--r--src/speex.mk4
-rw-r--r--src/sqlite.mk14
-rw-r--r--src/theora.mk8
-rw-r--r--src/tiff.mk5
-rw-r--r--src/vamp-plugin-sdk.mk35
-rw-r--r--src/vcdimager-1-configure.patch51
-rw-r--r--src/vcdimager.mk23
-rw-r--r--src/vmime-1.patch55
-rw-r--r--src/vmime-TryRunResults.cmake22
-rw-r--r--src/vmime.mk18
-rw-r--r--src/vo-aacenc.mk25
-rw-r--r--src/vo-amrwbenc.mk25
-rw-r--r--src/vorbis.mk9
-rw-r--r--src/vtk.mk2
-rw-r--r--src/wavpack-1-exec_prefix.patch14
-rw-r--r--src/wavpack.mk8
-rw-r--r--src/wget-1-pod.patch27
-rw-r--r--src/wget.mk7
-rw-r--r--src/winpthreads.mk10
-rw-r--r--src/wt-1-fixes.patch30
-rw-r--r--src/wt.mk7
-rw-r--r--src/wxwidgets-1-fixes.patch11
-rw-r--r--src/wxwidgets.mk91
-rw-r--r--src/x264.mk13
-rw-r--r--src/xapian-core.mk8
-rw-r--r--src/xine-lib-1-configure_ac.patch21
-rw-r--r--src/xine-lib-1-fixes.patch143
-rw-r--r--src/xine-lib-2-build_fixes.patch303
-rw-r--r--src/xine-lib-2-wavpack-alloca.patch23
-rw-r--r--src/xine-lib-3-more_build_fixes.patch106
-rw-r--r--src/xine-lib-4-mkdir.patch11
-rw-r--r--src/xine-lib-5-change_mma_h_to_mma_win32_h.patch300
-rw-r--r--src/xine-lib.mk20
-rw-r--r--src/xmlrpc-c-1-fixes.patch109
-rw-r--r--src/xmlrpc-c.mk55
-rw-r--r--src/xvidcore.mk25
-rw-r--r--src/xz.mk5
-rw-r--r--src/zlib.mk11
-rw-r--r--src/zziplib-1-fix-fnmatch.patch16
-rw-r--r--src/zziplib-1-fix-mmap.patch37
-rw-r--r--src/zziplib.mk14
-rwxr-xr-xtools/freebsd-excludes35
-rwxr-xr-xtools/make-shared-from-static218
-rw-r--r--tools/mxe-activate16
-rwxr-xr-xtools/patch-tool-mxe3
356 files changed, 11773 insertions, 3167 deletions
diff --git a/Makefile b/Makefile
index 5520a78..496cb8e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,20 @@
# This file is part of MXE.
# See index.html for further information.
-MXE_TARGET_LIST := i686-pc-mingw32 x86_64-w64-mingw32 i686-w64-mingw32
-MXE_TARGETS := i686-pc-mingw32
+MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+TOP_DIR := $(patsubst %/,%,$(dir $(MAKEFILE)))
+EXT_DIR := $(TOP_DIR)/ext
+
+# GNU Make Standard Library (http://gmsl.sourceforge.net/)
+# See doc/gmsl.html for further information
+include $(EXT_DIR)/gmsl
+
+MXE_TRIPLETS := i686-pc-mingw32 x86_64-w64-mingw32 i686-w64-mingw32
+MXE_LIB_TYPES := static shared
+MXE_TARGET_LIST := $(foreach LIB_TYPE,$(MXE_LIB_TYPES),\
+ $(addsuffix .$(LIB_TYPE),$(MXE_TRIPLETS)))
+MXE_TARGETS := i686-pc-mingw32.static
+
DEFAULT_MAX_JOBS := 6
SOURCEFORGE_MIRROR := freefr.dl.sourceforge.net
PKG_MIRROR := s3.amazonaws.com/mxe-pkg
@@ -24,7 +36,7 @@ WGET := wget --no-check-certificate \
--user-agent=$(shell wget --version | \
$(SED) -n 's,GNU \(Wget\) \([0-9.]*\).*,\1/\2,p')
-REQUIREMENTS := autoconf automake bash bison bzip2 cmake flex \
+REQUIREMENTS := autoconf automake autopoint bash bison bzip2 cmake flex \
gcc g++ intltoolize $(LIBTOOL) $(LIBTOOLIZE) \
$(MAKE) openssl $(PATCH) $(PERL) pkg-config \
scons $(SED) $(SORT) unzip wget xz
@@ -34,17 +46,31 @@ LOG_DIR := $(PWD)/log
TIMESTAMP := $(shell date +%Y%m%d_%H%M%S)
PKG_DIR := $(PWD)/pkg
TMP_DIR = $(PWD)/tmp-$(1)
-MAKEFILE := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-TOP_DIR := $(patsubst %/,%,$(dir $(MAKEFILE)))
PKGS := $(shell $(SED) -n 's/^.* class="package">\([^<]*\)<.*$$/\1/p' '$(TOP_DIR)/index.html')
-PATH := $(PREFIX)/bin:$(PATH)
-
-# unexport any environment variables that might cause trouble
-unexport AR CC CFLAGS C_INCLUDE_PATH CPATH CPLUS_INCLUDE_PATH CPP
-unexport CPPFLAGS CROSS CXX CXXCPP CXXFLAGS EXEEXT EXTRA_CFLAGS
-unexport EXTRA_LDFLAGS LD LDFLAGS LIBRARY_PATH LIBS NM
-unexport OBJC_INCLUDE_PATH PKG_CONFIG QMAKESPEC RANLIB STRIP
-unexport CONFIG_SITE
+BUILD := $(shell '$(EXT_DIR)/config.guess')
+BUILD_PKGS := $(shell grep -l 'BUILD_$$(BUILD)' '$(TOP_DIR)/src/'*.mk | $(SED) -n 's,.*src/\(.*\)\.mk,\1,p')
+PATH := $(PREFIX)/$(BUILD)/bin:$(PREFIX)/bin:$(PATH)
+
+MXE_CONFIGURE_OPTS = \
+ --host='$(TARGET)' \
+ --build='$(BUILD)' \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ $(if $(BUILD_STATIC), \
+ --enable-static --disable-shared , \
+ --disable-static --enable-shared )
+
+MAKE_SHARED_FROM_STATIC = \
+ '$(TOP_DIR)/tools/make-shared-from-static' \
+ $(if $(findstring mingw,$(TARGET)),--windowsdll) \
+ --ar '$(TARGET)-ar' \
+ --ld '$(TARGET)-gcc' \
+ --install '$(INSTALL)' \
+ --libdir '$(PREFIX)/$(TARGET)/lib' \
+ --bindir '$(PREFIX)/$(TARGET)/bin'
+
+# use a minimal whitelist of safe environment variables
+ENV_WHITELIST := PATH LANG MAKE% MXE% %PROXY %proxy
+unexport $(filter-out $(ENV_WHITELIST),$(shell env | cut -d '=' -f1))
SHORT_PKG_VERSION = \
$(word 1,$(subst ., ,$($(1)_VERSION))).$(word 2,$(subst ., ,$($(1)_VERSION)))
@@ -83,7 +109,11 @@ DOWNLOAD_PKG_ARCHIVE = \
$(if $($(1)_FIX_GZIP), \
| gzip -d | gzip -9n, \
) \
- > '$(PKG_DIR)/$($(1)_FILE)' || rm -f '$(PKG_DIR)/$($(1)_FILE)'
+ > '$(PKG_DIR)/$($(1)_FILE)' || \
+ ( echo; \
+ echo 'Download failed!'; \
+ echo; \
+ rm -f '$(PKG_DIR)/$($(1)_FILE)'; )
ifeq ($(IGNORE_SETTINGS),yes)
$(info [ignore settings.mk])
@@ -102,7 +132,7 @@ else
endif
.PHONY: all
-all: $(PKGS)
+all: all-filtered
.PHONY: check-requirements
define CHECK_REQUIREMENT
@@ -129,25 +159,34 @@ define CHECK_REQUIREMENT_VERSION
fi
endef
+$(shell [ -d '$(PREFIX)/installed' ] || mkdir -p '$(PREFIX)/installed')
+
check-requirements: $(PREFIX)/installed/check-requirements
$(PREFIX)/installed/check-requirements: $(MAKEFILE)
@echo '[check requirements]'
$(foreach REQUIREMENT,$(REQUIREMENTS),$(call CHECK_REQUIREMENT,$(REQUIREMENT)))
$(call CHECK_REQUIREMENT_VERSION,autoconf,2\.6[4-9]\|2\.[7-9][0-9])
$(call CHECK_REQUIREMENT_VERSION,automake,1\.11\.[3-9]\|1\.[1-9][2-9]\(\.[0-9]\+\)\?)
- @[ -d '$(PREFIX)/installed' ] || mkdir -p '$(PREFIX)/installed'
@touch '$@'
+# define some whitespace variables
define newline
endef
+null :=
+space := $(null) $(null)
+
include $(patsubst %,$(TOP_DIR)/src/%.mk,$(PKGS))
.PHONY: download
download: $(addprefix download-,$(PKGS))
+.PHONY: build-requirements
+build-requirements:
+ @$(MAKE) -f '$(MAKEFILE)' $(BUILD_PKGS) MXE_TARGETS=$(BUILD) DONT_CHECK_REQUIREMENTS=true
+
define TARGET_DEPS
$(1)_DEPS := $(shell echo '$(MXE_TARGETS)' | \
$(SED) -n 's,.*$(1)\(.*\),\1,p' | \
@@ -173,15 +212,63 @@ $(1): | $(if $(value $(1)_DEPS), \
$(addprefix $(PREFIX)/$($(1)_DEPS)/installed/,$(PKGS))))) \
$($(1)_DEPS)
@echo '[target] $(1) $(call TARGET_HEADER)'
+ $(if $(findstring 1,$(words $(subst ., ,$(1)))),
+ @echo
+ @echo '------------------------------------------------------------'
+ @echo 'Warning: Deprecated target name $(1) specified'
+ @echo
+ @echo 'Please use $(1).[$(subst $(space),|,$(MXE_LIB_TYPES))] instead'
+ @echo 'See index.html for further information'
+ @echo '------------------------------------------------------------'
+ @echo)
endef
$(foreach TARGET,$(MXE_TARGETS),$(eval $(call TARGET_RULE,$(TARGET))))
+# cache some target string manipulation functions
+# `memoize` and `uc` from gmsl
+_CHOP_TARGET = $(call merge,.,$(call chop,$(call split,.,$(1))))
+CHOP_TARGET = $(call memoize,_CHOP_TARGET,$(1))
+_UC_LIB_TYPE = $(call uc,$(word 2,$(subst ., ,$(1))))
+UC_LIB_TYPE = $(call memoize,_UC_LIB_TYPE,$(1))
+
+# finds a package build rule or deps by truncating the target elements
+# $(call LOOKUP_PKG_RULE, package, rule type ie. BUILD|DEPS|FILE, target,[lib type, original target to cache])
+# returns variable name for use with $(value)
+#
+# caches result with gmsl associative arrays (`get` and `set` functions)
+# since `memoize` only works with single argument
+LOOKUP_PKG_RULE = $(strip \
+ $(or $(call get,LOOKUP_PKG_RULE_,$(1)_$(2)_$(or $(5),$(3))),\
+ $(if $(findstring undefined, $(flavor $(1)_$(2)_$(3))),\
+ $(if $(3),\
+ $(call LOOKUP_PKG_RULE,$(1),$(2),$(call CHOP_TARGET,$(3)),$(or $(4),$(call UC_LIB_TYPE,$(3))),$(or $(5),$(3))),\
+ $(if $(4),\
+ $(call LOOKUP_PKG_RULE,$(1),$(2),$(4),,$(5)),\
+ $(call set,LOOKUP_PKG_RULE_,$(1)_$(2)_$(5),$(1)_$(2))\
+ $(1)_$(2))),\
+ $(call set,LOOKUP_PKG_RULE_,$(1)_$(2)_$(or $(5),$(3)),$(1)_$(2)_$(3))\
+ $(1)_$(2)_$(3))))
+
define PKG_RULE
.PHONY: download-$(1)
-download-$(1):: $(addprefix download-,$($(1)_DEPS))
- if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
- $(call DOWNLOAD_PKG_ARCHIVE,$(1)); \
- $(call CHECK_PKG_ARCHIVE,$(1)) || { echo 'Wrong checksum!'; exit 1; }; \
+download-$(1):: $(addprefix download-,$(value $(call LOOKUP_PKG_RULE,$(1),DEPS,$(3))))
+ @[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
+ @if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
+ echo '[download] $(1)'; \
+ ($(call DOWNLOAD_PKG_ARCHIVE,$(1))) &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)-download'; \
+ ln -sf '$(TIMESTAMP)/$(1)-download' '$(LOG_DIR)/$(1)-download'; \
+ if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
+ echo; \
+ echo 'Download failed or wrong checksum of package $(1)!'; \
+ echo '------------------------------------------------------------'; \
+ $(if $(findstring undefined, $(origin MXE_VERBOSE)),\
+ tail -n 10 '$(LOG_DIR)/$(1)-download' | $(SED) -n '/./p';, \
+ $(SED) -n '/./p' '$(LOG_DIR)/$(1)-download';) \
+ echo '------------------------------------------------------------'; \
+ echo '[log] $(LOG_DIR)/$(1)-download'; \
+ echo; \
+ exit 1; \
+ fi; \
fi
.PHONY: $(1)
@@ -189,8 +276,8 @@ $(1): $(PREFIX)/$(3)/installed/$(1)
$(PREFIX)/$(3)/installed/$(1): $(TOP_DIR)/src/$(1).mk \
$(wildcard $(TOP_DIR)/src/$(1)-*.patch) \
$(wildcard $(TOP_DIR)/src/$(1)-test*) \
- $(addprefix $(PREFIX)/$(3)/installed/,$($(1)_DEPS)) \
- | check-requirements $(3)
+ $(addprefix $(PREFIX)/$(3)/installed/,$(value $(call LOOKUP_PKG_RULE,$(1),DEPS,$(3)))) \
+ | $(if $(DONT_CHECK_REQUIREMENTS),,check-requirements) $(3)
@[ -d '$(LOG_DIR)/$(TIMESTAMP)' ] || mkdir -p '$(LOG_DIR)/$(TIMESTAMP)'
@if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
echo '[download] $(1)'; \
@@ -198,46 +285,52 @@ $(PREFIX)/$(3)/installed/$(1): $(TOP_DIR)/src/$(1).mk \
ln -sf '$(TIMESTAMP)/$(1)-download' '$(LOG_DIR)/$(1)-download'; \
if ! $(call CHECK_PKG_ARCHIVE,$(1)); then \
echo; \
- echo 'Wrong checksum of package $(1)!'; \
+ echo 'Download failed or wrong checksum of package $(1)!'; \
echo '------------------------------------------------------------'; \
- tail -n 10 '$(LOG_DIR)/$(1)-download' | $(SED) -n '/./p'; \
+ $(if $(findstring undefined, $(origin MXE_VERBOSE)),\
+ tail -n 10 '$(LOG_DIR)/$(1)-download' | $(SED) -n '/./p';, \
+ $(SED) -n '/./p' '$(LOG_DIR)/$(1)-download';) \
echo '------------------------------------------------------------'; \
echo '[log] $(LOG_DIR)/$(1)-download'; \
echo; \
exit 1; \
fi; \
fi
- $(if $(or $(value $(1)_BUILD_$(3)),\
- $(and $(value $(1)_BUILD),$(findstring undefined,$(origin $(1)_BUILD_$(3))))),
+ $(if $(value $(call LOOKUP_PKG_RULE,$(1),BUILD,$(3))),
@echo '[build] $(1)',
- $(if $(findstring undefined,$(origin $(1)_BUILD_$(3))),
- @echo '[no-op] $(1)',
- @echo '[exclude] $(1)'
- )
- )
+ @echo '[no-build] $(1)')
@touch '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'
- @[ $(words $(MXE_TARGETS)) == 1 ] || ln -sf '$(TIMESTAMP)/$(1)_$(3)' '$(LOG_DIR)/$(1)_$(3)'
+ @ln -sf '$(TIMESTAMP)/$(1)_$(3)' '$(LOG_DIR)/$(1)_$(3)'
@ln -sf '$(TIMESTAMP)/$(1)_$(3)' '$(LOG_DIR)/$(1)'
@if ! (time $(MAKE) -f '$(MAKEFILE)' 'build-only-$(1)_$(3)') &> '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'; then \
echo; \
echo 'Failed to build package $(1)!'; \
echo '------------------------------------------------------------'; \
- tail -n 10 '$(LOG_DIR)/$(1)' | $(SED) -n '/./p'; \
+ $(if $(findstring undefined, $(origin MXE_VERBOSE)),\
+ tail -n 10 '$(LOG_DIR)/$(1)' | $(SED) -n '/./p';, \
+ $(SED) -n '/./p' '$(LOG_DIR)/$(1)';) \
echo '------------------------------------------------------------'; \
echo '[log] $(LOG_DIR)/$(1)'; \
echo; \
- (echo; find '$(2)' -name 'config.log' -print -exec cat {} \;) >> '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'; \
+ (echo; \
+ find '$(2)' -name 'config.log' -print -exec cat {} \;; \
+ echo; \
+ echo 'settings.mk'; \
+ cat '$(TOP_DIR)/settings.mk'; \
+ ) >> '$(LOG_DIR)/$(TIMESTAMP)/$(1)_$(3)'; \
exit 1; \
fi
- @echo '[done] $(1)'
+ $(if $(value $(call LOOKUP_PKG_RULE,$(1),BUILD,$(3))),
+ @echo '[done] $(1)')
.PHONY: build-only-$(1)_$(3)
build-only-$(1)_$(3): PKG = $(1)
build-only-$(1)_$(3): TARGET = $(3)
+build-only-$(1)_$(3): BUILD_$(if $(findstring shared,$(3)),SHARED,STATIC) = TRUE
+build-only-$(1)_$(3): LIB_SUFFIX = $(if $(findstring shared,$(3)),dll,a)
build-only-$(1)_$(3): CMAKE_TOOLCHAIN_FILE = $(PREFIX)/$(3)/share/cmake/mxe-conf.cmake
build-only-$(1)_$(3):
- $(if $(or $(value $(1)_BUILD_$(3)),\
- $(and $(value $(1)_BUILD),$(findstring undefined,$(origin $(1)_BUILD_$(3))))),
+ $(if $(value $(call LOOKUP_PKG_RULE,$(1),BUILD,$(3))),
uname -a
git show-branch --list --reflog=1
lsb_release -a 2>/dev/null || sw_vers 2>/dev/null || true
@@ -247,16 +340,75 @@ build-only-$(1)_$(3):
cd '$(2)/$($(1)_SUBDIR)'
$(foreach PKG_PATCH,$(sort $(wildcard $(TOP_DIR)/src/$(1)-*.patch)),
(cd '$(2)/$($(1)_SUBDIR)' && $(PATCH) -p1 -u) < $(PKG_PATCH))
- $$(call $(if $(value $(1)_BUILD_$(3)),$(1)_BUILD_$(3),$(1)_BUILD),$(2)/$($(1)_SUBDIR),$(TOP_DIR)/src/$(1)-test)
+ $$(call $(call LOOKUP_PKG_RULE,$(1),BUILD,$(3)),$(2)/$($(1)_SUBDIR),$(TOP_DIR)/src/$(1)-test)
(du -k -d 0 '$(2)' 2>/dev/null || du -k --max-depth 0 '$(2)') | $(SED) -n 's/^\(\S*\).*/du: \1 KiB/p'
rm -rfv '$(2)'
,)
- [ -d '$(PREFIX)/$(3)/installed' ] || mkdir -p '$(PREFIX)/$(3)/installed'
touch '$(PREFIX)/$(3)/installed/$(1)'
endef
$(foreach TARGET,$(MXE_TARGETS), \
+ $(shell [ -d '$(PREFIX)/$(TARGET)/installed' ] || mkdir -p '$(PREFIX)/$(TARGET)/installed') \
$(foreach PKG,$(PKGS), \
- $(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG)),$(TARGET)))))
+ $(eval $(call PKG_RULE,$(PKG),$(call TMP_DIR,$(PKG)-$(TARGET)),$(TARGET)))))
+
+# convenience set-like functions for unique lists
+SET_APPEND = \
+ $(eval $(1) := $(sort $($(1)) $(2)))
+
+SET_CLEAR = \
+ $(eval $(1) := )
+
+# WALK functions accept a list of pkgs and/or wildcards
+WALK_UPSTREAM = \
+ $(strip \
+ $(foreach PKG,$(filter $(1),$(PKGS)),\
+ $(foreach DEP,$($(PKG)_DEPS) $(foreach TARGET,$(MXE_TARGETS),$($(PKG)_DEPS_$(TARGET))),\
+ $(if $(filter-out $(PKGS_VISITED),$(DEP)),\
+ $(call SET_APPEND,PKGS_VISITED,$(DEP))\
+ $(call WALK_UPSTREAM,$(DEP))\
+ $(DEP)))))
+
+# not really walking downstream - that seems to be quadratic, so take
+# a linear approach and filter the fully expanded upstream for each pkg
+WALK_DOWNSTREAM = \
+ $(strip \
+ $(foreach PKG,$(PKGS),\
+ $(call SET_CLEAR,PKGS_VISITED)\
+ $(eval $(PKG)_DEPS_ALL := $(call WALK_UPSTREAM,$(PKG))))\
+ $(foreach PKG,$(PKGS),\
+ $(if $(filter $(1),$($(PKG)_DEPS_ALL)),$(PKG))))
+
+# EXCLUDE_PKGS can be a list of pkgs and/or wildcards
+RECURSIVELY_EXCLUDED_PKGS = \
+ $(sort \
+ $(filter $(EXCLUDE_PKGS),$(PKGS))\
+ $(call SET_CLEAR,PKGS_VISITED)\
+ $(call WALK_DOWNSTREAM,$(EXCLUDE_PKGS)))
+
+.PHONY: all-filtered
+all-filtered: $(filter-out $(call RECURSIVELY_EXCLUDED_PKGS),$(PKGS))
+
+# print a list of upstream dependencies and downstream dependents
+show-deps-%:
+ $(call SET_CLEAR,PKGS_VISITED)
+ $(info $* upstream dependencies:$(newline)\
+ $(call WALK_UPSTREAM,$*)\
+ $(newline)$(newline)$* downstream dependents:$(newline)\
+ $(call WALK_DOWNSTREAM,$*))
+ @echo
+
+# show upstream dependencies and downstream dependents separately
+# suitable for usage in shell with: `make show-downstream-deps-foo`
+# @echo -n suppresses the "Nothing to be done" without an eol
+show-downstream-deps-%:
+ $(call SET_CLEAR,PKGS_VISITED)
+ $(info $(call WALK_DOWNSTREAM,$*))
+ @echo -n
+
+show-upstream-deps-%:
+ $(call SET_CLEAR,PKGS_VISITED)
+ $(info $(call WALK_UPSTREAM,$*))
+ @echo -n
.PHONY: clean
clean:
@@ -290,6 +442,11 @@ endef
update:
$(foreach PKG,$(PKGS),$(call UPDATE,$(PKG),$(shell $($(PKG)_UPDATE))))
+update-package-%:
+ $(if $(findstring $*~,$(addsuffix ~,$(PKGS))), \
+ $(call UPDATE,$*,$(shell $($*_UPDATE))), \
+ $(error package $* not found in index.html))
+
update-checksum-%:
$(if $(findstring $*~,$(addsuffix ~,$(PKGS))), \
$(call DOWNLOAD_PKG_ARCHIVE,$*) && \
diff --git a/doc/gmsl.html b/doc/gmsl.html
new file mode 100644
index 0000000..accdd16
--- /dev/null
+++ b/doc/gmsl.html
@@ -0,0 +1,704 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head>
+ <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
+ <title>GNU Make Standard Library</title></head>
+
+<body>
+<h1>GNU Make Standard Library</h1>
+The GNU Make Standard Library (GMSL) is a collection of functions
+implemented using native GNU Make functionality that provide list and
+string manipulation, integer arithmetic, associative arrays, stacks,
+and debugging facilities.&nbsp; The GMSL is released under the BSD License.<br>
+<br>
+<a href="http://sourceforge.net/projects/gmsl/">[Project Page]</a> <a href="http://sourceforge.net/project/showfiles.php?group_id=129887">[Download]</a>
+<a href="http://sourceforge.net/forum/forum.php?forum_id=443916">[Discussion
+Forum]</a><br>
+<h2>Using GMSL</h2>
+The two files needed are <span style="font-family: monospace;">gmsl</span>
+and <span style="font-family: monospace;">__gmsl</span>.&nbsp; To
+include the GMSL in your Makefile do<br>
+<pre style="margin-left: 40px;">include gmsl</pre>
+<span style="font-family: monospace;">gmsl</span> automatically includes<span style="font-family: monospace;"> __gmsl</span>.&nbsp; To check that
+you have the right version of <span style="font-family: monospace;">gmsl</span>
+use the <span style="font-family: monospace;">gmsl_compatible</span>
+function (see
+below). The current version is <span style="font-family: monospace;">1 1 3</span>.<br>
+<br>
+The GMSL package also includes a test suite for GMSL.&nbsp; Just run <span style="font-family: monospace;">make -f gmsl-tests</span>.<br>
+<h2>Logical Operators</h2>GMSL has boolean $(true) (a non-empty string)
+and $(false) (an empty string).&nbsp; The following operators can be
+used with those variables.<br>
+<br>
+<hr style="width: 100%; height: 2px;"><span style="font-weight: bold;">not</span><br>
+
+<br>
+
+<span style="font-family: monospace;">Arguments: A boolean value</span><br style="font-family: monospace;">
+
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns $(true) if the boolean is $(false) and vice versa</span><br style="font-family: monospace;">
+
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;"></span><span style="font-weight: bold;">and</span><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns $(true) if both of the booleans are true</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;">or</span><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns $(true) if either of the booleans is true</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;">xor</span><br style="font-weight: bold;">
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns $(true) if exactly one of the booleans is true</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;">nand</span><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns value of 'not and'</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;">nor</span><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns value of 'not or'</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;"><span style="font-weight: bold;">xnor</span><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two boolean values</span><br style="font-family: monospace;">
+<span style="font-family: monospace;">Returns:&nbsp;&nbsp; Returns value of 'not xor'</span><br style="font-family: monospace;">
+<hr style="width: 100%; height: 2px; font-family: monospace;">
+<h2>List Manipulation Functions</h2>
+&nbsp;A list is a string of characters; the list separator is a space.<br>
+
+<br>
+<hr style="width: 100%; height: 2px;"><b>first</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the first element of a list<br>
+</span>
+<hr><b>last</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the last element of a list<br>
+</span>
+<hr><b>rest</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the list with the first element
+removed<br>
+</span>
+<hr><b>chop</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the list with the last element removed<br>
+</span>
+<hr><b>map</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of function to
+$(call) for each element of list<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: List to
+iterate over calling the function in 1<br>
+Returns:&nbsp;&nbsp;&nbsp;The list after calling the function on each
+element<br>
+</span>
+<hr><b>pairmap</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of function to
+$(call) for each pair of elements<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: List to
+iterate over calling the function in 1<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3: Second
+list to iterate over calling the function in 1<br>
+Returns:&nbsp;&nbsp;&nbsp;The list after calling the function on each
+pair of elements<br>
+</span>
+<hr><b>leq</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list to compare
+against...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: ...this
+list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the two lists are identical<br>
+</span>
+<hr><b>lne</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list to compare
+against...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: ...this
+list<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the two lists are different<br>
+</span>
+<hr><b>reverse</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list to reverse<br>
+Returns:&nbsp;&nbsp;&nbsp;The list with its elements in reverse order<br>
+</span>
+<hr><b>uniq</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list to deduplicate<br>
+Returns:&nbsp;&nbsp;&nbsp;The list with elements in order without duplicates<br>
+</span>
+<hr><b>length</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list<br>
+Returns:&nbsp;&nbsp;&nbsp;The number of elements in the list<br>
+</span>
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>String Manipulation Functions</h2>
+A string is any sequence of characters.<br>
+<br>
+<hr style="width: 100%; height: 2px;"><b>seq</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A string to compare
+against...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: ...this
+string<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the two strings are
+identical<br>
+</span>
+<hr><b>sne</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A string to compare
+against...<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: ...this
+string<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the two strings are not
+the same<br>
+</span>
+<hr><b>strlen</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A string<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the length of the string<br>
+</span>
+<hr><b>substr</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A string<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Start offset (first character is 1)<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3: Ending offset (inclusive)<br>Returns:&nbsp;&nbsp;&nbsp;Returns a substring<br>
+</span>
+<hr><b>split</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: The character to
+split on<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: A
+string to split<br>
+Returns:&nbsp;&nbsp;&nbsp;Splits a string into a list separated by
+spaces at the split<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; character
+in the first argument<br>
+</span>
+<hr><b>merge</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: The character to
+put between fields<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: A list
+to merge into a string<br>
+Returns:&nbsp;&nbsp;&nbsp;Merges a list into a single string, list
+elements are separated<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by the
+character in the first argument<br>
+</span>
+<hr><b>tr</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: The list of
+characters to translate from <br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: The
+list of characters to translate to<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3: The
+text to translate<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the text after translating characters<br>
+</span>
+<hr><b>uc</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Text to upper case<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the text in upper case<br>
+</span>
+<hr><b>lc</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Text to lower case<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the text in lower case<br>
+</span>
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Set Manipulation Functions</h2>
+Sets are represented by sorted, deduplicated lists. To create a set
+from a list use <span style="font-family:
+monospace;">set_create</span>, or start with the <span
+style="font-family: monospace;">empty_set</span> and <span
+style="font-family: monospace;">set_insert</span> individual elements.
+The empty set is defined as <span style="font-family:
+monospace;">empty_set</span>.<p>
+
+<hr><b>set_create</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A list of set elements<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the newly created set<br>
+</span>
+
+<hr><b>set_insert</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A single element to add to a set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: A set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the set with the element added<br>
+</span>
+
+<hr><b>set_remove</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A single element to remove from a set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: A set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the set with the element removed<br>
+</span>
+
+<hr><b>set_is_member</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A single element<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: A set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the element is in the set<br>
+</span>
+
+<hr><b>set_union</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: Another set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the union of the two sets<br>
+</span>
+
+<hr><b>set_intersection</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: Another set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the intersection of the two sets<br>
+</span>
+
+<hr><b>set_is_subset</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: Another set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the first set is a subset of the second<br>
+</span>
+
+<hr><b>set_equal</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A set<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2: Another set<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns $(true) if the two sets are identical<br>
+</span>
+
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Integer Arithmetic Functions</h2>
+Integers are represented by lists with the equivalent number of
+x's.&nbsp; For example the number 4 is x x x x.&nbsp; The maximum
+integer that the library can handle as <span style="font-style: italic;">input</span> (i.e. as the argument to a
+call to <span style="font-family: monospace;">int_encode</span>) is
+65536. There is no limit on integer size for internal computations or
+output.<br>
+<br>
+The arithmetic library functions come in two forms: one form of each
+function takes integers as arguments and the other form takes the
+encoded form (x's created by a call to <span style="font-family: monospace;">int_encode</span>).&nbsp; For example,
+there are two plus functions: <span style="font-family: monospace;">plus</span>
+(called with integer arguments and returns an integer) and <span style="font-family: monospace;">int_plus</span> (called with encoded
+arguments and returns an encoded result).<br>
+<br>
+<span style="font-family: monospace;">plus</span> will be slower than <span style="font-family: monospace;">int_plus</span> because its arguments
+and result have to be translated between the x's format and
+integers.&nbsp; If doing a complex calculation use the <span style="font-family: monospace;">int_*</span> forms with a single
+encoding of inputs and single decoding of the output.&nbsp; For simple
+calculations the direct forms can be used.<br>
+<br>
+<hr style="width: 100%; height: 2px;"><b>int_decode</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number of x's
+representation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the integer for human consumption
+that is represented<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by the
+string of x's<br>
+</span>
+<hr><b>int_encode</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in
+human-readable integer form<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the integer encoded as a string of x's<br>
+</span>
+<hr><b>int_plus</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+number in x's represntation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the sum of the two numbers in x's
+representation<br>
+</span>
+<hr><b>plus (wrapped version of int_plus)</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+integer<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the sum of the two integers<br>
+</span>
+<hr><b>int_subtract</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+number in x's represntation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the difference of the two numbers in
+x's representation,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or outputs
+an error on a numeric underflow<br>
+</span>
+<hr><b>subtract (wrapped version of int_subtract)</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+integer<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the difference of the two integers,<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or outputs
+an error on a numeric underflow<br>
+</span>
+<hr><b>int_multiply</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+number in x's represntation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the product of the two numbers in x's
+representation<br>
+</span>
+<hr><b>multiply (wrapped version of int_multiply)</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+integer<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the product of the two integers<br>
+</span>
+<hr><b>int_divide</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+number in x's represntation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the result of integer division of
+argument 1 divided<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; by
+argument 2 in x's representation<br>
+</span>
+<hr><b>divide (wrapped version of int_divide)</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+integer<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the integer division of the first
+argument by the second<br>
+</span>
+<hr><b>int_max, int_min</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+number in x's represntation<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the maximum or minimum of its
+arguments in x's<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+representation<br>
+</span>
+<hr><b>max, min</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Another
+integer<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns the maximum or minimum of its integer
+arguments<br>
+</span>
+<hr><b>int_gt, int_gte, int_lt, int_lte, int_eq, int_ne</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two x's representation
+numbers to be compared<br>
+Returns:&nbsp;&nbsp;&nbsp;$(true) or $(false)<br>
+<br>
+int_gt First argument greater than second argument<br>
+int_gte First argument greater than or equal to second argument<br>
+int_lt First argument less than second argument <br>
+int_lte First argument less than or equal to second argument<br>
+int_eq First argument is numerically equal to the second argument<br>
+int_ne First argument is not numerically equal to the second argument<br>
+</span>
+<hr><b>gt, gte, lt, lte, eq, ne</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: Two integers to be
+compared<br>
+Returns:&nbsp;&nbsp;&nbsp;$(true) or $(false)<br>
+<br>
+gt First argument greater than second argument<br>
+gte First argument greater than or equal to second argument<br>
+lt First argument less than second argument <br>
+lte First argument less than or equal to second argument<br>
+eq First argument is numerically equal to the second argument<br>
+ne First argument is not numerically equal to the second argument<br>
+</span>
+increment adds 1 to its argument, decrement subtracts 1. Note that<br>
+decrement does not range check and hence will not underflow, but<br>
+will incorrectly say that 0 - 1 = 0<br>
+<hr><b>int_inc</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+Returns:&nbsp;&nbsp;&nbsp;The number incremented by 1 in x's
+representation<br>
+</span>
+<hr><b>inc</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+Returns:&nbsp;&nbsp;&nbsp;The argument incremented by 1<br>
+</span>
+<hr><b>int_dec</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+Returns:&nbsp;&nbsp;&nbsp;The number decremented by 1 in x's
+representation<br>
+</span>
+<hr><b>dec</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+Returns:&nbsp;&nbsp;&nbsp;The argument decremented by 1<br>
+</span>
+<hr><b>int_double</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+Returns:&nbsp;&nbsp;&nbsp;The number doubled (i.e. * 2) and returned in
+x's representation<br>
+</span>
+<hr><b>double</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+Returns:&nbsp;&nbsp;&nbsp;The integer times 2<br>
+</span>
+<hr><b>int_halve</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A number in x's
+representation<br>
+Returns:&nbsp;&nbsp;&nbsp;The number halved (i.e. / 2) and returned in
+x's representation<br>
+</span>
+<hr><b>halve</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+Returns:&nbsp;&nbsp;&nbsp;The integer divided by 2<br>
+</span>
+<hr><b>sequence</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: An integer<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: An integer<br>
+Returns:&nbsp;&nbsp;&nbsp;The sequence [arg1 arg2] if arg1 >= arg2 or [arg2 arg1] if arg2 > arg1<br>
+</span>
+
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Associative Arrays</h2>
+An associate array maps a key value (a string with no spaces in it) to
+a single value (any string).&nbsp;&nbsp;&nbsp; <br>
+<b><br>
+</b>
+<hr style="width: 100%; height: 2px;"><b>set</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of associative
+array<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: The key
+value to associate<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3: The
+value associated with the key<br>
+Returns:&nbsp;&nbsp;&nbsp;Nothing<br>
+</span>
+<hr><b>get</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of associative
+array<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: The key
+to retrieve<br>
+Returns:&nbsp;&nbsp;&nbsp;The value stored in the array for that key<br>
+</span>
+<hr><b>keys</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of associative
+array<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns a list of all defined keys in the
+array<br>
+</span>
+<hr><b>defined</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of associative
+array<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: The key
+to test<br>
+Returns:&nbsp;&nbsp;&nbsp;Returns true if the key is defined (i.e. not
+empty)<br>
+</span>
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Named Stacks</h2>
+A stack is an ordered list of strings (with no spaces in them).<br>
+<br>
+<hr style="width: 100%; height: 2px;"><b>push</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of stack<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: Value
+to push onto the top of the stack (must not contain<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; a space)<br>
+Returns:&nbsp;&nbsp;&nbsp;None<br>
+</span>
+<hr><b>pop</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of stack<br>
+Returns:&nbsp;&nbsp;&nbsp;Top element from the stack after removing it<br>
+</span>
+<hr><b>peek</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of stack<br>
+Returns:&nbsp;&nbsp;&nbsp;Top element from the stack without removing it<br>
+</span>
+<hr><b>depth</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of stack<br>
+Returns:&nbsp;&nbsp;&nbsp;Number of items on the stack<br>
+</span>
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Function memoization</h2>
+To reduce the number of calls to slow functions (such as $(shell) a single memoization function is provided.<br>
+<br>
+<hr style="width: 100%; height: 2px;"><b>memoize</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of function to memoize<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: String argument for the function<br>
+Returns:&nbsp;&nbsp;&nbsp;Result of $1 applied to $2 but only calls $1 once for each unique $2<br>
+</span>
+
+<hr style="width: 100%; height: 2px;"><span style="font-family: monospace;"></span>
+<h2>Miscellaneous and Debugging Facilities</h2>
+GMSL defines the following constants; all are accessed as normal GNU
+Make variables by wrapping them in <span style="font-family: monospace;">$()</span> or <span style="font-family: monospace;">${}</span>.<br>
+<br>
+<table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td><span style="font-style: italic;">Constant</span><br>
+ </td>
+ <td><span style="font-style: italic;">Value</span><br>
+ </td>
+ <td><span style="font-style: italic;">Purpose</span><br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">true</span><br>
+ </td>
+ <td><span style="font-family: monospace;">T</span><br>
+ </td>
+ <td>Boolean for <span style="font-family: monospace;">$(if)</span>
+and return from&nbsp; GMSL functions<br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">false</span><br>
+ </td>
+ <td><br>
+ </td>
+ <td>Boolean for <span style="font-family: monospace;">$(if)</span>
+and return from GMSL functions<br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">gmsl_version</span><br>
+ </td>
+ <td><span style="font-family: monospace;">1 0 0</span><br>
+ </td>
+ <td>GMSL version number as list: major minor revision<br>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<span style="font-weight: bold;"><br>
+gmsl_compatible</span><span style="font-family: monospace;"><br>
+<br>
+Arguments: List containing the desired library version number (maj min
+rev)<br>
+</span><span style="font-family: monospace;">Returns:&nbsp;&nbsp;
+$(true) if this version of the library is compatible<br>
+</span><span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+with the requested version number, otherwise $(false)</span>
+<hr><b>gmsl-print-% (target not a function)</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: The % should be
+replaced by the name of a variable that you<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wish to
+print out.<br>
+Action:&nbsp;&nbsp;&nbsp; Echos the name of the variable that matches
+the % and its value.<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For
+example, 'make gmsl-print-SHELL' will output the value of<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; the SHELL
+variable<br>
+</span>
+<hr><b>assert</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: A boolean that must
+be true or the assertion will fail<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2: The
+message to print with the assertion<br>
+Returns:&nbsp;&nbsp;&nbsp;None<br>
+</span>
+<hr><b>assert_exists</b><br>
+<br>
+<span style="font-family: monospace;">Arguments: 1: Name of file that
+must exist, if it is missing an assertion<br>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; will be
+generated<br>
+Returns:&nbsp;&nbsp;&nbsp;None<br>
+</span>
+<hr style="width: 100%; height: 2px;"><br>
+GMSL has a number of environment variables (or command-line overrides)
+that control various bits of functionality:<br>
+<br>
+<table style="text-align: left;" border="1" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td><span style="font-style: italic;">Variable</span><br>
+ </td>
+ <td><span style="font-style: italic;">Purpose</span><br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">GMSL_NO_WARNINGS</span><br>
+ </td>
+ <td>If set prevents GMSL from outputting warning messages:
+artithmetic functions generate underflow warnings.<br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">GMSL_NO_ERRORS</span><br>
+ </td>
+ <td>If set prevents GMSL from generating fatal errors: division
+by zero or failed assertions are fatal.<br>
+ </td>
+ </tr>
+ <tr>
+ <td><span style="font-family: monospace;">GMSL_TRACE</span><br>
+ </td>
+ <td>Enables function tracing.&nbsp; Calls to GMSL functions will
+result in name and arguments being traced.<br>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<span style="font-family: monospace;"></span><br>
+<hr>
+Copyright (c) 2005-2012 <a href="http://www.jgc.org/">John Graham-Cumming</a>.<br>
+<hr style="width: 100%; height: 2px;">
+<table style="width: 100%; text-align: left;" border="0" cellpadding="2" cellspacing="2">
+ <tbody>
+ <tr>
+ <td style="width: 50%;">John Graham-Cumming's work on this
+project was sponsored by <a href="http://www.electric-cloud.com/">Electric
+Cloud, Inc</a>.<br>
+ <a href="http://www.electric-cloud.com/"><img alt="" src="http://gmsl.sf.net/ec_logo.gif" style="border: 0px solid ; width: 223px; height: 47px;"></a><br>
+ </td>
+ <td align="right">
+ <p><a href="http://sourceforge.net/"><img src="http://sourceforge.net/sflogo.php?group_id=129887&amp;type=1" alt="SourceForge.net Logo" border="0" height="31" width="88"></a></p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</body></html>
diff --git a/ext/__gmsl b/ext/__gmsl
new file mode 100644
index 0000000..90a9d69
--- /dev/null
+++ b/ext/__gmsl
@@ -0,0 +1,919 @@
+# ----------------------------------------------------------------------------
+#
+# GNU Make Standard Library (GMSL)
+#
+# A library of functions to be used with GNU Make's $(call) that
+# provides functionality not available in standard GNU Make.
+#
+# Copyright (c) 2005-2013 John Graham-Cumming
+#
+# This file is part of GMSL
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# Neither the name of the John Graham-Cumming nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# ----------------------------------------------------------------------------
+
+# This is the GNU Make Standard Library version number as a list with
+# three items: major, minor, revision
+
+gmsl_version := 1 1 3
+
+# Used to output warnings and error from the library, it's possible to
+# disable any warnings or errors by overriding these definitions
+# manually or by setting GMSL_NO_WARNINGS or GMSL_NO_ERRORS
+
+__gmsl_name := GNU Make Standard Library
+__gmsl_warning = $(warning $(__gmsl_name): $1)
+__gmsl_error = $(error $(__gmsl_name): $1)
+
+ifdef GMSL_NO_WARNINGS
+__gmsl_warning :=
+endif
+ifdef GMSL_NO_ERRORS
+__gmsl_error :=
+endif
+
+# If GMSL_TRACE is enabled then calls to the library functions are
+# traced to stdout using warning messages with their arguments
+
+ifdef GMSL_TRACE
+__gmsl_tr1 = $(warning $0('$1'))
+__gmsl_tr2 = $(warning $0('$1','$2'))
+__gmsl_tr3 = $(warning $0('$1','$2','$3'))
+else
+__gmsl_tr1 :=
+__gmsl_tr2 :=
+__gmsl_tr3 :=
+endif
+
+# See if spaces are valid in variable names (this was the case until
+# GNU Make 3.82)
+ifeq ($(MAKE_VERSION),3.82)
+__gmsl_spaced_vars := $(false)
+else
+__gmsl_spaced_vars := $(true)
+endif
+
+# Figure out whether we have $(eval) or not (GNU Make 3.80 and above)
+# if we do not then output a warning message, if we do then some
+# functions will be enabled.
+
+__gmsl_have_eval := $(false)
+__gmsl_ignore := $(eval __gmsl_have_eval := $(true))
+
+# If this is being run with Electric Cloud's emake then warn that
+# their $(eval) support is incomplete in 1.x, 2.x, 3.x, 4.x and 5.0,
+# 5.1, 5.2 and 5.3
+
+ifdef ECLOUD_BUILD_ID
+__gmsl_emake_major := $(word 1,$(subst ., ,$(EMAKE_VERSION)))
+__gmsl_emake_minor := $(word 2,$(subst ., ,$(EMAKE_VERSION)))
+ifneq ("$(findstring $(__gmsl_emake_major),1 2 3 4)$(findstring $(__gmsl_emake_major)$(__gmsl_emake_minor),50 51 52 53)","")
+$(warning You are using a version of Electric Cloud's emake which has incomplete $$(eval) support)
+__gmsl_have_eval := $(false)
+endif
+endif
+
+# See if we have $(lastword) (GNU Make 3.81 and above)
+
+__gmsl_have_lastword := $(lastword $(false) $(true))
+
+# See if we have native or and and (GNU Make 3.81 and above)
+
+__gmsl_have_or := $(if $(filter-out undefined, \
+ $(origin or)),$(call or,$(true),$(false)))
+__gmsl_have_and := $(if $(filter-out undefined, \
+ $(origin and)),$(call and,$(true),$(true)))
+
+ifneq ($(__gmsl_have_eval),$(true))
+$(call __gmsl_warning,Your make version $(MAKE_VERSION) does not support $$$$(eval): some functions disabled)
+endif
+
+__gmsl_dollar := $$
+__gmsl_hash := \#
+
+# ----------------------------------------------------------------------------
+# Function: gmsl_compatible
+# Arguments: List containing the desired library version number (maj min rev)
+# Returns: $(true) if this version of the library is compatible
+# with the requested version number, otherwise $(false)
+# ----------------------------------------------------------------------------
+gmsl_compatible = $(strip \
+ $(if $(call gt,$(word 1,$1),$(word 1,$(gmsl_version))), \
+ $(false), \
+ $(if $(call lt,$(word 1,$1),$(word 1,$(gmsl_version))), \
+ $(true), \
+ $(if $(call gt,$(word 2,$1),$(word 2,$(gmsl_version))), \
+ $(false), \
+ $(if $(call lt,$(word 2,$1),$(word 2,$(gmsl_version))), \
+ $(true), \
+ $(call lte,$(word 3,$1),$(word 3,$(gmsl_version))))))))
+
+# ###########################################################################
+# LOGICAL OPERATORS
+# ###########################################################################
+
+# not is defined in gmsl
+
+# ----------------------------------------------------------------------------
+# Function: and
+# Arguments: Two boolean values
+# Returns: Returns $(true) if both of the booleans are true
+# ----------------------------------------------------------------------------
+ifneq ($(__gmsl_have_and),$(true))
+and = $(__gmsl_tr2)$(if $1,$(if $2,$(true),$(false)),$(false))
+endif
+
+# ----------------------------------------------------------------------------
+# Function: or
+# Arguments: Two boolean values
+# Returns: Returns $(true) if either of the booleans is true
+# ----------------------------------------------------------------------------
+ifneq ($(__gmsl_have_or),$(true))
+or = $(__gmsl_tr2)$(if $1$2,$(true),$(false))
+endif
+
+# ----------------------------------------------------------------------------
+# Function: xor
+# Arguments: Two boolean values
+# Returns: Returns $(true) if exactly one of the booleans is true
+# ----------------------------------------------------------------------------
+xor = $(__gmsl_tr2)$(if $1,$(if $2,$(false),$(true)),$(if $2,$(true),$(false)))
+
+# ----------------------------------------------------------------------------
+# Function: nand
+# Arguments: Two boolean values
+# Returns: Returns value of 'not and'
+# ----------------------------------------------------------------------------
+nand = $(__gmsl_tr2)$(if $1,$(if $2,$(false),$(true)),$(true))
+
+# ----------------------------------------------------------------------------
+# Function: nor
+# Arguments: Two boolean values
+# Returns: Returns value of 'not or'
+# ----------------------------------------------------------------------------
+nor = $(__gmsl_tr2)$(if $1$2,$(false),$(true))
+
+# ----------------------------------------------------------------------------
+# Function: xnor
+# Arguments: Two boolean values
+# Returns: Returns value of 'not xor'
+# ----------------------------------------------------------------------------
+xnor =$(__gmsl_tr2)$(if $1,$(if $2,$(true),$(false)),$(if $2,$(false),$(true)))
+
+# ###########################################################################
+# LIST MANIPULATION FUNCTIONS
+# ###########################################################################
+
+# ----------------------------------------------------------------------------
+# Function: first (same as LISP's car, or head)
+# Arguments: 1: A list
+# Returns: Returns the first element of a list
+# ----------------------------------------------------------------------------
+first = $(__gmsl_tr1)$(firstword $1)
+
+# ----------------------------------------------------------------------------
+# Function: last
+# Arguments: 1: A list
+# Returns: Returns the last element of a list
+# ----------------------------------------------------------------------------
+ifeq ($(__gmsl_have_lastword),$(true))
+last = $(__gmsl_tr1)$(lastword $1)
+else
+last = $(__gmsl_tr1)$(if $1,$(word $(words $1),$1))
+endif
+
+# ----------------------------------------------------------------------------
+# Function: rest (same as LISP's cdr, or tail)
+# Arguments: 1: A list
+# Returns: Returns the list with the first element removed
+# ----------------------------------------------------------------------------
+rest = $(__gmsl_tr1)$(wordlist 2,$(words $1),$1)
+
+# ----------------------------------------------------------------------------
+# Function: chop
+# Arguments: 1: A list
+# Returns: Returns the list with the last element removed
+# ----------------------------------------------------------------------------
+chop = $(__gmsl_tr1)$(wordlist 2,$(words $1),x $1)
+
+# ----------------------------------------------------------------------------
+# Function: map
+# Arguments: 1: Name of function to $(call) for each element of list
+# 2: List to iterate over calling the function in 1
+# Returns: The list after calling the function on each element
+# ----------------------------------------------------------------------------
+map = $(__gmsl_tr2)$(strip $(foreach a,$2,$(call $1,$a)))
+
+# ----------------------------------------------------------------------------
+# Function: pairmap
+# Arguments: 1: Name of function to $(call) for each pair of elements
+# 2: List to iterate over calling the function in 1
+# 3: Second list to iterate over calling the function in 1
+# Returns: The list after calling the function on each pair of elements
+# ----------------------------------------------------------------------------
+pairmap = $(strip $(__gmsl_tr3)\
+ $(if $2$3,$(call $1,$(call first,$2),$(call first,$3)) \
+ $(call pairmap,$1,$(call rest,$2),$(call rest,$3))))
+
+# ----------------------------------------------------------------------------
+# Function: leq
+# Arguments: 1: A list to compare against...
+# 2: ...this list
+# Returns: Returns $(true) if the two lists are identical
+# ----------------------------------------------------------------------------
+leq = $(__gmsl_tr2)$(strip $(if $(call seq,$(words $1),$(words $2)), \
+ $(call __gmsl_list_equal,$1,$2),$(false)))
+
+__gmsl_list_equal = $(if $(strip $1), \
+ $(if $(call seq,$(call first,$1),$(call first,$2)), \
+ $(call __gmsl_list_equal, \
+ $(call rest,$1), \
+ $(call rest,$2)), \
+ $(false)), \
+ $(true))
+
+# ----------------------------------------------------------------------------
+# Function: lne
+# Arguments: 1: A list to compare against...
+# 2: ...this list
+# Returns: Returns $(true) if the two lists are different
+# ----------------------------------------------------------------------------
+lne = $(__gmsl_tr2)$(call not,$(call leq,$1,$2))
+
+# ----------------------------------------------------------------------------
+# Function: reverse
+# Arguments: 1: A list to reverse
+# Returns: The list with its elements in reverse order
+# ----------------------------------------------------------------------------
+reverse =$(__gmsl_tr1)$(strip $(if $1,$(call reverse,$(call rest,$1)) \
+ $(call first,$1)))
+
+# ----------------------------------------------------------------------------
+# Function: uniq
+# Arguments: 1: A list from which to remove repeated elements
+# Returns: The list with duplicate elements removed without reordering
+# ----------------------------------------------------------------------------
+uniq = $(strip $(__gmsl_tr1) $(if $1,$(firstword $1) \
+ $(call uniq,$(filter-out $(firstword $1),$1))))
+
+# ----------------------------------------------------------------------------
+# Function: length
+# Arguments: 1: A list
+# Returns: The number of elements in the list
+# ----------------------------------------------------------------------------
+length = $(__gmsl_tr1)$(words $1)
+
+# ###########################################################################
+# STRING MANIPULATION FUNCTIONS
+# ###########################################################################
+
+# Helper function that translates any GNU Make 'true' value (i.e. a
+# non-empty string) to our $(true)
+
+__gmsl_make_bool = $(if $(strip $1),$(true),$(false))
+
+# ----------------------------------------------------------------------------
+# Function: seq
+# Arguments: 1: A string to compare against...
+# 2: ...this string
+# Returns: Returns $(true) if the two strings are identical
+# ----------------------------------------------------------------------------
+seq = $(__gmsl_tr2)$(if $(subst x$1,,x$2)$(subst x$2,,x$1),$(false),$(true))
+
+# ----------------------------------------------------------------------------
+# Function: sne
+# Arguments: 1: A string to compare against...
+# 2: ...this string
+# Returns: Returns $(true) if the two strings are not the same
+# ----------------------------------------------------------------------------
+sne = $(__gmsl_tr2)$(call not,$(call seq,$1,$2))
+
+# ----------------------------------------------------------------------------
+# Function: split
+# Arguments: 1: The character to split on
+# 2: A string to split
+# Returns: Splits a string into a list separated by spaces at the split
+# character in the first argument
+# ----------------------------------------------------------------------------
+split = $(__gmsl_tr2)$(strip $(subst $1, ,$2))
+
+# ----------------------------------------------------------------------------
+# Function: merge
+# Arguments: 1: The character to put between fields
+# 2: A list to merge into a string
+# Returns: Merges a list into a single string, list elements are separated
+# by the character in the first argument
+# ----------------------------------------------------------------------------
+merge = $(__gmsl_tr2)$(strip $(if $2, \
+ $(if $(call seq,1,$(words $2)), \
+ $2,$(call first,$2)$1$(call merge,$1,$(call rest,$2)))))
+
+ifdef __gmsl_have_eval
+# ----------------------------------------------------------------------------
+# Function: tr
+# Arguments: 1: The list of characters to translate from
+# 2: The list of characters to translate to
+# 3: The text to translate
+# Returns: Returns the text after translating characters
+# ----------------------------------------------------------------------------
+tr = $(strip $(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3) \
+ $(eval __gmsl_t := $3) \
+ $(foreach c, \
+ $(join $(addsuffix :,$1),$2), \
+ $(eval __gmsl_t := \
+ $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)), \
+ $(__gmsl_t))))$(__gmsl_t))
+
+# Common character classes for use with the tr function. Each of
+# these is actually a variable declaration and must be wrapped with
+# $() or ${} to be used.
+
+[A-Z] := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z #
+[a-z] := a b c d e f g h i j k l m n o p q r s t u v w x y z #
+[0-9] := 0 1 2 3 4 5 6 7 8 9 #
+[A-F] := A B C D E F #
+
+# ----------------------------------------------------------------------------
+# Function: uc
+# Arguments: 1: Text to upper case
+# Returns: Returns the text in upper case
+# ----------------------------------------------------------------------------
+uc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$([a-z]),$([A-Z]),$1)
+
+# ----------------------------------------------------------------------------
+# Function: lc
+# Arguments: 1: Text to lower case
+# Returns: Returns the text in lower case
+# ----------------------------------------------------------------------------
+lc = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(call tr,$([A-Z]),$([a-z]),$1)
+
+# ----------------------------------------------------------------------------
+# Function: strlen
+# Arguments: 1: A string
+# Returns: Returns the length of the string
+# ----------------------------------------------------------------------------
+__gmsl_characters := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+__gmsl_characters += a b c d e f g h i j k l m n o p q r s t u v w x y z
+__gmsl_characters += 0 1 2 3 4 5 6 7 8 9
+__gmsl_characters += ` ~ ! @ \# $$ % ^ & * ( ) - _ = +
+__gmsl_characters += { } [ ] \ : ; ' " < > , . / ? |
+
+# This results in __gmsl_space containing just a space
+
+__gmsl_space :=
+__gmsl_space +=
+
+strlen = $(__gmsl_tr1)$(call assert_no_dollar,$0,$1)$(strip $(eval __temp := $(subst $(__gmsl_space),x,$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,x,$(__temp))))$(eval __temp := $(subst x,x ,$(__temp)))$(words $(__temp)))
+
+# This results in __gmsl_newline containing just a newline
+
+define __gmsl_newline
+
+
+endef
+
+# This results in __gmsl_tab containing a tab
+
+__gmsl_tab := #
+
+# ----------------------------------------------------------------------------
+# Function: substr
+# Arguments: 1: A string
+# 2: Start position (first character is 1)
+# 3: End position (inclusive)
+# Returns: A substring.
+# Note: The string in $1 must not contain a §
+# ----------------------------------------------------------------------------
+
+substr = $(__gmsl_tr3)$(call assert_no_dollar,$0,$1$2$3)$(strip $(eval __temp := $$(subst $$(__gmsl_space),§ ,$$1))$(foreach a,$(__gmsl_characters),$(eval __temp := $$(subst $$a,$$a$$(__gmsl_space),$(__temp))))$(eval __temp := $(wordlist $2,$3,$(__temp))))$(subst §,$(__gmsl_space),$(subst $(__gmsl_space),,$(__temp)))
+
+endif # __gmsl_have_eval
+
+# ###########################################################################
+# SET MANIPULATION FUNCTIONS
+# ###########################################################################
+
+# Sets are represented by sorted, deduplicated lists. To create a set
+# from a list use set_create, or start with the empty_set and
+# set_insert individual elements
+
+# This is the empty set
+empty_set :=
+
+# ----------------------------------------------------------------------------
+# Function: set_create
+# Arguments: 1: A list of set elements
+# Returns: Returns the newly created set
+# ----------------------------------------------------------------------------
+set_create = $(__gmsl_tr1)$(sort $1)
+
+# ----------------------------------------------------------------------------
+# Function: set_insert
+# Arguments: 1: A single element to add to a set
+# 2: A set
+# Returns: Returns the set with the element added
+# ----------------------------------------------------------------------------
+set_insert = $(__gmsl_tr2)$(sort $1 $2)
+
+# ----------------------------------------------------------------------------
+# Function: set_remove
+# Arguments: 1: A single element to remove from a set
+# 2: A set
+# Returns: Returns the set with the element removed
+# ----------------------------------------------------------------------------
+set_remove = $(__gmsl_tr2)$(filter-out $1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: set_is_member
+# Arguments: 1: A single element
+# 2: A set
+# Returns: Returns $(true) if the element is in the set
+# ----------------------------------------------------------------------------
+set_is_member = $(__gmsl_tr2)$(if $(filter $1,$2),$(true),$(false))
+
+# ----------------------------------------------------------------------------
+# Function: set_union
+# Arguments: 1: A set
+# 2: Another set
+# Returns: Returns the union of the two sets
+# ----------------------------------------------------------------------------
+set_union = $(__gmsl_tr2)$(sort $1 $2)
+
+# ----------------------------------------------------------------------------
+# Function: set_intersection
+# Arguments: 1: A set
+# 2: Another set
+# Returns: Returns the intersection of the two sets
+# ----------------------------------------------------------------------------
+set_intersection = $(__gmsl_tr2)$(filter $1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: set_is_subset
+# Arguments: 1: A set
+# 2: Another set
+# Returns: Returns $(true) if the first set is a subset of the second
+# ----------------------------------------------------------------------------
+set_is_subset = $(__gmsl_tr2)$(call set_equal,$(call set_intersection,$1,$2),$1)
+
+# ----------------------------------------------------------------------------
+# Function: set_equal
+# Arguments: 1: A set
+# 2: Another set
+# Returns: Returns $(true) if the two sets are identical
+# ----------------------------------------------------------------------------
+set_equal = $(__gmsl_tr2)$(call seq,$1,$2)
+
+# ###########################################################################
+# ARITHMETIC LIBRARY
+# ###########################################################################
+
+# Integers a represented by lists with the equivalent number of x's.
+# For example the number 4 is x x x x. The maximum integer that the
+# library can handle as _input_ is __gmsl_input_int which is defined
+# here as 65536
+
+__gmsl_sixteen := x x x x x x x x x x x x x x x x
+__gmsl_input_int := $(foreach a,$(__gmsl_sixteen), \
+ $(foreach b,$(__gmsl_sixteen), \
+ $(foreach c,$(__gmsl_sixteen), \
+ $(__gmsl_sixteen)))))
+
+# ----------------------------------------------------------------------------
+# Function: int_decode
+# Arguments: 1: A number of x's representation
+# Returns: Returns the integer for human consumption that is represented
+# by the string of x's
+# ----------------------------------------------------------------------------
+int_decode = $(__gmsl_tr1)$(words $1)
+
+# ----------------------------------------------------------------------------
+# Function: int_encode
+# Arguments: 1: A number in human-readable integer form
+# Returns: Returns the integer encoded as a string of x's
+# ----------------------------------------------------------------------------
+int_encode = $(__gmsl_tr1)$(wordlist 1,$1,$(__gmsl_input_int))
+
+# The arithmetic library functions come in two forms: one form of each
+# function takes integers as arguments and the other form takes the
+# encoded form (x's created by a call to int_encode). For example,
+# there are two plus functions:
+#
+# plus Called with integer arguments and returns an integer
+# int_plus Called with encoded arguments and returns an encoded result
+#
+# plus will be slower than int_plus because its arguments and result
+# have to be translated between the x's format and integers. If doing
+# a complex calculation use the int_* forms with a single encoding of
+# inputs and single decoding of the output. For simple calculations
+# the direct forms can be used.
+
+# Helper function used to wrap an int_* function into a function that
+# takes a pair of integers, perhaps a function and returns an integer
+# result
+__gmsl_int_wrap = $(call int_decode,$(call $1,$(call int_encode,$2),$(call int_encode,$3)))
+__gmsl_int_wrap1 = $(call int_decode,$(call $1,$(call int_encode,$2)))
+__gmsl_int_wrap2 = $(call $1,$(call int_encode,$2),$(call int_encode,$3))
+
+# ----------------------------------------------------------------------------
+# Function: int_plus
+# Arguments: 1: A number in x's representation
+# 2: Another number in x's represntation
+# Returns: Returns the sum of the two numbers in x's representation
+# ----------------------------------------------------------------------------
+int_plus = $(strip $(__gmsl_tr2)$1 $2)
+
+# ----------------------------------------------------------------------------
+# Function: plus (wrapped version of int_plus)
+# Arguments: 1: An integer
+# 2: Another integer
+# Returns: Returns the sum of the two integers
+# ----------------------------------------------------------------------------
+plus = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_plus,$1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: int_subtract
+# Arguments: 1: A number in x's representation
+# 2: Another number in x's represntation
+# Returns: Returns the difference of the two numbers in x's representation,
+# or outputs an error on a numeric underflow
+# ----------------------------------------------------------------------------
+int_subtract = $(strip $(__gmsl_tr2)$(if $(call int_gte,$1,$2), \
+ $(filter-out xx,$(join $1,$2)), \
+ $(call __gmsl_warning,Subtraction underflow)))
+
+# ----------------------------------------------------------------------------
+# Function: subtract (wrapped version of int_subtract)
+# Arguments: 1: An integer
+# 2: Another integer
+# Returns: Returns the difference of the two integers,
+# or outputs an error on a numeric underflow
+# ----------------------------------------------------------------------------
+subtract = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_subtract,$1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: int_multiply
+# Arguments: 1: A number in x's representation
+# 2: Another number in x's represntation
+# Returns: Returns the product of the two numbers in x's representation
+# ----------------------------------------------------------------------------
+int_multiply = $(strip $(__gmsl_tr2)$(foreach a,$1,$2))
+
+# ----------------------------------------------------------------------------
+# Function: multiply (wrapped version of int_multiply)
+# Arguments: 1: An integer
+# 2: Another integer
+# Returns: Returns the product of the two integers
+# ----------------------------------------------------------------------------
+multiply = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_multiply,$1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: int_divide
+# Arguments: 1: A number in x's representation
+# 2: Another number in x's represntation
+# Returns: Returns the result of integer division of argument 1 divided
+# by argument 2 in x's representation
+# ----------------------------------------------------------------------------
+int_divide = $(__gmsl_tr2)$(strip $(if $2, \
+ $(if $(call int_gte,$1,$2), \
+ x $(call int_divide,$(call int_subtract,$1,$2),$2),), \
+ $(call __gmsl_error,Division by zero)))
+
+# ----------------------------------------------------------------------------
+# Function: divide (wrapped version of int_divide)
+# Arguments: 1: An integer
+# 2: Another integer
+# Returns: Returns the integer division of the first argument by the second
+# ----------------------------------------------------------------------------
+divide = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_divide,$1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: int_max, int_min
+# Arguments: 1: A number in x's representation
+# 2: Another number in x's represntation
+# Returns: Returns the maximum or minimum of its arguments in x's
+# representation
+# ----------------------------------------------------------------------------
+int_max = $(__gmsl_tr2)$(subst xx,x,$(join $1,$2))
+int_min = $(__gmsl_tr2)$(subst xx,x,$(filter xx,$(join $1,$2)))
+
+# ----------------------------------------------------------------------------
+# Function: max, min
+# Arguments: 1: An integer
+# 2: Another integer
+# Returns: Returns the maximum or minimum of its integer arguments
+# ----------------------------------------------------------------------------
+max = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_max,$1,$2)
+min = $(__gmsl_tr2)$(call __gmsl_int_wrap,int_min,$1,$2)
+
+# ----------------------------------------------------------------------------
+# Function: int_gt, int_gte, int_lt, int_lte, int_eq, int_ne
+# Arguments: Two x's representation numbers to be compared
+# Returns: $(true) or $(false)
+#
+# int_gt First argument greater than second argument
+# int_gte First argument greater than or equal to second argument
+# int_lt First argument less than second argument
+# int_lte First argument less than or equal to second argument
+# int_eq First argument is numerically equal to the second argument
+# int_ne First argument is not numerically equal to the second argument
+# ----------------------------------------------------------------------------
+int_gt = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(filter-out $(words $2), \
+ $(words $(call int_max,$1,$2))))
+int_gte = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(call int_gt,$1,$2)$(call int_eq,$1,$2))
+int_lt = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(filter-out $(words $1), \
+ $(words $(call int_max,$1,$2))))
+int_lte = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(call int_lt,$1,$2)$(call int_eq,$1,$2))
+int_eq = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(filter $(words $1),$(words $2)))
+int_ne = $(__gmsl_tr2)$(call __gmsl_make_bool, \
+ $(filter-out $(words $1),$(words $2)))
+
+# ----------------------------------------------------------------------------
+# Function: gt, gte, lt, lte, eq, ne
+# Arguments: Two integers to be compared
+# Returns: $(true) or $(false)
+#
+# gt First argument greater than second argument
+# gte First argument greater than or equal to second argument
+# lt First argument less than second argument
+# lte First argument less than or equal to second argument
+# eq First argument is numerically equal to the second argument
+# ne First argument is not numerically equal to the second argument
+# ----------------------------------------------------------------------------
+gt = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_gt,$1,$2)
+gte = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_gte,$1,$2)
+lt = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_lt,$1,$2)
+lte = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_lte,$1,$2)
+eq = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_eq,$1,$2)
+ne = $(__gmsl_tr2)$(call __gmsl_int_wrap2,int_ne,$1,$2)
+
+# increment adds 1 to its argument, decrement subtracts 1. Note that
+# decrement does not range check and hence will not underflow, but
+# will incorrectly say that 0 - 1 = 0
+
+# ----------------------------------------------------------------------------
+# Function: int_inc
+# Arguments: 1: A number in x's representation
+# Returns: The number incremented by 1 in x's representation
+# ----------------------------------------------------------------------------
+int_inc = $(strip $(__gmsl_tr1)$1 x)
+
+# ----------------------------------------------------------------------------
+# Function: inc
+# Arguments: 1: An integer
+# Returns: The argument incremented by 1
+# ----------------------------------------------------------------------------
+inc = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_inc,$1)
+
+# ----------------------------------------------------------------------------
+# Function: int_dec
+# Arguments: 1: A number in x's representation
+# Returns: The number decremented by 1 in x's representation
+# ----------------------------------------------------------------------------
+int_dec = $(__gmsl_tr1)$(strip $(if $(call sne,0,$(words $1)), \
+ $(wordlist 2,$(words $1),$1), \
+ $(call __gmsl_warning,Decrement underflow)))
+
+# ----------------------------------------------------------------------------
+# Function: dec
+# Arguments: 1: An integer
+# Returns: The argument decremented by 1
+# ----------------------------------------------------------------------------
+dec = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_dec,$1)
+
+# double doubles its argument, and halve halves it
+
+# ----------------------------------------------------------------------------
+# Function: int_double
+# Arguments: 1: A number in x's representation
+# Returns: The number doubled (i.e. * 2) and returned in x's representation
+# ----------------------------------------------------------------------------
+int_double = $(strip $(__gmsl_tr1)$1 $1)
+
+# ----------------------------------------------------------------------------
+# Function: double
+# Arguments: 1: An integer
+# Returns: The integer times 2
+# ----------------------------------------------------------------------------
+double = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_double,$1)
+
+# ----------------------------------------------------------------------------
+# Function: int_halve
+# Arguments: 1: A number in x's representation
+# Returns: The number halved (i.e. / 2) and returned in x's representation
+# ----------------------------------------------------------------------------
+int_halve = $(__gmsl_tr1)$(strip $(subst xx,x,$(filter-out xy x y, \
+ $(join $1,$(foreach a,$1,y x)))))
+
+# ----------------------------------------------------------------------------
+# Function: halve
+# Arguments: 1: An integer
+# Returns: The integer divided by 2
+# ----------------------------------------------------------------------------
+halve = $(__gmsl_tr1)$(call __gmsl_int_wrap1,int_halve,$1)
+
+# ----------------------------------------------------------------------------
+# Function: sequence
+# Arguments: 1: An integer
+# 2: An integer
+# Returns: The sequence [arg1, arg2] of integers if arg1 < arg2 or
+# [arg2, arg1] if arg2 > arg1. If arg1 == arg1 return [arg1]
+# ----------------------------------------------------------------------------
+sequence = $(__gmsl_tr2)$(strip $(if $(call lte,$1,$2), \
+ $(call __gmsl_sequence_up,$1,$2), \
+ $(call __gmsl_sequence_dn,$2,$1)))
+
+__gmsl_sequence_up = $(if $(call seq,$1,$2),$1,$1 $(call __gmsl_sequence_up,$(call inc,$1),$2))
+__gmsl_sequence_dn = $(if $(call seq,$1,$2),$1,$2 $(call __gmsl_sequence_dn,$1,$(call dec,$2)))
+
+ifdef __gmsl_have_eval
+# ###########################################################################
+# ASSOCIATIVE ARRAYS
+# ###########################################################################
+
+# Magic string that is very unlikely to appear in a key or value
+
+__gmsl_aa_magic := faf192c8efbc25c27992c5bc5add390393d583c6
+
+# ----------------------------------------------------------------------------
+# Function: set
+# Arguments: 1: Name of associative array
+# 2: The key value to associate
+# 3: The value associated with the key
+# Returns: Nothing
+# ----------------------------------------------------------------------------
+set = $(__gmsl_tr3)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2$3)$(eval __gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1 := $3)
+
+# Only used internally by memoize function
+
+__gmsl_set = $(call set,$1,$2,$3)$3
+
+# ----------------------------------------------------------------------------
+# Function: get
+# Arguments: 1: Name of associative array
+# 2: The key to retrieve
+# Returns: The value stored in the array for that key
+# ----------------------------------------------------------------------------
+get = $(strip $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(__gmsl_aa_$1_$(__gmsl_aa_magic)_$2_gmsl_aa_$1))
+
+# ----------------------------------------------------------------------------
+# Function: keys
+# Arguments: 1: Name of associative array
+# Returns: Returns a list of all defined keys in the array
+# ----------------------------------------------------------------------------
+keys = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(sort $(patsubst __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,%, \
+ $(filter __gmsl_aa_$1_$(__gmsl_aa_magic)_%_gmsl_aa_$1,$(.VARIABLES))))
+
+# ----------------------------------------------------------------------------
+# Function: defined
+# Arguments: 1: Name of associative array
+# 2: The key to test
+# Returns: Returns true if the key is defined (i.e. not empty)
+# ----------------------------------------------------------------------------
+defined = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(call sne,$(call get,$1,$2),)
+
+endif # __gmsl_have_eval
+
+ifdef __gmsl_have_eval
+# ###########################################################################
+# NAMED STACKS
+# ###########################################################################
+
+# ----------------------------------------------------------------------------
+# Function: push
+# Arguments: 1: Name of stack
+# 2: Value to push onto the top of the stack (must not contain
+# a space)
+# Returns: None
+# ----------------------------------------------------------------------------
+push = $(__gmsl_tr2)$(call assert_no_space,$0,$1$2)$(call assert_no_dollar,$0,$1$2)$(eval __gmsl_stack_$1 := $2 $(if $(filter-out undefined,\
+ $(origin __gmsl_stack_$1)),$(__gmsl_stack_$1)))
+
+# ----------------------------------------------------------------------------
+# Function: pop
+# Arguments: 1: Name of stack
+# Returns: Top element from the stack after removing it
+# ----------------------------------------------------------------------------
+pop = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(strip $(if $(filter-out undefined,$(origin __gmsl_stack_$1)), \
+ $(call first,$(__gmsl_stack_$1)) \
+ $(eval __gmsl_stack_$1 := $(call rest,$(__gmsl_stack_$1)))))
+
+# ----------------------------------------------------------------------------
+# Function: peek
+# Arguments: 1: Name of stack
+# Returns: Top element from the stack without removing it
+# ----------------------------------------------------------------------------
+peek = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(call first,$(__gmsl_stack_$1))
+
+# ----------------------------------------------------------------------------
+# Function: depth
+# Arguments: 1: Name of stack
+# Returns: Number of items on the stack
+# ----------------------------------------------------------------------------
+depth = $(__gmsl_tr1)$(call assert_no_space,$0,$1)$(call assert_no_dollar,$0,$1)$(words $(__gmsl_stack_$1))
+
+endif # __gmsl_have_eval
+
+ifdef __gmsl_have_eval
+# ###########################################################################
+# STRING CACHE
+# ###########################################################################
+
+# ----------------------------------------------------------------------------
+# Function: memoize
+# Arguments: 1. Name of the function to be called if the string
+# has not been previously seen
+# 2. A string
+# Returns: Returns the result of a memo function (which the user must
+# define) on the passed in string and remembers the result.
+#
+# Example: Set memo = $(shell echo "$1" | md5sum) to make a cache
+# of MD5 hashes of strings. $(call memoize,memo,foo bar baz)
+# ----------------------------------------------------------------------------
+__gmsl_memoize = $(subst $(__gmsl_space),§,$1)cc2af1bb7c4482f2ba75e338b963d3e7$(subst $(__gmsl_space),§,$2)
+memoize = $(__gmsl_tr2)$(strip $(if $(call defined,__gmsl_m,$(__gmsl_memoize)),\
+ $(call get,__gmsl_m,$(__gmsl_memoize)), \
+ $(call __gmsl_set,__gmsl_m,$(__gmsl_memoize),$(call $1,$2))))
+
+endif # __gmsl_have_eval
+
+# ###########################################################################
+# DEBUGGING FACILITIES
+# ###########################################################################
+
+# ----------------------------------------------------------------------------
+# Target: gmsl-print-%
+# Arguments: The % should be replaced by the name of a variable that you
+# wish to print out.
+# Action: Echos the name of the variable that matches the % and its value.
+# For example, 'make gmsl-print-SHELL' will output the value of
+# the SHELL variable
+# ----------------------------------------------------------------------------
+gmsl-print-%: ; @echo $* = $($*)
+
+# ----------------------------------------------------------------------------
+# Function: assert
+# Arguments: 1: A boolean that must be true or the assertion will fail
+# 2: The message to print with the assertion
+# Returns: None
+# ----------------------------------------------------------------------------
+assert = $(if $1,,$(call __gmsl_error,Assertion failure: $2))
+
+# ----------------------------------------------------------------------------
+# Function: assert_exists
+# Arguments: 1: Name of file that must exist, if it is missing an assertion
+# will be generated
+# Returns: None
+# ----------------------------------------------------------------------------
+assert_exists = $(call assert,$(wildcard $1),file '$1' missing)
+
+# ----------------------------------------------------------------------------
+# Function: assert_no_dollar
+# Arguments: 1: Name of a function being executd
+# 2: Arguments to check
+# Returns: None
+# ----------------------------------------------------------------------------
+assert_no_dollar = $(call __gmsl_tr2)$(call assert,$(call not,$(findstring $(__gmsl_dollar),$2)),$1 called with a dollar sign in argument)
+
+# ----------------------------------------------------------------------------
+# Function: assert_no_space
+# Arguments: 1: Name of a function being executd
+# 2: Arguments to check
+# Returns: None
+# ----------------------------------------------------------------------------
+ifeq ($(__gmsl_spaced_vars),$(false))
+assert_no_space = $(call assert,$(call not,$(findstring $(__gmsl_aa_magic),$(subst $(__gmsl_space),$(__gmsl_aa_magic),$2))),$1 called with a space in argument)
+else
+assert_no_space =
+endif
diff --git a/ext/config.guess b/ext/config.guess
new file mode 100755
index 0000000..b79252d
--- /dev/null
+++ b/ext/config.guess
@@ -0,0 +1,1558 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2013 Free Software Foundation, Inc.
+
+timestamp='2013-06-10'
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see <http://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner.
+#
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2013 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ LIBC=gnu
+
+ eval $set_cc_for_build
+ cat <<-EOF > $dummy.c
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #else
+ LIBC=gnu
+ #endif
+ EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7; exit ;;
+ esac ;;
+ s390x:SunOS:*:*)
+ echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ echo i386-pc-auroraux${UNAME_RELEASE}
+ exit ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ eval $set_cc_for_build
+ SUN_ARCH="i386"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW64*:*)
+ echo ${UNAME_MACHINE}-pc-mingw64
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit ;;
+ 8664:Windows_NT:*)
+ echo x86_64-pc-mks
+ exit ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+ exit ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit ;;
+ aarch64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arc:Linux:*:* | arceb:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ arm*:Linux:*:*)
+ eval $set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ cris:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-${LIBC}
+ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:Linux:*:*)
+ echo ${UNAME_MACHINE}-pc-linux-${LIBC}
+ exit ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+ ;;
+ or1k:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ or32:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ padre:Linux:*:*)
+ echo sparc-unknown-linux-${LIBC}
+ exit ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-${LIBC}
+ exit ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+ PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+ *) echo hppa-unknown-linux-${LIBC} ;;
+ esac
+ exit ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-${LIBC}
+ exit ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-${LIBC}
+ exit ;;
+ ppc64le:Linux:*:*)
+ echo powerpc64le-unknown-linux-${LIBC}
+ exit ;;
+ ppcle:Linux:*:*)
+ echo powerpcle-unknown-linux-${LIBC}
+ exit ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+ exit ;;
+ x86_64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+ exit ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configury will decide that
+ # this is a cross-build.
+ echo i586-pc-msdosdjgpp
+ exit ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ x86_64:Haiku:*:*)
+ echo x86_64-unknown-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ eval $set_cc_for_build
+ if test "$UNAME_PROCESSOR" = unknown ; then
+ UNAME_PROCESSOR=powerpc
+ fi
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ fi
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+ x86_64:VMkernel:*:*)
+ echo ${UNAME_MACHINE}-unknown-esx
+ exit ;;
+esac
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/ext/gmsl b/ext/gmsl
new file mode 100644
index 0000000..b4e907b
--- /dev/null
+++ b/ext/gmsl
@@ -0,0 +1,89 @@
+# ----------------------------------------------------------------------------
+#
+# GNU Make Standard Library (GMSL)
+#
+# A library of functions to be used with GNU Make's $(call) that
+# provides functionality not available in standard GNU Make.
+#
+# Copyright (c) 2005-2013 John Graham-Cumming
+#
+# This file is part of GMSL
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# Neither the name of the John Graham-Cumming nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# ----------------------------------------------------------------------------
+
+# Determine if the library has already been included and if so don't
+# bother including it again
+
+ifndef __gmsl_included
+
+# Standard definitions for true and false. true is any non-empty
+# string, false is an empty string. These are intended for use with
+# $(if).
+
+true := T
+false :=
+
+# ----------------------------------------------------------------------------
+# Function: not
+# Arguments: 1: A boolean value
+# Returns: Returns the opposite of the arg. (true -> false, false -> true)
+# ----------------------------------------------------------------------------
+not = $(if $1,$(false),$(true))
+
+# Prevent reinclusion of the library
+
+__gmsl_included := $(true)
+
+# Try to determine where this file is located. If the caller did
+# include /foo/gmsl then extract the /foo/ so that __gmsl gets
+# included transparently
+
+ifneq ($(MAKEFILE_LIST),)
+__gmsl_root := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+
+# If there are any spaces in the path in __gmsl_root then give up
+
+ifeq (1,$(words $(__gmsl_root)))
+__gmsl_root := $(patsubst %gmsl,%,$(__gmsl_root))
+else
+__gmsl_root :=
+endif
+
+include $(__gmsl_root)__gmsl
+
+else
+
+include __gmsl
+
+endif
+
+endif # __gmsl_included
+
diff --git a/ext/gmsl-tests b/ext/gmsl-tests
new file mode 100644
index 0000000..1f96481
--- /dev/null
+++ b/ext/gmsl-tests
@@ -0,0 +1,730 @@
+# ----------------------------------------------------------------------------
+#
+# GNU Make Standard Library (GMSL) Test Suite
+#
+# Test suite for the GMSL
+#
+# Copyright (c) 2005-2013 John Graham-Cumming
+#
+# This file is part of GMSL
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# Neither the name of the John Graham-Cumming nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# ----------------------------------------------------------------------------
+
+.PHONY: all
+all:
+ @echo
+ @echo Test Summary
+ @echo ------------
+ @echo "$(call int_decode,$(passed)) tests passed; $(call int_decode,$(failed)) tests failed"
+
+include gmsl
+
+passed :=
+failed :=
+
+ECHO := /bin/echo
+
+start_test = $(shell $(ECHO) -n "Testing '$1': " >&2)$(eval current_test := OK)
+stop_test = $(shell $(ECHO) " $(current_test)" >&2)
+test_pass = .$(eval passed := $(call int_inc,$(passed)))
+test_fail = X$(eval failed := $(call int_inc,$(failed)))$(eval current_test := ERROR '$1' != '$2')
+test_assert = $(if $(filter undefined,$(origin 2)),$(eval 2 :=))$(shell $(ECHO) -n $(if $(call seq,$1,$2),$(call test_pass,$1,$2),$(call test_fail,$1,$2)) >&2)
+
+$(call start_test,not)
+$(call test_assert,$(call not,$(true)),$(false))
+$(call test_assert,$(call not,$(false)),$(true))
+$(call stop_test)
+
+$(call start_test,or)
+$(call test_assert,$(call or,$(true),$(true)),$(true))
+$(call test_assert,$(call or,$(true),$(false)),$(true))
+$(call test_assert,$(call or,$(false),$(true)),$(true))
+$(call test_assert,$(call or,$(false),$(false)),$(false))
+$(call stop_test)
+
+$(call start_test,and)
+$(call test_assert,$(call and,$(true),$(true)),$(true))
+$(call test_assert,$(call and,$(true),$(false)),$(false))
+$(call test_assert,$(call and,$(false),$(true)),$(false))
+$(call test_assert,$(call and,$(false),$(false)),$(false))
+$(call stop_test)
+
+$(call start_test,xor)
+$(call test_assert,$(call xor,$(true),$(true)),$(false))
+$(call test_assert,$(call xor,$(true),$(false)),$(true))
+$(call test_assert,$(call xor,$(false),$(true)),$(true))
+$(call test_assert,$(call xor,$(false),$(false)),$(false))
+$(call stop_test)
+
+$(call start_test,nand)
+$(call test_assert,$(call nand,$(true),$(true)),$(false))
+$(call test_assert,$(call nand,$(true),$(false)),$(true))
+$(call test_assert,$(call nand,$(false),$(true)),$(true))
+$(call test_assert,$(call nand,$(false),$(false)),$(true))
+$(call stop_test)
+
+$(call start_test,nor)
+$(call test_assert,$(call nor,$(true),$(true)),$(false))
+$(call test_assert,$(call nor,$(true),$(false)),$(false))
+$(call test_assert,$(call nor,$(false),$(true)),$(false))
+$(call test_assert,$(call nor,$(false),$(false)),$(true))
+$(call stop_test)
+
+$(call start_test,xnor)
+$(call test_assert,$(call xnor,$(true),$(true)),$(true))
+$(call test_assert,$(call xnor,$(true),$(false)),$(false))
+$(call test_assert,$(call xnor,$(false),$(true)),$(false))
+$(call test_assert,$(call xnor,$(false),$(false)),$(true))
+$(call stop_test)
+
+$(call start_test,first)
+$(call test_assert,$(call first,1 2 3),1)
+$(call test_assert,$(call first,1),1)
+$(call test_assert,$(call first,),)
+$(call stop_test)
+
+$(call start_test,last)
+$(call test_assert,$(call last,1 2 3),3)
+$(call test_assert,$(call last,1),1)
+$(call test_assert,$(call last,),)
+$(call stop_test)
+
+$(call start_test,rest)
+$(call test_assert,$(call rest,1 2 3),2 3)
+$(call test_assert,$(call rest,1),)
+$(call test_assert,$(call rest,),)
+$(call stop_test)
+
+$(call start_test,chop)
+$(call test_assert,$(call chop,1 2 3),1 2)
+$(call test_assert,$(call chop,1 2 3 4),1 2 3)
+$(call test_assert,$(call chop,1),)
+$(call test_assert,$(call chop,),)
+$(call stop_test)
+
+$(call start_test,length)
+$(call test_assert,$(call length,1 2 3),3)
+$(call test_assert,$(call length,1 2 3 4),4)
+$(call test_assert,$(call length,1),1)
+$(call test_assert,$(call length,),0)
+$(call stop_test)
+
+$(call start_test,map)
+$(call test_assert,$(call map,origin,__undefined map MAKE),undefined file default)
+$(call test_assert,$(call map,origin,),)
+$(call stop_test)
+
+joinem = $1$2
+$(call start_test,pairmap)
+$(call test_assert,$(call pairmap,addsuffix,2 1 3,a b c),a2 b1 c3)
+$(call test_assert,$(call pairmap,addprefix,2 1 3,a b c d),2a 1b 3c d)
+$(call test_assert,$(call pairmap,addprefix,2 1 3 4,a b c),2a 1b 3c)
+$(call test_assert,$(call pairmap,joinem,2 1 3 4,a b c),2a 1b 3c 4)
+$(call stop_test)
+
+$(call start_test,seq)
+$(call test_assert,$(call seq,abc,abc),T)
+$(call test_assert,$(call seq,x,),)
+$(call test_assert,$(call seq,,x),)
+$(call test_assert,$(call seq,x,x),T)
+$(call test_assert,$(call seq,a%c,abc),)
+$(call test_assert,$(call seq,abc,a%c),)
+$(call test_assert,$(call seq,abc,ABC),)
+$(call test_assert,$(call seq,abc,),)
+$(call test_assert,$(call seq,,),T)
+$(call test_assert,$(call seq,a b c,a b c),T)
+$(call test_assert,$(call seq,aa% bb% cc,aa% bb% cc),T)
+$(call test_assert,$(call seq,aa% bb% cc,aa% bb cc),)
+$(call test_assert,$(call seq,aa% bb% cc,xx yy zz),)
+$(call test_assert,$(call seq,x x,),)
+$(call test_assert,$(call seq, xx x,x xx),)
+$(call test_assert,$(call seq, , ),T)
+$(call test_assert,$(call seq,, ),)
+$(call test_assert,$(call seq, ,),)
+$(call test_assert,$(call seq,y,xy),)
+$(call stop_test)
+
+$(call start_test,sne)
+$(call test_assert,$(call sne,abc,abc),)
+$(call test_assert,$(call sne,x,),T)
+$(call test_assert,$(call sne,,x),T)
+$(call test_assert,$(call sne,x,x),)
+$(call test_assert,$(call sne,abc,ABC),T)
+$(call test_assert,$(call sne,abc,),T)
+$(call test_assert,$(call sne,,),)
+$(call test_assert,$(call sne,a b c,a b c),)
+$(call test_assert,$(call sne,aa% bb% cc,aa% bb% cc),)
+$(call test_assert,$(call sne,aa% bb% cc,aa% bb cc),T)
+$(call stop_test)
+
+$(call start_test,strlen)
+$(call test_assert,$(call strlen,),0)
+$(call test_assert,$(call strlen,a),1)
+$(call test_assert,$(call strlen,a b),3)
+$(call test_assert,$(call strlen,a ),2)
+$(call test_assert,$(call strlen, a),2)
+$(call test_assert,$(call strlen, ),2)
+$(call test_assert,$(call strlen, ),3)
+$(call test_assert,$(call strlen, ),4)
+$(call stop_test)
+
+$(call start_test,substr)
+$(call test_assert,$(call substr,xyz,1,1),x)
+$(call test_assert,$(call substr,xyz,1,2),xy)
+$(call test_assert,$(call substr,xyz,2,3),yz)
+$(call test_assert,$(call substr,some string,1,1),s)
+$(call test_assert,$(call substr,some string,1,2),so)
+$(call test_assert,$(call substr,some string,1,3),som)
+$(call test_assert,$(call substr,some string,1,4),some)
+$(call test_assert,$(call substr,some string,1,5),some )
+$(call test_assert,$(call substr,some string,1,6),some s)
+$(call test_assert,$(call substr,some string,5,5), )
+$(call test_assert,$(call substr,some string,5,6), s)
+$(call test_assert,$(call substr,some string,5,7), st)
+$(call test_assert,$(call substr,some string,5,8), str)
+$(call test_assert,$(call substr,some string,1,100),some string)
+$(call stop_test)
+
+$(call start_test,lc)
+$(call test_assert,$(call lc,The Quick Brown Fox),the quick brown fox)
+$(call test_assert,$(call lc,the1 quick2 brown3 fox4),the1 quick2 brown3 fox4)
+$(call test_assert,$(call lc,The_),the_)
+$(call test_assert,$(call lc,),)
+$(call stop_test)
+
+$(call start_test,uc)
+$(call test_assert,$(call uc,The Quick Brown Fox),THE QUICK BROWN FOX)
+$(call test_assert,$(call uc,the1 quick2 brown3 fox4),THE1 QUICK2 BROWN3 FOX4)
+$(call test_assert,$(call uc,The_),THE_)
+$(call test_assert,$(call uc,),)
+$(call stop_test)
+
+$(call start_test,tr)
+$(call test_assert,$(call tr,A B C,1 2 3,CAPITAL),31PIT1L)
+$(call test_assert,$(call tr,a b c,1 2 3,CAPITAL),CAPITAL)
+$(call test_assert,$(call tr,E L I,3 1 1,I AM ELITE),1 AM 311T3)
+$(call stop_test)
+
+$(call start_test,leq)
+$(call test_assert,$(call leq,1 2 3,1 2 3),T)
+$(call test_assert,$(call leq,1 2 3,1 2 3 4),)
+$(call test_assert,$(call leq,1 2 3 4,1 2 3),)
+$(call test_assert,$(call leq,1,1),T)
+$(call test_assert,$(call leq,,),T)
+$(call stop_test)
+
+$(call start_test,lne)
+$(call test_assert,$(call lne,1 2 3,1 2 3),)
+$(call test_assert,$(call lne,1 2 3,1 2 3 4),T)
+$(call test_assert,$(call lne,1 2 3 4,1 2 3),T)
+$(call test_assert,$(call lne,1,1),)
+$(call test_assert,$(call lne,,),)
+$(call stop_test)
+
+$(call start_test,empty_set)
+$(call test_assert,$(empty_set),)
+$(call test_assert,$(empty_set),$(call set_create,))
+$(call stop_test)
+
+$(call start_test,set_create)
+$(call test_assert,$(call set_create,),)
+$(call test_assert,$(call set_create,1 2 2 3),1 2 3)
+$(call test_assert,$(call set_create,2 1 1 2 2 3),1 2 3)
+$(call test_assert,$(call set_create,1),1)
+$(call stop_test)
+
+$(call start_test,set_insert)
+$(call test_assert,$(call set_insert,1,$(empty_set)),1)
+$(call test_assert,$(call set_insert,1,$(call set_create,1)),1)
+$(call test_assert,$(call set_insert,1,$(call set_create,1 2)),1 2)
+$(call test_assert,$(call set_insert,0,$(call set_create,1 2)),0 1 2)
+$(call stop_test)
+
+$(call start_test,set_remove)
+$(call test_assert,$(call set_remove,1,$(empty_set)),$(empty_set))
+$(call test_assert,$(call set_remove,1,$(call set_create,1 2)),2)
+$(call test_assert,$(call set_remove,1,$(call set_create,1 11 2)),11 2)
+$(call test_assert,$(call set_remove,0,$(call set_create,1 2)),1 2)
+$(call stop_test)
+
+$(call start_test,set_is_member)
+$(call test_assert,$(call set_is_member,1,$(empty_set)),)
+$(call test_assert,$(call set_is_member,1,$(call set_create,2 3)),)
+$(call test_assert,$(call set_is_member,1,$(call set_create,1 2 3)),T)
+$(call test_assert,$(call set_is_member,1,$(call set_create,1)),T)
+$(call stop_test)
+
+$(call start_test,set_union)
+$(call test_assert,$(call set_union,,),)
+$(call test_assert,$(call set_union,1 2,),1 2)
+$(call test_assert,$(call set_union,,3 4),3 4)
+$(call test_assert,$(call set_union,1 2,3 4),1 2 3 4)
+$(call test_assert,$(call set_union,1 2 3,3 4 5),1 2 3 4 5)
+$(call stop_test)
+
+$(call start_test,set_intersection)
+$(call test_assert,$(call set_intersection,,),)
+$(call test_assert,$(call set_intersection,1 2,),)
+$(call test_assert,$(call set_intersection,,3 4),)
+$(call test_assert,$(call set_intersection,1 2,3 4),)
+$(call test_assert,$(call set_intersection,1 2 3 4,3 4 5),3 4)
+$(call stop_test)
+
+$(call start_test,set_is_subset)
+$(call test_assert,$(call set_is_subset,,),T)
+$(call test_assert,$(call set_is_subset,1 2,),)
+$(call test_assert,$(call set_is_subset,,3 4),T)
+$(call test_assert,$(call set_is_subset,1 2,3 4),)
+$(call test_assert,$(call set_is_subset,1 2,1 2 3 4 5),T)
+$(call test_assert,$(call set_is_subset,1 2,1 2),T)
+$(call test_assert,$(call set_is_subset,1 2,1 3 4 5),)
+$(call stop_test)
+
+$(call start_test,set_equal)
+$(call test_assert,$(call set_equal,,),T)
+$(call test_assert,$(call set_equal,1,),)
+$(call test_assert,$(call set_equal,,1),)
+$(call test_assert,$(call set_equal,1,1),T)
+$(call test_assert,$(call set_equal,1 2,),)
+$(call test_assert,$(call set_equal,,1 2),)
+$(call test_assert,$(call set_equal,1 2,1 2 3),)
+$(call stop_test)
+
+$(call start_test,int_encode)
+$(call test_assert,$(call int_encode,0),)
+$(call test_assert,$(call int_encode,1),x)
+$(call test_assert,$(call int_encode,2),x x)
+$(call test_assert,$(call int_encode,10),x x x x x x x x x x)
+$(call stop_test)
+
+$(call start_test,int_decode)
+$(call test_assert,$(call int_decode,),0)
+$(call test_assert,$(call int_decode,x),1)
+$(call test_assert,$(call int_decode,x x),2)
+$(call test_assert,$(call int_decode,x x x x x x x x x x),10)
+$(call stop_test)
+
+$(call start_test,int_plus)
+$(call test_assert,$(call int_plus,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,7))
+$(call test_assert,$(call int_plus,$(call int_encode,0),$(call int_encode,4)),$(call int_encode,4))
+$(call test_assert,$(call int_plus,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,3))
+$(call test_assert,$(call int_plus,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_plus,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,1))
+$(call stop_test)
+
+$(call start_test,plus)
+$(call test_assert,$(call plus,3,4),7)
+$(call test_assert,$(call plus,4,3),7)
+$(call test_assert,$(call plus,0,4),4)
+$(call test_assert,$(call plus,3,0),3)
+$(call test_assert,$(call plus,0,0),0)
+$(call stop_test)
+
+__gmsl_warning = $1
+$(call start_test,int_subtract)
+$(call test_assert,$(call int_subtract,$(call int_encode,3),$(call int_encode,4)),Subtraction underflow)
+$(call test_assert,$(call int_subtract,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,1))
+$(call test_assert,$(call int_subtract,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,3))
+$(call test_assert,$(call int_subtract,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_subtract,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,1))
+$(call stop_test)
+
+__gmsl_warning = x x x x x x x x x x
+$(call start_test,subtract)
+$(call test_assert,$(call subtract,3,4),10)
+$(call test_assert,$(call subtract,4,3),1)
+$(call test_assert,$(call subtract,3,0),3)
+$(call test_assert,$(call subtract,0,0),0)
+$(call stop_test)
+
+$(call start_test,int_multiply)
+$(call test_assert,$(call int_multiply,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,12))
+$(call test_assert,$(call int_multiply,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,12))
+$(call test_assert,$(call int_multiply,$(call int_encode,3),$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_multiply,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_multiply,$(call int_encode,1),$(call int_encode,0)),$(call int_encode,0))
+$(call stop_test)
+
+$(call start_test,multiply)
+$(call test_assert,$(call multiply,3,4),12)
+$(call test_assert,$(call multiply,4,3),12)
+$(call test_assert,$(call multiply,3,0),0)
+$(call test_assert,$(call multiply,0,3),0)
+$(call test_assert,$(call multiply,0,0),0)
+$(call stop_test)
+
+__gmsl_error = $1
+$(call start_test,int_divide)
+$(call test_assert,$(call int_divide,$(call int_encode,3),$(call int_encode,4)),$(call int_encode,0))
+$(call test_assert,$(call int_divide,$(call int_encode,4),$(call int_encode,3)),$(call int_encode,1))
+$(call test_assert,$(call int_divide,$(call int_encode,31),$(call int_encode,3)),$(call int_encode,10))
+$(call test_assert,$(call int_divide,$(call int_encode,30),$(call int_encode,3)),$(call int_encode,10))
+$(call test_assert,$(call int_divide,$(call int_encode,29),$(call int_encode,3)),$(call int_encode,9))
+$(call test_assert,$(call int_divide,$(call int_encode,0),$(call int_encode,1)),$(call int_encode,0))
+$(call test_assert,$(call int_divide,$(call int_encode,1),$(call int_encode,0)),Division by zero)
+$(call stop_test)
+
+__gmsl_error = x x x x x x x x x x
+$(call start_test,divide)
+$(call test_assert,$(call divide,3,4),0)
+$(call test_assert,$(call divide,4,3),1)
+$(call test_assert,$(call divide,21,2),10)
+$(call test_assert,$(call divide,20,2),10)
+$(call test_assert,$(call divide,19,2),9)
+$(call test_assert,$(call divide,1,0),10)
+$(call stop_test)
+
+$(call start_test,associative array)
+$(call test_assert,$(call get,myarray,key1),)
+$(call test_assert,$(call set,myarray,key1,value1),)
+$(call test_assert,$(call get,myarray,key1),value1)
+$(call test_assert,$(call get,myarray,key2),)
+$(call test_assert,$(call get,myarray1,key1),)
+$(call test_assert,$(call defined,myarray,key1),T)
+$(call test_assert,$(call defined,myarray,key2),)
+$(call test_assert,$(call defined,myarray1,key1),)
+$(call test_assert,$(call set,myarray,key2,value2),)
+$(call test_assert,$(call keys,myarray),key1 key2)
+$(call test_assert,$(call keys,myarray1),)
+$(call test_assert,$(call set,foo,bar_baz,bob),)
+$(call test_assert,$(call set,foo_bar,baz,alice),)
+$(call test_assert,$(call get,foo,bar_baz),bob)
+$(call test_assert,$(call get,foo_bar,baz),alice)
+$(call test_assert,$(call set,foo,bar,baz/baz),)
+$(call test_assert,$(call get,foo,bar),baz/baz)
+$(call test-assert,$(call set,foo,bar-baz,baz),)
+$(call test_assert,$(call get,foo,bar-baz),baz)
+$(call set,foo,bar-baz,baz)
+$(call set,foo,bar,baz/baz)
+$(call stop_test)
+
+$(call start_test,named stack)
+$(call test_assert,$(call pop,mystack),)
+$(call test_assert,$(call push,mystack,e2))
+$(call push,mystack,e1)
+$(call test_assert,$(call pop,mystack),e1)
+$(call test_assert,$(call pop,mystack),e2)
+$(call push,mystack,f3)
+$(call push,mystack,f1)
+$(call test_assert,$(call pop,mystack),f1)
+$(call push,mystack,f2)
+$(call test_assert,$(call peek,mystack),f2)
+$(call test_assert,$(call depth,mystack),2)
+$(call test_assert,$(call pop,mystack),f2)
+$(call test_assert,$(call depth,mystack),1)
+$(call test_assert,$(call pop,myotherstack),)
+$(call stop_test)
+
+$(call start_test,reverse)
+$(call test_assert,$(call reverse,),)
+$(call test_assert,$(call reverse,1),1)
+$(call test_assert,$(call reverse,1 2),2 1)
+$(call test_assert,$(call reverse,1 2 3),3 2 1)
+$(call stop_test)
+
+$(call start_test,uniq)
+$(call test_assert,$(call uniq,),)
+$(call test_assert,$(call uniq,a),a)
+$(call test_assert,$(call uniq,a a),a)
+$(call test_assert,$(call uniq,a aa),a aa)
+$(call test_assert,$(call uniq,a aa a),a aa)
+$(call test_assert,$(call uniq,a b ba ab b a a ba a),a b ba ab)
+$(call stop_test)
+
+c:=,
+$(call start_test,split)
+$(call test_assert,$(call split,$c,comma$cseparated$cstring),comma separated string)
+$(call test_assert,$(call split,*,star*field*record),star field record)
+$(call test_assert,$(call split,*,star*),star)
+$(call test_assert,$(call split,*,star*field),star field)
+$(call test_assert,$(call split,*,star****field),star field)
+$(call test_assert,$(call split,*,),)
+$(call stop_test)
+
+$(call start_test,merge)
+$(call test_assert,$(call merge,$c,list of things),list$cof$cthings)
+$(call test_assert,$(call merge,*,list of things),list*of*things)
+$(call test_assert,$(call merge,*,list),list)
+$(call test_assert,$(call merge,*,),)
+$(call stop_test)
+
+$(call start_test,int_max)
+$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,1)),$(call int_encode,2))
+$(call test_assert,$(call int_max,$(call int_encode,1),$(call int_encode,2)),$(call int_encode,2))
+$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,0)),$(call int_encode,2))
+$(call test_assert,$(call int_max,$(call int_encode,0),$(call int_encode,2)),$(call int_encode,2))
+$(call test_assert,$(call int_max,$(call int_encode,2),$(call int_encode,2)),$(call int_encode,2))
+$(call test_assert,$(call int_max,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
+$(call stop_test)
+
+$(call start_test,max)
+$(call test_assert,$(call max,2,1),2)
+$(call test_assert,$(call max,1,2),2)
+$(call test_assert,$(call max,2,0),2)
+$(call test_assert,$(call max,0,2),2)
+$(call test_assert,$(call max,2,2),2)
+$(call test_assert,$(call max,0,0),0)
+$(call stop_test)
+
+$(call start_test,int_min)
+$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,1)),$(call int_encode,1))
+$(call test_assert,$(call int_min,$(call int_encode,1),$(call int_encode,2)),$(call int_encode,1))
+$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_min,$(call int_encode,0),$(call int_encode,2)),$(call int_encode,0))
+$(call test_assert,$(call int_min,$(call int_encode,2),$(call int_encode,2)),$(call int_encode,2))
+$(call test_assert,$(call int_min,$(call int_encode,0),$(call int_encode,0)),$(call int_encode,0))
+$(call stop_test)
+
+$(call start_test,min)
+$(call test_assert,$(call min,2,1),1)
+$(call test_assert,$(call min,1,2),1)
+$(call test_assert,$(call min,2,0),0)
+$(call test_assert,$(call min,0,2),0)
+$(call test_assert,$(call min,2,2),2)
+$(call test_assert,$(call min,0,0),0)
+$(call stop_test)
+
+__gmsl_error = $1
+$(call start_test,assert functions)
+$(call test_assert,$(call assert,$(true),ignore),)
+$(call test_assert,$(call assert,$(false),failed),Assertion failure: failed)
+$(call test_assert,$(call assert_exists,gmsl-tests),)
+$(call test_assert,$(call assert_exists,MISSING-gmsl-tests),Assertion failure: file 'MISSING-gmsl-tests' missing)
+$(call stop_test)
+
+$(call start_test,int_inc)
+$(call test_assert,$(call int_inc,$(call int_encode,0)),$(call int_encode,1))
+$(call test_assert,$(call int_inc,$(call int_encode,1)),$(call int_encode,2))
+$(call test_assert,$(call int_inc,$(call int_encode,4)),$(call int_encode,5))
+$(call test_assert,$(call int_inc,$(call int_encode,10)),$(call int_encode,11))
+$(call stop_test)
+
+$(call start_test,inc)
+$(call test_assert,$(call inc,0),1)
+$(call test_assert,$(call inc,1),2)
+$(call test_assert,$(call inc,4),5)
+$(call test_assert,$(call inc,10),11)
+$(call stop_test)
+
+__gmsl_warning = $1
+$(call start_test,int_dec)
+$(call test_assert,$(call int_dec,$(call int_encode,0)),Decrement underflow)
+$(call test_assert,$(call int_dec,$(call int_encode,1)),$(call int_encode,0))
+$(call test_assert,$(call int_dec,$(call int_encode,4)),$(call int_encode,3))
+$(call test_assert,$(call int_dec,$(call int_encode,10)),$(call int_encode,9))
+$(call stop_test)
+
+__gmsl_warning = x x x x x x x x x x
+$(call start_test,dec)
+$(call test_assert,$(call dec,0),10)
+$(call test_assert,$(call dec,1),0)
+$(call test_assert,$(call dec,4),3)
+$(call test_assert,$(call dec,10),9)
+$(call stop_test)
+
+$(call start_test,int_double)
+$(call test_assert,$(call int_double,$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_double,$(call int_encode,1)),$(call int_encode,2))
+$(call test_assert,$(call int_double,$(call int_encode,4)),$(call int_encode,8))
+$(call stop_test)
+
+$(call start_test,double)
+$(call test_assert,$(call double,0),0)
+$(call test_assert,$(call double,1),2)
+$(call test_assert,$(call double,4),8)
+$(call stop_test)
+
+$(call start_test,int_halve)
+$(call test_assert,$(call int_halve,$(call int_encode,0)),$(call int_encode,0))
+$(call test_assert,$(call int_halve,$(call int_encode,2)),$(call int_encode,1))
+$(call test_assert,$(call int_halve,$(call int_encode,8)),$(call int_encode,4))
+$(call test_assert,$(call int_halve,$(call int_encode,7)),$(call int_encode,3))
+$(call stop_test)
+
+$(call start_test,halve)
+$(call test_assert,$(call halve,0),0)
+$(call test_assert,$(call halve,2),1)
+$(call test_assert,$(call halve,8),4)
+$(call test_assert,$(call halve,7),3)
+$(call stop_test)
+
+$(call start_test,gt)
+$(call test_assert,$(call gt,2,3),)
+$(call test_assert,$(call gt,3,2),$(true))
+$(call test_assert,$(call gt,2,2),)
+$(call stop_test)
+
+$(call start_test,gte)
+$(call test_assert,$(call gte,2,3),)
+$(call test_assert,$(call gte,3,2),$(true))
+$(call test_assert,$(call gte,2,2),$(true))
+$(call stop_test)
+
+$(call start_test,lt)
+$(call test_assert,$(call lt,2,3),$(true))
+$(call test_assert,$(call lt,3,2),)
+$(call test_assert,$(call lt,2,2),)
+$(call stop_test)
+
+$(call start_test,lte)
+$(call test_assert,$(call lte,2,3),$(true))
+$(call test_assert,$(call lte,3,2),)
+$(call test_assert,$(call lte,2,2),$(true))
+$(call stop_test)
+
+$(call start_test,eq)
+$(call test_assert,$(call eq,2,3),)
+$(call test_assert,$(call eq,3,2),)
+$(call test_assert,$(call eq,2,2),$(true))
+$(call stop_test)
+
+$(call start_test,ne)
+$(call test_assert,$(call ne,2,3),$(true))
+$(call test_assert,$(call ne,3,2),$(true))
+$(call test_assert,$(call ne,2,2),)
+$(call stop_test)
+
+$(call start_test,int_gt)
+$(call test_assert,$(call int_gt,$(call int_encode,2),$(call int_encode,3)),)
+$(call test_assert,$(call int_gt,$(call int_encode,3),$(call int_encode,2)),$(true))
+$(call test_assert,$(call int_gt,$(call int_encode,2),$(call int_encode,2)),)
+$(call stop_test)
+
+$(call start_test,int_gte)
+$(call test_assert,$(call int_gte,$(call int_encode,2),$(call int_encode,3)),)
+$(call test_assert,$(call int_gte,$(call int_encode,3),$(call int_encode,2)),$(true))
+$(call test_assert,$(call int_gte,$(call int_encode,2),$(call int_encode,2)),$(true))
+$(call stop_test)
+
+$(call start_test,int_lt)
+$(call test_assert,$(call int_lt,$(call int_encode,2),$(call int_encode,3)),$(true))
+$(call test_assert,$(call int_lt,$(call int_encode,3),$(call int_encode,2)),)
+$(call test_assert,$(call int_lt,$(call int_encode,2),$(call int_encode,2)),)
+$(call stop_test)
+
+$(call start_test,int_lte)
+$(call test_assert,$(call int_lte,$(call int_encode,2),$(call int_encode,3)),$(true))
+$(call test_assert,$(call int_lte,$(call int_encode,3),$(call int_encode,2)),)
+$(call test_assert,$(call int_lte,$(call int_encode,2),$(call int_encode,2)),$(true))
+$(call stop_test)
+
+$(call start_test,int_eq)
+$(call test_assert,$(call int_eq,$(call int_encode,2),$(call int_encode,3)),)
+$(call test_assert,$(call int_eq,$(call int_encode,3),$(call int_encode,2)),)
+$(call test_assert,$(call int_eq,$(call int_encode,2),$(call int_encode,2)),$(true))
+$(call stop_test)
+
+$(call start_test,int_ne)
+$(call test_assert,$(call int_ne,$(call int_encode,2),$(call int_encode,3)),$(true))
+$(call test_assert,$(call int_ne,$(call int_encode,3),$(call int_encode,2)),$(true))
+$(call test_assert,$(call int_ne,$(call int_encode,2),$(call int_encode,2)),)
+$(call stop_test)
+
+$(call start_test,sequence)
+$(call test_assert,$(call sequence,0,0),0)
+$(call test_assert,$(call sequence,1,1),1)
+$(call test_assert,$(call sequence,10,10),10)
+$(call test_assert,$(call sequence,0,1),0 1)
+$(call test_assert,$(call sequence,0,2),0 1 2)
+$(call test_assert,$(call sequence,1,2),1 2)
+$(call test_assert,$(call sequence,1,4),1 2 3 4)
+$(call test_assert,$(call sequence,10,20),10 11 12 13 14 15 16 17 18 19 20)
+$(call test_assert,$(call sequence,1,0),1 0)
+$(call test_assert,$(call sequence,2,1),2 1)
+$(call test_assert,$(call sequence,3,1),3 2 1)
+$(call test_assert,$(call sequence,20,10),20 19 18 17 16 15 14 13 12 11 10)
+$(call stop_test)
+
+$(call start_test,memoize)
+memo_counter = $(call int_encode,0)
+memo = $(eval memo_counter := $(call int_inc,$(memo_counter)))$(firstword $1)
+$(call test_assert,$(call int_decode,$(memo_counter)),0)
+$(call test_assert,$(call memoize,memo,hello john),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),1)
+$(call test_assert,$(call memoize,memo,hello john),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),1)
+$(call test_assert,$(call memoize,memo,hello john how are you),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),2)
+$(call test_assert,$(call memoize,memo,john),john)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+$(call test_assert,$(call memoize,memo,hello john),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+$(call test_assert,$(call memoize,memo,hello john how are you),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+$(call test_assert,$(call memoize,memo,john),john)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+md5_counter = $(call int_encode,0)
+ifneq ("$(shell echo -n hello | md5sum 2> /dev/null)","")
+md5_program := md5sum
+endif
+ifneq ("$(shell md5 -s hello 2> /dev/null)","")
+md5_program := md5
+endif
+ifeq ("$(md5_program)","")
+$(error Can't find suitable MD5 program. Tried md5sum and md5)
+endif
+md5 = $(eval md5_counter = $(call int_inc,$(md5_counter)))$(firstword $(shell echo "$1" | $(md5_program)))
+$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+$(call test_assert,$(call int_decode,$(md5_counter)),1)
+$(call test_assert,$(call memoize,memo,hello john),hello)
+$(call test_assert,$(call int_decode,$(memo_counter)),3)
+$(call test_assert,$(call int_decode,$(md5_counter)),1)
+$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
+$(call test_assert,$(call int_decode,$(md5_counter)),1)
+$(call test_assert,$(call memoize,md5,hello john how are you),fd9b9651aa9f92d3d6d15a60bf5ccf15)
+$(call test_assert,$(call int_decode,$(md5_counter)),2)
+$(call test_assert,$(call memoize,md5,hello john),2d62190b10246ee2f2e233f9df840445)
+$(call test_assert,$(call int_decode,$(md5_counter)),2)
+$(call test_assert,$(call memoize,md5,hello john how are you),fd9b9651aa9f92d3d6d15a60bf5ccf15)
+$(call test_assert,$(call int_decode,$(md5_counter)),2)
+$(call stop_test)
+
+$(call start_test,gmsl_compatible)
+$(call test_assert,$(call gmsl_compatible,$(gmsl_version)),$(true))
+$(call test_assert,$(call gmsl_compatible,0 9 0),$(true))
+$(call test_assert,$(call gmsl_compatible,0 0 1),$(true))
+$(call test_assert,$(call gmsl_compatible,0 0 0),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 8),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 8),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 10),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 11),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 12),$(true))
+$(call test_assert,$(call gmsl_compatible,1 0 13),$(true))
+$(call test_assert,$(call gmsl_compatible,1 1 0),$(true))
+$(call test_assert,$(call gmsl_compatible,1 1 1),$(true))
+$(call test_assert,$(call gmsl_compatible,1 1 2),$(true))
+$(call test_assert,$(call gmsl_compatible,1 1 3),$(true))
+$(call test_assert,$(call gmsl_compatible,1 1 4),)
+$(call test_assert,$(call gmsl_compatible,1 2 0),)
+$(call test_assert,$(call gmsl_compatible,2 0 0),)
+$(call stop_test)
+ \ No newline at end of file
diff --git a/index.html b/index.html
index 4ea7dbd..e5d28ac 100644
--- a/index.html
+++ b/index.html
@@ -201,26 +201,21 @@
<tr>
<th>Runtime</th>
<th>Host Triplet</th>
- <th>Status</th>
+ <th>Packages</th>
</tr>
<tr>
<td><a href="http://www.mingw.org/">MinGW 3x</a></td>
<td>i686-pc-mingw32</td>
- <td>Fully Supported</td>
- </tr>
- <tr>
- <td><a href="http://www.mingw.org/">MinGW 4x</a></td>
- <td></td>
- <td><a href="https://github.com/mxe/mxe/issues/203">Pilot</a></td>
+ <td style='text-align:center'>301</td>
</tr>
<tr>
<td rowspan="2"><a href="http://mingw-w64.sourceforge.net/">MinGW-w64</a></td>
<td>i686-w64-mingw32</td>
- <td>94% (258/275)</td>
+ <td style='text-align:center'>288</td>
</tr>
<tr>
<td>x86_64-w64-mingw32</td>
- <td>86% (238/275)</td>
+ <td style='text-align:center'>266</td>
</tr>
</table>
@@ -333,10 +328,10 @@ exit</pre>
<pre>make gtk lua libidn</pre>
<p>
Targets can also be specified on the command line.
- By default, only i686-pc-mingw32 is built, but you can
+ By default, only i686-pc-mingw32.static is built, but you can
build your toolchain(s) of choice with:
</p>
- <pre>make MXE_TARGETS='x86_64-w64-mingw32 i686-w64-mingw32'</pre>
+ <pre>make MXE_TARGETS='x86_64-w64-mingw32.static i686-w64-mingw32.static'</pre>
<p>
or by adjusting the <code>MXE_TARGETS</code> variable
in <code>settings.mk</code>.
@@ -375,9 +370,9 @@ exit</pre>
you can add separate entries for cross builds:
</p>
<pre>export PKG_CONFIG_PATH="<em>entries for native builds</em>"</pre>
- <pre>export PKG_CONFIG_PATH_i686_pc_mingw32="<em>entries for MXE builds</em>"</pre>
+ <pre>export PKG_CONFIG_PATH_i686_pc_mingw32_static="<em>entries for MXE builds</em>"</pre>
<p>
- Remember to use i686-pc-mingw32-pkg-config
+ Remember to use i686-pc-mingw32.static-pkg-config
instead of pkg-config for cross builds.
The Autotools do that automatically for you.
</p>
@@ -409,13 +404,13 @@ exit</pre>
<a href="https://www.lrde.epita.fr/~adl/autotools.html">Autotools</a>,
all you have to do is:
</p>
- <pre>./configure --host=i686-pc-mingw32
+ <pre>./configure --host=i686-pc-mingw32.static
make</pre>
<p>
If you build a library, you might also want to enforce a static build:
</p>
- <pre>./configure --host=i686-pc-mingw32 --enable-static --disable-shared
+ <pre>./configure --host=i686-pc-mingw32.static --enable-static --disable-shared
make</pre>
<p>
@@ -434,7 +429,7 @@ If a cross compiler is detected then cross compile mode will be used.</pre>
<a href="http://www.cmake.org/">CMake</a> project,
you can use the provided toolchain file:
</p>
- <pre>cmake ... -DCMAKE_TOOLCHAIN_FILE=/<em>where MXE is installed</em>/usr/i686-pc-mingw32/share/cmake/mxe-conf.cmake</pre>
+ <pre>cmake ... -DCMAKE_TOOLCHAIN_FILE=/<em>where MXE is installed</em>/usr/i686-pc-mingw32.static/share/cmake/mxe-conf.cmake</pre>
<h3 id="tutorial-5c">Step 5c: Cross compile your Project (Qt)</h3>
@@ -443,7 +438,7 @@ If a cross compiler is detected then cross compile mode will be used.</pre>
<a href="https://qt-project.org/">Qt</a> application,
all you have to do is:
</p>
- <pre>/where MXE is installed/usr/i686-pc-mingw32/qt/bin/qmake
+ <pre>/where MXE is installed/usr/i686-pc-mingw32.static/qt/bin/qmake
make</pre>
<p>
Note that Qt 4 is in the "qt" subdirectory. Qt 5 is in the "qt5" subdirectory
@@ -478,7 +473,7 @@ PKG_CONFIG=$(CROSS)pkg-config</pre>
<p>
Then, all you have to do is:
</p>
- <pre>make CROSS=i686-pc-mingw32-</pre>
+ <pre>make CROSS=i686-pc-mingw32.static-</pre>
<p>
That's it!
</p>
@@ -501,12 +496,12 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
OpenSceneGraph source distribution for an example. This example can be
compiled with the following command:
</p>
- <pre>i686-pc-mingw32-g++ \
+ <pre>i686-pc-mingw32.static-g++ \
-o osgstaticviewer.exe examples/osgstaticviewer/osgstaticviewer.cpp \
- `i686-pc-mingw32-pkg-config --cflags openscenegraph-osgViewer openscenegraph-osgPlugins` \
- `i686-pc-mingw32-pkg-config --libs openscenegraph-osgViewer openscenegraph-osgPlugins`</pre>
+ `i686-pc-mingw32.static-pkg-config --cflags openscenegraph-osgViewer openscenegraph-osgPlugins` \
+ `i686-pc-mingw32.static-pkg-config --libs openscenegraph-osgViewer openscenegraph-osgPlugins`</pre>
<p>
- The <code>i686-pc-mingw32-pkg-config</code> command from MXE will
+ The <code>i686-pc-mingw32.static-pkg-config</code> command from MXE will
automatically add <code>-DOSG_LIBRARY_STATIC</code> to your compiler flags.
</p>
@@ -770,11 +765,11 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<h3 id="requirements-debian">Debian and derivatives</h3>
<!-- http://www.debian.org/distrib/packages#search_packages -->
- <pre>apt-get install autoconf automake bash bison bzip2 \
- cmake flex gettext git g++ intltool \
- libffi-dev libtool libltdl-dev libssl-dev \
- libxml-parser-perl make openssl patch perl \
- pkg-config scons sed unzip wget xz-utils</pre>
+ <pre>apt-get install \
+ autoconf automake bash bison bzip2 cmake flex gettext \
+ git g++ intltool libffi-dev libtool libltdl-dev \
+ libssl-dev libxml-parser-perl make openssl patch perl \
+ pkg-config scons sed unzip wget xz-utils</pre>
<p>
On 64-bit Debian, install also:
@@ -788,10 +783,10 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<h3 id="requirements-fedora">Fedora</h3>
<!-- https://admin.fedoraproject.org/pkgdb/ -->
- <pre>yum install autoconf automake bash bison bzip2 cmake \
- flex gcc-c++ gettext git intltool make sed \
- libffi-devel libtool openssl-devel patch perl pkgconfig \
- scons unzip wget xz</pre>
+ <pre>yum install \
+ autoconf automake bash bison bzip2 cmake flex gcc-c++ \
+ gettext git intltool make sed libffi-devel libtool \
+ openssl-devel patch perl pkgconfig scons unzip wget xz</pre>
<p>
On 64-bit Fedora,
@@ -801,10 +796,11 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<h3 id="requirements-freebsd">FreeBSD</h3>
<!-- http://www.freshports.org/ -->
- <pre>pkg_add -r automake autoconf bash bison cmake coreutils\
- flex gettext git glib20 gmake gsed intltool libffi \
- libtool openssl patch perl p5-XML-Parser pkgconf \
- scons unzip wget</pre>
+ <pre>pkg_add -r \
+ automake autoconf bash bison cmake coreutils flex \
+ gettext git glib20 gmake gsed intltool libffi \
+ libtool openssl patch perl p5-XML-Parser pkgconf \
+ scons unzip wget</pre>
<p>
Ensure that /usr/local/bin precedes /usr/bin in your $PATH:
@@ -827,18 +823,22 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<p>
to build the remainder of MXE, run:
</p>
- <pre>./tools/freebsd-excludes</pre>
+ <pre>gmake EXCLUDE_PKGS='gtksourceviewmm2 ocaml% openexr pcl qtbase'</pre>
<p>
- and review that file for the list of packages that are excluded.
+ to see a list of all dependent downstream packages that
+ will be excluded, run:
</p>
+ <pre>gmake show-downstream-deps-'gtksourceviewmm2 ocaml% openexr \
+ pcl qtbase'</pre>
<h3 id="requirements-frugalware">Frugalware</h3>
<!-- http://www.frugalware.org/packages -->
- <pre>pacman-g2 -S autoconf automake bash bzip2 bison cmake \
- flex gcc gettext git intltool make sed libffi libtool \
- openssl patch perl perl-xml-parser pkgconfig \
- scons unzip wget xz xz-lzma</pre>
+ <pre>pacman-g2 -S \
+ autoconf automake bash bzip2 bison cmake flex gcc \
+ gettext git intltool make sed libffi libtool openssl \
+ patch perl perl-xml-parser pkgconfig scons unzip wget \
+ xz xz-lzma</pre>
<p>
On 64-bit Frugalware,
@@ -848,30 +848,38 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<h3 id="requirements-gentoo">Gentoo</h3>
<!-- http://packages.gentoo.org/ -->
- <pre>emerge sys-devel/autoconf sys-devel/automake \
- app-shells/bash sys-devel/bison app-arch/bzip2 \
- dev-util/cmake sys-devel/flex sys-devel/gcc \
- sys-devel/gettext dev-vcs/git \
- dev-util/intltool sys-devel/make sys-apps/sed \
- dev-libs/libffi sys-devel/libtool dev-libs/openssl sys-devel/patch \
- dev-lang/perl dev-perl/XML-Parser \
- dev-util/pkgconfig dev-util/scons app-arch/unzip \
- net-misc/wget app-arch/xz-utils</pre>
+ <pre>emerge \
+ sys-devel/autoconf sys-devel/automake app-shells/bash \
+ sys-devel/bison app-arch/bzip2 dev-util/cmake \
+ sys-devel/flex sys-devel/gcc sys-devel/gettext \
+ dev-vcs/git dev-util/intltool sys-devel/make \
+ sys-apps/sed dev-libs/libffi sys-devel/libtool \
+ dev-libs/openssl sys-devel/patch dev-lang/perl \
+ dev-perl/XML-Parser dev-util/pkgconfig \
+ dev-util/scons app-arch/unzip net-misc/wget \
+ app-arch/xz-utils</pre>
<h3 id="requirements-macos">Mac OS X</h3>
<p>
Install
- <a href="http://developer.apple.com/xcode/">Xcode 4</a>
+ <a href="http://developer.apple.com/xcode/">Xcode 5</a>
and
<a href="http://www.macports.org/">MacPorts</a>,
then run:
</p>
<!-- http://www.macports.org/ports.php -->
- <pre>sudo port install autoconf automake bison cmake coreutils \
- flex gettext git-core glib2 gsed intltool libffi \
- libtool openssl p5-xml-parser pkgconfig scons \
- wget xz</pre>
+ <pre>sudo port install \
+ coreutils glib2 gsed intltool \
+ p5-xml-parser gpatch scons wget xz</pre>
+ <p>
+ and from within the mxe directory:
+ </p>
+ <pre>make build-requirements</pre>
+ <p>
+ You may be prompted to install a java runtime
+ - this is not required.
+ </p>
<p>
Mac OS X versions ≤ 10.7 are no longer supported.
</p>
@@ -879,19 +887,18 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
<h3 id="requirements-opensuse">openSUSE</h3>
<!-- http://software.opensuse.org/113/en -->
- <pre>zypper install -R autoconf automake bash bison bzip2 \
- cmake flex gcc-c++ gettext-tools git \
- intltool libffi-devel libtool make openssl \
- libopenssl-devel patch perl \
- perl-XML-Parser pkg-config scons \
- sed unzip wget xz</pre>
+ <pre>zypper install -R \
+ autoconf automake bash bison bzip2 cmake flex gcc-c++ \
+ gettext-tools git intltool libffi-devel libtool make \
+ openssl libopenssl-devel patch perl perl-XML-Parser \
+ pkg-config scons sed unzip wget xz</pre>
<p>
On 64-bit openSUSE, install also:
</p>
- <pre>zypper install -R gcc-32bit glibc-devel-32bit \
- libgcc46-32bit libgomp46-32bit \
- libstdc++46-devel-32bit</pre>
+ <pre>zypper install -R \
+ gcc-32bit glibc-devel-32bit libgcc46-32bit \
+ libgomp46-32bit libstdc++46-devel-32bit</pre>
<h3 id="issue-non-multilib">Issues without a 32-bit compiler</h3>
@@ -903,19 +910,10 @@ USE_OSGPLUGIN(&lt;plugin2&gt;)
support this.
</p>
<p>
- To build the remainder of MXE, specify empty build rules
- for the affected packages:
+ To build the remainder of MXE, specify the affected
+ packages to exclude:
</p>
- <pre>make \
- ocaml-cairo_BUILD= \
- ocaml-findlib_BUILD= \
- ocaml-lablgtk2_BUILD= \
- ocaml-camlimages_BUILD= \
- ocaml-flexdll_BUILD= \
- ocaml-native_BUILD= \
- ocaml-core_BUILD= \
- ocaml-lablgl_BUILD= \
- ocaml-xml-light_BUILD=</pre>
+ <pre>make EXCLUDE_PKGS='ocaml%'</pre>
</div>
<div class="section">
@@ -999,6 +997,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
(short option "-j 4 -k")
</dd>
+ <dt>make EXCLUDE_PKGS='foo bar'</dt>
+
+ <dd>
+ build all packages excluding foo, bar, and all downstream
+ packages that depend on them - mostly used when there are
+ <a href="#issue-non-multilib">known issues</a>
+ </dd>
+
<dt>make check-requirements</dt>
<dd>
@@ -1045,6 +1051,27 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
handy after a successful update
</dd>
+ <dt>make show-deps-foo</dt>
+
+ <dd>
+ print a list of upstream dependencies
+ and downstream dependents
+ </dd>
+
+ <dt>make show-downstream-deps-foo</dt>
+
+ <dd>
+ print a list of downstream dependents
+ suitable for usage in shell scripts
+ </dd>
+
+ <dt>make show-upstream-deps-foo</dt>
+
+ <dd>
+ print a list of upstream dependencies
+ suitable for usage in shell scripts
+ </dd>
+
<dt>make update</dt>
<dd>
@@ -1054,6 +1081,15 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
download the new versions and note their checksums
</dd>
+ <dt>make update-package-foo</dt>
+
+ <dd>
+ for internal use only!
+ &ndash;
+ update the version numbers of package foo,
+ download the new version and note its checksum
+ </dd>
+
<dt>make update-checksum-foo</dt>
<dd>
@@ -1081,6 +1117,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
</p>
<table id="package-list">
<tr>
+ <td class="package">a52dec</td>
+ <td class="website"><a href="http://liba52.sourceforge.net/">a52dec (aka. liba52)</a></td>
+ </tr>
+ <tr>
<td class="package">agg</td>
<td class="website"><a href="http://www.antigrain.com/">Anti-Grain Geometry</a></td>
</tr>
@@ -1101,6 +1141,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://arma.sourceforge.net/">Armadillo C++ linear algebra library</a></td>
</tr>
<tr>
+ <td class="package">assimp</td>
+ <td class="website"><a href="http://assimp.sourceforge.net/">Assimp Open Asset Import Library</a></td>
+ </tr>
+ <tr>
<td class="package">atk</td>
<td class="website"><a href="http://www.gtk.org/">ATK</a></td>
</tr>
@@ -1113,6 +1157,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.aubio.org/">aubio</a></td>
</tr>
<tr>
+ <td class="package">autoconf</td>
+ <td class="website"><a href="http://www.gnu.org/software/autoconf/">autoconf</a></td>
+ </tr>
+ <tr>
+ <td class="package">automake</td>
+ <td class="website"><a href="http://www.gnu.org/software/automake/">automake</a></td>
+ </tr>
+ <tr>
<td class="package">bfd</td>
<td class="website"><a href="https://www.gnu.org/software/binutils/">Binary File Descriptor library</a></td>
</tr>
@@ -1121,6 +1173,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="https://www.gnu.org/software/binutils/">GNU Binutils</a></td>
</tr>
<tr>
+ <td class="package">bison</td>
+ <td class="website"><a href="http://www.gnu.org/software/bison/">bison</a></td>
+ </tr>
+ <tr>
<td class="package">blas</td>
<td class="website"><a href="http://www.netlib.org/blas/">blas</a></td>
</tr>
@@ -1129,6 +1185,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.boost.org/">Boost C++ Library</a></td>
</tr>
<tr>
+ <td class="package">bullet</td>
+ <td class="website"><a href="http://bulletphysics.org/">Bullet physics, version 2</a></td>
+ </tr>
+ <tr>
<td class="package">bzip2</td>
<td class="website"><a href="http://www.bzip.org/">bzip2</a></td>
</tr>
@@ -1145,6 +1205,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.netlib.org/blas/">cblas</a></td>
</tr>
<tr>
+ <td class="package">chromaprint</td>
+ <td class="website"><a href="http://acoustid.org/chromaprint">Chromaprint</a></td>
+ </tr>
+ <tr>
<td class="package">cegui</td>
<td class="website"><a href="http://cegui.org.uk/">Crazy Eddie’s GUI System (CEGUI)</a></td>
</tr>
@@ -1157,12 +1221,28 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.cgal.org/">cgal</a></td>
</tr>
<tr>
+ <td class="package">check</td>
+ <td class="website"><a href="http://check.sourceforge.net/">check</a></td>
+ </tr>
+ <tr>
+ <td class="package">cloog</td>
+ <td class="website"><a href="http://www.cloog.org/">CLooG Code Generator</a></td>
+ </tr>
+ <tr>
+ <td class="package">cmake</td>
+ <td class="website"><a href="http://www.cmake.org/">cmake</a></td>
+ </tr>
+ <tr>
<td class="package">cminpack</td>
<td class="website"><a href="http://devernay.free.fr/hacks/cminpack/cminpack.html">cminpack</a></td>
</tr>
<tr>
<td class="package">cppunit</td>
- <td class="website"><a href="http://apps.sourceforge.net/mediawiki/cppunit/">CppUnit</a></td>
+ <td class="website"><a href="http://www.freedesktop.org/wiki/Software/cppunit/">CppUnit</a></td>
+ </tr>
+ <tr>
+ <td class="package">crystalhd</td>
+ <td class="website"><a href="http://www.broadcom.com/support/crystal_hd/">Broadcom Crystal HD Headers</a></td>
</tr>
<tr>
<td class="package">cunit</td>
@@ -1185,6 +1265,9 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://openil.sourceforge.net/">DevIL</a></td>
</tr>
<tr>
+ <td class="package">dlfcn-win32</td>
+ <td class="website"><a href="https://code.google.com/p/dlfcn-win32/">POSIX dlfcn wrapper for Windows</a></td>
+ <tr>
<td class="package">eigen</td>
<td class="website"><a href="http://eigen.tuxfamily.org/">eigen</a></td>
</tr>
@@ -1221,6 +1304,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.cs.ubc.ca/~mariusm/index.php/FLANN/FLANN">FLANN</a></td>
</tr>
<tr>
+ <td class="package">flex</td>
+ <td class="website"><a href="http://flex.sourceforge.net/">flex</a></td>
+ </tr>
+ <tr>
<td class="package">fltk</td>
<td class="website"><a href="http://www.fltk.org/">FLTK</a></td>
</tr>
@@ -1261,10 +1348,18 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://gcc.gnu.org/">GCC</a></td>
</tr>
<tr>
+ <td class="package">gcc-cloog</td>
+ <td class="website"><a href="http://www.cloog.org/">CLooG for GCC</a></td>
+ </tr>
+ <tr>
<td class="package">gcc-gmp</td>
<td class="website"><a href="http://www.gmplib.org/">GMP for GCC</a></td>
</tr>
<tr>
+ <td class="package">gcc-isl</td>
+ <td class="website"><a href="http://isl.gforge.inria.fr/">ISL for GCC</a></td>
+ </tr>
+ <tr>
<td class="package">gcc-mpc</td>
<td class="website"><a href="http://www.multiprecision.org/">MPC for GCC</a></td>
</tr>
@@ -1305,6 +1400,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://glew.sourceforge.net/">GLEW</a></td>
</tr>
<tr>
+ <td class="package">glfw2</td>
+ <td class="website"><a href="http://www.glfw.org/">GLFW 2.x</a></td>
+ </tr>
+ <tr>
+ <td class="package">glfw3</td>
+ <td class="website"><a href="http://www.glfw.org/">GLFW 3.x</a></td>
+ </tr>
+ <tr>
<td class="package">glib</td>
<td class="website"><a href="http://www.gtk.org/">GLib</a></td>
</tr>
@@ -1417,8 +1520,12 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.imagemagick.org/">ImageMagick</a></td>
</tr>
<tr>
+ <td class="package">isl</td>
+ <td class="website"><a href="http://isl.gforge.inria.fr/">Integer Set Library</a></td>
+ </tr>
+ <tr>
<td class="package">itk</td>
- <td class="website"><a href="http://www.itk.org/">ITK</a></td>
+ <td class="website"><a href="http://www.itk.org/">Insight Segmentation and Registration Toolkit (ITK)</a></td>
</tr>
<tr>
<td class="package">jasper</td>
@@ -1465,14 +1572,38 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://code.google.com/p/libass/">libass</a></td>
</tr>
<tr>
+ <td class="package">libbluray</td>
+ <td class="website"><a href="http://www.videolan.org/developers/libbluray.html">libbluray</a></td>
+ </tr>
+ <tr>
+ <td class="package">libcdio</td>
+ <td class="website"><a href="https://www.gnu.org/software/libcdio/">Libcdio</a></td>
+ </tr>
+ <tr>
<td class="package">libcroco</td>
<td class="website"><a href="http://www.freespiders.org/projects/libcroco/">Libcroco</a></td>
</tr>
<tr>
+ <td class="package">libdca</td>
+ <td class="website"><a href="http://www.videolan.org/developers/libdca.html">libdca (formerly libdts)</a></td>
+ </tr>
+ <tr>
<td class="package">libdnet</td>
<td class="website"><a href="http://libdnet.sourceforge.net/">libdnet</a></td>
</tr>
<tr>
+ <td class="package">libdvdcss</td>
+ <td class="website"><a href="http://www.videolan.org/developers/libdvdcss.html">libdvdcss</a></td>
+ </tr>
+ <tr>
+ <td class="package">libdvdread</td>
+ <td class="website"><a href="https://dvdnav.mplayerhq.hu/">libdvdread</a></td>
+ </tr>
+ <tr>
+ <td class="package">libdvdnav</td>
+ <td class="website"><a href="https://dvdnav.mplayerhq.hu/">libdvdnav</a></td>
+ </tr>
+ <tr>
<td class="package">libevent</td>
<td class="website"><a href="http://libevent.org/">libevent</a></td>
</tr>
@@ -1489,6 +1620,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.intra2net.com/en/developer/libftdi/index.php">LibFTDI</a></td>
</tr>
<tr>
+ <td class="package">libftdi1</td>
+ <td class="website"><a href="http://www.intra2net.com/en/developer/libftdi/index.php">LibFTDI1</a></td>
+ </tr>
+ <tr>
<td class="package">libgcrypt</td>
<td class="website"><a href="ftp://ftp.gnupg.org/gcrypt/libgcrypt/">libgcrypt</a></td>
</tr>
@@ -1565,10 +1700,18 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://liblqr.wikidot.com/">liblqr-1</a></td>
</tr>
<tr>
+ <td class="package">libltdl</td>
+ <td class="website"><a href="http://www.gnu.org/software/libtool/manual/html_node/Using-libltdl.html#Using-libltdl">GNU Libtool Library (libltdl)</a></td>
+ </tr>
+ <tr>
<td class="package">libmad</td>
<td class="website"><a href="http://www.underbit.com/products/mad/">libmad</a></td>
</tr>
<tr>
+ <td class="package">libmicrohttpd</td>
+ <td class="website"><a href="http://www.gnu.org/software/libmicrohttpd/">GNU Libmicrohttpd</a></td>
+ </tr>
+ <tr>
<td class="package">libmikmod</td>
<td class="website"><a href="http://mikmod.raphnet.net/">libMikMod</a></td>
</tr>
@@ -1581,6 +1724,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://modplug-xmms.sourceforge.net/">libmodplug</a></td>
</tr>
<tr>
+ <td class="package">libmpcdec</td>
+ <td class="website"><a href="http://www.musepack.net/">libmpcdec</a></td>
+ </tr>
+ <tr>
<td class="package">libntlm</td>
<td class="website"><a href="http://www.nongnu.org/libntlm/">Libntlm</a></td>
</tr>
@@ -1649,6 +1796,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://libusb-win32.sourceforge.net/">LibUsb</a></td>
</tr>
<tr>
+ <td class="package">libusb1</td>
+ <td class="website"><a href="http://libusb.org/">LibUsb-1.0</a></td>
+ </tr>
+ <tr>
<td class="package">libvpx</td>
<td class="website"><a href="http://code.google.com/p/webm/">vpx</a></td>
</tr>
@@ -1685,6 +1836,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.oberhumer.com/opensource/lzo/">lzo</a></td>
</tr>
<tr>
+ <td class="package">mman-win32</td>
+ <td class="website"><a href="https://code.google.com/p/mman-win32/">MMA-Win32</a></td>
+ </tr>
+ <tr>
+ <td class="package">m4</td>
+ <td class="website"><a href="http://www.gnu.org/software/m4/">GNU M4</a></td>
+ </tr>
+ <tr>
<td class="package">matio</td>
<td class="website"><a href="http://sourceforge.net/projects/matio/">matio</a></td>
</tr>
@@ -1705,6 +1864,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.mingw.org/">MinGW Runtime</a></td>
</tr>
<tr>
+ <td class="package">mpc</td>
+ <td class="website"><a href="http://www.multiprecision.org/">GNU MPC</a></td>
+ </tr>
+ <tr>
+ <td class="package">mpg123</td>
+ <td class="website"><a href="http://www.mpg123.de/">mpg123</a></td>
+ </tr>
+ <tr>
<td class="package">mpfr</td>
<td class="website"><a href="http://www.mpfr.org/">mpfr</a></td>
</tr>
@@ -1733,6 +1900,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.lysator.liu.se/~nisse/nettle/">nettle</a></td>
</tr>
<tr>
+ <td class="package">nlopt</td>
+ <td class="website"><a href="http://ab-initio.mit.edu/wiki/index.php/NLopt">NLopt</a></td>
+ </tr>
+ <tr>
<td class="package">nsis</td>
<td class="website"><a href="http://nsis.sourceforge.net/">NSIS</a></td>
</tr>
@@ -1785,6 +1956,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://kcat.strangesoft.net/openal.html">openal</a></td>
</tr>
<tr>
+ <td class="package">openblas</td>
+ <td class="website"><a href="http://www.openblas.net/">OpenBLAS</a></td>
+ </tr>
+ <tr>
<td class="package">opencore-amr</td>
<td class="website"><a href="http://opencore-amr.sourceforge.net/">opencore-amr</a></td>
</tr>
@@ -1801,6 +1976,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.openexr.com/">OpenEXR</a></td>
</tr>
<tr>
+ <td class="package">openmp-validation</td>
+ <td class="website"><a href="http://web.cs.uh.edu/~openuh/">OpenMP Validation Suite</a></td>
+ </tr>
+ <tr>
<td class="package">openscenegraph</td>
<td class="website"><a href="http://www.openscenegraph.org/">OpenSceneGraph</a></td>
</tr>
@@ -1857,6 +2036,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://cairographics.org/">pixman</a></td>
</tr>
<tr>
+ <td class="package">pkgconf</td>
+ <td class="website"><a href="https://github.com/pkgconf/pkgconf">pkgconf</a></td>
+ </tr>
+ <tr>
<td class="package">plib</td>
<td class="website"><a href="http://plib.sourceforge.net/">Plib</a></td>
</tr>
@@ -1877,6 +2060,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://pocoproject.org/">POCO C++ Libraries</a></td>
</tr>
<tr>
+ <td class="package">polarssl</td>
+ <td class="website"><a href="https://polarssl.org/">Polar SSL Library</a></td>
+ </tr>
+ <tr>
<td class="package">poppler</td>
<td class="website"><a href="http://poppler.freedesktop.org/">poppler</a></td>
</tr>
@@ -1941,6 +2128,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
<tr>
+ <td class="package">qtconnectivity</td>
+ <td class="website"><a href="http://qt-project.org/">Qt</a></td>
+ </tr>
+ <tr>
<td class="package">qtdeclarative</td>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
@@ -1953,7 +2144,7 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
<tr>
- <td class="package">qtjsbackend</td>
+ <td class="package">qtlocation</td>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
<tr>
@@ -1981,6 +2172,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
<tr>
+ <td class="package">qtservice</td>
+ <td class="website"><a href="https://qt.gitorious.org/qt-solutions/">Qt Solutions</a></td>
+ </tr>
+ <tr>
<td class="package">qtsvg</td>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
@@ -1997,10 +2192,22 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://qt-project.org/">Qt</a></td>
</tr>
<tr>
+ <td class="package">qtwebkit</td>
+ <td class="website"><a href="http://qt-project.org/">Qt</a></td>
+ </tr>
+ <tr>
+ <td class="package">qtwinextras</td>
+ <td class="website"><a href="http://qt-project.org/">Qt</a></td>
+ </tr>
+ <tr>
<td class="package">qwt</td>
<td class="website"><a href="http://qwt.sourceforge.net/">Qwt</a></td>
</tr>
<tr>
+ <td class="package">qwt_qt4</td>
+ <td class="website"><a href="http://qwt.sourceforge.net/">Qwt-qt4</a></td>
+ </tr>
+ <tr>
<td class="package">qwtplot3d</td>
<td class="website"><a href="http://qwtplot3d.sourceforge.net/">QwtPlot3D</a></td>
</tr>
@@ -2009,6 +2216,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://tiswww.case.edu/php/chet/readline/rltop.html">Readline</a></td>
</tr>
<tr>
+ <td class="package">rubberband</td>
+ <td class="website"><a href="http://breakfastquay.com/rubberband/">Rubberband</a></td>
+ </tr>
+ <tr>
<td class="package">sdl</td>
<td class="website"><a href="http://www.libsdl.org/">SDL</a></td>
</tr>
@@ -2033,6 +2244,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://sdlpango.sourceforge.net/">SDL_Pango</a></td>
</tr>
<tr>
+ <td class="package">sdl_rwhttp</td>
+ <td class="website"><a href="http://github.com/mgerhardy/SDL_rwhttp/">SDL_rwhttp</a></td>
+ </tr>
+ <tr>
<td class="package">sdl_sound</td>
<td class="website"><a href="http://icculus.org/SDL_sound/">SDL_sound</a></td>
</tr>
@@ -2041,6 +2256,26 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.libsdl.org/projects/SDL_ttf/">SDL_ttf</a></td>
</tr>
<tr>
+ <td class="package">sdl2</td>
+ <td class="website"><a href="http://www.libsdl.org/">SDL2</a></td>
+ </tr>
+ <tr>
+ <td class="package">sdl2_image</td>
+ <td class="website"><a href="http://www.libsdl.org/">SDL2_image</a></td>
+ </tr>
+ <tr>
+ <td class="package">sdl2_mixer</td>
+ <td class="website"><a href="http://www.libsdl.org/">SDL2_mixer</a></td>
+ </tr>
+ <tr>
+ <td class="package">sdl2_net</td>
+ <td class="website"><a href="http://www.libsdl.org/">sdl2_net</a></td>
+ </tr>
+ <tr>
+ <td class="package">sdl2_ttf</td>
+ <td class="website"><a href="http://www.libsdl.org/">SDL2_ttf</a></td>
+ </tr>
+ <tr>
<td class="package">sfml</td>
<td class="website"><a href="http://www.sfml-dev.org/">SFML</a></td>
</tr>
@@ -2049,6 +2284,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://icculus.org/smpeg/">smpeg</a></td>
</tr>
<tr>
+ <td class="package">smpeg2</td>
+ <td class="website"><a href="http://icculus.org/smpeg/">smpeg</a></td>
+ </tr>
+ <tr>
<td class="package">sox</td>
<td class="website"><a href="http://sox.sourceforge.net/">SoX</a></td>
</tr>
@@ -2097,6 +2336,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.twolame.org/">TwoLAME</a></td>
</tr>
<tr>
+ <td class="package">vamp-plugin-sdk</td>
+ <td class="website"><a href="http://vamp-plugins.org/">Vamp Plugins SDK</a></td>
+ </tr>
+ <tr>
+ <td class="package">vcdimager</td>
+ <td class="website"><a href="https://www.gnu.org/software/vcdimager/">vcdimager</a></td>
+ </tr>
+ <tr>
<td class="package">vigra</td>
<td class="website"><a href="http://hci.iwr.uni-heidelberg.de/vigra">vigra</a></td>
</tr>
@@ -2105,6 +2352,14 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.vmime.org/">VMime</a></td>
</tr>
<tr>
+ <td class="package">vo-aacenc</td>
+ <td class="website"><a href="https://github.com/mstorsjo/vo-aacenc">VO-AACENC</a></td>
+ </tr>
+ <tr>
+ <td class="package">vo-amrwbenc</td>
+ <td class="website"><a href="https://github.com/mstorsjo/vo-amrwbenc">VO-AMRWBENC</a></td>
+ </tr>
+ <tr>
<td class="package">vorbis</td>
<td class="website"><a href="http://www.vorbis.com/">Vorbis</a></td>
</tr>
@@ -2161,6 +2416,10 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<td class="website"><a href="http://www.xine-project.org/">xine-lib</a></td>
</tr>
<tr>
+ <td class="package">xmlrpc-c</td>
+ <td class="website"><a href="http://xmlrpc-c.sourceforge.net/">xmlrpc-c</a></td>
+ </tr>
+ <tr>
<td class="package">xmlwrapp</td>
<td class="website"><a href="http://sourceforge.net/projects/xmlwrapp/">xmlwrapp</a></td>
</tr>
@@ -2310,6 +2569,11 @@ local-pkg-list: $(LOCAL_PKG_LIST)</pre>
<a href="https://github.com/mxe/mxe/blob/master/src/xmlwrapp.mk">xmlwrapp.mk</a>.
And so on.
</p>
+
+ <p>
+ The <a href="doc/gmsl.html">GNU Make Standard Library</a> is also
+ available (though it should be unnecessary for most packages).
+ </p>
</li>
<li>
@@ -2458,7 +2722,11 @@ endef</pre>
<li>
<p>
Check that you don't have "dirty stuff" in your <code>*.mk</code> files,
- such as TAB characters or trailing spaces at lines endings.
+ such as TAB characters or trailing spaces at lines endings. Run:
+ </p>
+ <pre>make cleanup-style</pre>
+ <p>
+ to remove these.
Have a look at random <code>*.mk</code> files
to get a feeling for the coding style.
</p>
diff --git a/src/a52dec.mk b/src/a52dec.mk
new file mode 100644
index 0000000..7f72ee4
--- /dev/null
+++ b/src/a52dec.mk
@@ -0,0 +1,27 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := a52dec
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.7.4
+$(PKG)_CHECKSUM := 79b33bd8d89dad7436f85b9154ad35667aa37321
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://liba52.sourceforge.net/files/$(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://liba52.sourceforge.net/downloads.html' | \
+ $(SED) -n 's,.*files/a52dec-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && autoreconf -fi # The autotools files came with a52dec is _ancient_
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+endef
diff --git a/src/apr-1.patch b/src/apr-1.patch
new file mode 100644
index 0000000..6c8d850
--- /dev/null
+++ b/src/apr-1.patch
@@ -0,0 +1,33 @@
+From d221ed3c7576a3456a8f5623246b46d355a4db83 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sun, 9 Feb 2014 02:48:38 +0100
+Subject: [PATCH] winsock2.h must precede windows.h
+
+MinGW 4 is particular about this.
+
+diff --git a/include/apr.h.in b/include/apr.h.in
+index 9f1fb6f..f1741c1 100644
+--- a/include/apr.h.in
++++ b/include/apr.h.in
+@@ -115,14 +115,14 @@
+ * or the extern "C" namespace
+ */
+
+-#if APR_HAVE_WINDOWS_H
+-#include <windows.h>
+-#endif
+-
+ #if APR_HAVE_WINSOCK2_H
+ #include <winsock2.h>
+ #endif
+
++#if APR_HAVE_WINDOWS_H
++#include <windows.h>
++#endif
++
+ #if APR_HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+--
+1.8.4.5
+
diff --git a/src/apr.mk b/src/apr.mk
index 23dbea3..b949d32 100644
--- a/src/apr.mk
+++ b/src/apr.mk
@@ -2,7 +2,7 @@
# See index.html for further information.
PKG := apr
-$(PKG)_IGNORE := 1.4%
+$(PKG)_IGNORE := 1.5%
$(PKG)_VERSION := 1.4.2
$(PKG)_CHECKSUM := d48324efb0280749a5d7ccbb053d68545c568b4b
$(PKG)_SUBDIR := apr-$($(PKG)_VERSION)
diff --git a/src/armadillo-1-staticlib.patch b/src/armadillo-1-staticlib.patch
index 19f8b4d..a643985 100644
--- a/src/armadillo-1-staticlib.patch
+++ b/src/armadillo-1-staticlib.patch
@@ -2,8 +2,8 @@ This file is part of MXE.
See index.html for further information.
diff -urN a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt 2013-04-26 08:48:11.000000000 +0200
-+++ b/CMakeLists.txt 2013-04-27 18:49:46.454530270 +0200
+--- a/CMakeLists.txt 2013-12-06 08:39:40.000000000 +0100
++++ b/CMakeLists.txt 2013-12-06 14:05:54.098314032 +0100
@@ -32,7 +32,7 @@
set(ARMA_USE_ATLAS false)
set(ARMA_USE_BOOST false)
@@ -11,14 +11,13 @@ diff -urN a/CMakeLists.txt b/CMakeLists.txt
-set(ARMA_USE_WRAPPER true )
+set(ARMA_USE_WRAPPER false)
- # NOTE:
- # Set ARMA_USE_WRAPPER to false if you're getting linking errors when compiling your programs,
-@@ -289,7 +289,7 @@
- message(STATUS "CMAKE_SHARED_LINKER_FLAGS = ${CMAKE_SHARED_LINKER_FLAGS}")
- endif()
+ ## NOTE:
+ ## Set ARMA_USE_WRAPPER to false if you're getting linking errors when compiling your programs,
+@@ -340,7 +340,7 @@
+ message(STATUS "CMAKE_SHARED_LINKER_FLAGS = ${CMAKE_SHARED_LINKER_FLAGS}")
--add_library( armadillo SHARED src/wrap_libs )
-+add_library( armadillo STATIC src/wrap_libs )
+
+-add_library( armadillo SHARED src/wrapper )
++add_library( armadillo STATIC src/wrapper )
target_link_libraries( armadillo ${ARMA_LIBS} )
set_target_properties(armadillo PROPERTIES VERSION ${ARMA_MAJOR}.${ARMA_MINOR_ALT}.${ARMA_PATCH} SOVERSION ${ARMA_MAJOR})
-
diff --git a/src/armadillo-2-nocmakeconfigfiles.patch b/src/armadillo-2-nocmakeconfigfiles.patch
index 08c6ad6..722a12a 100644
--- a/src/armadillo-2-nocmakeconfigfiles.patch
+++ b/src/armadillo-2-nocmakeconfigfiles.patch
@@ -3,7 +3,7 @@ See index.html for further information.
--- armadillo-3.800.2/CMakeLists.txt.patched 2013-04-22 17:15:39.000000000 +0200
+++ armadillo-3.800.2/CMakeLists.txt 2013-04-22 17:31:43.000000000 +0200
-@@ -363,7 +363,7 @@
+@@ -404,7 +404,7 @@
# Export the package for use from the build-tree
# (this registers the build-tree with a global CMake-registry)
diff --git a/src/armadillo.mk b/src/armadillo.mk
index 7cbf17c..c2cc8d4 100644
--- a/src/armadillo.mk
+++ b/src/armadillo.mk
@@ -3,8 +3,8 @@
PKG := armadillo
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.900.6
-$(PKG)_CHECKSUM := d9ad6af0ea9440cfd78eacba990c0512bd17f19c
+$(PKG)_VERSION := 3.930.2
+$(PKG)_CHECKSUM := cbd8b2b65d5af4af1e2ab8d93896cd641c27023c
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/arma/$($(PKG)_FILE)
diff --git a/src/assimp-test.c b/src/assimp-test.c
new file mode 100644
index 0000000..24866cf
--- /dev/null
+++ b/src/assimp-test.c
@@ -0,0 +1,31 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <assimp/cimport.h>
+#include <assimp/scene.h>
+#include <assimp/postprocess.h>
+#include <string.h>
+
+int main(int argc, char *argv[])
+{
+ const struct aiScene* scene = NULL;
+
+ /* NFF file for a single spere with radius 5 at pos 0x0x0 */
+ const char* buf =
+ "--- begin of file\n"
+ "s 0 0 0 5\n"
+ "--- end of file\n";
+
+ (void)argc;
+ (void)argv;
+
+ scene = aiImportFileFromMemory(buf, strlen(buf), aiProcessPreset_TargetRealtime_MaxQuality, "nff");
+ (void)scene;
+
+ if (scene->mNumMeshes != 1) return 1;
+
+ aiReleaseImport(scene);
+ return 0;
+}
diff --git a/src/assimp.mk b/src/assimp.mk
new file mode 100644
index 0000000..7a94034
--- /dev/null
+++ b/src/assimp.mk
@@ -0,0 +1,32 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := assimp
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3.0
+$(PKG)_VERBUILD := 3.0.1270
+$(PKG)_CHECKSUM := e80a3a4326b649ed6585c0ce312ed6dd68942834
+$(PKG)_SUBDIR := $(PKG)--$($(PKG)_VERBUILD)-source-only
+$(PKG)_FILE := $(PKG)--$($(PKG)_VERBUILD)-source-only.zip
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)-$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc boost
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- "http://sourceforge.net/projects/assimp/files/assimp/" | \
+ grep 'assimp/files/assimp' | \
+ $(SED) -n 's,.*assimp/\([0-9][^>]*\)/.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && cmake . \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DBUILD_ASSIMP_TOOLS=OFF \
+ -DBUILD_ASSIMP_SAMPLES=OFF
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-assimp.exe' \
+ `'$(TARGET)-pkg-config' assimp --cflags --libs`
+endef
diff --git a/src/atk-2-portability.patch b/src/atk-2-portability.patch
new file mode 100644
index 0000000..6f72a61
--- /dev/null
+++ b/src/atk-2-portability.patch
@@ -0,0 +1,15 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -ur atk-2.10.0.orig/atk/Makefile.in atk-2.10.0/atk/Makefile.in
+--- atk-2.10.0.orig/atk/Makefile.in 2014-03-09 14:57:06.000000000 +1100
++++ atk-2.10.0/atk/Makefile.in 2014-03-09 14:58:26.000000000 +1100
+@@ -919,7 +919,7 @@
+ @MS_LIB_AVAILABLE_FALSE@uninstall-ms-lib:
+
+ atk.def: atk.symbols
+- (echo -e EXPORTS; $(CPP) -P -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/atk.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g') > atk.def
++ (`echo -e EXPORTS`; $(CPP) -P -DINCLUDE_VARIABLES -DG_OS_WIN32 -DALL_FILES - <$(srcdir)/atk.symbols | sed -e '/^$$/d' -e 's/^/ /' -e 's/G_GNUC_[^ ]*//g') > atk.def
+
+ atk-$(ATK_API_VERSION).lib: libatk-$(ATK_API_VERSION).la atk.def
+ lib -machine:$(LIB_EXE_MACHINE_FLAG) -name:libatk-$(ATK_API_VERSION)-$(LT_CURRENT_MINUS_AGE).dll -def:atk.def -out:$@
diff --git a/src/atk.mk b/src/atk.mk
index 8cf4ce3..d385446 100644
--- a/src/atk.mk
+++ b/src/atk.mk
@@ -3,8 +3,8 @@
PKG := atk
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.8.0
-$(PKG)_CHECKSUM := e8a9dacd22b31a6cb733ce66fb1c220cc6720970
+$(PKG)_VERSION := 2.10.0
+$(PKG)_CHECKSUM := 9b7f09a31f3781d5af4eb02ec0e2b289cf077a49
$(PKG)_SUBDIR := atk-$($(PKG)_VERSION)
$(PKG)_FILE := atk-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/atk/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -20,10 +20,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-glibtest \
--disable-gtk-doc
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/atkmm.mk b/src/atkmm.mk
index 7d5c06b..9f7cb09 100644
--- a/src/atkmm.mk
+++ b/src/atkmm.mk
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
MAKE=$(MAKE)
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/autoconf.mk b/src/autoconf.mk
new file mode 100644
index 0000000..22ddd9f
--- /dev/null
+++ b/src/autoconf.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := autoconf
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.69
+$(PKG)_CHECKSUM := e891c3193029775e83e0534ac0ee0c4c711f6d23
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/autoconf/$($(PKG)_FILE)
+$(PKG)_DEPS := m4
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ftp.gnu.org/gnu/autoconf/?C=M;O=D' | \
+ $(SED) -n 's,.*<a href="autoconf-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
diff --git a/src/automake.mk b/src/automake.mk
new file mode 100644
index 0000000..ca5b5b5
--- /dev/null
+++ b/src/automake.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := automake
+$(PKG)_IGNORE := 1.14%
+$(PKG)_VERSION := 1.13.2
+$(PKG)_CHECKSUM := 72ee9fcd180c54fd7c067155d85fa071a99c3ea3
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/automake/$($(PKG)_FILE)
+$(PKG)_DEPS := autoconf
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ftp.gnu.org/gnu/automake/?C=M;O=D' | \
+ $(SED) -n 's,.*<a href="automake-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)' man1_MANS=
+ $(MAKE) -C '$(1).build' -j 1 install man1_MANS=
+endef
diff --git a/src/binutils.mk b/src/binutils.mk
index 293fc1b..77944eb 100644
--- a/src/binutils.mk
+++ b/src/binutils.mk
@@ -3,13 +3,13 @@
PKG := binutils
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.23.2
-$(PKG)_CHECKSUM := 042c51073205ebaf88c272d6168f9deb71984b56
+$(PKG)_VERSION := 2.24
+$(PKG)_CHECKSUM := 7ac75404ddb3c4910c7594b51ddfc76d4693debb
$(PKG)_SUBDIR := binutils-$($(PKG)_VERSION)
$(PKG)_FILE := binutils-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/binutils/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.cs.tu-berlin.de/pub/gnu/binutils/$($(PKG)_FILE)
-$(PKG)_DEPS :=
+$(PKG)_DEPS := pkgconf
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/binutils/?C=M;O=D' | \
@@ -19,17 +19,9 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- # install config.guess for general use
- $(INSTALL) -d '$(PREFIX)/bin'
- $(INSTALL) -m755 '$(1)/config.guess' '$(PREFIX)/bin/'
-
- # install target-specific autotools config file
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/share'
- echo "ac_cv_build=`$(1)/config.guess`" > '$(PREFIX)/$(TARGET)/share/config.site'
-
cd '$(1)' && ./configure \
--target='$(TARGET)' \
- --build="`config.guess`" \
+ --build='$(BUILD)' \
--prefix='$(PREFIX)' \
--disable-multilib \
--with-gcc \
@@ -40,4 +32,8 @@ define $(PKG)_BUILD
--disable-werror
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
+
+ rm -f $(addprefix $(PREFIX)/$(TARGET)/bin/, ar as dlltool ld ld.bfd nm objcopy objdump ranlib strip)
endef
+
+$(PKG)_BUILD_$(BUILD) :=
diff --git a/src/bison.mk b/src/bison.mk
new file mode 100644
index 0000000..a22e347
--- /dev/null
+++ b/src/bison.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := bison
+$(PKG)_IGNORE := 3%
+$(PKG)_VERSION := 2.7.1
+$(PKG)_CHECKSUM := 00ab1b32d864622077c311e4f5420d4e2931fdc8
+$(PKG)_SUBDIR := bison-$($(PKG)_VERSION)
+$(PKG)_FILE := bison-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/bison/$($(PKG)_FILE)
+$(PKG)_DEPS := flex
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ftp.gnu.org/gnu/bison/?C=M;O=D' | \
+ $(SED) -n 's,.*<a href="bison-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
diff --git a/src/blas.mk b/src/blas.mk
index e900090..284e286 100644
--- a/src/blas.mk
+++ b/src/blas.mk
@@ -16,10 +16,16 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- $(SED) -i 's,$$(FORTRAN),$(TARGET)-gfortran,g' '$(1)/Makefile'
- $(MAKE) -C '$(1)' -j '$(JOBS)'
- cd '$(1)' && $(TARGET)-ar cr libblas.a *.o
+ $(MAKE) -C '$(1)' -j '$(JOBS)' \
+ FORTRAN='$(TARGET)-gfortran' \
+ RANLIB='$(TARGET)-ranlib' \
+ ARCH='$(TARGET)-ar' \
+ BLASLIB='libblas.a' \
+ OPTS=$(if $(findstring x86_64,$(TARGET)),-fdefault-integer-8)
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/libblas.a' '$(PREFIX)/$(TARGET)/lib/'
+ $(if $(BUILD_STATIC), \
+ $(INSTALL) -m644 '$(1)/libblas.a' '$(PREFIX)/$(TARGET)/lib/', \
+ $(MAKE_SHARED_FROM_STATIC) '$(1)/libblas.a' --ld '$(TARGET)-gfortran' \
+ )
endef
diff --git a/src/boost-1-intrinsics-fix.patch b/src/boost-1-intrinsics-fix.patch
new file mode 100644
index 0000000..81a19ba
--- /dev/null
+++ b/src/boost-1-intrinsics-fix.patch
@@ -0,0 +1,37 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch has been taken from:
+http://pkgs.fedoraproject.org/cgit/mingw-boost.git/plain/boost-include-intrin-h-on-mingw-w64.patch
+
+--- a/boost/detail/interlocked.hpp.interlocked 2012-12-11 15:42:26.000000000 +0100
++++ b/boost/detail/interlocked.hpp 2013-07-21 15:22:56.082346444 +0200
+@@ -69,9 +69,9 @@
+ # define BOOST_INTERLOCKED_EXCHANGE_POINTER(dest,exchange) \
+ ((void*)BOOST_INTERLOCKED_EXCHANGE((long*)(dest),(long)(exchange)))
+
+-#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN )
++#elif defined( BOOST_MSVC ) || defined( BOOST_INTEL_WIN ) || defined( __MINGW64_VERSION_MAJOR )
+
+-#if defined( BOOST_MSVC ) && BOOST_MSVC >= 1600
++#if ( defined( BOOST_MSVC ) && BOOST_MSVC >= 1600 ) || defined( __MINGW64_VERSION_MAJOR )
+
+ #include <intrin.h>
+
+@@ -93,12 +93,16 @@
+
+ #endif
+
++# if defined( BOOST_MSVC )
++
+ # pragma intrinsic( _InterlockedIncrement )
+ # pragma intrinsic( _InterlockedDecrement )
+ # pragma intrinsic( _InterlockedCompareExchange )
+ # pragma intrinsic( _InterlockedExchange )
+ # pragma intrinsic( _InterlockedExchangeAdd )
+
++# endif
++
+ # if defined(_M_IA64) || defined(_M_AMD64)
+
+ extern "C" void* __cdecl _InterlockedCompareExchangePointer( void* volatile *, void*, void* );
diff --git a/src/boost-2-winerror.patch b/src/boost-2-winerror.patch
new file mode 100644
index 0000000..d9b03ea
--- /dev/null
+++ b/src/boost-2-winerror.patch
@@ -0,0 +1,17 @@
+This file is part of MXE.
+See index.html for further information.
+
+Fix WinError.h capitalization. See http://svn.boost.org/trac/boost/ticket/7081
+
+diff -ur a/boost/detail/win/basic_types.hpp b/boost/detail/win/basic_types.hpp
+--- a/boost/detail/win/basic_types.hpp 2011-03-25 02:20:55.000000000 +0100
++++ b/boost/detail/win/basic_types.hpp 2013-11-13 18:59:00.225614699 +0100
+@@ -14,7 +14,7 @@
+ #if defined( BOOST_USE_WINDOWS_H )
+ # include <windows.h>
+ #elif defined( WIN32 ) || defined( _WIN32 ) || defined( __WIN32__ ) || defined(__CYGWIN__)
+-# include <WinError.h>
++# include <winerror.h>
+ // @FIXME Which condition must be tested
+ # ifdef UNDER_CE
+ # ifndef WINAPI
diff --git a/src/boost.mk b/src/boost.mk
index 9ca4cca..3c11f88 100644
--- a/src/boost.mk
+++ b/src/boost.mk
@@ -22,7 +22,7 @@ define $(PKG)_BUILD
rm -r '$(1)/libs/context'
# old version appears to interfere
rm -rf '$(PREFIX)/$(TARGET)/include/boost/'
- echo 'using gcc : : $(TARGET)-g++ : <rc>$(TARGET)-windres <archiver>$(TARGET)-ar ;' > '$(1)/user-config.jam'
+ echo 'using gcc : : $(TARGET)-g++ : <rc>$(TARGET)-windres <archiver>$(TARGET)-ar <ranlib>$(TARGET)-ranlib ;' > '$(1)/user-config.jam'
# compile boost jam
cd '$(1)/tools/build/v2/engine' && ./build.sh
cd '$(1)' && tools/build/v2/engine/bin.*/bjam \
@@ -31,7 +31,7 @@ define $(PKG)_BUILD
--user-config=user-config.jam \
target-os=windows \
threading=multi \
- link=static \
+ link=$(if $(BUILD_STATIC),static,shared) \
threadapi=win32 \
--layout=tagged \
--without-mpi \
diff --git a/src/bullet-1-pkgconfig.patch b/src/bullet-1-pkgconfig.patch
new file mode 100644
index 0000000..235e57e
--- /dev/null
+++ b/src/bullet-1-pkgconfig.patch
@@ -0,0 +1,22 @@
+This file is part of MXE.
+See index.html for further information.
+
+--- a/CMakeLists.txt Sat Sep 14 11:25:52 2013 -0700
++++ b/CMakeLists.txt Fri Sep 27 15:03:58 2013 +1000
+@@ -402,14 +402,14 @@
+ ## the following are directories where stuff will be installed to
+ SET(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/bullet/" CACHE PATH "The subdirectory to the header prefix")
+ SET(PKGCONFIG_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files")
+- IF(NOT WIN32)
++
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bullet.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc @ONLY)
+ INSTALL(
+ FILES
+ ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc
+ DESTINATION
+ ${PKGCONFIG_INSTALL_PREFIX})
+- ENDIF(NOT WIN32)
++
+ ENDIF(INSTALL_LIBS)
+
+ #INSTALL of other files requires CMake 2.6
diff --git a/src/bullet-test.cpp b/src/bullet-test.cpp
new file mode 100644
index 0000000..808f00a
--- /dev/null
+++ b/src/bullet-test.cpp
@@ -0,0 +1,29 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+#pragma GCC diagnostic ignored "-Wunused-variable"
+
+#include <btBulletDynamicsCommon.h>
+
+int main(int argc, char *argv[])
+{
+ btBroadphaseInterface* broadphase = new btDbvtBroadphase();
+ btDefaultCollisionConfiguration* collisionConfiguration = new btDefaultCollisionConfiguration();
+ btCollisionDispatcher* dispatcher = new btCollisionDispatcher(collisionConfiguration);
+ btSequentialImpulseConstraintSolver* solver = new btSequentialImpulseConstraintSolver();
+ btDiscreteDynamicsWorld* dynamicsWorld = new btDiscreteDynamicsWorld(dispatcher, broadphase, solver, collisionConfiguration);
+
+ (void)argc;
+ (void)argv;
+
+ delete dynamicsWorld;
+ delete solver;
+ delete dispatcher;
+ delete collisionConfiguration;
+ delete broadphase;
+
+ return 0;
+}
diff --git a/src/bullet.mk b/src/bullet.mk
new file mode 100644
index 0000000..085478b
--- /dev/null
+++ b/src/bullet.mk
@@ -0,0 +1,38 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := bullet
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.82-r2704
+$(PKG)_CHECKSUM := a0867257b9b18e9829bbeb4c6c5872a5b29d1d33
+$(PKG)_SUBDIR := bullet-$($(PKG)_VERSION)
+$(PKG)_FILE := bullet-$($(PKG)_VERSION).tgz
+$(PKG)_URL := https://bullet.googlecode.com/files/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://code.google.com/p/bullet/downloads/list?sort=-uploaded' | \
+ $(SED) -n 's,.*bullet-\([0-9][^<]*\)\.tgz.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && cmake . \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DINSTALL_LIBS=ON \
+ -DBUILD_CPU_DEMOS=OFF \
+ -DBUILD_DEMOS=OFF \
+ -DBUILD_EXTRAS=OFF \
+ -DBUILD_MULTITHREADING=OFF \
+ -DBUILD_UNIT_TESTS=OFF \
+ -DUSE_CUSTOM_VECOR_MATH=OFF \
+ -DUSE_DOUBLE_PRECISION=OFF \
+ -DUSE_GLUT=OFF \
+ -DUSE_GRAPHICAL_BENCHMARK=OFF
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
+
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
+ `'$(TARGET)-pkg-config' $(PKG) --cflags --libs`
+endef
diff --git a/src/bzip2.mk b/src/bzip2.mk
index d804b33..9f52779 100644
--- a/src/bzip2.mk
+++ b/src/bzip2.mk
@@ -17,14 +17,25 @@ define $(PKG)_UPDATE
head -1
endef
-define $(PKG)_BUILD
+define $(PKG)_BUILD_COMMON
$(MAKE) -C '$(1)' -j '$(JOBS)' libbz2.a \
PREFIX='$(PREFIX)/$(TARGET)' \
CC='$(TARGET)-gcc' \
AR='$(TARGET)-ar' \
RANLIB='$(TARGET)-ranlib'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/libbz2.a' '$(PREFIX)/$(TARGET)/lib/'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
$(INSTALL) -m644 '$(1)/bzlib.h' '$(PREFIX)/$(TARGET)/include/'
endef
+
+define $(PKG)_BUILD
+ $($(PKG)_BUILD_COMMON)
+ $(INSTALL) -m644 '$(1)/libbz2.a' '$(PREFIX)/$(TARGET)/lib/'
+endef
+
+define $(PKG)_BUILD_SHARED
+ $($(PKG)_BUILD_COMMON)
+ '$(TARGET)-gcc' '$(1)'/*.o -shared \
+ -o '$(PREFIX)/$(TARGET)/bin/libbz2.dll' -Xlinker \
+ --out-implib -Xlinker '$(PREFIX)/$(TARGET)/lib/libbz2.dll.a'
+endef
diff --git a/src/cairo.mk b/src/cairo.mk
index 60f2e0b..c24d10b 100644
--- a/src/cairo.mk
+++ b/src/cairo.mk
@@ -3,12 +3,12 @@
PKG := cairo
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.12.14
-$(PKG)_CHECKSUM := 9106ab09b2e7b9f90521b18dd4a7e9577eba6c15
+$(PKG)_VERSION := 1.12.16
+$(PKG)_CHECKSUM := 4f6e337d5d3edd7ea79d1426f575331552b003ec
$(PKG)_SUBDIR := cairo-$($(PKG)_VERSION)
$(PKG)_FILE := cairo-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://cairographics.org/releases/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc zlib libpng fontconfig freetype pixman
+$(PKG)_DEPS := gcc fontconfig freetype libpng lzo pixman zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://cairographics.org/releases/?C=M;O=D' | \
@@ -20,10 +20,7 @@ define $(PKG)_BUILD
$(SED) -i 's,libpng12,libpng,g' '$(1)/configure'
$(SED) -i 's,^\(Libs:.*\),\1 @CAIRO_NONPKGCONFIG_LIBS@,' '$(1)/src/cairo.pc.in'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-gtk-doc \
--disable-test-surfaces \
--disable-gcov \
@@ -45,7 +42,7 @@ define $(PKG)_BUILD
--enable-pdf \
--enable-svg \
--disable-pthread \
- CFLAGS="$(CFLAGS) -DCAIRO_WIN32_STATIC_BUILD" \
+ CFLAGS="$(CFLAGS) $(if $(BUILD_STATIC),-DCAIRO_WIN32_STATIC_BUILD)" \
LIBS="-lmsimg32 -lgdi32 `$(TARGET)-pkg-config pixman-1 --libs`"
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/cblas.mk b/src/cblas.mk
index 732c6f4..8f0d584 100644
--- a/src/cblas.mk
+++ b/src/cblas.mk
@@ -9,26 +9,36 @@ $(PKG)_SUBDIR := CBLAS
$(PKG)_FILE := $(PKG).tgz
$(PKG)_URL := http://www.netlib.org/blas/blast-forum/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.eq.uc.pt/pub/software/math/netlib/blas/blast-forum/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc
+$(PKG)_DEPS := gcc blas
define $(PKG)_UPDATE
echo 1
endef
define $(PKG)_BUILD
- cp '$(1)/Makefile.LINUX' '$(1)/Makefile.MINGW32'
- $(SED) -i 's,CBDIR =.*,CBDIR = $(1),g' '$(1)/Makefile.MINGW32'
- $(SED) -i 's,FC =.*,FC = $(TARGET)-gfortran,g' '$(1)/Makefile.MINGW32'
- $(SED) -i 's, make , $(MAKE) ,g' '$(1)/Makefile'
- rm '$(1)/Makefile.in'
- ln -sf '$(1)/Makefile.MINGW32' '$(1)/Makefile.in'
- mkdir '$(1)/MINGW32'
- $(MAKE) -C '$(1)' -j '$(JOBS)' alllib
- cd '$(1)' && $(TARGET)-ar cr libcblas.a src/*.o
+ $(SED) -i 's, make , $(MAKE) ,g' '$(1)/Makefile'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' \
+ CBDIR='$(1)' \
+ CBLIB='$(1)/lib/libcblas.a' \
+ CC='$(TARGET)-gcc' \
+ FC='$(TARGET)-gfortran' \
+ ARCH='$(TARGET)-ar' \
+ RANLIB='$(TARGET)-ranlib' \
+ alllib
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/libcblas.a' '$(PREFIX)/$(TARGET)/lib/'
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
+ $(INSTALL) -m644 '$(1)/lib/libcblas.a' '$(PREFIX)/$(TARGET)/lib/'
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
$(INSTALL) -m644 '$(1)/include/cblas.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/include/cblas_f77.h' '$(PREFIX)/$(TARGET)/include/'
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(1)/examples/cblas_example1.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
+ -lcblas -lblas -lgfortran
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(1)/examples/cblas_example2.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-F77.exe' \
+ -lcblas -lblas -lgfortran -DADD_
endef
diff --git a/src/cfitsio.mk b/src/cfitsio.mk
index 10f457c..0648911 100644
--- a/src/cfitsio.mk
+++ b/src/cfitsio.mk
@@ -3,8 +3,8 @@
PKG := cfitsio
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3350
-$(PKG)_CHECKSUM := e928832708d6a5df21a1e17ae4a63036cab7c1b9
+$(PKG)_VERSION := 3360
+$(PKG)_CHECKSUM := 946dce52528b0e4eb865db75c4e103cdd8cf51f8
$(PKG)_SUBDIR := cfitsio
$(PKG)_FILE := cfitsio$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/$($(PKG)_FILE)
diff --git a/src/check.mk b/src/check.mk
new file mode 100644
index 0000000..c41066c
--- /dev/null
+++ b/src/check.mk
@@ -0,0 +1,27 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := check
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.9.11
+$(PKG)_CHECKSUM := 84b5af72dd49df4ac837645d117ce9126535d549
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/check/files/check/' | \
+ $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --build="`config.guess`" \
+ --disable-shared \
+ --enable-static \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
+endef
diff --git a/src/chromaprint.mk b/src/chromaprint.mk
new file mode 100644
index 0000000..988bf6e
--- /dev/null
+++ b/src/chromaprint.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := chromaprint
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.1
+$(PKG)_CHECKSUM := 5a250f761761d2ce08e2591b9daa909393552939
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://bitbucket.org/acoustid/chromaprint/downloads/$(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_DEPS := gcc ffmpeg
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package chromaprint need to be written.' >&2;
+ echo $(chromaprint_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && cmake \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DBUILD_SHARED_LIBS=$(if $(BUILD_SHARED),ON,OFF)
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/cloog.mk b/src/cloog.mk
new file mode 100644
index 0000000..cc55fe8
--- /dev/null
+++ b/src/cloog.mk
@@ -0,0 +1,31 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := cloog
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.18.1
+$(PKG)_CHECKSUM := 2dc70313e8e2c6610b856d627bce9c9c3f848077
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := ftp://gcc.gnu.org/pub/gcc/infrastructure/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc gmp isl
+
+# stick to tested versions from gcc
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'ftp://gcc.gnu.org/pub/gcc/infrastructure/' | \
+ $(SED) -n 's,.*cloog-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ $(SORT) -V |
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --enable-static \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-gmp-prefix='$(PREFIX)/$(TARGET)' \
+ --with-isl-prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
+endef
diff --git a/src/cmake.mk b/src/cmake.mk
new file mode 100644
index 0000000..b7561c8
--- /dev/null
+++ b/src/cmake.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := cmake
+$(PKG)_IGNORE := %
+$(PKG)_VERSION := 2.8.12.1
+$(PKG)_CHECKSUM := 5661a607acbce7c16bb5f15ff2895fa5ca53a4da
+$(PKG)_SUBDIR := cmake-$($(PKG)_VERSION)
+$(PKG)_FILE := cmake-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.cmake.org/files/v$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
+$(PKG)_DEPS :=
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://www.cmake.org/cmake/resources/software.html' | \
+ $(SED) -n 's,.*cmake-\([0-9.]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
diff --git a/src/cminpack.mk b/src/cminpack.mk
index 96afc76..54333cb 100644
--- a/src/cminpack.mk
+++ b/src/cminpack.mk
@@ -3,8 +3,8 @@
PKG := cminpack
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.3.0
-$(PKG)_CHECKSUM := 8bf19ce37b486707c402a046c33d823c9e359410
+$(PKG)_VERSION := 1.3.2
+$(PKG)_CHECKSUM := f88374f014ca74a56691314cad070789bde62729
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://devernay.free.fr/hacks/cminpack/$($(PKG)_FILE)
diff --git a/src/cppunit.mk b/src/cppunit.mk
index 28757df..6ad71df 100644
--- a/src/cppunit.mk
+++ b/src/cppunit.mk
@@ -3,11 +3,11 @@
PKG := cppunit
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.12.1
-$(PKG)_CHECKSUM := f1ab8986af7a1ffa6760f4bacf5622924639bf4a
+$(PKG)_VERSION := 1.13.2
+$(PKG)_CHECKSUM := 0eaf8bb1dcf4d16b12bec30d0732370390d35e6f
$(PKG)_SUBDIR := cppunit-$($(PKG)_VERSION)
$(PKG)_FILE := cppunit-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_URL := http://dev-www.libreoffice.org/src/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
diff --git a/src/crystalhd.mk b/src/crystalhd.mk
new file mode 100644
index 0000000..57e1958
--- /dev/null
+++ b/src/crystalhd.mk
@@ -0,0 +1,21 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := crystalhd
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1
+$(PKG)_CHECKSUM := 2ee046b1a20485abb750244d4c71f733673496f7
+$(PKG)_SUBDIR := .
+$(PKG)_FILE := crystalhd_lgpl_includes_v1.zip
+$(PKG)_URL := http://www.broadcom.com/docs/support/$(PKG)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ echo "TODO: crystalhd update script" >&2
+ echo $(crystalhd_VERSION)
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(PREFIX)/$(TARGET)/include/libcrystalhd'
+ cd '$(1)' && cp *.h '$(PREFIX)/$(TARGET)/include/libcrystalhd'
+endef
diff --git a/src/curl.mk b/src/curl.mk
index 0b427c4..044c459 100644
--- a/src/curl.mk
+++ b/src/curl.mk
@@ -3,8 +3,8 @@
PKG := curl
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 7.31.0
-$(PKG)_CHECKSUM := 662e5c0239b7108a684743674c95cc8111a0a245
+$(PKG)_VERSION := 7.36.0
+$(PKG)_CHECKSUM := a82e3384a8577f508259725493923d4d8782ee63
$(PKG)_SUBDIR := curl-$($(PKG)_VERSION)
$(PKG)_FILE := curl-$($(PKG)_VERSION).tar.lzma
$(PKG)_URL := http://curl.haxx.se/download/$($(PKG)_FILE)
@@ -18,16 +18,14 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-gnutls \
--with-libidn \
--enable-sspi \
--enable-ipv6 \
--with-libssh2
$(MAKE) -C '$(1)' -j '$(JOBS)' install
+ ln -sf '$(PREFIX)/$(TARGET)/bin/curl-config' '$(PREFIX)/bin/$(TARGET)-curl-config'
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
diff --git a/src/dbus.mk b/src/dbus.mk
index ff256ea..dfe0111 100644
--- a/src/dbus.mk
+++ b/src/dbus.mk
@@ -3,8 +3,8 @@
PKG := dbus
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.7.2
-$(PKG)_CHECKSUM := 6e1828dded661183cd5e852d2f50d1e45c23dcff
+$(PKG)_VERSION := 1.8.0
+$(PKG)_CHECKSUM := d14ab33e92e29fa732cdff69214913832181e737
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(PKG).freedesktop.org/releases/$(PKG)/$($(PKG)_FILE)
@@ -19,17 +19,16 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-xml=expat \
--disable-tests \
--disable-verbose-mode \
--disable-asserts \
- --disable-shared \
--disable-maintainer-mode \
- --enable-static \
--disable-silent-rules \
+ --disable-launchd \
+ --disable-doxygen-docs \
+ --disable-xml--docs \
CFLAGS='-DPROCESS_QUERY_LIMITED_INFORMATION=0x1000'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/devil.mk b/src/devil.mk
index c11b63b..7cb428d 100644
--- a/src/devil.mk
+++ b/src/devil.mk
@@ -11,10 +11,10 @@ $(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/openil/DevIL/$($(PKG)_VE
$(PKG)_DEPS := gcc freeglut zlib openexr jpeg jasper lcms libmng libpng tiff sdl
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://openil.svn.sourceforge.net/viewvc/openil/tags/?sortby=date' | \
- grep '<a name="' | \
- $(SED) -n 's,.*<a name="release-\([0-9][^"]*\)".*,\1,p' | \
- head -1
+ $(WGET) -q -O- 'http://sourceforge.net/p/openil/svn/HEAD/tree/tags/' | \
+ grep '<a href="' | \
+ $(SED) -n 's,.*<a href="release-\([0-9][^"]*\)".*,\1,p' | \
+ tail -1
endef
define $(PKG)_BUILD
diff --git a/src/dlfcn-win32-1-configure-fixes.patch b/src/dlfcn-win32-1-configure-fixes.patch
new file mode 100644
index 0000000..80832d4
--- /dev/null
+++ b/src/dlfcn-win32-1-configure-fixes.patch
@@ -0,0 +1,35 @@
+This file is part of MXE.
+See index.html for further information.
+
+From: Timothy Gu <timothygu99@gmail.com>
+Subject: [PATCH 1/2] configure: make script return 0 if successfully executed
+
+diff -Naur dlfcn-win32-r19.orig/configure dlfcn-win32-r19/configure
+--- dlfcn-win32-r19.orig/configure 2009-01-11 13:31:27.000000000 -0800
++++ dlfcn-win32-r19/configure 2013-11-23 20:13:14.429342371 -0800
+@@ -186,7 +186,7 @@
+ echo "strip: $strip"
+ echo "static: $static"
+ echo "shared: $shared"
+-enabled shared && {
++if (enabled shared); then
+ echo "msvc: $msvc";
+ echo "strip: $stripping";
+-}
++fi
+
+From: Timothy Gu <timothygu99@gmail.com>
+Subject: [PATCH 2/2] configure: update $libdir and $incdir after parsing opts
+
+diff -Naur dlfcn-win32-r19.orig/configure dlfcn-win32-r19/configure
+--- dlfcn-win32-r19.orig/configure 2009-01-11 13:31:27.000000000 -0800
++++ dlfcn-win32-r19/configure 2013-11-23 20:15:43.777338541 -0800
+@@ -111,6 +111,8 @@
+ esac
+ done
+
++libdir="${PREFIX}/lib"
++incdir="${PREFIX}/include"
+ ar="${cross_prefix}${ar}"
+ cc_default="${cross_prefix}${cc_default}"
+ ranlib="${cross_prefix}${ranlib}"
diff --git a/src/dlfcn-win32.mk b/src/dlfcn-win32.mk
new file mode 100644
index 0000000..a375e0f
--- /dev/null
+++ b/src/dlfcn-win32.mk
@@ -0,0 +1,30 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := dlfcn-win32
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 19
+$(PKG)_CHECKSUM := a0033e37a547c52059d0bf8664a96ecdeeb66419
+$(PKG)_SUBDIR := $(PKG)-r$($(PKG)_VERSION)
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
+$(PKG)_URL := http://$(PKG).googlecode.com/files/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://code.google.com/p/dlfcn-win32/downloads/list?sort=-uploaded' | \
+ $(SED) -n 's,.*dlfcn-win32-r\([0-9][^<]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --cross-prefix='$(TARGET)-' \
+ $(if $(BUILD_STATIC), \
+ --enable-static --disable-shared , \
+ --disable-static --enable-shared )
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+
+ # No test avalable temprorarily because MXE doesn't support shared build yet
+endef
diff --git a/src/eigen.mk b/src/eigen.mk
index b9b3541..69555bc 100644
--- a/src/eigen.mk
+++ b/src/eigen.mk
@@ -3,9 +3,9 @@
PKG := eigen
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.1.3
-$(PKG)_CHECKSUM := 07e248deaaa5d2a8822a0581a606151127fce450
-$(PKG)_SUBDIR := $(PKG)-$(PKG)-2249f9c22fe8
+$(PKG)_VERSION := 3.1.4
+$(PKG)_CHECKSUM := a5cbe0a5676ea2105c8b0c4569c204bf58fc009a
+$(PKG)_SUBDIR := $(PKG)-$(PKG)-36bf2ceaf8f5
$(PKG)_FILE := $($(PKG)_VERSION).tar.bz2
$(PKG)_URL := https://bitbucket.org/$(PKG)/$(PKG)/get/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
diff --git a/src/exiv2-1-lpsapi.patch b/src/exiv2-1-lpsapi.patch
new file mode 100644
index 0000000..109f98a
--- /dev/null
+++ b/src/exiv2-1-lpsapi.patch
@@ -0,0 +1,41 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch is adapted from the Exiv2 svn trunk revision 3210.
+
+diff -ur a/config/exiv2.pc.in b/config/exiv2.pc.in
+--- a/config/exiv2.pc.in 2011-07-29 14:11:16.000000000 +0200
++++ b/config/exiv2.pc.in 2013-12-20 06:44:37.265187475 +0100
+@@ -7,5 +7,5 @@
+ Description: Image metadata library and tools
+ Version: @PACKAGE_VERSION@
+ Libs: -L${libdir} -lexiv2 @EXV_LIB_STATIC@
+-Libs.private: @EXPAT_LDFLAGS@ @LTLIBINTL@ @LTLIBICONV@ @LIBS@ @EXPAT_LIBS@
++Libs.private: @EXPAT_LDFLAGS@ @LTLIBINTL@ @LTLIBICONV@ @LIBS@ @EXPAT_LIBS@ @EXV_LIBPSAPI@
+ Cflags: -I${includedir}
+diff -ur a/configure b/configure
+--- a/configure 2013-12-01 13:29:47.000000000 +0100
++++ b/configure 2013-12-20 06:44:37.273191477 +0100
+@@ -774,6 +774,7 @@
+ ac_header_list=
+ ac_subst_vars='LTLIBOBJS
+ LIBOBJS
++EXV_LIBPSAPI
+ EXV_LIB_STATIC
+ ENABLE_XMP
+ EXPAT_LIBS
+@@ -17068,11 +17069,14 @@
+ # version.cpp requires link to psapi/Windows and dl/Unix builds
+ case "$host_os" in
+ *mingw* | *cygwin*)
++ EXV_LIBPSAPI="-lpsapi"
+ LDFLAGS="$LDFLAGS -no-undefined -lpsapi" ;;
+ *)
++ EXV_LIBPSAPI=
+ LDFLAGS="$LDFLAGS -ldl" ;;
+ esac
+
++
+ # ---------------------------------------------------------------------------
+ # Create output files.
+ # ---------------------------------------------------------------------------
diff --git a/src/exiv2-issue847.patch b/src/exiv2-issue847.patch
deleted file mode 100644
index 1fd7b4f..0000000
--- a/src/exiv2-issue847.patch
+++ /dev/null
@@ -1,268 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-These patches have been taken from:
-http://dev.exiv2.org/issues/847
-
-From ffb5b66c5b1aeb77c1f95ef69a573030c6370e0c Mon Sep 17 00:00:00 2001
-From: vog <vog@b7c8b350-86e7-0310-a4b4-de8f6a8f16a3>
-Date: Fri, 14 Sep 2012 16:06:23 +0000
-Subject: [PATCH 1/4] Issue #847: Add recognition of explicit and implicit
- BeginPageSetup
-
-git-svn-id: svn://dev.exiv2.org/svn/trunk@2869 b7c8b350-86e7-0310-a4b4-de8f6a8f16a3
----
- src/epsimage.cpp | 28 ++++++++++++++++++++++------
- 1 file changed, 22 insertions(+), 6 deletions(-)
-
-diff --git a/src/epsimage.cpp b/src/epsimage.cpp
-index c937942..51e5bb4 100644
---- a/src/epsimage.cpp
-+++ b/src/epsimage.cpp
-@@ -386,6 +386,7 @@ namespace {
- size_t posBeginPhotoshop = posEndEps;
- size_t posEndPhotoshop = posEndEps;
- size_t posPage = posEndEps;
-+ size_t posBeginPageSetup = posEndEps;
- size_t posEndPageSetup = posEndEps;
- size_t posPageTrailer = posEndEps;
- size_t posEof = posEndEps;
-@@ -397,7 +398,6 @@ namespace {
- bool implicitPage = false;
- bool implicitPageTrailer = false;
- bool inDefaultsPreviewPrologSetup = false;
-- bool inPageSetup = false;
- bool inRemovableEmbedding = false;
- std::string removableEmbeddingEndLine;
- unsigned int removableEmbeddingsWithUnmarkedTrailer = 0;
-@@ -465,7 +465,7 @@ namespace {
- #endif
- throw Error(write ? 21 : 14);
- } else if (line == "%%BeginPageSetup") {
-- inPageSetup = true;
-+ posBeginPageSetup = startPos;
- } else if (!inRemovableEmbedding && line == "%Exiv2BeginXMP: Before %%EndPageSetup") {
- inRemovableEmbedding = true;
- removableEmbeddings.push_back(std::make_pair(startPos, startPos));
-@@ -510,18 +510,34 @@ namespace {
- if (posPage == posEndEps && posEndComments != posEndEps && !inDefaultsPreviewPrologSetup && !inRemovableEmbedding && !onlyWhitespaces(line)) {
- posPage = startPos;
- implicitPage = true;
-+ posBeginPageSetup = startPos;
- posEndPageSetup = startPos;
- #ifdef DEBUG
-- EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page and EndPageSetup at position: " << startPos << "\n";
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page, BeginPageSetup and EndPageSetup at position: " << startPos << "\n";
- #endif
- }
-- if (posEndPageSetup == posEndEps && posPage != posEndEps && !inPageSetup && !inRemovableEmbedding && line.size() >= 1 && line[0] != '%') {
-+ if (posBeginPageSetup == posEndEps && posPage != posEndEps && !inRemovableEmbedding && line.size() >= 1 && line[0] != '%') {
-+ posBeginPageSetup = startPos;
- posEndPageSetup = startPos;
- #ifdef DEBUG
-- EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup and EndPageSetup at position: " << startPos << "\n";
- #endif
- }
- if (line.size() >= 1 && line[0] != '%') continue; // performance optimization
-+ if (line == "%%EOF" || line == "%%Trailer" || line == "%%PageTrailer") {
-+ if (posBeginPageSetup == posEndEps) {
-+ posBeginPageSetup = startPos;
-+ #ifdef DEBUG
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup at position: " << startPos << "\n";
-+ #endif
-+ }
-+ if (posEndPageSetup == posEndEps) {
-+ posEndPageSetup = startPos;
-+ #ifdef DEBUG
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
-+ #endif
-+ }
-+ }
- if (line == "%%EOF" || line == "%%Trailer") {
- if (posPageTrailer == posEndEps) {
- posPageTrailer = startPos;
-@@ -561,7 +577,6 @@ namespace {
- } else if (line == "%%EndSetup") {
- inDefaultsPreviewPrologSetup = false;
- } else if (posEndPageSetup == posEndEps && line == "%%EndPageSetup") {
-- inPageSetup = false;
- posEndPageSetup = startPos;
- } else if (posPageTrailer == posEndEps && line == "%%PageTrailer") {
- posPageTrailer = startPos;
-@@ -815,6 +830,7 @@ namespace {
- positions.push_back(posExiv2Website);
- positions.push_back(posEndComments);
- positions.push_back(posPage);
-+ positions.push_back(posBeginPageSetup);
- positions.push_back(posEndPageSetup);
- positions.push_back(posPageTrailer);
- positions.push_back(posEof);
---
-1.7.10.4
-
-From f8c9c6114bf7631bb0dba67582c2666b05b2ff9f Mon Sep 17 00:00:00 2001
-From: vog <vog@b7c8b350-86e7-0310-a4b4-de8f6a8f16a3>
-Date: Fri, 14 Sep 2012 16:06:26 +0000
-Subject: [PATCH 2/4] Issue #847: Always insert BeginPageSetup/EndPageSetup
- when missing
-
-git-svn-id: svn://dev.exiv2.org/svn/trunk@2870 b7c8b350-86e7-0310-a4b4-de8f6a8f16a3
----
- src/epsimage.cpp | 21 ++++++++++++++-------
- 1 file changed, 14 insertions(+), 7 deletions(-)
-
-diff --git a/src/epsimage.cpp b/src/epsimage.cpp
-index 51e5bb4..9276eb5 100644
---- a/src/epsimage.cpp
-+++ b/src/epsimage.cpp
-@@ -935,6 +935,11 @@ namespace {
- writeTemp(*tempIo, "%%EndPageComments" + lineEnding);
- }
- }
-+ if (pos == posBeginPageSetup) {
-+ if (line != "%%BeginPageSetup") {
-+ writeTemp(*tempIo, "%%BeginPageSetup" + lineEnding);
-+ }
-+ }
- if (useFlexibleEmbedding) {
- // insert XMP metadata into existing flexible embedding
- if (pos == xmpPos) {
-@@ -947,7 +952,8 @@ namespace {
- EXV_DEBUG << "readWriteEpsMetadata: Skipping to " << skipPos << " at " << __FILE__ << ":" << __LINE__ << "\n";
- #endif
- }
-- } else {
-+ }
-+ if (!useFlexibleEmbedding) {
- // remove preceding embedding(s)
- for (std::vector<std::pair<size_t, size_t> >::const_iterator e = removableEmbeddings.begin(); e != removableEmbeddings.end(); e++) {
- if (pos == e->first) {
-@@ -960,9 +966,6 @@ namespace {
- }
- // insert XMP metadata with new flexible embedding, if necessary
- if (pos == posEndPageSetup && !deleteXmp) {
-- if (line != "%%EndPageSetup") {
-- writeTemp(*tempIo, "%%BeginPageSetup" + lineEnding);
-- }
- writeTemp(*tempIo, "%Exiv2BeginXMP: Before %%EndPageSetup" + lineEnding);
- if (corelDraw) {
- writeTemp(*tempIo, "%Exiv2Notice: The following line is needed by CorelDRAW." + lineEnding);
-@@ -1004,10 +1007,14 @@ namespace {
- writeTemp(*tempIo, "@sv" + lineEnding);
- }
- writeTemp(*tempIo, "%Exiv2EndXMP" + lineEnding);
-- if (line != "%%EndPageSetup") {
-- writeTemp(*tempIo, "%%EndPageSetup" + lineEnding);
-- }
- }
-+ }
-+ if (pos == posEndPageSetup) {
-+ if (line != "%%EndPageSetup") {
-+ writeTemp(*tempIo, "%%EndPageSetup" + lineEnding);
-+ }
-+ }
-+ if (!useFlexibleEmbedding) {
- if (pos == posPageTrailer && !deleteXmp) {
- if (!implicitPageTrailer) {
- skipPos = posLineEnd;
---
-1.7.10.4
-
-From b22ff432f0205d77d1b9e0ad2cd314ab6cdf20b0 Mon Sep 17 00:00:00 2001
-From: vog <vog@b7c8b350-86e7-0310-a4b4-de8f6a8f16a3>
-Date: Fri, 14 Sep 2012 16:06:29 +0000
-Subject: [PATCH 3/4] Issue #847: Split recognition of implicit Page,
- BeginPageSetup and EndPageSetup
-
-git-svn-id: svn://dev.exiv2.org/svn/trunk@2871 b7c8b350-86e7-0310-a4b4-de8f6a8f16a3
----
- src/epsimage.cpp | 17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/src/epsimage.cpp b/src/epsimage.cpp
-index 9276eb5..57051a1 100644
---- a/src/epsimage.cpp
-+++ b/src/epsimage.cpp
-@@ -396,6 +396,7 @@ namespace {
- bool illustrator8 = false;
- bool corelDraw = false;
- bool implicitPage = false;
-+ bool implicitPageSetup = false;
- bool implicitPageTrailer = false;
- bool inDefaultsPreviewPrologSetup = false;
- bool inRemovableEmbedding = false;
-@@ -510,29 +511,35 @@ namespace {
- if (posPage == posEndEps && posEndComments != posEndEps && !inDefaultsPreviewPrologSetup && !inRemovableEmbedding && !onlyWhitespaces(line)) {
- posPage = startPos;
- implicitPage = true;
-- posBeginPageSetup = startPos;
-- posEndPageSetup = startPos;
- #ifdef DEBUG
-- EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page, BeginPageSetup and EndPageSetup at position: " << startPos << "\n";
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit Page at position: " << startPos << "\n";
- #endif
- }
-- if (posBeginPageSetup == posEndEps && posPage != posEndEps && !inRemovableEmbedding && line.size() >= 1 && line[0] != '%') {
-+ if (posBeginPageSetup == posEndEps && (implicitPage || (posPage != posEndEps && !inRemovableEmbedding && line.size() >= 1 && line[0] != '%'))) {
- posBeginPageSetup = startPos;
-+ implicitPageSetup = true;
-+ #ifdef DEBUG
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup at position: " << startPos << "\n";
-+ #endif
-+ }
-+ if (posEndPageSetup == posEndEps && implicitPageSetup) {
- posEndPageSetup = startPos;
- #ifdef DEBUG
-- EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup and EndPageSetup at position: " << startPos << "\n";
-+ EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
- #endif
- }
- if (line.size() >= 1 && line[0] != '%') continue; // performance optimization
- if (line == "%%EOF" || line == "%%Trailer" || line == "%%PageTrailer") {
- if (posBeginPageSetup == posEndEps) {
- posBeginPageSetup = startPos;
-+ implicitPageSetup = true;
- #ifdef DEBUG
- EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup at position: " << startPos << "\n";
- #endif
- }
- if (posEndPageSetup == posEndEps) {
- posEndPageSetup = startPos;
-+ implicitPageSetup = true;
- #ifdef DEBUG
- EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
- #endif
---
-1.7.10.4
-
-From 41fb1a2ff54a9377763e4a66544c2234f9b055c8 Mon Sep 17 00:00:00 2001
-From: vog <vog@b7c8b350-86e7-0310-a4b4-de8f6a8f16a3>
-Date: Fri, 14 Sep 2012 17:01:36 +0000
-Subject: [PATCH 4/4] Issue #847: Ensure that Photoshop will always recognize
- modified Photoshop EPS files
-
-For a full description of this issue, see:
-http://dev.exiv2.org/issues/847
-
-git-svn-id: svn://dev.exiv2.org/svn/trunk@2873 b7c8b350-86e7-0310-a4b4-de8f6a8f16a3
----
- src/epsimage.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/epsimage.cpp b/src/epsimage.cpp
-index 57051a1..4a0ca3a 100644
---- a/src/epsimage.cpp
-+++ b/src/epsimage.cpp
-@@ -522,7 +522,7 @@ namespace {
- EXV_DEBUG << "readWriteEpsMetadata: Found implicit BeginPageSetup at position: " << startPos << "\n";
- #endif
- }
-- if (posEndPageSetup == posEndEps && implicitPageSetup) {
-+ if (posEndPageSetup == posEndEps && implicitPageSetup && !inRemovableEmbedding && line.size() >= 1 && line[0] != '%') {
- posEndPageSetup = startPos;
- #ifdef DEBUG
- EXV_DEBUG << "readWriteEpsMetadata: Found implicit EndPageSetup at position: " << startPos << "\n";
---
-1.7.10.4
-
diff --git a/src/exiv2-r2796.patch b/src/exiv2-r2796.patch
deleted file mode 100644
index 34332da..0000000
--- a/src/exiv2-r2796.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://dev.exiv2.org/projects/exiv2/repository/revisions/2796
-
-Index: trunk/src/basicio.cpp
-===================================================================
---- trunk/src/basicio.cpp (revision 2795)
-+++ trunk/src/basicio.cpp (revision 2796)
-@@ -61,6 +61,11 @@
- # include <unistd.h> // for getpid, stat
- #endif
-
-+// Platform specific headers for handling extended attributes (xattr)
-+#if defined(__APPLE__)
-+# include <sys/xattr.h>
-+#endif
-+
- #if defined WIN32 && !defined __CYGWIN__
- // Windows doesn't provide mode_t, nlink_t
- typedef unsigned short mode_t;
-@@ -131,6 +136,8 @@
- int switchMode(OpMode opMode);
- //! stat wrapper for internal use
- int stat(StructStat& buf) const;
-+ //! copy extended attributes (xattr) from another file
-+ void copyXattrFrom(const FileIo& src);
- #if defined WIN32 && !defined __CYGWIN__
- // Windows function to determine the number of hardlinks (on NTFS)
- DWORD winNumberOfLinks() const;
-@@ -252,6 +259,47 @@
- return ret;
- } // FileIo::Impl::stat
-
-+ void FileIo::Impl::copyXattrFrom(const FileIo& src)
-+ {
-+#if defined(__APPLE__)
-+# if defined(EXV_UNICODE_PATH)
-+# error No xattr API for MacOS X with unicode support
-+# endif
-+ const ssize_t namebufSize = ::listxattr(src.p_->path_.c_str(), 0, 0, 0);
-+ if (namebufSize < 0) {
-+ throw Error(2, src.p_->path_, strError(), "listxattr");
-+ }
-+ if (namebufSize == 0) {
-+ // No extended attributes in source file
-+ return;
-+ }
-+ char namebuf[namebufSize];
-+ if (::listxattr(src.p_->path_.c_str(), namebuf, sizeof(namebuf), 0) != namebufSize) {
-+ throw Error(2, src.p_->path_, strError(), "listxattr");
-+ }
-+ for (ssize_t namebufPos = 0; namebufPos < namebufSize;) {
-+ const char *name = namebuf + namebufPos;
-+ namebufPos += strlen(name) + 1;
-+ const ssize_t valueSize = ::getxattr(src.p_->path_.c_str(), name, 0, 0, 0, 0);
-+ if (valueSize < 0) {
-+ throw Error(2, src.p_->path_, strError(), "getxattr");
-+ }
-+ char value[valueSize];
-+ if (::getxattr(src.p_->path_.c_str(), name, value, sizeof(value), 0, 0) != valueSize) {
-+ throw Error(2, src.p_->path_, strError(), "getxattr");
-+ }
-+#ifdef DEBUG
-+ EXV_DEBUG << "Copying xattr \"" << name << "\" with value size " << valueSize << "\n";
-+#endif
-+ if (::setxattr(path_.c_str(), name, value, valueSize, 0, 0) != 0) {
-+ throw Error(2, path_, strError(), "setxattr");
-+ }
-+ }
-+#else
-+ // No xattr support for this platform.
-+#endif
-+ } // FileIo::Impl::copyXattrFrom
-+
- #if defined WIN32 && !defined __CYGWIN__
- DWORD FileIo::Impl::winNumberOfLinks() const
- {
-@@ -521,6 +569,7 @@
- throw Error(10, path(), "w+b", strError());
- }
- }
-+ fileIo->p_->copyXattrFrom(*this);
- basicIo = fileIo;
- }
- else {
diff --git a/src/exiv2.mk b/src/exiv2.mk
index 8a392b4..1af3636 100644
--- a/src/exiv2.mk
+++ b/src/exiv2.mk
@@ -3,8 +3,8 @@
PKG := exiv2
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.23
-$(PKG)_CHECKSUM := 5f342bf642477526f41add11d6ee7787cdcd639f
+$(PKG)_VERSION := 0.24
+$(PKG)_CHECKSUM := 2f19538e54f8c21c180fa96d17677b7cff7dc1bb
$(PKG)_SUBDIR := exiv2-$($(PKG)_VERSION)
$(PKG)_FILE := exiv2-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.exiv2.org/$($(PKG)_FILE)
diff --git a/src/expat.mk b/src/expat.mk
index 4ef5f5a..13f520a 100644
--- a/src/expat.mk
+++ b/src/expat.mk
@@ -18,8 +18,6 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/faad2.mk b/src/faad2.mk
index 5d49a7d..4a3744d 100644
--- a/src/faad2.mk
+++ b/src/faad2.mk
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared
- $(MAKE) -C '$(1)' -j '$(JOBS)'
- $(MAKE) -C '$(1)' -j 1 install
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS='-no-undefined'
+ $(MAKE) -C '$(1)' -j 1 install LDFLAGS='-no-undefined'
endef
-
diff --git a/src/ffmpeg-1-libbluray-pkg-config.patch b/src/ffmpeg-1-libbluray-pkg-config.patch
new file mode 100644
index 0000000..d1b37be
--- /dev/null
+++ b/src/ffmpeg-1-libbluray-pkg-config.patch
@@ -0,0 +1,16 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff --git a/configure b/configure
+index f831999..40c0a19 100755
+--- a/configure
++++ b/configure
+@@ -4273,7 +4273,7 @@ enabled ladspa && { check_header ladspa.h || die "ERROR: ladspa.h hea
+ enabled libiec61883 && require libiec61883 libiec61883/iec61883.h iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
+ enabled libaacplus && require "libaacplus >= 2.0.0" aacplus.h aacplusEncOpen -laacplus
+ enabled libass && require_pkg_config libass ass/ass.h ass_library_init
+-enabled libbluray && require libbluray libbluray/bluray.h bd_open -lbluray
++enabled libbluray && require_pkg_config libbluray libbluray/bluray.h bd_open
+ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 &&
+ { check_lib celt/celt.h celt_decoder_create_custom -lcelt0 ||
+ die "ERROR: libcelt must be installed and version must be >= 0.11.0."; }
diff --git a/src/ffmpeg.mk b/src/ffmpeg.mk
index 6b6f51f..ae3cea0 100644
--- a/src/ffmpeg.mk
+++ b/src/ffmpeg.mk
@@ -3,52 +3,57 @@
PKG := ffmpeg
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.2.1
-$(PKG)_CHECKSUM := 930e5612d75d04fdf7c0579f4d85d47e31e38945
+$(PKG)_VERSION := 2.1.4
+$(PKG)_CHECKSUM := 99c2f7af3e6d5f4a962ae8bf627d3c53bc282fec
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://www.ffmpeg.org/releases/$($(PKG)_FILE)
$(PKG)_URL_2 := http://launchpad.net/ffmpeg/main/$($(PKG)_VERSION)/+download/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc bzip2 lame libvpx opencore-amr opus sdl speex theora vorbis x264 xvidcore zlib
+$(PKG)_DEPS := gcc bzip2 gnutls lame libass libbluray libvpx opencore-amr opus sdl speex theora vo-aacenc vo-amrwbenc vorbis x264 xvidcore yasm zlib
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://www.ffmpeg.org/download.html' | \
+ $(WGET) -q -O- 'http://ffmpeg.org/releases/' | \
$(SED) -n 's,.*ffmpeg-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ grep -v 'alpha\|beta\|rc\|git' | \
+ $(SORT) -Vr | \
head -1
endef
define $(PKG)_BUILD
- '$(SED)' -i "s^[-]lvpx^`'$(TARGET)'-pkg-config --libs-only-l vpx`^g;" $(1)/configure
cd '$(1)' && ./configure \
--cross-prefix='$(TARGET)'- \
--enable-cross-compile \
- --arch=$(patsubst -%,,$(TARGET)) \
+ --arch=$(firstword $(subst -, ,$(TARGET))) \
--target-os=mingw32 \
--prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(if $(BUILD_STATIC), \
+ --enable-static --disable-shared , \
+ --disable-static --enable-shared ) \
+ --yasmexe='$(TARGET)-yasm' \
--disable-debug \
- --disable-doc \
--enable-memalign-hack \
- --enable-gpl \
- --enable-version3 \
- --disable-nonfree \
- --enable-postproc \
--disable-pthreads \
--enable-w32threads \
+ --disable-doc \
+ --enable-avresample \
+ --enable-gpl \
+ --enable-version3 \
--enable-avisynth \
- --enable-libspeex \
- --enable-libtheora \
- --enable-libvorbis \
+ --enable-gnutls \
+ --enable-libass \
+ --enable-libbluray \
--enable-libmp3lame \
- --enable-libxvid \
- --disable-libfaac \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
- --enable-libx264 \
+ --enable-libopus \
+ --enable-libspeex \
+ --enable-libtheora \
+ --enable-libvo-aacenc \
+ --enable-libvo-amrwbenc \
+ --enable-libvorbis \
--enable-libvpx \
- --enable-libopus
+ --enable-libx264 \
+ --enable-libxvid
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef
-
-$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst enable-libxvid,disable-libxvid,$($(PKG)_BUILD))
diff --git a/src/fftw.mk b/src/fftw.mk
index 41c7e5d..b4eac9b 100644
--- a/src/fftw.mk
+++ b/src/fftw.mk
@@ -20,29 +20,20 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads \
--enable-long-double
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads \
--enable-float
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/file.mk b/src/file.mk
index e6533dd..882a181 100644
--- a/src/file.mk
+++ b/src/file.mk
@@ -3,8 +3,8 @@
PKG := file
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.14
-$(PKG)_CHECKSUM := 064c8f17a5f7ae1e336a9285131e046d3b2d04d7
+$(PKG)_VERSION := 5.16
+$(PKG)_CHECKSUM := 12fd8ca35705bb24b00135ee65cb7de2d53aa69a
$(PKG)_SUBDIR := file-$($(PKG)_VERSION)
$(PKG)_FILE := file-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := ftp://ftp.astron.com/pub/file/$($(PKG)_FILE)
diff --git a/src/flac.mk b/src/flac.mk
index fed55e0..9e22f48 100644
--- a/src/flac.mk
+++ b/src/flac.mk
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --enable-static \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-doxygen-docs \
--disable-xmms-plugin \
--enable-cpplibs \
diff --git a/src/flann.mk b/src/flann.mk
index fbf17cc..c4e62fb 100644
--- a/src/flann.mk
+++ b/src/flann.mk
@@ -18,7 +18,10 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && cmake . \
+ # workaround for strange "too many sections" error
+ # setting CXXFLAGS='-O3' seems to fix it
+ # similar to http://www.mail-archive.com/mingw-w64-public@lists.sourceforge.net/msg06329.html
+ cd '$(1)' && CXXFLAGS='-O3' cmake . \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_CUDA_LIB=OFF \
diff --git a/src/flex.mk b/src/flex.mk
new file mode 100644
index 0000000..e606523
--- /dev/null
+++ b/src/flex.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := flex
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.5.37
+$(PKG)_CHECKSUM := db4b140f2aff34c6197cab919828cc4146aae218
+$(PKG)_SUBDIR := flex-$($(PKG)_VERSION)
+$(PKG)_FILE := flex-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://prdownloads.sourceforge.net/flex/$($(PKG)_FILE)
+$(PKG)_DEPS :=
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://flex.sourceforge.net/' | \
+ $(SED) -n 's,.*flex-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
diff --git a/src/fltk.mk b/src/fltk.mk
index 37f0ba5..235d2b6 100644
--- a/src/fltk.mk
+++ b/src/fltk.mk
@@ -21,10 +21,7 @@ define $(PKG)_BUILD
cd '$(1)' && autoconf
$(SED) -i 's,\$$uname,MINGW,g' '$(1)/configure'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads \
LIBS='-lws2_32'
# enable exceptions, because disabling them doesn't make any sense on PCs
@@ -35,5 +32,5 @@ define $(PKG)_BUILD
'$(TARGET)-g++' \
-W -Wall -Werror -pedantic -ansi \
'$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-fltk.exe' \
- `$(TARGET)-fltk-config --cxxflags --ldstaticflags`
+ `$(TARGET)-fltk-config --cxxflags --ld$(if $(BUILD_STATIC),static)flags`
endef
diff --git a/src/fontconfig-1-fix_mktemp_s.patch b/src/fontconfig-1-fix_mktemp_s.patch
index e47cc40..88520a3 100644
--- a/src/fontconfig-1-fix_mktemp_s.patch
+++ b/src/fontconfig-1-fix_mktemp_s.patch
@@ -1,30 +1,30 @@
This file is part of MXE.
See index.html for further information.
-From 09b8eb942f77c1073a5f5c1ea0e6193487418f59 Mon Sep 17 00:00:00 2001
+From da6c9bfc3d57f3aa192972717cb5c84a56e1c422 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Fri, 29 Mar 2013 10:21:29 +0100
Subject: [PATCH] fix mktemp_s
diff --git a/configure.ac b/configure.ac
-index 7919372..6a8822b 100644
+index 1086a9a..d9fa572 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -145,7 +145,7 @@ AC_TYPE_PID_T
+@@ -150,7 +150,7 @@ AC_TYPE_PID_T
# Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MMAP
--AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
-+AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r regcomp regerror regexec regfree fstatvfs fstatfs lstat])
+-AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp_s mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink regcomp regerror regexec regfree fstatvfs fstatfs lstat])
++AC_CHECK_FUNCS([link mkstemp mkostemp _mktemp mkdtemp getopt getopt_long getprogname getexecname rand random lrand48 random_r rand_r readlink regcomp regerror regexec regfree fstatvfs fstatfs lstat])
dnl AC_CHECK_FUNCS doesn't check for header files.
dnl posix_fadvise() may be not available in older libc.
diff --git a/src/fccompat.c b/src/fccompat.c
-index a217160..fb383d4 100644
+index f4f3f5f..68a70ff 100644
--- a/src/fccompat.c
+++ b/src/fccompat.c
-@@ -156,8 +156,8 @@ FcMakeTempfile (char *template)
+@@ -152,8 +152,8 @@ FcMakeTempfile (char *template)
fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC);
}
# endif
@@ -36,5 +36,5 @@ index a217160..fb383d4 100644
fd = FcOpen(template, O_RDWR | O_EXCL | O_CREAT, 0600);
#endif
--
-1.8.1.4
+1.8.4.5
diff --git a/src/fontconfig.mk b/src/fontconfig.mk
index eb4a508..6675cab 100644
--- a/src/fontconfig.mk
+++ b/src/fontconfig.mk
@@ -3,8 +3,8 @@
PKG := fontconfig
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.10.93
-$(PKG)_CHECKSUM := 78a87be2a59b0c803bfd69cdafc85cbc31381d3a
+$(PKG)_VERSION := 2.11.1
+$(PKG)_CHECKSUM := 08565feea5a4e6375f9d8a7435dac04e52620ff2
$(PKG)_SUBDIR := fontconfig-$($(PKG)_VERSION)
$(PKG)_FILE := fontconfig-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://fontconfig.org/release/$($(PKG)_FILE)
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-arch='$(TARGET)' \
--with-expat='$(PREFIX)/$(TARGET)' \
--disable-docs
diff --git a/src/freeglut-1-fixes.patch b/src/freeglut-1-fixes.patch
index 1117b96..c739834 100644
--- a/src/freeglut-1-fixes.patch
+++ b/src/freeglut-1-fixes.patch
@@ -41,7 +41,7 @@ new file mode 100644
index 0000000..ea57c4a
--- /dev/null
+++ b/glut.pc.in
-@@ -0,0 +1,12 @@
+@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
@@ -52,7 +52,8 @@ index 0000000..ea57c4a
+Version: @VERSION@
+Libs: -L${libdir} -lglut
+Libs.private: -lglu32 -lopengl32 -lwinmm -lgdi32 -mwindows
-+Cflags: -DFREEGLUT_STATIC -I${includedir}
++Cflags: -I${includedir}
++Cflags.private: -DFREEGLUT_STATIC
+
--
1.8.1.4
diff --git a/src/freeglut.mk b/src/freeglut.mk
index 56701d0..d9f30e1 100644
--- a/src/freeglut.mk
+++ b/src/freeglut.mk
@@ -19,14 +19,11 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./autogen.sh
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-replace-glut \
--disable-debug \
--without-x
- $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= EXPORT_FLAGS='-DFREEGLUT_STATIC'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= $(if $(BUILD_STATIC),EXPORT_FLAGS='-DFREEGLUT_STATIC')
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
diff --git a/src/freetds.mk b/src/freetds.mk
index cfa6c87..f81e581 100644
--- a/src/freetds.mk
+++ b/src/freetds.mk
@@ -24,13 +24,9 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --prefix='$(PREFIX)/$(TARGET)' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
+ $(MXE_CONFIGURE_OPTS) \
--disable-rpath \
--disable-dependency-tracking \
- --disable-shared \
- --enable-static \
--enable-libiconv \
--enable-msdblib \
--enable-sspi \
diff --git a/src/freetype.mk b/src/freetype.mk
index 7e64934..220d128 100644
--- a/src/freetype.mk
+++ b/src/freetype.mk
@@ -3,8 +3,8 @@
PKG := freetype
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.5.0.1
-$(PKG)_CHECKSUM := 4bbd8357b4b723e1ff38414a9eaf50bf99dacb84
+$(PKG)_VERSION := 2.5.3
+$(PKG)_CHECKSUM := d3c26cc17ec7fe6c36f4efc02ef92ab6aa3f4b46
$(PKG)_SUBDIR := freetype-$($(PKG)_VERSION)
$(PKG)_FILE := freetype-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/freetype/freetype2/$(shell echo '$($(PKG)_VERSION)' | cut -d . -f 1,2,3)/$($(PKG)_FILE)
@@ -19,13 +19,11 @@ endef
define $(PKG)_BUILD
cd '$(1)' && GNUMAKE=$(MAKE) ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
LIBPNG_CFLAGS="`$(TARGET)-pkg-config libpng --cflags`" \
LIBPNG_LDFLAGS="`$(TARGET)-pkg-config libpng --libs`" \
FT2_EXTRA_LIBS="`$(TARGET)-pkg-config libpng --libs`"
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
+ ln -sf '$(PREFIX)/$(TARGET)/bin/freetype-config' '$(PREFIX)/bin/$(TARGET)-freetype-config'
endef
diff --git a/src/fribidi.mk b/src/fribidi.mk
index 364db73..297e29b 100644
--- a/src/fribidi.mk
+++ b/src/fribidi.mk
@@ -3,8 +3,8 @@
PKG := fribidi
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.19.5
-$(PKG)_CHECKSUM := 58445266df185f7e5109f356c0261d41db39182a
+$(PKG)_VERSION := 0.19.6
+$(PKG)_CHECKSUM := 5a6ff82fdee31d27053c39e03223666ac1cb7a6a
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://fribidi.org/download/$($(PKG)_FILE)
@@ -17,12 +17,10 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- $(SED) -i 's,__declspec(dllimport),,' '$(1)/lib/fribidi-common.h'
+ $(if $(BUILD_STATIC),\
+ $(SED) -i 's/__declspec(dllimport)//' '$(1)/lib/fribidi-common.h')
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-debug \
--disable-deprecated \
--enable-charsets \
diff --git a/src/ftgl.mk b/src/ftgl.mk
index 6fcf0bb..b3a2554 100644
--- a/src/ftgl.mk
+++ b/src/ftgl.mk
@@ -22,9 +22,7 @@ define $(PKG)_BUILD
cd '$(1)' && automake --gnu
cd '$(1)' && autoconf
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--without-x \
--disable-freetypetest \
--with-ft-prefix='$(PREFIX)/$(TARGET)'
@@ -35,5 +33,5 @@ define $(PKG)_BUILD
-W -Wall -Werror -ansi \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
-lftgl -lm -lstdc++ \
- `'$(TARGET)-pkg-config' freetype2 gl glu --cflags --libs --static`
+ `'$(TARGET)-pkg-config' freetype2 gl glu --cflags --libs`
endef
diff --git a/src/gc.mk b/src/gc.mk
index aaaf8d6..5b8df50 100644
--- a/src/gc.mk
+++ b/src/gc.mk
@@ -3,8 +3,8 @@
PKG := gc
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 7.2d
-$(PKG)_CHECKSUM := b43573800e27361da78f05a2e98394521cfa04fc
+$(PKG)_VERSION := 7.2e
+$(PKG)_CHECKSUM := 3ad593c6d0ed9c0951c21a657b86c55dab6365c8
$(PKG)_SUBDIR := $(PKG)-7.2
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.hpl.hp.com/personal/Hans_Boehm/$(PKG)/$(PKG)_source/$($(PKG)_FILE)
diff --git a/src/gcc-2-darwin-no-pie.patch b/src/gcc-2-darwin-no-pie.patch
deleted file mode 100644
index f227083..0000000
--- a/src/gcc-2-darwin-no-pie.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-MXE specific workaround for OSX Lion's new ASLR
-causing problems with pre-compiled headers.
-
-1. more recent native compilers don't solve the problem
-2. there isn't an equivalent sysctl for "kernel.randomize_va_space"
-3. there isn't an equivalent command for "setarch -R"
-4. Apple's version of gcc (based on 4.2) uses custom Makefiles that set "-fno-pic"
-
-Patch below achieves a similar result to 4, without drifting
-too far from standard gcc.
-
---- a/configure
-+++ b/configure
-@@ -30,6 +30,11 @@ else
- esac
- fi
-
-+case `uname -sr` in
-+ Darwin*11*)
-+ LDFLAGS="$LDFLAGS -Wl,-no_pie"
-+ ;;
-+esac
-
- as_nl='
- '
diff --git a/src/gcc-3-intrinsics.patch b/src/gcc-2-intrinsics.patch
index 5fda900..5fda900 100644
--- a/src/gcc-3-intrinsics.patch
+++ b/src/gcc-2-intrinsics.patch
diff --git a/src/gcc-cloog.mk b/src/gcc-cloog.mk
new file mode 100644
index 0000000..0f57991
--- /dev/null
+++ b/src/gcc-cloog.mk
@@ -0,0 +1,29 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := gcc-cloog
+$(PKG)_IGNORE = $(cloog_IGNORE)
+$(PKG)_VERSION = $(cloog_VERSION)
+$(PKG)_CHECKSUM = $(cloog_CHECKSUM)
+$(PKG)_SUBDIR = $(cloog_SUBDIR)
+$(PKG)_FILE = $(cloog_FILE)
+$(PKG)_URL = $(cloog_URL)
+$(PKG)_URL_2 = $(cloog_URL_2)
+$(PKG)_DEPS := gcc-gmp gcc-isl
+
+define $(PKG)_UPDATE
+ echo $(cloog_VERSION)
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)' \
+ --disable-shared \
+ --with-gmp-prefix='$(PREFIX)' \
+ --with-isl-prefix='$(PREFIX)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
+
+$(PKG)_BUILD_$(BUILD) =
diff --git a/src/gcc-gmp.mk b/src/gcc-gmp.mk
index b7bfefe..d9f0a48 100644
--- a/src/gcc-gmp.mk
+++ b/src/gcc-gmp.mk
@@ -14,3 +14,14 @@ $(PKG)_DEPS :=
define $(PKG)_UPDATE
echo $(gmp_VERSION)
endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)' \
+ --disable-shared
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
+
+$(PKG)_BUILD_$(BUILD) =
diff --git a/src/gcc-isl.mk b/src/gcc-isl.mk
new file mode 100644
index 0000000..a99a9da
--- /dev/null
+++ b/src/gcc-isl.mk
@@ -0,0 +1,28 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := gcc-isl
+$(PKG)_IGNORE = $(isl_IGNORE)
+$(PKG)_VERSION = $(isl_VERSION)
+$(PKG)_CHECKSUM = $(isl_CHECKSUM)
+$(PKG)_SUBDIR = $(isl_SUBDIR)
+$(PKG)_FILE = $(isl_FILE)
+$(PKG)_URL = $(isl_URL)
+$(PKG)_URL_2 = $(isl_URL_2)
+$(PKG)_DEPS := gcc-gmp
+
+define $(PKG)_UPDATE
+ echo $(isl_VERSION)
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)' \
+ --disable-shared \
+ --with-gmp-prefix='$(PREFIX)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
+
+$(PKG)_BUILD_$(BUILD) =
diff --git a/src/gcc-mpc.mk b/src/gcc-mpc.mk
index af7ae83..9311c9a 100644
--- a/src/gcc-mpc.mk
+++ b/src/gcc-mpc.mk
@@ -2,17 +2,27 @@
# See index.html for further information.
PKG := gcc-mpc
-$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.0.1
-$(PKG)_CHECKSUM := 8c7e19ad0dd9b3b5cc652273403423d6cf0c5edf
-$(PKG)_SUBDIR := mpc-$($(PKG)_VERSION)
-$(PKG)_FILE := mpc-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://www.multiprecision.org/mpc/download/$($(PKG)_FILE)
-$(PKG)_URL_2 := http://ftp.debian.org/debian/pool/main/m/mpclib/mpclib_$($(PKG)_VERSION).orig.tar.gz
-$(PKG)_DEPS :=
+$(PKG)_IGNORE = $(mpc_IGNORE)
+$(PKG)_VERSION = $(mpc_VERSION)
+$(PKG)_CHECKSUM = $(mpc_CHECKSUM)
+$(PKG)_SUBDIR = $(mpc_SUBDIR)
+$(PKG)_FILE = $(mpc_FILE)
+$(PKG)_URL = $(mpc_URL)
+$(PKG)_URL_2 = $(mpc_URL_2)
+$(PKG)_DEPS := gcc-gmp gcc-mpfr
define $(PKG)_UPDATE
- $(WGET) -q -O- 'https://gforge.inria.fr/scm/viewvc.php/tags/?root=mpc&sortby=date' | \
- $(SED) -n 's,.*<a name="\([0-9][^"]*\)".*,\1,p' | \
- head -1
+ echo $(mpc_VERSION)
endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)' \
+ --disable-shared \
+ --with-gmp='$(PREFIX)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
+
+$(PKG)_BUILD_$(BUILD) =
diff --git a/src/gcc-mpfr.mk b/src/gcc-mpfr.mk
index 5e33038..78192c9 100644
--- a/src/gcc-mpfr.mk
+++ b/src/gcc-mpfr.mk
@@ -9,8 +9,20 @@ $(PKG)_SUBDIR = $(mpfr_SUBDIR)
$(PKG)_FILE = $(mpfr_FILE)
$(PKG)_URL = $(mpfr_URL)
$(PKG)_URL_2 = $(mpfr_URL_2)
-$(PKG)_DEPS :=
+$(PKG)_DEPS := gcc-gmp
define $(PKG)_UPDATE
echo $(mpfr_VERSION)
endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)' \
+ --disable-shared \
+ --with-gmp='$(PREFIX)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
+
+$(PKG)_BUILD_$(BUILD) =
diff --git a/src/gcc.mk b/src/gcc.mk
index 98e4205..d00c698 100644
--- a/src/gcc.mk
+++ b/src/gcc.mk
@@ -3,13 +3,17 @@
PKG := gcc
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 4.8.1
-$(PKG)_CHECKSUM := 4e655032cda30e1928fcc3f00962f4238b502169
+$(PKG)_VERSION := 4.8.2
+$(PKG)_CHECKSUM := 810fb70bd721e1d9f446b6503afe0a9088b62986
$(PKG)_SUBDIR := gcc-$($(PKG)_VERSION)
$(PKG)_FILE := gcc-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/gcc/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := mingwrt w32api mingw-w64 binutils gcc-gmp gcc-mpc gcc-mpfr
+$(PKG)_DEPS := binutils gcc-cloog gcc-gmp gcc-isl gcc-mpc gcc-mpfr
+
+$(PKG)_DEPS_i686-pc-mingw32 := $($(PKG)_DEPS) mingwrt w32api
+$(PKG)_DEPS_i686-w64-mingw32 := $($(PKG)_DEPS) mingw-w64
+$(PKG)_DEPS_x86_64-w64-mingw32 := $($(PKG)_DEPS) mingw-w64
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/gcc/?C=M;O=D' | \
@@ -18,22 +22,12 @@ define $(PKG)_UPDATE
tail -1
endef
-define $(PKG)_PRE_CONFIGURE
- # unpack support libraries
- cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-gmp)
- mv '$(1)/$(gcc-gmp_SUBDIR)' '$(1)/gmp'
- cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-mpc)
- mv '$(1)/$(gcc-mpc_SUBDIR)' '$(1)/mpc'
- cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,gcc-mpfr)
- mv '$(1)/$(gcc-mpfr_SUBDIR)' '$(1)/mpfr'
-endef
-
define $(PKG)_CONFIGURE
- # configure gcc and support libraries
+ # configure gcc
mkdir '$(1).build'
cd '$(1).build' && '$(1)/configure' \
--target='$(TARGET)' \
- --build="`config.guess`" \
+ --build='$(BUILD)' \
--prefix='$(PREFIX)' \
--libdir='$(PREFIX)/lib' \
--enable-languages='c,c++,objc,fortran' \
@@ -42,78 +36,43 @@ define $(PKG)_CONFIGURE
--with-gnu-ld \
--with-gnu-as \
--disable-nls \
- --disable-shared \
+ $(if $(BUILD_STATIC),--disable-shared) \
--disable-multilib \
--without-x \
--disable-win32-registry \
--enable-threads=win32 \
--disable-libgomp \
--disable-libmudflap \
- --with-mpfr-include='$(1)/mpfr/src' \
- --with-mpfr-lib='$(1).build/mpfr/src/.libs' \
+ --with-cloog='$(PREFIX)' \
+ --with-gmp='$(PREFIX)' \
+ --with-isl='$(PREFIX)' \
+ --with-mpc='$(PREFIX)' \
+ --with-mpfr='$(PREFIX)' \
+ --with-as='$(PREFIX)/bin/$(TARGET)-as' \
+ --with-ld='$(PREFIX)/bin/$(TARGET)-ld' \
+ --with-nm='$(PREFIX)/bin/$(TARGET)-nm' \
$(shell [ `uname -s` == Darwin ] && echo "LDFLAGS='-Wl,-no_pie'")
endef
define $(PKG)_POST_BUILD
- # create pkg-config script
- (echo '#!/bin/sh'; \
- echo 'PKG_CONFIG_PATH="$$PKG_CONFIG_PATH_$(subst -,_,$(TARGET))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec pkg-config --static "$$@"') \
- > '$(PREFIX)/bin/$(TARGET)-pkg-config'
- chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
-
- # create the CMake toolchain file
- [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
- (echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
- echo 'set(MSYS 1)'; \
- echo 'set(BUILD_SHARED_LIBS OFF)'; \
- echo 'set(CMAKE_BUILD_TYPE Release)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
- echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
- echo 'set(CMAKE_C_COMPILER $(PREFIX)/bin/$(TARGET)-gcc)'; \
- echo 'set(CMAKE_CXX_COMPILER $(PREFIX)/bin/$(TARGET)-g++)'; \
- echo 'set(CMAKE_Fortran_COMPILER $(PREFIX)/bin/$(TARGET)-gfortran)'; \
- echo 'set(CMAKE_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
- echo 'set(HDF5_C_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5cc)'; \
- echo 'set(HDF5_CXX_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5c++)'; \
- echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
- echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/$(TARGET)/qt/bin/qmake)'; \
- echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
- echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
- > '$(CMAKE_TOOLCHAIN_FILE)'
-endef
-
-define $(PKG)_POST_BUILD_mingw32
- # create pkg-config files
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
- (echo 'Name: gl'; \
- echo 'Version: 0'; \
- echo 'Description: OpenGL'; \
- echo 'Libs: -lopengl32';) \
- > '$(PREFIX)/$(TARGET)/lib/pkgconfig/gl.pc'
-
- (echo 'Name: glu'; \
- echo 'Version: 0'; \
- echo 'Description: OpenGL'; \
- echo 'Libs: -lglu32';) \
- > '$(PREFIX)/$(TARGET)/lib/pkgconfig/glu.pc'
+ # TODO: find a way to configure the installation of these correctly
+ rm -f $(addprefix $(PREFIX)/$(TARGET)/bin/, c++ g++ gcc gfortran)
+ -mv '$(PREFIX)/lib/gcc/$(TARGET)/lib/'* '$(PREFIX)/lib/gcc/$(TARGET)/$($(PKG)_VERSION)/'
+ -mv '$(PREFIX)/lib/gcc/$(TARGET)/'*.dll '$(PREFIX)/lib/gcc/$(TARGET)/$($(PKG)_VERSION)/'
endef
define $(PKG)_BUILD_i686-pc-mingw32
# build full cross gcc
- $($(PKG)_PRE_CONFIGURE) \
$($(PKG)_CONFIGURE) \
--disable-sjlj-exceptions
$(MAKE) -C '$(1).build' -j '$(JOBS)'
$(MAKE) -C '$(1).build' -j 1 install
+
$($(PKG)_POST_BUILD)
- $($(PKG)_POST_BUILD_mingw32)
endef
define $(PKG)_BUILD_mingw-w64
# build standalone gcc
- $($(PKG)_PRE_CONFIGURE) \
$($(PKG)_CONFIGURE)
$(MAKE) -C '$(1).build' -j '$(JOBS)' all-gcc
$(MAKE) -C '$(1).build' -j 1 install-gcc
@@ -124,8 +83,8 @@ define $(PKG)_BUILD_mingw-w64
cd '$(1).crt-build' && '$(1)/$(mingw-w64_SUBDIR)/mingw-w64-crt/configure' \
--host='$(TARGET)' \
--prefix='$(PREFIX)/$(TARGET)' \
- mxe-config-opts
- $(MAKE) -C '$(1).crt-build' -j '$(JOBS)'
+ @gcc-crt-config-opts@
+ $(MAKE) -C '$(1).crt-build' -j '$(JOBS)' || $(MAKE) -C '$(1).crt-build' -j '$(JOBS)'
$(MAKE) -C '$(1).crt-build' -j 1 install
# build rest of gcc
@@ -134,8 +93,13 @@ define $(PKG)_BUILD_mingw-w64
$(MAKE) -C '$(1).build' -j 1 install
$($(PKG)_POST_BUILD)
- $($(PKG)_POST_BUILD_mingw32)
endef
-$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst mxe-config-opts,--disable-lib32,$($(PKG)_BUILD_mingw-w64))
-$(PKG)_BUILD_i686-w64-mingw32 = $(subst mxe-config-opts,--disable-lib64,$($(PKG)_BUILD_mingw-w64))
+$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst @gcc-crt-config-opts@,--disable-lib32,$($(PKG)_BUILD_mingw-w64))
+$(PKG)_BUILD_i686-w64-mingw32 = $(subst @gcc-crt-config-opts@,--disable-lib64,$($(PKG)_BUILD_mingw-w64))
+
+define $(PKG)_BUILD_$(BUILD)
+ for f in c++ cpp g++ gcc gcov; do \
+ ln -sf "`which $$f`" '$(PREFIX)/bin/$(TARGET)'-$$f ; \
+ done
+endef
diff --git a/src/gd-1-libpng15.patch b/src/gd-1-libpng15.patch
deleted file mode 100644
index 5c4af61..0000000
--- a/src/gd-1-libpng15.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-# This file is part of MXE.
-# See index.html for further information.
-
-This patch has been taken from:
-http://bugs.gentoo.org/show_bug.cgi?id=305101
-http://repos.archlinux.org/wsvn/packages/gd/trunk/libpng14.patch
-
---- a/gd_png.c
-+++ b/gd_png.c
-@@ -149,7 +149,7 @@
- return NULL;
- }
-
-- if (!png_check_sig (sig, 8)) { /* bad signature */
-+ if (png_sig_cmp (sig, 0, 8)) { /* bad signature */
- return NULL; /* bad signature */
- }
diff --git a/src/gd.mk b/src/gd.mk
index 28d50bd..747313d 100644
--- a/src/gd.mk
+++ b/src/gd.mk
@@ -3,44 +3,32 @@
PKG := gd
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.0.35
-$(PKG)_CHECKSUM := ccf34a610abff2dbf133a20c4d2a4aa94939018a
-$(PKG)_SUBDIR := gd-$($(PKG)_VERSION)
-$(PKG)_FILE := gd-$($(PKG)_VERSION).tar.bz2
-$(PKG)_URL := http://www.libgd.org/releases/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc freetype libpng jpeg libxml2 pthreads
+$(PKG)_VERSION := 2.1.0
+$(PKG)_CHECKSUM := 66c56fc07246b66ba649c83e996fd2085ea2f9e2
+$(PKG)_SUBDIR := libgd-$($(PKG)_VERSION)
+$(PKG)_FILE := libgd-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := https://bitbucket.org/libgd/gd-libgd/downloads/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc fontconfig freetype jpeg libpng libvpx pthreads tiff
define $(PKG)_UPDATE
- echo 'Warning: Updates are temporarily disabled for package gd.' >&2;
- echo $(gd_VERSION)
-endef
-define $(PKG)_UPDATE_orig
- $(WGET) -q -O- 'http://www.libgd.org/releases/' | \
- $(SED) -n 's,.*gd-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ $(WGET) -q -O- 'https://bitbucket.org/libgd/gd-libgd/downloads/' | \
+ $(SED) -n 's,.*libgd-\([0-9.]*\)\.tar.*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
- touch '$(1)/aclocal.m4'
- touch '$(1)/config.hin'
- touch '$(1)/Makefile.in'
- $(SED) -i 's,-I@includedir@,-I@includedir@ -DNONDLL,' '$(1)/config/gdlib-config.in'
- $(SED) -i 's,-lX11 ,,g' '$(1)/configure'
- $(SED) -i 's,png12,png16,g' '$(1)/configure'
+ $(SED) -i 's,-I@includedir@,-I@includedir@ -DNONDLL -DBGDWIN32,' '$(1)/config/gdlib-config.in'
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)' \
--with-freetype='$(PREFIX)/$(TARGET)' \
--without-x \
- LIBPNG_CONFIG='$(PREFIX)/$(TARGET)/bin/libpng-config' \
- CFLAGS='-DNONDLL -DXMD_H -L$(PREFIX)/$(TARGET)/lib' \
- LIBS="`$(PREFIX)/$(TARGET)/bin/xml2-config --libs`"
+ CFLAGS='-DNONDLL'
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-gd.exe' \
- `'$(PREFIX)/$(TARGET)/bin/gdlib-config' --cflags` \
- -lgd `'$(PREFIX)/$(TARGET)/bin/gdlib-config' --libs`
+ `'$(PREFIX)/$(TARGET)/bin/gdlib-config' --cflags --libs`
endef
diff --git a/src/gdal.mk b/src/gdal.mk
index 1a2bfbf..cdf84ff 100644
--- a/src/gdal.mk
+++ b/src/gdal.mk
@@ -3,13 +3,13 @@
PKG := gdal
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.10.0
-$(PKG)_CHECKSUM := e522b95056905e4c41047fdb42c0ca172ef3ad25
+$(PKG)_VERSION := 1.10.1
+$(PKG)_CHECKSUM := b4df76e2c0854625d2bedce70cc1eaf4205594ae
$(PKG)_SUBDIR := gdal-$($(PKG)_VERSION)
$(PKG)_FILE := gdal-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://download.osgeo.org/gdal/CURRENT/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.remotesensing.org/gdal/CURRENT/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc zlib libpng tiff libgeotiff jpeg jasper giflib expat sqlite curl geos postgresql gta hdf4 hdf5 netcdf
+$(PKG)_DEPS := gcc proj zlib libpng tiff libgeotiff jpeg jasper giflib expat sqlite curl geos postgresql gta hdf4 hdf5 netcdf
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://trac.osgeo.org/gdal/wiki/DownloadSource' | \
@@ -28,9 +28,9 @@ define $(PKG)_CONFIGURE
--with-bsb \
--with-grib \
--with-ogr \
- --with-vfk \
--with-pam \
--without-threads \
+ --with-static-proj4 \
--with-libz='$(PREFIX)/$(TARGET)' \
--with-png='$(PREFIX)/$(TARGET)' \
--with-libtiff='$(PREFIX)/$(TARGET)' \
@@ -46,7 +46,6 @@ define $(PKG)_CONFIGURE
--with-gta='$(PREFIX)/$(TARGET)' \
--with-hdf5='$(PREFIX)/$(TARGET)' \
--without-odbc \
- --without-static-proj4 \
--without-xerces \
--without-grass \
--without-libgrass \
diff --git a/src/gdb.mk b/src/gdb.mk
index 13b9387..b11756e 100644
--- a/src/gdb.mk
+++ b/src/gdb.mk
@@ -2,13 +2,13 @@
# See index.html for further information.
PKG := gdb
-$(PKG)_VERSION := 7.6
-$(PKG)_CHECKSUM := b64095579a20e011beeaa5b264fe23a9606ee40f
+$(PKG)_VERSION := 7.7
+$(PKG)_CHECKSUM := eefda18270b2efc8d8051ed992d91ba4e0d7207f
$(PKG)_SUBDIR := gdb-$($(PKG)_VERSION)
$(PKG)_FILE := gdb-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/$(PKG)/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.cs.tu-berlin.de/pub/gnu/$(PKG)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc expat libiconv ncurses zlib
+$(PKG)_DEPS := gcc expat libiconv pdcurses zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/gdb/?C=M;O=D' | \
diff --git a/src/gdk-pixbuf.mk b/src/gdk-pixbuf.mk
index fc7529a..a5b3db0 100644
--- a/src/gdk-pixbuf.mk
+++ b/src/gdk-pixbuf.mk
@@ -3,8 +3,8 @@
PKG := gdk-pixbuf
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.28.2
-$(PKG)_CHECKSUM := 9876d0a20f592f8fb2a52d4a86ec43d607661beb
+$(PKG)_VERSION := 2.30.3
+$(PKG)_CHECKSUM := 22d1e53be4ccecd49290d8f1ba188cc51dc4fe88
$(PKG)_SUBDIR := gdk-pixbuf-$($(PKG)_VERSION)
$(PKG)_FILE := gdk-pixbuf-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -19,13 +19,9 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && autoreconf -I'$(PREFIX)/$(TARGET)/share/aclocal'
+ cd '$(1)' && autoreconf -fi -I'$(PREFIX)/$(TARGET)/share/aclocal'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --enable-static \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-modules \
--with-included-loaders \
--without-gdiplus \
diff --git a/src/geos.mk b/src/geos.mk
index 5457f5a..7544ddf 100644
--- a/src/geos.mk
+++ b/src/geos.mk
@@ -3,8 +3,8 @@
PKG := geos
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.3.8
-$(PKG)_CHECKSUM := 1743e09f37eb75d85283a684a5765c4f44d035fa
+$(PKG)_VERSION := 3.4.2
+$(PKG)_CHECKSUM := b8aceab04dd09f4113864f2d12015231bb318e9a
$(PKG)_SUBDIR := geos-$($(PKG)_VERSION)
$(PKG)_FILE := geos-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://download.osgeo.org/geos/$($(PKG)_FILE)
diff --git a/src/gettext.mk b/src/gettext.mk
index f21b37b..425ab04 100644
--- a/src/gettext.mk
+++ b/src/gettext.mk
@@ -3,8 +3,8 @@
PKG := gettext
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.18.2
-$(PKG)_CHECKSUM := 47685e20abf9df6e5fede9efd04442943a96818b
+$(PKG)_VERSION := 0.18.3.2
+$(PKG)_CHECKSUM := a2dc46d788edb0078ab20da7bd194bdb6da2f0d9
$(PKG)_SUBDIR := gettext-$($(PKG)_VERSION)
$(PKG)_FILE := gettext-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/gettext/$($(PKG)_FILE)
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)/gettext-runtime' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads=win32 \
--without-libexpat-prefix \
--without-libxml2-prefix \
diff --git a/src/giflib.mk b/src/giflib.mk
index ea1e776..f44ef7b 100644
--- a/src/giflib.mk
+++ b/src/giflib.mk
@@ -3,8 +3,8 @@
PKG := giflib
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.0.4
-$(PKG)_CHECKSUM := af3fdf84e2b9ac5c18e7102835a92e2066c7c9f1
+$(PKG)_VERSION := 5.0.5
+$(PKG)_CHECKSUM := 926fecbcef1c5b1ca9d17257d15a197b8b35e405
$(PKG)_SUBDIR := giflib-$($(PKG)_VERSION)
$(PKG)_FILE := giflib-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/giflib/giflib-5.x/$($(PKG)_FILE)
diff --git a/src/glew.mk b/src/glew.mk
index cb6c762..7c6fef5 100644
--- a/src/glew.mk
+++ b/src/glew.mk
@@ -3,8 +3,8 @@
PKG := glew
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.9.0
-$(PKG)_CHECKSUM := 9291f5c5afefd482c7f3e91ffb3cd4716c6c9ffe
+$(PKG)_VERSION := 1.10.0
+$(PKG)_CHECKSUM := f41b45ca4a630ad1d00b8b87c5f493781a380300
$(PKG)_SUBDIR := glew-$($(PKG)_VERSION)
$(PKG)_FILE := glew-$($(PKG)_VERSION).tgz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/glew/glew/$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -17,39 +17,35 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- # Build libGLEW
- cd '$(1)' && $(TARGET)-gcc -O2 -DGLEW_STATIC -Iinclude -c -o glew.o src/glew.c
- cd '$(1)' && $(TARGET)-ar cr libGLEW.a glew.o
- $(TARGET)-ranlib '$(1)/libGLEW.a'
- $(SED) \
- -e "s|@prefix@|$(PREFIX)/$(TARGET)|g" \
- -e "s|@libdir@|$(PREFIX)/$(TARGET)/lib|g" \
- -e "s|@exec_prefix@|$(PREFIX)/$(TARGET)/bin|g" \
- -e "s|@includedir@|$(PREFIX)/$(TARGET)/include/GL|g" \
- -e "s|@version@|$(glew_VERSION)|g" \
- -e "s|@cflags@|-DGLEW_STATIC|g" \
- -e "s|-l@libname@|-lGLEW -lopengl32|g" \
- < '$(1)'/glew.pc.in > '$(1)'/glew.pc
+ echo 'mxe: lib $(if $(BUILD_STATIC), lib/$$(LIB.STATIC) lib/$$(LIB.STATIC.MX), lib/$$(LIB.SHARED) lib/$$(LIB.SHARED.MX))' >> '$(1)/Makefile'
- # Build libGLEWmx
- cd '$(1)' && $(TARGET)-gcc -O2 -DGLEW_STATIC -DGLEW_MX -Iinclude -c -o glewmx.o src/glew.c
- cd '$(1)' && $(TARGET)-ar cr libGLEWmx.a glewmx.o
- $(TARGET)-ranlib '$(1)/libGLEWmx.a'
- $(SED) \
- -e "s|@prefix@|$(PREFIX)/$(TARGET)|g" \
- -e "s|@libdir@|$(PREFIX)/$(TARGET)/lib|g" \
- -e "s|@exec_prefix@|$(PREFIX)/$(TARGET)/bin|g" \
- -e "s|@includedir@|$(PREFIX)/$(TARGET)/include/GL|g" \
- -e "s|@version@|$(glew_VERSION)|g" \
- -e "s|@cflags@|-DGLEW_STATIC -DGLEW_MX|g" \
- -e "s|-l@libname@|-lGLEWmx -lopengl32|g" \
- < '$(1)'/glew.pc.in > '$(1)'/glewmx.pc
+ # GCC 4.8.2 seems to miscompile the shared DLL with -O2
+ make -C '$(1)' \
+ GLEW_DEST=$(PREFIX)/$(TARGET) \
+ SYSTEM=linux-mingw32 \
+ CC=$(TARGET)-gcc \
+ LD=$(TARGET)-ld \
+ NAME=GLEW \
+ $(if $(BUILD_SHARED),POPT=-O0) \
+ mxe glew.pc glewmx.pc
+
+ $(if $(BUILD_STATIC),
+ $(TARGET)-ranlib '$(1)/lib/libGLEW.a'
+ $(TARGET)-ranlib '$(1)/lib/libGLEWmx.a'
+ $(SED) -i -e "s|Cflags:|Cflags: -DGLEW_STATIC|g" '$(1)'/glew.pc '$(1)'/glewmx.pc
+ $(SED) -i -e "s|Requires:|Requires: gl|g" '$(1)'/glew.pc '$(1)'/glewmx.pc
+ )
# Install
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/libGLEW.a' '$(PREFIX)/$(TARGET)/lib/'
- $(INSTALL) -m644 '$(1)/libGLEW.a' '$(PREFIX)/$(TARGET)/lib/libglew32s.a'
- $(INSTALL) -m644 '$(1)/libGLEWmx.a' '$(PREFIX)/$(TARGET)/lib/'
+ $(if $(BUILD_STATIC),
+ $(INSTALL) -m644 '$(1)/lib/libGLEW.a' '$(1)/lib/libGLEWmx.a' '$(PREFIX)/$(TARGET)/lib/'
+ $(INSTALL) -m644 '$(1)/lib/libGLEW.a' '$(PREFIX)/$(TARGET)/lib/libglew32s.a'
+ ,
+ $(INSTALL) -m644 '$(1)/lib/GLEW.dll' '$(1)/lib/GLEWmx.dll' '$(PREFIX)/$(TARGET)/bin/'
+ $(INSTALL) -m644 '$(1)/lib/libGLEW.dll.a' '$(1)/lib/libGLEWmx.dll.a' '$(PREFIX)/$(TARGET)/lib/'
+ $(INSTALL) -m644 '$(1)/lib/libGLEW.dll.a' '$(PREFIX)/$(TARGET)/lib/libglew32s.dll.a'
+ )
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
$(INSTALL) -m644 '$(1)/glew.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
$(INSTALL) -m644 '$(1)/glewmx.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
diff --git a/src/glfw2-test.c b/src/glfw2-test.c
new file mode 100644
index 0000000..b7c473e
--- /dev/null
+++ b/src/glfw2-test.c
@@ -0,0 +1,28 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <stdlib.h>
+#include <GL/glfw.h>
+
+int main(void)
+{
+ /* Initialise GLFW */
+ if( !glfwInit() )
+ {
+ return EXIT_FAILURE;
+ }
+
+ /* Open a window and create its OpenGL context */
+ if( !glfwOpenWindow( 640, 480, 0,0,0,0, 0,0, GLFW_WINDOW ) )
+ {
+ glfwTerminate();
+ return EXIT_FAILURE;
+ }
+
+ /* Close OpenGL window and terminate GLFW*/
+ glfwTerminate();
+
+ return EXIT_SUCCESS;
+}
diff --git a/src/glfw2.mk b/src/glfw2.mk
new file mode 100644
index 0000000..de7abec
--- /dev/null
+++ b/src/glfw2.mk
@@ -0,0 +1,32 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := glfw2
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.7.9
+$(PKG)_CHECKSUM := b189922e9804062a0014a3799b4dc35431034623
+$(PKG)_SUBDIR := glfw-$($(PKG)_VERSION)
+$(PKG)_FILE := glfw-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/glfw/glfw/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/glfw/files/glfw/' | \
+ $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
+ grep '^2\.' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)/lib/win32' && $(MAKE) -f Makefile.win32.cross-mgw \
+ TARGET=$(TARGET)- \
+ PREFIX='$(PREFIX)/$(TARGET)' \
+ install -j '$(JOBS)'
+
+ #Test
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-glfw2.exe' \
+ `'$(TARGET)-pkg-config' libglfw --cflags --libs`
+endef
diff --git a/src/glfw3-1-fixes.patch b/src/glfw3-1-fixes.patch
new file mode 100644
index 0000000..969adb7
--- /dev/null
+++ b/src/glfw3-1-fixes.patch
@@ -0,0 +1,108 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 7106d77856268c39b08de8cbe6f526fda8506389 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Sun, 10 Nov 2013 16:23:03 +1100
+Subject: [PATCH] add option to install pkg-config file
+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7c9b2c2..cd0112c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,6 +14,7 @@ option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
+ option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" ON)
+ option(GLFW_BUILD_TESTS "Build the GLFW test programs" ON)
+ option(GLFW_INSTALL "Generate installation target" ON)
++option(GLFW_INSTALL_PKG_CONFIG "Install pkg-config file" OFF)
+ option(GLFW_DOCUMENT_INTERNALS "Include internals in documentation" OFF)
+
+ if (WIN32)
+@@ -117,7 +118,7 @@ endif()
+ #--------------------------------------------------------------------
+ if (WIN32)
+ set(_GLFW_WIN32 1)
+- message(STATUS "Using Win32 for window creation")
++ message(STATUS "Using Win32 for window creation")
+
+ if (GLFW_USE_EGL)
+ set(_GLFW_EGL 1)
+@@ -133,7 +134,7 @@ elseif (APPLE)
+ message(STATUS "Using NSGL for context creation")
+ elseif (UNIX)
+ set(_GLFW_X11 1)
+- message(STATUS "Using X11 for window creation")
++ message(STATUS "Using X11 for window creation")
+
+ if (GLFW_USE_EGL)
+ set(_GLFW_EGL 1)
+@@ -238,7 +239,7 @@ if (_GLFW_X11)
+ # Check for Xkb (X keyboard extension)
+ if (NOT X11_Xkb_FOUND)
+ message(FATAL_ERROR "The X keyboard extension headers were not found")
+- endif()
++ endif()
+
+ list(APPEND glfw_INCLUDE_DIR ${X11_Xkb_INCLUDE_PATH})
+
+@@ -336,7 +337,7 @@ endif()
+ # Use Cocoa for window creation and NSOpenGL for context creation
+ #--------------------------------------------------------------------
+ if (_GLFW_COCOA AND _GLFW_NSGL)
+-
++
+ if (GLFW_USE_MENUBAR)
+ set(_GLFW_USE_MENUBAR 1)
+ endif()
+@@ -351,7 +352,7 @@ if (_GLFW_COCOA AND _GLFW_NSGL)
+ else()
+ message(STATUS "Building GLFW only for the native architecture")
+ endif()
+-
++
+ # Set up library and include paths
+ find_library(COCOA_FRAMEWORK Cocoa)
+ find_library(IOKIT_FRAMEWORK IOKit)
+@@ -386,7 +387,7 @@ endif()
+ configure_file(${GLFW_SOURCE_DIR}/docs/Doxyfile.in
+ ${GLFW_BINARY_DIR}/docs/Doxyfile @ONLY)
+
+-configure_file(${GLFW_SOURCE_DIR}/src/config.h.in
++configure_file(${GLFW_SOURCE_DIR}/src/config.h.in
+ ${GLFW_BINARY_DIR}/src/config.h @ONLY)
+
+ configure_file(${GLFW_SOURCE_DIR}/src/glfwConfig.cmake.in
+@@ -395,7 +396,7 @@ configure_file(${GLFW_SOURCE_DIR}/src/glfwConfig.cmake.in
+ configure_file(${GLFW_SOURCE_DIR}/src/glfwConfigVersion.cmake.in
+ ${GLFW_BINARY_DIR}/src/glfwConfigVersion.cmake @ONLY)
+
+-if (UNIX)
++if (UNIX OR GLFW_INSTALL_PKG_CONFIG)
+ configure_file(${GLFW_SOURCE_DIR}/src/glfw3.pc.in
+ ${GLFW_BINARY_DIR}/src/glfw3.pc @ONLY)
+ endif()
+@@ -422,7 +423,7 @@ endif()
+ # The library is installed by src/CMakeLists.txt
+ #--------------------------------------------------------------------
+ if (GLFW_INSTALL)
+- install(DIRECTORY include/GLFW DESTINATION include
++ install(DIRECTORY include/GLFW DESTINATION include
+ FILES_MATCHING PATTERN glfw3.h PATTERN glfw3native.h)
+
+ install(FILES ${GLFW_BINARY_DIR}/src/glfwConfig.cmake
+@@ -431,6 +432,9 @@ if (GLFW_INSTALL)
+
+ if (UNIX)
+ install(EXPORT glfwTargets DESTINATION lib${LIB_SUFFIX}/cmake/glfw)
++ endif()
++
++ if (UNIX OR GLFW_INSTALL_PKG_CONFIG)
+ install(FILES ${GLFW_BINARY_DIR}/src/glfw3.pc
+ DESTINATION lib${LIB_SUFFIX}/pkgconfig)
+ endif()
+--
+1.8.4
+
diff --git a/src/glfw3-test.c b/src/glfw3-test.c
new file mode 100644
index 0000000..51f6932
--- /dev/null
+++ b/src/glfw3-test.c
@@ -0,0 +1,41 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <GLFW/glfw3.h>
+
+int main(void)
+{
+ GLFWwindow* window;
+
+ /* Initialize the library */
+ if (!glfwInit())
+ return -1;
+
+ /* Create a windowed mode window and its OpenGL context */
+ window = glfwCreateWindow(640, 480, "Hello World", NULL, NULL);
+ if (!window)
+ {
+ glfwTerminate();
+ return -1;
+ }
+
+ /* Make the window's context current */
+ glfwMakeContextCurrent(window);
+
+ /* Loop until the user closes the window */
+ while (!glfwWindowShouldClose(window))
+ {
+ /* Render here */
+
+ /* Swap front and back buffers */
+ glfwSwapBuffers(window);
+
+ /* Poll for and process events */
+ glfwPollEvents();
+ }
+
+ glfwTerminate();
+ return 0;
+}
diff --git a/src/glfw3.mk b/src/glfw3.mk
new file mode 100644
index 0000000..57459df
--- /dev/null
+++ b/src/glfw3.mk
@@ -0,0 +1,35 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := glfw3
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3.0.3
+$(PKG)_CHECKSUM := 95d0d2a250dc4e9d612cdd1a7433de464db16d89
+$(PKG)_SUBDIR := glfw-$($(PKG)_VERSION)
+$(PKG)_FILE := glfw-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/glfw/glfw/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/glfw/files/glfw/' | \
+ $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
+ grep '^3\.' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && cmake '$(1)' \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DGLFW_BUILD_EXAMPLES=FALSE \
+ -DGLFW_BUILD_TESTS=FALSE \
+ -DGLFW_INSTALL_PKG_CONFIG=TRUE \
+ -DGLFW_PKG_LIBS='-lopengl32 -lgdi32'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)' install
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-glfw3.exe' \
+ `'$(TARGET)-pkg-config' glfw3 --cflags --libs`
+endef
diff --git a/src/glib-1-fixes.patch b/src/glib-1-fixes.patch
index 3052913..5325ca1 100644
--- a/src/glib-1-fixes.patch
+++ b/src/glib-1-fixes.patch
@@ -189,7 +189,7 @@ diff -ur a/gio-2.0.pc.in b/gio-2.0.pc.in
Requires: glib-2.0 gobject-2.0
Requires.private: gmodule-no-export-2.0
-Libs: -L${libdir} -lgio-2.0
-+Libs: -L${libdir} -lgio-2.0 -ldnsapi
++Libs: -L${libdir} -lgio-2.0 -ldnsapi -liphlpapi
Libs.private: @ZLIB_LIBS@ @NETWORK_LIBS@
Cflags:
@@ -578,8 +578,8 @@ Subject: [PATCH 8/8] kill docs and gtk-doc dependence (mxe-specific)
diff -urN a/autogen.sh b/autogen.sh
---- a/autogen.sh 2012-08-18 19:32:04.000000000 +0200
-+++ b/autogen.sh 2013-06-29 05:50:43.972750651 +0200
+--- a/autogen.sh 2013-05-07 20:26:07.000000000 +0200
++++ b/autogen.sh 2013-11-09 06:17:50.014630402 +0100
@@ -7,18 +7,6 @@
olddir=`pwd`
cd "$srcdir"
@@ -600,9 +600,9 @@ diff -urN a/autogen.sh b/autogen.sh
if test -z $AUTORECONF; then
echo "*** No autoreconf found, please install it ***"
diff -urN a/configure.ac b/configure.ac
---- a/configure.ac 2013-06-10 00:53:13.000000000 +0200
-+++ b/configure.ac 2013-06-29 05:52:05.224754174 +0200
-@@ -2645,13 +2645,6 @@
+--- a/configure.ac 2013-10-15 21:14:26.000000000 +0200
++++ b/configure.ac 2013-11-09 06:18:17.274631022 +0100
+@@ -2710,13 +2710,6 @@
dnl **************************
dnl *** Checks for gtk-doc ***
dnl **************************
@@ -617,25 +617,25 @@ diff -urN a/configure.ac b/configure.ac
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--enable-man],
diff -urN a/docs/Makefile.am b/docs/Makefile.am
---- a/docs/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,11 +0,0 @@
+@@ -1,12 +0,0 @@
-## Process this file with automake to produce Makefile.in
--include $(top_srcdir)/Makefile.decl
-
-SUBDIRS = reference
-
--EXTRA_DIST += debugging.txt macros.txt
+-EXTRA_DIST = debugging.txt macros.txt
-
-files:
- @files=`ls $(DISTFILES) 2> /dev/null `; for p in $$files; do \
- echo $$p; \
- done
+-
+-.PHONY: test test-report perf-report full-report
diff -urN a/docs/reference/gio/gdbus-object-manager-example/Makefile.am b/docs/reference/gio/gdbus-object-manager-example/Makefile.am
---- a/docs/reference/gio/gdbus-object-manager-example/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/reference/gio/gdbus-object-manager-example/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/reference/gio/gdbus-object-manager-example/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,68 +0,0 @@
--include $(top_srcdir)/Makefile.decl
+@@ -1,67 +0,0 @@
-NULL =
-
-# The name of the module.
@@ -704,10 +704,9 @@ diff -urN a/docs/reference/gio/gdbus-object-manager-example/Makefile.am b/docs/r
-install-data-hook :
- rm -rf $(DESTDIR)$(datadir)/gtk-doc/html/gdbus-object-manager-example
diff -urN a/docs/reference/gio/Makefile.am b/docs/reference/gio/Makefile.am
---- a/docs/reference/gio/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/reference/gio/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/reference/gio/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,179 +0,0 @@
--include $(top_srcdir)/Makefile.decl
+@@ -1,178 +0,0 @@
-NULL =
-
-SUBDIRS = gdbus-object-manager-example
@@ -887,11 +886,10 @@ diff -urN a/docs/reference/gio/Makefile.am b/docs/reference/gio/Makefile.am
-gio-docs-clean: clean
- cd $(srcdir) && rm -rf xml html
diff -urN a/docs/reference/glib/Makefile.am b/docs/reference/glib/Makefile.am
---- a/docs/reference/glib/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/reference/glib/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/reference/glib/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,128 +0,0 @@
+@@ -1,127 +0,0 @@
-## Process this file with automake to produce Makefile.in
--include $(top_srcdir)/Makefile.decl
-
-AUTOMAKE_OPTIONS = 1.6
-
@@ -1019,11 +1017,10 @@ diff -urN a/docs/reference/glib/Makefile.am b/docs/reference/glib/Makefile.am
-glib-docs-clean: clean
- cd $(srcdir) && rm -rf xml html
diff -urN a/docs/reference/gobject/Makefile.am b/docs/reference/gobject/Makefile.am
---- a/docs/reference/gobject/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/reference/gobject/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/reference/gobject/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,104 +0,0 @@
+@@ -1,103 +0,0 @@
-## Process this file with automake to produce Makefile.in
--include $(top_srcdir)/Makefile.decl
-
-AUTOMAKE_OPTIONS = 1.6
-
@@ -1127,31 +1124,43 @@ diff -urN a/docs/reference/gobject/Makefile.am b/docs/reference/gobject/Makefile
-gobject-docs-clean: clean
- cd $(srcdir) && rm -rf xml html
diff -urN a/docs/reference/Makefile.am b/docs/reference/Makefile.am
---- a/docs/reference/Makefile.am 2013-06-10 00:03:17.000000000 +0200
+--- a/docs/reference/Makefile.am 2013-08-08 12:00:40.000000000 +0200
+++ b/docs/reference/Makefile.am 1970-01-01 01:00:00.000000000 +0100
-@@ -1,3 +0,0 @@
--include $(top_srcdir)/Makefile.decl
--
+@@ -1 +0,0 @@
-SUBDIRS = glib gobject gio
+diff -urN a/gio/tests/gdbus-object-manager-example/Makefile.am b/gio/tests/gdbus-object-manager-example/Makefile.am
+--- a/gio/tests/gdbus-object-manager-example/Makefile.am 2013-08-08 12:00:40.000000000 +0200
++++ b/gio/tests/gdbus-object-manager-example/Makefile.am 2013-11-09 06:20:32.858634115 +0100
+@@ -25,12 +25,6 @@
+
+ test_ltlibraries = libgdbus-example-objectmanager.la
+
+-if ENABLE_GTK_DOC
+-# The docs pull these in, so we need them even if not doing 'make check'
+-BUILT_SOURCES += $(GDBUS_GENERATED)
+-noinst_LTLIBRARIES += libgdbus-example-objectmanager.la
+-endif
+-
+ nodist_libgdbus_example_objectmanager_la_SOURCES = \
+ gdbus-example-objectmanager-generated.h \
+ gdbus-example-objectmanager-generated.c
diff -urN a/Makefile.am b/Makefile.am
---- a/Makefile.am 2013-06-10 00:03:17.000000000 +0200
-+++ b/Makefile.am 2013-06-29 05:50:18.224749533 +0200
+--- a/Makefile.am 2013-09-17 20:47:14.000000000 +0200
++++ b/Makefile.am 2013-11-09 06:16:23.310628423 +0100
@@ -6,7 +6,7 @@
ACLOCAL_AMFLAGS = -I m4macros ${ACLOCAL_FLAGS}
--SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs
-+SUBDIRS = . m4macros glib gmodule gthread gobject gio po
+-SUBDIRS = . m4macros glib gmodule gthread gobject gio po docs tests
++SUBDIRS = . m4macros glib gmodule gthread gobject gio po tests
DIST_SUBDIRS = $(SUBDIRS) build
- if BUILD_MODULAR_TESTS
- SUBDIRS += tests
-@@ -71,8 +71,7 @@
- README \
- INSTALL \
- ChangeLog \
-- config.h.win32 \
-- gtk-doc.make
-+ config.h.win32
-
- CONFIGURE_DEPENDENCIES = acglib.m4
+
+ bin_SCRIPTS = glib-gettextize
+@@ -61,7 +61,6 @@
+ gio-unix-2.0.pc.in \
+ gio-windows-2.0.pc.in \
+ check-abis.sh \
+- gtk-doc.make \
+ $(NULL)
+
diff --git a/src/glib.mk b/src/glib.mk
index 900a9d1..7ceb6fe 100644
--- a/src/glib.mk
+++ b/src/glib.mk
@@ -3,8 +3,8 @@
PKG := glib
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.36.3
-$(PKG)_CHECKSUM := aafba69934b9ba77cc8cb0e5d8105aa1d8463eba
+$(PKG)_VERSION := 2.38.2
+$(PKG)_CHECKSUM := 685c5a4215b776b83dd5330ab9084c5dcb0a51b8
$(PKG)_SUBDIR := glib-$($(PKG)_VERSION)
$(PKG)_FILE := glib-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/glib/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -72,10 +72,7 @@ define $(PKG)_BUILD
$($(PKG)_NATIVE_BUILD))
# cross build
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-threads=win32 \
--with-pcre=system \
--with-libiconv=gnu \
diff --git a/src/glibmm.mk b/src/glibmm.mk
index 53b8eb6..4d9a93e 100644
--- a/src/glibmm.mk
+++ b/src/glibmm.mk
@@ -3,8 +3,8 @@
PKG := glibmm
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.36.2
-$(PKG)_CHECKSUM := 399b6acd3756879fa61b185ab50abecf9652d15f
+$(PKG)_VERSION := 2.38.1
+$(PKG)_CHECKSUM := d543b32b32514bfbcad9242e1636af9a53283e3a
$(PKG)_SUBDIR := glibmm-$($(PKG)_VERSION)
$(PKG)_FILE := glibmm-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/glibmm/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
CXX='$(TARGET)-c++' \
PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config' \
GLIB_COMPILE_SCHEMAS='$(PREFIX)/$(TARGET)/bin/glib-compile-schemas' \
diff --git a/src/gmp.mk b/src/gmp.mk
index 4faf2d5..d56859d 100644
--- a/src/gmp.mk
+++ b/src/gmp.mk
@@ -3,10 +3,10 @@
PKG := gmp
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.2
-$(PKG)_CHECKSUM := 2cb498322b9be4713829d94dee944259c017d615
+$(PKG)_VERSION := 6.0.0
+$(PKG)_CHECKSUM := 360802e3541a3da08ab4b55268c80f799939fddc
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION)a.tar.bz2
$(PKG)_URL := ftp://ftp.gmplib.org/pub/$(PKG)-$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.cs.tu-berlin.de/pub/gnu/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
@@ -21,12 +21,19 @@ endef
define $(PKG)_BUILD
cd '$(1)' && CC_FOR_BUILD=gcc ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--enable-cxx \
--without-readline
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
+
+ # build runtime tests to verify toolchain components
+ -$(MAKE) -C '$(1)' -j '$(JOBS)' check -k
+ rm -rf '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ cp -R '$(1)/tests' '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ (printf 'date /t > all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'time /t >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'set PATH=..\\;%%PATH%%\r\n'; \
+ printf 'for /R %%%%f in (*.exe) do %%%%f || echo %%%%f fail >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n';) \
+ > '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests/all-tests-$(PKG)-$($(PKG)_VERSION).bat'
endef
diff --git a/src/gnutls-1-fixes.patch b/src/gnutls-1-fixes.patch
index b4c8e7b..c30b290 100644
--- a/src/gnutls-1-fixes.patch
+++ b/src/gnutls-1-fixes.patch
@@ -1,7 +1,7 @@
This file is part of MXE.
See index.html for further information.
-From 331c9b1a946f83deae950e0722b37688600e8073 Mon Sep 17 00:00:00 2001
+From dbae911f9d1b79fde473c1ca23e5535c7d1db39c Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Tue, 3 Apr 2012 13:58:42 +0200
Subject: [PATCH 1/5] Revert "make dist will also make lzip compressed tarball"
@@ -9,23 +9,23 @@ Subject: [PATCH 1/5] Revert "make dist will also make lzip compressed tarball"
This reverts commit 97ac1bc58274f651338444693bd75441ba12f46f.
diff --git a/configure.ac b/configure.ac
-index 064905e..d727500 100644
+index a81d85f..44fe48a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
--AM_INIT_AUTOMAKE([1.11.3 no-dist-gzip dist-xz dist-lzip -Wall -Wno-override])
-+AM_INIT_AUTOMAKE([1.11.3 no-dist-gzip dist-xz -Wall -Wno-override])
+-AM_INIT_AUTOMAKE([1.12.2 subdir-objects no-dist-gzip dist-xz dist-lzip -Wall -Wno-override])
++AM_INIT_AUTOMAKE([1.12.2 subdir-objects no-dist-gzip dist-xz -Wall -Wno-override])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_HEADERS([config.h])
--
-1.8.1.4
+1.8.4.5
-From 41e7bdf61b95973ebf021184ea3952d1a9349d4c Mon Sep 17 00:00:00 2001
+From 951caab5f444f0c90cb43b5937c7273963e443d8 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Wed, 6 Jun 2012 09:57:24 +0200
Subject: [PATCH 2/5] AM_PROG_AR for automake 1.12 compatibility
@@ -34,88 +34,103 @@ Taken from
http://lists.gnu.org/archive/html/automake/2012-05/msg00014.html
diff --git a/configure.ac b/configure.ac
-index d727500..0f4cd70 100644
+index 44fe48a..1e80e23 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -40,6 +40,7 @@ gl_EARLY
+@@ -41,6 +41,7 @@ ggl_EARLY
AM_PROG_AS
- dnl AM_PROG_AR
+ AM_PROG_AR
AC_PROG_CXX
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
-
- # For includes/gnutls/gnutls.h.in.
- AC_SUBST(MAJOR_VERSION, `echo $PACKAGE_VERSION | sed 's/\(.*\)\..*\..*/\1/g'`)
+ AM_PROG_CC_C_O
+ AC_PROG_YACC
+ AC_CHECK_PROG([AUTOGEN], [autogen], [autogen], [/bin/true])
--
-1.8.1.4
+1.8.4.5
-From 42dd30f85578ddf957b1bfd2b0cf0752dd4ca8e7 Mon Sep 17 00:00:00 2001
+From ade9bae0c0af5b6eec402c228c8d048e8a7b5ce6 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 4 Feb 2013 16:11:12 +0100
Subject: [PATCH 3/5] add missing private lib to pc file
diff --git a/lib/gnutls.pc.in b/lib/gnutls.pc.in
-index 13f2d3b..926c30c 100644
+index a25fcdf..3860c68 100644
--- a/lib/gnutls.pc.in
+++ b/lib/gnutls.pc.in
@@ -19,6 +19,6 @@ Description: Transport Security Layer implementation for the GNU system
URL: http://www.gnutls.org/
Version: @VERSION@
Libs: -L${libdir} -lgnutls
--Libs.private: @LTLIBZ@ @LTLIBINTL@ @LIBSOCKET@ @LTLIBPTHREAD@ @LTLIBICONV@ @P11_KIT_LIBS@ @LIB_SELECT@ @TSS_LIBS@
-+Libs.private: @LTLIBZ@ @LTLIBINTL@ @LIBSOCKET@ @LTLIBPTHREAD@ @LTLIBICONV@ @P11_KIT_LIBS@ @LIB_SELECT@ @TSS_LIBS@ -lcrypt32
+-Libs.private: @LTLIBZ@ @LTLIBINTL@ @LIBSOCKET@ @LTLIBPTHREAD@ @LTLIBICONV@ @P11_KIT_LIBS@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@
++Libs.private: @LTLIBZ@ @LTLIBINTL@ @LIBSOCKET@ @LTLIBPTHREAD@ @LTLIBICONV@ @P11_KIT_LIBS@ @LIB_SELECT@ @TSS_LIBS@ @GMP_LIBS@ -lcrypt32
@GNUTLS_REQUIRES_PRIVATE@
Cflags: -I${includedir}
--
-1.8.1.4
+1.8.4.5
-From 7acc157b266701671f5a047e227ea4f91290d698 Mon Sep 17 00:00:00 2001
+From 36afa9bd2427b6c71c49c832d8a06686920ac8c9 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Wed, 6 Feb 2013 08:43:43 +0100
Subject: [PATCH 4/5] relax automake version check
diff --git a/configure.ac b/configure.ac
-index 0f4cd70..a8c7a7c 100644
+index 1e80e23..0415ead 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,7 +26,7 @@ AC_CONFIG_AUX_DIR([build-aux])
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_HOST
--AM_INIT_AUTOMAKE([1.11.3 no-dist-gzip dist-xz -Wall -Wno-override])
-+AM_INIT_AUTOMAKE([1.11.1 no-dist-gzip dist-xz -Wall -Wno-override])
+-AM_INIT_AUTOMAKE([1.12.2 subdir-objects no-dist-gzip dist-xz -Wall -Wno-override])
++AM_INIT_AUTOMAKE([1.11.1 subdir-objects no-dist-gzip dist-xz -Wall -Wno-override])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_HEADERS([config.h])
--
-1.8.1.4
+1.8.4.5
-From 06f1cb7ad830199bcab7da030827dba09fce9325 Mon Sep 17 00:00:00 2001
+From fc0b1030e357d2de86417a1a442d5ef3643e6fc0 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
-Date: Sat, 1 Jun 2013 18:06:37 +0200
-Subject: [PATCH 5/5] mingw compatibility fix
-
-Follow-up to f1cd31cfb0d80d8681d107591c87725445768529
-taken from https://gitorious.org/gnutls/gnutls/merge_requests/3
-
-diff --git a/src/cli.c b/src/cli.c
-index a7da6a4..3ff7417 100644
---- a/src/cli.c
-+++ b/src/cli.c
-@@ -853,7 +853,9 @@ main (int argc, char **argv)
- int user_term = 0, retval = 0;
- socket_st hd;
- ssize_t bytes;
-+#ifndef _WIN32
- struct sigaction new_action, old_action;
-+#endif
-
- set_program_name (argv[0]);
- cmd_parser (argc, argv);
+Date: Wed, 5 Feb 2014 09:42:41 +0100
+Subject: [PATCH 5/5] gnulib fix-ups for error, setenv, unsetenv
+
+
+diff --git a/src/gl/Makefile.am b/src/gl/Makefile.am
+index c25328d..14d592b 100644
+--- a/src/gl/Makefile.am
++++ b/src/gl/Makefile.am
+@@ -121,7 +121,7 @@ EXTRA_DIST += errno.in.h
+
+ EXTRA_DIST += error.c error.h
+
+-EXTRA_libgnu_gpl_la_SOURCES += error.c
++libgnu_gpl_la_SOURCES += error.c
+
+ ## end gnulib module error
+
+@@ -230,7 +230,7 @@ libgnu_gpl_la_SOURCES += progname.h progname.c
+
+ EXTRA_DIST += setenv.c
+
+-EXTRA_libgnu_gpl_la_SOURCES += setenv.c
++libgnu_gpl_la_SOURCES += setenv.c
+
+ ## end gnulib module setenv
+
+@@ -914,7 +914,7 @@ EXTRA_DIST += unistd.in.h
+
+ EXTRA_DIST += unsetenv.c
+
+-EXTRA_libgnu_gpl_la_SOURCES += unsetenv.c
++libgnu_gpl_la_SOURCES += unsetenv.c
+
+ ## end gnulib module unsetenv
+
--
-1.8.1.4
+1.8.4.5
diff --git a/src/gnutls-2-add-missing-export.patch b/src/gnutls-2-add-missing-export.patch
new file mode 100644
index 0000000..ad509ce
--- /dev/null
+++ b/src/gnutls-2-add-missing-export.patch
@@ -0,0 +1,16 @@
+This file is part of MXE.
+See index.html for further information.
+
+This adds a missing export to the main libgnutls so libgnutls-xssl compiles.
+
+diff -Naur gnutls-3.2.12/lib/libgnutls.map gnutls-3.2.12.fixed/lib/libgnutls.map
+--- gnutls-3.2.12/lib/libgnutls.map 2014-01-28 21:19:11.000000000 +0100
++++ gnutls-3.2.12.fixed/lib/libgnutls.map 2014-03-07 16:04:57.826105998 +0100
+@@ -955,6 +955,7 @@
+
+ # Internal symbols needed by xssl:
+ gnutls_realloc_fast;
++ _gnutls_vasprintf;
+
+ # Internal symbols needed by gnutls-cli-debug:
+ _gnutls_rsa_pms_set_version;
diff --git a/src/gnutls.mk b/src/gnutls.mk
index bc2bc2b..57b8923 100644
--- a/src/gnutls.mk
+++ b/src/gnutls.mk
@@ -2,12 +2,12 @@
# See index.html for further information.
PKG := gnutls
-$(PKG)_VERSION := 3.2.1
-$(PKG)_CHECKSUM := 477118eaffb8f16bd7fd511069c2c5d618f6e400
+$(PKG)_VERSION := 3.2.12
+$(PKG)_CHECKSUM := 5ad26522ec18d6b54a17ff8d1d5b69bf2cd5c7ce
$(PKG)_SUBDIR := gnutls-$($(PKG)_VERSION)
-$(PKG)_FILE := gnutls-$($(PKG)_VERSION).tar.xz
+$(PKG)_FILE := gnutls-$($(PKG)_VERSION).1.tar.xz
$(PKG)_URL := ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2//$($(PKG)_FILE)
-$(PKG)_DEPS := gcc gettext nettle pcre zlib
+$(PKG)_DEPS := gcc gettext gmp nettle pcre zlib
define $(PKG)_UPDATE
$(WGET) -q -O- ftp://ftp.gnutls.org/gcrypt/gnutls/v3.2/ | \
@@ -26,15 +26,12 @@ define $(PKG)_BUILD
# AI_ADDRCONFIG referenced by src/serv.c but not provided by mingw.
# Value taken from http://msdn.microsoft.com/en-us/library/windows/desktop/ms737530%28v=vs.85%29.aspx
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --enable-static \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-rpath \
--disable-nls \
--disable-guile \
--disable-doc \
+ --enable-local-libopts \
--with-included-libtasn1 \
--with-libregex='$(PREFIX)/$(TARGET)' \
--with-regex-header=pcreposix.h \
diff --git a/src/graphicsmagick.mk b/src/graphicsmagick.mk
index 25a18c0..dd3249e 100644
--- a/src/graphicsmagick.mk
+++ b/src/graphicsmagick.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 085c23666adcf88585119cb6aea7efe5c58481d4
$(PKG)_SUBDIR := GraphicsMagick-$($(PKG)_VERSION)
$(PKG)_FILE := GraphicsMagick-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc pthreads libtool zlib bzip2 jpeg jasper lcms1 libpng tiff freetype libxml2
+$(PKG)_DEPS := gcc pthreads libltdl zlib bzip2 jpeg jasper lcms libpng tiff freetype libxml2
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/graphicsmagick/files/graphicsmagick/' | \
@@ -20,10 +20,7 @@ define $(PKG)_BUILD
# This can be removed once the patch "graphicsmagick-1-fix-xml2-config.patch" is accepted by upstream
cd '$(1)' && autoconf
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--without-modules \
--with-threads \
--with-magick-plus-plus \
@@ -35,7 +32,7 @@ define $(PKG)_BUILD
--without-jbig \
--with-jpeg \
--with-jp2 \
- --with-lcms \
+ --with-lcms2 \
--with-png \
--with-tiff \
--without-trio \
@@ -52,5 +49,5 @@ define $(PKG)_BUILD
'$(TARGET)-g++' \
-W -Wall -Werror -pedantic -std=gnu++0x \
'$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-graphicsmagick.exe' \
- `'$(TARGET)-pkg-config' GraphicsMagick++ --cflags --libs`
+ `'$(TARGET)-pkg-config' GraphicsMagick++ --cflags --libs` -llzma
endef
diff --git a/src/gsl.mk b/src/gsl.mk
index 0896c34..1376fed 100644
--- a/src/gsl.mk
+++ b/src/gsl.mk
@@ -3,8 +3,8 @@
PKG := gsl
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.15
-$(PKG)_CHECKSUM := d914f84b39a5274b0a589d9b83a66f44cd17ca8e
+$(PKG)_VERSION := 1.16
+$(PKG)_CHECKSUM := 210af9366485f149140973700d90dc93a4b6213e
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
diff --git a/src/gsoap-1-fixes.patch b/src/gsoap-1-fixes.patch
index 9493608..cfd2ce0 100644
--- a/src/gsoap-1-fixes.patch
+++ b/src/gsoap-1-fixes.patch
@@ -22,7 +22,7 @@ index c4598a4..c7a46d2 100755
WSDL2H_EXTRA_LIBS="-lssl -lcrypto -lws2_32 -lkernel32 -luser32 -lgdi32 -lm"
;;
*-*-freebsd*) platform=FREEBSD ;;
-@@ -7340,7 +7340,7 @@ echo $ECHO_N "checking for enable gnutls in library... $ECHO_C" >&6; }
+@@ -7560,7 +7560,7 @@ echo $ECHO_N "checking for enable gnutls in library... $ECHO_C" >&6; }
{ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6; }
WSDL2H_EXTRA_FLAGS="-DWITH_GNUTLS -DWITH_GZIP"
diff --git a/src/gsoap.mk b/src/gsoap.mk
index c771eeb..a8ae85a 100644
--- a/src/gsoap.mk
+++ b/src/gsoap.mk
@@ -3,8 +3,8 @@
PKG := gsoap
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.8.15
-$(PKG)_CHECKSUM := 3238ea70fcd3356bd2e7cd3d1e2ef91c1040b81a
+$(PKG)_VERSION := 2.8.17
+$(PKG)_CHECKSUM := d6c483ea2eabade138d71d005300be909be9a274
$(PKG)_SUBDIR := gsoap-$(call SHORT_PKG_VERSION,$(PKG))
$(PKG)_FILE := gsoap_$($(PKG)_VERSION).zip
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/gsoap2/gSOAP/$($(PKG)_FILE)
diff --git a/src/gst-plugins-base.mk b/src/gst-plugins-base.mk
index 94e202e..013d459 100644
--- a/src/gst-plugins-base.mk
+++ b/src/gst-plugins-base.mk
@@ -3,8 +3,8 @@
PKG := gst-plugins-base
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.1.1
-$(PKG)_CHECKSUM := 373a3af5ff301da8f8b9b3cebd3f588250affcb0
+$(PKG)_VERSION := 1.2.2
+$(PKG)_CHECKSUM := cce95c868bdfccb8bcd37ccaa543af5c464240e1
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://gstreamer.freedesktop.org/src/$(PKG)/$($(PKG)_FILE)
diff --git a/src/gst-plugins-good.mk b/src/gst-plugins-good.mk
index 7843091..fa26a8c 100644
--- a/src/gst-plugins-good.mk
+++ b/src/gst-plugins-good.mk
@@ -3,8 +3,8 @@
PKG := gst-plugins-good
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.1.1
-$(PKG)_CHECKSUM := ff1c47cecde5b6fccbe5d9fe49dd3994d2c7c63f
+$(PKG)_VERSION := 1.2.2
+$(PKG)_CHECKSUM := d8c52f7883e98ffb35cd4b86cbd27420573ca864
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://gstreamer.freedesktop.org/src/$(PKG)/$($(PKG)_FILE)
diff --git a/src/gstreamer-1-fixes.patch b/src/gstreamer-1-fixes.patch
new file mode 100644
index 0000000..873dd2b
--- /dev/null
+++ b/src/gstreamer-1-fixes.patch
@@ -0,0 +1,27 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 3c2f96d5bbadcff5724523612e5cf0e2d6a9ac51 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Tue, 12 Nov 2013 02:49:49 +1100
+Subject: [PATCH] remove _chsize redefinition
+
+
+diff --git a/plugins/elements/gstfilesink.c b/plugins/elements/gstfilesink.c
+index 470ad5e..eb8dbe8 100644
+--- a/plugins/elements/gstfilesink.c
++++ b/plugins/elements/gstfilesink.c
+@@ -56,8 +56,6 @@
+ #define lseek _lseeki64
+ #undef off_t
+ #define off_t guint64
+-#undef ftruncate
+-#define ftruncate _chsize
+ #ifdef _MSC_VER /* Check if we are using MSVC, fileno is deprecated in favour */
+ #define fileno _fileno /* of _fileno */
+ #endif
+--
+1.8.4
+
diff --git a/src/gstreamer.mk b/src/gstreamer.mk
index 45a9c10..883224a 100644
--- a/src/gstreamer.mk
+++ b/src/gstreamer.mk
@@ -3,8 +3,8 @@
PKG := gstreamer
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.1.1
-$(PKG)_CHECKSUM := 56f6a760f4c9e0ccf9e67a602a53df8ca1bb4252
+$(PKG)_VERSION := 1.2.2
+$(PKG)_CHECKSUM := f57418b6de15fe2ed2e0b42209b3e1e0f7add70f
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://gstreamer.freedesktop.org/src/$(PKG)/$($(PKG)_FILE)
diff --git a/src/gtk2-1-fixes.patch b/src/gtk2-1-fixes.patch
index 45778b9..2eb0c06 100644
--- a/src/gtk2-1-fixes.patch
+++ b/src/gtk2-1-fixes.patch
@@ -6,7 +6,7 @@ Contains ad hoc patches for cross building.
From 374c56944944128d57b33b3b5c1be978a02d3dbb Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:43:43 +0200
-Subject: [PATCH 01/11] s,DllMain,static _disabled_DllMain,
+Subject: [PATCH 01/10] s,DllMain,static _disabled_DllMain,
diff --git a/gdk/win32/gdkmain-win32.c b/gdk/win32/gdkmain-win32.c
@@ -42,7 +42,7 @@ index 56c92db..655f575 100644
From 8e08b42e368166814289abf32958c979d8d480c6 Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:46:20 +0200
-Subject: [PATCH 02/11] s,__declspec(dllimport),,
+Subject: [PATCH 02/10] s,__declspec(dllimport),,
diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
@@ -104,7 +104,7 @@ index c624aea..b792ea5 100644
From 59408e4752be8277c26f9ae458a086874844ab2b Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 15:03:28 +0200
-Subject: [PATCH 03/11] s,__declspec(dllexport),,
+Subject: [PATCH 03/10] s,__declspec(dllexport),,
diff --git a/gdk/gdktypes.h b/gdk/gdktypes.h
@@ -166,7 +166,7 @@ index b792ea5..f382a64 100644
From 15527e24127117bbaf24dec513daa6fb67a00a8c Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:17:22 +0200
-Subject: [PATCH 04/11] fix gtk+-2.0.pc.in
+Subject: [PATCH 04/10] fix gtk+-2.0.pc.in
diff --git a/gtk+-2.0.pc.in b/gtk+-2.0.pc.in
@@ -187,7 +187,7 @@ index 46853e1..7f3eb22 100644
From 165597a3bbe73e830d79dbd2d109e3b075ea2985 Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:48:31 +0200
-Subject: [PATCH 05/11] disable gtkbuiltincache
+Subject: [PATCH 05/10] disable gtkbuiltincache
diff --git a/gtk/Makefile.in b/gtk/Makefile.in
@@ -210,7 +210,7 @@ index 54200e7..e984933 100644
From 465171f3b0ebba7760719c0ee86a0d0f216fe51e Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:49:50 +0200
-Subject: [PATCH 06/11] disable test-inline-pixbufs.h
+Subject: [PATCH 06/10] disable test-inline-pixbufs.h
diff --git a/demos/Makefile.in b/demos/Makefile.in
@@ -233,7 +233,7 @@ index 97e9536..abf0f14 100644
From 417065a8b000250f6553c2801a26eae4491041dd Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:51:04 +0200
-Subject: [PATCH 07/11] permit static building
+Subject: [PATCH 07/10] permit static building
diff --git a/configure b/configure
@@ -334,7 +334,7 @@ index c61e096..34a116d 100755
From 907f9831f56004a322d785f34417e99735de3109 Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:53:18 +0200
-Subject: [PATCH 08/11] no -Wl
+Subject: [PATCH 08/10] no -Wl
diff --git a/configure b/configure
@@ -357,7 +357,7 @@ index 34a116d..3c12234 100755
From 1e02f2e984433a899bc642af5622bea971a06a3a Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 14:54:15 +0200
-Subject: [PATCH 09/11] gio not gio-unix
+Subject: [PATCH 09/10] gio not gio-unix
diff --git a/configure b/configure
@@ -383,7 +383,7 @@ index 3c12234..ce40ad1 100755
From b9bd33ba09c0297b874b7e6955864e6a76b83364 Mon Sep 17 00:00:00 2001
From: MXE
Date: Fri, 24 Sep 2010 15:30:49 +0200
-Subject: [PATCH 10/11] removed duplicate _gtk_marshal_OBJECT__VOID()
+Subject: [PATCH 10/10] removed duplicate _gtk_marshal_OBJECT__VOID()
diff --git a/perf/marshalers.c b/perf/marshalers.c
@@ -437,29 +437,3 @@ index 9a8c715..14f5ab1 100644
--
1.8.2.2
-
-From e232e6602e7476fbc72521892a69c636b63a6f14 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Thu, 23 May 2013 20:53:44 +1000
-Subject: [PATCH 11/11] fix for mingw-w64 uuid
-
-
-diff --git a/gdk/win32/gdkdnd-win32.c b/gdk/win32/gdkdnd-win32.c
-index a41a0e7..05c60b8 100644
---- a/gdk/win32/gdkdnd-win32.c
-+++ b/gdk/win32/gdkdnd-win32.c
-@@ -69,8 +69,10 @@
- * the current Windows code page. See gdkim-win32.c for more info on that.
- *
- */
--
-+
-+#ifndef __MINGW64_VERSION_MAJOR
- #define INITGUID
-+#endif
-
- #include "gdkdnd.h"
- #include "gdkproperty.h"
---
-1.8.2.2
-
diff --git a/src/gtk2.mk b/src/gtk2.mk
index 50af05b..705dd30 100644
--- a/src/gtk2.mk
+++ b/src/gtk2.mk
@@ -3,8 +3,8 @@
PKG := gtk2
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.24.20
-$(PKG)_CHECKSUM := 89315bf05dd3d626a50bae5417942ee4428012c9
+$(PKG)_VERSION := 2.24.22
+$(PKG)_CHECKSUM := 2175e25041244dc321e35dbdcf9cb5c371b455da
$(PKG)_SUBDIR := gtk+-$($(PKG)_VERSION)
$(PKG)_FILE := gtk+-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/gtk+/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -21,10 +21,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-explicit-deps \
--disable-glibtest \
--disable-modules \
@@ -39,5 +36,5 @@ define $(PKG)_BUILD
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-gtk2.exe' \
- `'$(TARGET)-pkg-config' gtk+-2.0 --cflags --libs`
+ `'$(TARGET)-pkg-config' gtk+-2.0 gmodule-2.0 --cflags --libs`
endef
diff --git a/src/guile-1-win32.patch b/src/guile-1-win32.patch
index 92de511..4d64821 100644
--- a/src/guile-1-win32.patch
+++ b/src/guile-1-win32.patch
@@ -1,27 +1,6 @@
This file is part of MXE.
See index.html for further information.
-diff -ruN guile-1.8.7.orig/configure guile-1.8.7/configure
---- guile-1.8.7.orig/configure 2009-07-05 22:25:00.000000000 +0200
-+++ guile-1.8.7/configure 2010-04-10 07:35:25.000000000 +0200
-@@ -35057,6 +35057,7 @@
- $as_echo_n "checking whether pthread_attr_getstack works for the main thread... " >&6; }
- old_CFLAGS="$CFLAGS"
- CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
-+if test "$cross_compiling" = "no"; then
- if test "$cross_compiling" = yes; then
- { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-@@ -35140,6 +35141,9 @@
- fi
-
-
-+else
-+works=no
-+fi
- CFLAGS="$old_CFLAGS"
- { $as_echo "$as_me:$LINENO: result: $works" >&5
- $as_echo "$works" >&6; }
diff -ruN guile-1.8.7.orig/guile-readline/configure guile-1.8.7/guile-readline/configure
--- guile-1.8.7.orig/guile-readline/configure 2009-07-05 22:24:45.000000000 +0200
+++ guile-1.8.7/guile-readline/configure 2010-04-10 07:36:18.000000000 +0200
diff --git a/src/guile.mk b/src/guile.mk
index 1788b9a..8e83ac6 100644
--- a/src/guile.mk
+++ b/src/guile.mk
@@ -3,17 +3,19 @@
PKG := guile
$(PKG)_IGNORE := 2%
-$(PKG)_VERSION := 1.8.7
-$(PKG)_CHECKSUM := 24cd2f06439c76d41d982a7384fe8a0fe5313b54
+$(PKG)_VERSION := 1.8.8
+$(PKG)_CHECKSUM := 548d6927aeda332b117f8fc5e4e82c39a05704f9
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc libtool gmp libiconv gettext libunistring gc libffi readline libgnurx
+$(PKG)_DEPS := gcc libltdl gmp libiconv gettext libunistring gc libffi readline libgnurx
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://git.savannah.gnu.org/gitweb/?p=$(PKG).git;a=tags' | \
+ $(WGET) -q -O- 'http://git.savannah.gnu.org/gitweb/?p=guile.git;a=tags' | \
grep '<a class="list subject"' | \
$(SED) -n 's,.*<a[^>]*>[^0-9>]*\([0-9][^< ]*\)\.<.*,\1,p' | \
+ grep -v 2.* | \
+ $(SORT) -Vr | \
head -1
endef
@@ -28,7 +30,7 @@ define $(PKG)_BUILD
--disable-shared \
--without-threads \
scm_cv_struct_timespec=no \
- LIBS='-lunistring -lintl -liconv' \
+ LIBS='-lunistring -lintl -liconv -ldl' \
CFLAGS='-Wno-unused-but-set-variable'
$(MAKE) -C '$(1)' -j '$(JOBS)' schemelib_DATA=
$(MAKE) -C '$(1)' -j 1 install schemelib_DATA=
diff --git a/src/harfbuzz.mk b/src/harfbuzz.mk
index a2e1823..ca9a0d4 100644
--- a/src/harfbuzz.mk
+++ b/src/harfbuzz.mk
@@ -3,8 +3,8 @@
PKG := harfbuzz
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.9.18
-$(PKG)_CHECKSUM := 621943fa0cadbc5514d8c8cdf985b7158baebc2d
+$(PKG)_VERSION := 0.9.27
+$(PKG)_CHECKSUM := e5bb66040c201895d72f717e0f1fd3fea5544053
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://www.freedesktop.org/software/$(PKG)/release/$($(PKG)_FILE)
@@ -19,11 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
- --enable-static \
+ $(MXE_CONFIGURE_OPTS) \
LIBS='-lstdc++'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/hdf5-3-fix-autoconf-version.patch b/src/hdf5-3-fix-autoconf-version.patch
index 9b062fd..2208f8e 100644
--- a/src/hdf5-3-fix-autoconf-version.patch
+++ b/src/hdf5-3-fix-autoconf-version.patch
@@ -1,12 +1,13 @@
This file is part of MXE.
See index.html for further information.
---- a/configure.ac 2013-05-08 08:34:56.000000000 +0200
-+++ b/configure.ac 2013-05-23 17:00:12.917415891 +0200
+diff -ur a/configure.ac b/configure.ac
+--- a/configure.ac 2013-11-04 23:52:05.000000000 +0100
++++ b/configure.ac 2013-11-13 17:25:28.945801661 +0100
@@ -17,7 +17,7 @@
## Initialize configure.
##
- AC_REVISION($Id: configure.ac 23659 2013-04-30 21:50:05Z acheng $)
+ AC_REVISION($Id: configure.ac 24404 2013-11-04 22:57:14Z epourmal $)
-AC_PREREQ([2.69])
+AC_PREREQ([2.67])
diff --git a/src/hdf5.mk b/src/hdf5.mk
index 2b9a5fa..ea765b9 100644
--- a/src/hdf5.mk
+++ b/src/hdf5.mk
@@ -3,8 +3,8 @@
PKG := hdf5
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.8.11
-$(PKG)_CHECKSUM := 87ded0894b104cf23a4b965f4ac0a567f8612e5e
+$(PKG)_VERSION := 1.8.12
+$(PKG)_CHECKSUM := 8414ca0e6ff7d08e423955960d641ec5f309a55f
$(PKG)_SUBDIR := hdf5-$($(PKG)_VERSION)
$(PKG)_FILE := hdf5-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://www.hdfgroup.org/ftp/HDF5/current/src/$($(PKG)_FILE)
@@ -20,15 +20,21 @@ endef
define $(PKG)_BUILD
# automake 1.13 needs this directory to exist
[ -d '$(1)/m4' ] || mkdir '$(1)/m4'
- cd '$(1)' && autoreconf --force --install && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ cd '$(1)' && autoreconf --force --install
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
--enable-cxx \
--disable-direct-vfd \
- --prefix='$(PREFIX)/$(TARGET)' \
- CPPFLAGS="-DH5_HAVE_WIN32_API -DH5_HAVE_MINGW -DH5_BUILT_AS_STATIC_LIB" \
- AR='$(TARGET)-ar'
+ --with-pthread='$(PREFIX)' \
+ --with-zlib='$(PREFIX)' \
+ AR='$(TARGET)-ar' \
+ CPPFLAGS='-DH5_HAVE_WIN32_API \
+ -DH5_HAVE_MINGW \
+ -DHAVE_WINDOWS_PATH \
+ -DH5_BUILT_AS_$(if $(BUILD_STATIC),STATIC,DYNAMIC)_LIB'
+
+ # libtool is somehow created to effectively disallow shared builds
+ $(SED) -i 's,allow_undefined_flag="unsupported",allow_undefined_flag="",g' '$(1)/libtool'
# These programs need to be executed on host to create
# H5lib_settings.c and H5Tinit.c
@@ -40,16 +46,14 @@ define $(PKG)_BUILD
echo 'H5detect.exe > $(TARGET)\H5Tinit.c'; \
echo 'H5make_libsettings.exe > $(TARGET)\H5lib_settings.c';) \
> '$(PREFIX)/$(TARGET)/bin/hdf5-create-settings.bat'
- cp '$(1)/mxe-generated-sources/$(TARGET)/'*.c '$(1)/src/'
-
- $(MAKE) -C '$(1)'/src -j '$(JOBS)'
- $(MAKE) -C '$(1)'/src -j 1 install
- $(MAKE) -C '$(1)'/c++/src -j '$(JOBS)'
- $(MAKE) -C '$(1)'/c++/src -j 1 install
- $(MAKE) -C '$(1)'/hl/src -j '$(JOBS)'
- $(MAKE) -C '$(1)'/hl/src -j 1 install
- $(MAKE) -C '$(1)'/hl/c++/src -j '$(JOBS)'
- $(MAKE) -C '$(1)'/hl/c++/src -j 1 install
+ # generated sources are mostly tied to CPU
+ # and don't vary with static/shared
+ cp '$(1)/mxe-generated-sources/$(word 1,$(subst ., ,$(TARGET)))/'*.c '$(1)/src/'
+
+ for d in src c++/src hl/src hl/c++/src; do \
+ $(MAKE) -C '$(1)'/$$d -j '$(JOBS)' && \
+ $(MAKE) -C '$(1)'/$$d -j 1 install; \
+ done
# install prefixed wrapper scripts
$(INSTALL) -m755 '$(1)'/tools/misc/h5cc '$(PREFIX)/bin/$(TARGET)-h5cc'
diff --git a/src/icu4c-1-fixes.patch b/src/icu4c-1-fixes.patch
index 7874fc1..282f10a 100644
--- a/src/icu4c-1-fixes.patch
+++ b/src/icu4c-1-fixes.patch
@@ -22,30 +22,4 @@ index 406b196..cc53055 100644
#datarootdir = @datarootdir@
#datadir = @datadir@
#sbindir = @sbindir@
-diff --git a/source/config/mh-mingw b/source/config/mh-mingw
-index eb25c8a..11ea464 100644
---- a/source/config/mh-mingw
-+++ b/source/config/mh-mingw
-@@ -72,7 +72,6 @@ A = a
- ## An import library is needed for z/OS and MSVC
- IMPORT_LIB_EXT = .lib
-
--LIBPREFIX=
-
- # Change the stubnames so that poorly working FAT disks and installation programs can work.
- # This is also for backwards compatibility.
-diff --git a/source/config/mh-mingw64 b/source/config/mh-mingw64
-index 1b37f29..3c7ae7f 100644
---- a/source/config/mh-mingw64
-+++ b/source/config/mh-mingw64
-@@ -72,7 +72,6 @@ A = a
- ## An import library is needed for z/OS and MSVC
- IMPORT_LIB_EXT = .lib
-
--LIBPREFIX=
-
- # Change the stubnames so that poorly working FAT disks and installation programs can work.
- # This is also for backwards compatibility.
---
-1.8.2.2
diff --git a/src/icu4c-2-dll_fix.patch b/src/icu4c-2-dll_fix.patch
new file mode 100644
index 0000000..c484ea9
--- /dev/null
+++ b/src/icu4c-2-dll_fix.patch
@@ -0,0 +1,16 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -urN icu/source/extra/uconv/uconv.cpp icu-patch/source/extra/uconv/uconv.cpp
+--- icu/source/extra/uconv/uconv.cpp 2013-10-04 23:48:58.000000000 +0300
++++ icu-patch/source/extra/uconv/uconv.cpp 2013-12-15 15:04:00.758431267 +0200
+@@ -59,6 +59,9 @@
+ #endif
+ #endif
+
++
++#undef UCONVMSG_LINK
++
+ #ifdef UCONVMSG_LINK
+ /* below from the README */
+ #include "unicode/utypes.h"
diff --git a/src/icu4c.mk b/src/icu4c.mk
index e577103..4de78b9 100644
--- a/src/icu4c.mk
+++ b/src/icu4c.mk
@@ -3,36 +3,40 @@
PKG := icu4c
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 51.1
-$(PKG)_CHECKSUM := 7905632335e3dcd6667224da0fa087b49f9095e9
+$(PKG)_VERSION := 52.1
+$(PKG)_CHECKSUM := 6de440b71668f1a65a9344cdaf7a437291416781
$(PKG)_SUBDIR := icu
$(PKG)_FILE := $(PKG)-$(subst .,_,$($(PKG)_VERSION))-src.tgz
$(PKG)_URL := http://download.icu-project.org/files/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
- echo 'TODO: Updates for package icu4c need to be written.' >&2;
- echo $(icu4c_VERSION)
+ $(WGET) -q -O- 'http://bugs.icu-project.org/trac/browser/icu/tags' | \
+ $(SED) -n 's,.*release-\([0-9-]*\)<.*,\1,p' | \
+ tr '-' '.' | \
+ $(SORT) -V | \
+ tail -1
endef
-define $(PKG)_BUILD
+define $(PKG)_BUILD_SHARED
mkdir '$(1).native' && cd '$(1).native' && '$(1)/source/configure' \
CC=gcc CXX=g++
$(MAKE) -C '$(1).native' -j '$(JOBS)'
mkdir '$(1).cross' && cd '$(1).cross' && '$(1)/source/configure' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --enable-static \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--with-cross-build='$(1).native' \
+ icu_cv_host_frag=mh-mingw \
CFLAGS=-DU_USING_ICU_NAMESPACE=0 \
+ CXXFLAGS='--std=gnu++0x' \
SHELL=bash
$(MAKE) -C '$(1).cross' -j '$(JOBS)' install
ln -sf '$(PREFIX)/$(TARGET)/bin/icu-config' '$(PREFIX)/bin/$(TARGET)-icu-config'
+endef
+define $(PKG)_BUILD
+ $($(PKG)_BUILD_SHARED)
# Static libs are prefixed with an `s` but the config script
# doesn't detect it properly, despite the STATIC_PREFIX="s" line
$(SED) -i 's,ICUPREFIX="icu",ICUPREFIX="sicu",' '$(PREFIX)/$(TARGET)/bin/icu-config'
diff --git a/src/ilmbase.mk b/src/ilmbase.mk
index d02dddb..d8eabe8 100644
--- a/src/ilmbase.mk
+++ b/src/ilmbase.mk
@@ -3,8 +3,8 @@
PKG := ilmbase
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.0.0
-$(PKG)_CHECKSUM := 0f047217d287627ddc37ed06d573a2099e67f447
+$(PKG)_VERSION := 2.1.0
+$(PKG)_CHECKSUM := 306d76e7a2ac619c2f641f54b59dd95576525192
$(PKG)_SUBDIR := ilmbase-$($(PKG)_VERSION)
$(PKG)_FILE := ilmbase-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://download.savannah.nongnu.org/releases/openexr/$($(PKG)_FILE)
@@ -26,10 +26,7 @@ define $(PKG)_BUILD
# Because of the previous changes, '--disable-threading' will not disable
# threading. It will just disable the unwanted check for pthread.
cd '$(1)' && $(SHELL) ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-threading \
CONFIG_SHELL=$(SHELL) \
SHELL=$(SHELL)
diff --git a/src/imagemagick.mk b/src/imagemagick.mk
index cc03b8e..ed44112 100644
--- a/src/imagemagick.mk
+++ b/src/imagemagick.mk
@@ -3,13 +3,13 @@
PKG := imagemagick
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 6.8.6-3
-$(PKG)_CHECKSUM := fff85a0b7fa1c8d6307908e4cc58d2576c79ff11
+$(PKG)_VERSION := 6.8.8-3
+$(PKG)_CHECKSUM := 8e69b64ee1fc9f9131abbc4bf38d9c27ab60ebce
$(PKG)_SUBDIR := ImageMagick-$($(PKG)_VERSION)
$(PKG)_FILE := ImageMagick-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://www.imagemagick.org/download/$($(PKG)_FILE)
$(PKG)_URL_2 := http://ftp.nluug.nl/ImageMagick/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc bzip2 ffmpeg fftw freetype jasper jpeg lcms liblqr-1 libpng libtool openexr pthreads tiff
+$(PKG)_DEPS := gcc bzip2 ffmpeg fftw freetype jasper jpeg lcms liblqr-1 libpng libltdl openexr pthreads tiff
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.imagemagick.org/' | \
diff --git a/src/isl.mk b/src/isl.mk
new file mode 100644
index 0000000..2b4cea4
--- /dev/null
+++ b/src/isl.mk
@@ -0,0 +1,30 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := isl
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.12.2
+$(PKG)_CHECKSUM := ca98a91e35fb3ded10d080342065919764d6f928
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := ftp://gcc.gnu.org/pub/gcc/infrastructure/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc gmp
+
+# stick to tested versions from gcc
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'ftp://gcc.gnu.org/pub/gcc/infrastructure/' | \
+ $(SED) -n 's,.*isl-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ $(SORT) -V |
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --enable-static \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-gmp-prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
+endef
diff --git a/src/itk-1-hostcheck.patch b/src/itk-1-hostcheck.patch
deleted file mode 100644
index df28c44..0000000
--- a/src/itk-1-hostcheck.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-# This file is part of MXE.
-# See index.html for further information.
-
---- InsightToolkit-4.3.2/CMakeLists.txt 2013-04-23 13:35:23.000000000 +0200
-+++ InsightToolkit-4.3.2/CMakeLists.txt.new 2013-06-26 18:42:27.360004957 +0200
-@@ -12,7 +12,7 @@
-
- project(ITK)
-
--if( WIN32 )
-+if( CMAKE_HOST_WIN32 )
-
- string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n )
- if( n GREATER 50 )
diff --git a/src/itk-2-tryrun.patch b/src/itk-1-tryrun.patch
index 0a19da4..0a19da4 100644
--- a/src/itk-2-tryrun.patch
+++ b/src/itk-1-tryrun.patch
diff --git a/src/itk.mk b/src/itk.mk
index 4d83d26..1b2fb61 100644
--- a/src/itk.mk
+++ b/src/itk.mk
@@ -3,8 +3,8 @@
PKG := itk
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 4.4.0
-$(PKG)_CHECKSUM := 859854cee741d97cbd3a44b1a46ff5f7a580ebca
+$(PKG)_VERSION := 4.4.1
+$(PKG)_CHECKSUM := 9272a15323e9c1d44f598fca02d2bb0c16478bb5
$(PKG)_SUBDIR := InsightToolkit-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.xz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
diff --git a/src/jasper.mk b/src/jasper.mk
index 083bc1c..ce50381 100644
--- a/src/jasper.mk
+++ b/src/jasper.mk
@@ -19,11 +19,9 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-libjpeg \
--disable-opengl \
--without-x
- $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= LDFLAGS="-no-undefined"
endef
diff --git a/src/jpeg-1-fixes.patch b/src/jpeg-1-fixes.patch
new file mode 100644
index 0000000..93834e5
--- /dev/null
+++ b/src/jpeg-1-fixes.patch
@@ -0,0 +1,25 @@
+This file is part of MXE.
+See index.html for further information.
+
+From e523bccfefbf105ebe00d986bb1f057dfc304247 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 17 Aug 2013 20:16:41 +0200
+Subject: [PATCH] include stdio.h for FILE
+
+
+diff --git a/jpeglib.h b/jpeglib.h
+index 0a6dac4..2028d4e 100644
+--- a/jpeglib.h
++++ b/jpeglib.h
+@@ -33,6 +33,8 @@ extern "C" {
+ #endif
+ #endif
+
++#include <stdio.h>
++
+ /* Version IDs for the JPEG library.
+ * Might be useful for tests like "#if JPEG_LIB_VERSION >= 90".
+ */
+--
+1.8.1.4
+
diff --git a/src/jpeg.mk b/src/jpeg.mk
index 9ae26d6..38504d7 100644
--- a/src/jpeg.mk
+++ b/src/jpeg.mk
@@ -3,8 +3,8 @@
PKG := jpeg
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 9
-$(PKG)_CHECKSUM := 724987e7690ca3d74d6ab7c1f1b6854e88ca204b
+$(PKG)_VERSION := 9a
+$(PKG)_CHECKSUM := d65ed6f88d318f7380a3a5f75d578744e732daca
$(PKG)_SUBDIR := jpeg-$($(PKG)_VERSION)
$(PKG)_FILE := jpegsrc.v$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.ijg.org/files/$($(PKG)_FILE)
@@ -18,13 +18,19 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --prefix='$(PREFIX)/$(TARGET)' \
- --host='$(TARGET)' \
- --disable-shared
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= man_MANS=
+ # create pkg-config file
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+ (echo 'Name: jpeg'; \
+ echo 'Version: 0'; \
+ echo 'Description: jpeg'; \
+ echo 'Libs: -ljpeg';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/jpeg.pc'
+
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-jpeg.exe' \
- -ljpeg
+ `'$(TARGET)-pkg-config' jpeg --libs`
endef
diff --git a/src/lame.mk b/src/lame.mk
index e130606..027fad2 100644
--- a/src/lame.mk
+++ b/src/lame.mk
@@ -3,28 +3,25 @@
PKG := lame
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.99
-$(PKG)_CHECKSUM := 91dfd25bedc02759051a6b3af05e61337a575028
+$(PKG)_VERSION := 3.99.5
+$(PKG)_CHECKSUM := 03a0bfa85713adcc6b3383c12e2cc68a9cfbf4c4
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://sourceforge.net/projects/lame/files/lame/' | \
- $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
- head -1
+ $(WGET) -q -O- 'http://lame.cvs.sourceforge.net/viewvc/lame/lame/' | \
+ grep RELEASE_ | \
+ $(SED) -n 's,.*RELEASE__\([0-9_][^<]*\)<.*,\1,p' | \
+ tr '_' '.' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' MXE_CFLAGS=
$(MAKE) -C '$(1)' -j 1 install
endef
-
-$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst MXE_CFLAGS=,CFLAGS="-DFORCEINLINE=inline",$($(PKG)_BUILD))
-$(PKG)_BUILD_i686-w64-mingw32 = $(subst MXE_CFLAGS=,CFLAGS="-DFORCEINLINE=inline",$($(PKG)_BUILD))
diff --git a/src/lapack-test.c b/src/lapack-test.c
new file mode 100644
index 0000000..00bf092
--- /dev/null
+++ b/src/lapack-test.c
@@ -0,0 +1,55 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+/* taken from http://www.netlib.org/lapack/lapacke.html */
+
+/* Calling CGEQRF and CUNGQR to compute Q with workspace querying */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <lapacke_utils.h>
+#include <cblas.h>
+
+int main (int argc, const char * argv[])
+{
+ (void)argc;
+ (void)argv;
+
+ lapack_complex_float *a,*tau,*r,*work,one,zero,query;
+ lapack_int info,m,n,lda,lwork;
+ int i,j;
+ float err;
+ m = 10; n = 5; lda = m;
+ one = lapack_make_complex_float(1.0,0.0);
+ zero= lapack_make_complex_float(0.0,0.0);
+ a = calloc(m*n,sizeof(lapack_complex_float));
+ r = calloc(n*n,sizeof(lapack_complex_float));
+ tau = calloc(m,sizeof(lapack_complex_float));
+ for(j=0;j<n;j++)
+ for(i=0;i<m;i++)
+ a[i+j*m] = lapack_make_complex_float(i+1,j+1);
+ info = LAPACKE_cgeqrf_work(LAPACK_COL_MAJOR,m,n,a,lda,tau,&query,-1);
+ lwork = (lapack_int)query;
+ info = LAPACKE_cungqr_work(LAPACK_COL_MAJOR,m,n,n,a,lda,tau,&query,-1);
+ lwork = MAX(lwork,(lapack_int)query);
+ work = calloc(lwork,sizeof(lapack_complex_float));
+ info = LAPACKE_cgeqrf_work(LAPACK_COL_MAJOR,m,n,a,lda,tau,work,lwork);
+ info = LAPACKE_cungqr_work(LAPACK_COL_MAJOR,m,n,n,a,lda,tau,work,lwork);
+ for(j=0;j<n;j++)
+ for(i=0;i<n;i++)
+ r[i+j*n]=(i==j)?-one:zero;
+ cblas_cgemm(CblasColMajor,CblasConjTrans,CblasNoTrans,
+ n,n,m,&one,a,lda,a,lda,&one,r,n);
+ err=0.0;
+ for(i=0;i<n;i++)
+ for(j=0;j<n;j++)
+ err=MAX(err,cabs(r[i+j*n]));
+ printf("error=%e\n",err);
+ free(work);
+ free(tau);
+ free(r);
+ free(a);
+ return(info);
+}
diff --git a/src/lapack.mk b/src/lapack.mk
index 53c6a98..80b3521 100644
--- a/src/lapack.mk
+++ b/src/lapack.mk
@@ -2,13 +2,13 @@
# See index.html for further information.
PKG := lapack
-$(PKG)_VERSION := 3.4.2
-$(PKG)_CHECKSUM := 93a6e4e6639aaf00571d53a580ddc415416e868b
+$(PKG)_VERSION := 3.5.0
+$(PKG)_CHECKSUM := 5870081889bf5d15fd977993daab29cf3c5ea970
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tgz
$(PKG)_URL := http://www.netlib.org/$(PKG)/$($(PKG)_FILE)
$(PKG)_URL_2 := ftp://ftp.eq.uc.pt/pub/software/math/netlib/$(PKG)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc
+$(PKG)_DEPS := gcc cblas
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.netlib.org/lapack/' | \
@@ -21,11 +21,20 @@ define $(PKG)_BUILD
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DCMAKE_AR='$(PREFIX)/bin/$(TARGET)-ar' \
-DCMAKE_RANLIB='$(PREFIX)/bin/$(TARGET)-ranlib' \
+ -DLAPACKE=ON \
+ -DCMAKE_Fortran_FLAGS=$(if $(findstring x86_64,$(TARGET)),-fdefault-integer-8) \
.
- $(MAKE) -C '$(1)/SRC' -j '$(JOBS)' install
+ cp '$(1)/lapacke/include/lapacke_mangling_with_flags.h' '$(1)/lapacke/include/lapacke_mangling.h'
+ $(MAKE) -C '$(1)/SRC' -j '$(JOBS)' install
+ $(MAKE) -C '$(1)/lapacke' -j '$(JOBS)' install
'$(TARGET)-gfortran' \
-W -Wall -Werror -pedantic \
'$(2).f' -o '$(PREFIX)/$(TARGET)/bin/test-lapack.exe' \
-llapack
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-lapacke.exe' \
+ -llapacke -llapack -lcblas -lblas -lgfortran
endef
diff --git a/src/lcms-1-fixes.patch b/src/lcms-1-fixes.patch
index 6d6c644..471480b 100644
--- a/src/lcms-1-fixes.patch
+++ b/src/lcms-1-fixes.patch
@@ -23,7 +23,7 @@ index b715f59..4a8fdb3 100644
-Libs.private: @LIB_MATH@
+Libs.private: -ljpeg @LIB_MATH@
Cflags: -I${includedir}
-+Requires.private: libtiff-4
++Requires: libtiff-4
--
1.7.8
diff --git a/src/lcms.mk b/src/lcms.mk
index ae5bc14..13d764e 100644
--- a/src/lcms.mk
+++ b/src/lcms.mk
@@ -3,8 +3,8 @@
PKG := lcms
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.5
-$(PKG)_CHECKSUM := bab3470471fc7756c5fbe71be9a3c7d677d2ee7b
+$(PKG)_VERSION := 2.6
+$(PKG)_CHECKSUM := b0ecee5cb8391338e6c281d1c11dcae2bc22a5d2
$(PKG)_SUBDIR := $(PKG)$(word 1,$(subst ., ,$($(PKG)_VERSION)))-$(subst a,,$($(PKG)_VERSION))
$(PKG)_FILE := $(PKG)$(word 1,$(subst ., ,$($(PKG)_VERSION)))-$(subst a,,$($(PKG)_VERSION)).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$(subst a,,$($(PKG)_VERSION))/$($(PKG)_FILE)
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --prefix='$(PREFIX)/$(TARGET)' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--with-jpeg \
--with-tiff \
--with-zlib
diff --git a/src/lcms1.mk b/src/lcms1.mk
index aee02c0..85691d2 100644
--- a/src/lcms1.mk
+++ b/src/lcms1.mk
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --prefix='$(PREFIX)/$(TARGET)' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--with-jpeg \
--with-tiff \
--with-zlib
diff --git a/src/lensfun-1-memset.patch b/src/lensfun-1-memset.patch
deleted file mode 100644
index 7e91901..0000000
--- a/src/lensfun-1-memset.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-diff -ur lensfun-0.2.7.orig/libs/auxfun/image.cpp lensfun-0.2.7/libs/auxfun/image.cpp
---- lensfun-0.2.7.orig/libs/auxfun/image.cpp 2013-03-24 05:01:02.000000000 +1100
-+++ lensfun-0.2.7/libs/auxfun/image.cpp 2013-03-24 05:01:27.000000000 +1100
-@@ -7,6 +7,7 @@
- #include <zlib.h>
- #include <png.h>
- #include <stdlib.h>
-+#include <string.h>
- #ifdef _MSC_VER
- #define _USE_MATH_DEFINES 1
- #include <math.h>
diff --git a/src/lensfun.mk b/src/lensfun.mk
index e39c978..d5220c7 100644
--- a/src/lensfun.mk
+++ b/src/lensfun.mk
@@ -3,11 +3,11 @@
PKG := lensfun
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.2.7
-$(PKG)_CHECKSUM := f26121093dfee85d6371c2c79dae22e6d1b8d0d6
+$(PKG)_VERSION := 0.2.8
+$(PKG)_CHECKSUM := 0e85eb7692620668d27e2303687492ad68c90eb4
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
-$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/lensfun.berlios/$($(PKG)_FILE)
+$(PKG)_URL := http://download.berlios.de/lensfun/$($(PKG)_FILE)
$(PKG)_DEPS := gcc libpng glib libgnurx
define $(PKG)_UPDATE
diff --git a/src/libass.mk b/src/libass.mk
index 0ac84e4..8267b3c 100644
--- a/src/libass.mk
+++ b/src/libass.mk
@@ -3,8 +3,8 @@
PKG := libass
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.10.1
-$(PKG)_CHECKSUM := 6ebc6c4762c95c5abb96db33289b81780a4fbda6
+$(PKG)_VERSION := 0.10.2
+$(PKG)_CHECKSUM := 72a153364e838d3b561bae3653f1515169d479c4
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.xz
$(PKG)_URL := http://libass.googlecode.com/files/$($(PKG)_FILE)
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--disable-enca \
--enable-fontconfig \
--enable-harfbuzz
diff --git a/src/libbluray-1-fix-strncasecmp.patch b/src/libbluray-1-fix-strncasecmp.patch
new file mode 100644
index 0000000..befe435
--- /dev/null
+++ b/src/libbluray-1-fix-strncasecmp.patch
@@ -0,0 +1,20 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -Naur a/src/libbluray/bdnav/meta_parse.c b/src/libbluray/bdnav/meta_parse.c
+--- a/src/libbluray/bdnav/meta_parse.c 2013-04-26 13:42:38.000000000 -0700
++++ b/src/libbluray/bdnav/meta_parse.c 2013-11-09 15:41:29.000000000 -0800
+@@ -29,6 +29,13 @@
+ #include "meta_parse.h"
+ #include "libbluray/register.h"
+
++#if (defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR))
++#define strncasecmp _strnicmp
++#ifdef __STRICT_ANSI__
++#undef __STRICT_ANSI__
++#endif
++#endif
++
+ #include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
diff --git a/src/libbluray.mk b/src/libbluray.mk
new file mode 100644
index 0000000..bc8c572
--- /dev/null
+++ b/src/libbluray.mk
@@ -0,0 +1,33 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libbluray
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.5.0
+$(PKG)_CHECKSUM := 1a9c61daefc31438f9165e7681c563d0524b2d3e
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
+$(PKG)_URL := ftp://ftp.videolan.org/pub/videolan/libbluray/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc freetype libxml2
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://www.videolan.org/developers/libbluray.html' | \
+ $(SED) -n 's,.*libbluray-\([0-9][^<]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --disable-examples \
+ --with-freetype \
+ --with-libxml2 \
+ --disable-bdjava
+ $(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS='-no-undefined'
+ $(MAKE) -C '$(1)' -j 1 install
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(1)/src/examples/sound_dump.c' -o '$(PREFIX)/$(TARGET)/bin/test-libbluray.exe' \
+ `'$(TARGET)-pkg-config' libbluray --cflags --libs`
+endef
diff --git a/src/libcdio.mk b/src/libcdio.mk
new file mode 100644
index 0000000..57cc894
--- /dev/null
+++ b/src/libcdio.mk
@@ -0,0 +1,22 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libcdio
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.92
+$(PKG)_CHECKSUM := 37f0b746181c9a3c2ff14e21147885addf357b5f
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://ftp.gnu.org/gnu/libcdio/$(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package libcdio need to be written.' >&2;
+ echo $(libcdio_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/libcroco.mk b/src/libcroco.mk
index e6d9371..f291d52 100644
--- a/src/libcroco.mk
+++ b/src/libcroco.mk
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-gtk-doc
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/libdca-1-mark-tables-as-static-constants.patch b/src/libdca-1-mark-tables-as-static-constants.patch
new file mode 100644
index 0000000..4e4414d
--- /dev/null
+++ b/src/libdca-1-mark-tables-as-static-constants.patch
@@ -0,0 +1,719 @@
+This file is part of MXE.
+See index.html for further information.
+
+Taken from libdca svn: svn://svn.videolan.org/libdca/trunk.
+
+r83 | gbazin | 2008-05-26 12:48:45 +0000 (Mon, 26 May 2008) | 1 line
+Mark tables as static constants. Patch by Diego Flameeyes Petten?\195?\178
+
+--- libdca.orig/libdca/tables_fir.h
++++ libdca/libdca/tables_fir.h
+@@ -21,7 +21,7 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+-double fir_32bands_perfect[] =
++static const double fir_32bands_perfect[] =
+ {
+ +1.135985195E-010,
+ -6.022448247E-007,
+@@ -537,7 +537,7 @@
+ -1.135985195E-010
+ };
+
+-double fir_32bands_nonperfect[] =
++static const double fir_32bands_nonperfect[] =
+ {
+ -1.390191784E-007,
+ -1.693738625E-007,
+@@ -1053,7 +1053,7 @@
+ +1.390191784E-007
+ };
+
+-double lfe_fir_64[] =
++static const double lfe_fir_64[] =
+ {
+ 2.6584343868307770E-004,
+ 8.1793652498163280E-005,
+@@ -1569,7 +1569,7 @@
+ 2.6584343868307770E-004
+ };
+
+-double lfe_fir_128[] =
++static const double lfe_fir_128[] =
+ {
+ 0.00053168571,
+ 0.00016358691,
+--- libdca.orig/libdca/tables_huffman.h
++++ libdca/libdca/tables_huffman.h
+@@ -29,7 +29,7 @@
+
+ } huff_entry_t;
+
+-huff_entry_t bitalloc_a_12[] =
++static const huff_entry_t bitalloc_a_12[] =
+ {
+ { 1, 0, 1}, { 2, 2, 2}, { 3, 6, 3}, { 4, 14, 4},
+ { 5, 30, 5}, { 6, 62, 6}, { 8, 255, 7}, { 8, 254, 8},
+@@ -37,7 +37,7 @@
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_12[] =
++static const huff_entry_t bitalloc_b_12[] =
+ {
+ { 1, 1, 1}, { 2, 0, 2}, { 3, 2, 3}, { 5, 15, 4},
+ { 5, 12, 5}, { 6, 29, 6}, { 7, 57, 7}, { 7, 56, 8},
+@@ -45,7 +45,7 @@
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_12[] =
++static const huff_entry_t bitalloc_c_12[] =
+ {
+ { 2, 0, 1}, { 3, 7, 2}, { 3, 5, 3}, { 3, 4, 4},
+ { 3, 2, 5}, { 4, 13, 6}, { 4, 12, 7}, { 4, 6, 8},
+@@ -53,7 +53,7 @@
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_12[] =
++static const huff_entry_t bitalloc_d_12[] =
+ {
+ { 2, 3, 1}, { 2, 2, 2}, { 2, 0, 3}, { 3, 2, 4},
+ { 4, 6, 5}, { 5, 14, 6}, { 6, 30, 7}, { 7, 62, 8},
+@@ -61,7 +61,7 @@
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_12[] =
++static const huff_entry_t bitalloc_e_12[] =
+ {
+ { 1, 1, 1}, { 2, 0, 2}, { 3, 2, 3}, { 4, 6, 4},
+ { 5, 14, 5}, { 7, 63, 6}, { 7, 61, 7}, { 8, 124, 8},
+@@ -69,7 +69,7 @@
+ { 0, 0, 0}
+ };
+
+-huff_entry_t *bitalloc_12[] =
++static const huff_entry_t *const bitalloc_12[] =
+ {
+ bitalloc_a_12,
+ bitalloc_b_12,
+@@ -78,7 +78,7 @@
+ bitalloc_e_12
+ };
+
+-huff_entry_t scales_a_129[] =
++static const huff_entry_t scales_a_129[] =
+ {
+ { 2, 1, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 0, 2},
+ { 4, 15, -2}, { 4, 8, 3}, { 4, 3, -3}, { 5, 28, 4},
+@@ -115,7 +115,7 @@
+ {14, 15024,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t scales_b_129[] =
++static const huff_entry_t scales_b_129[] =
+ {
+ { 3, 3, 0}, { 3, 2, 1}, { 3, 1, -1}, { 4, 15, 2},
+ { 4, 14, -2}, { 4, 12, 3}, { 4, 11, -3}, { 4, 10, 4},
+@@ -152,7 +152,7 @@
+ {15, 3936,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t scales_c_129[] =
++static const huff_entry_t scales_c_129[] =
+ {
+ { 3, 4, 0}, { 3, 1, 1}, { 3, 0, -1}, { 4, 13, 2},
+ { 4, 12, -2}, { 4, 7, 3}, { 4, 6, -3}, { 5, 31, 4},
+@@ -189,7 +189,7 @@
+ {15, 20944,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t scales_d_129[] =
++static const huff_entry_t scales_d_129[] =
+ {
+ { 2, 0, 0}, { 3, 5, 1}, { 3, 4, -1}, { 4, 15, 2},
+ { 4, 14, -2}, { 4, 7, 3}, { 4, 6, -3}, { 5, 26, 4},
+@@ -226,7 +226,7 @@
+ {15, 28516,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t scales_e_129[] =
++static const huff_entry_t scales_e_129[] =
+ {
+ { 4, 14, 0}, { 4, 11, 1}, { 4, 10, -1}, { 4, 7, 2},
+ { 4, 6, -2}, { 4, 3, 3}, { 4, 2, -3}, { 5, 31, 4},
+@@ -263,7 +263,7 @@
+ {16, 57172,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t *scales_129[] =
++static const huff_entry_t *const scales_129[] =
+ {
+ scales_a_129,
+ scales_b_129,
+@@ -272,36 +272,36 @@
+ scales_e_129
+ };
+
+-huff_entry_t bitalloc_a_3[] =
++static const huff_entry_t bitalloc_a_3[] =
+ {
+ { 1, 0, 0}, { 2, 2, 1}, { 2, 3, -1}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_4[] =
++static const huff_entry_t bitalloc_a_4[] =
+ {
+ { 1, 0, 0}, { 2, 2, 1}, { 3, 6, 2}, { 3, 7, 3},
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_4[] =
++static const huff_entry_t bitalloc_b_4[] =
+ {
+ { 2, 2, 0}, { 3, 6, 1}, { 3, 7, 2}, { 1, 0, 3},
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_4[] =
++static const huff_entry_t bitalloc_c_4[] =
+ {
+ { 3, 6, 0}, { 3, 7, 1}, { 1, 0, 2}, { 2, 2, 3},
+ { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_4[] =
++static const huff_entry_t bitalloc_d_4[] =
+ {
+ { 2, 0, 0}, { 2, 1, 1}, { 2, 2, 2}, { 2, 3, 3},
+ { 0, 0, 0}
+ };
+
+-huff_entry_t *tmode[] =
++static const huff_entry_t *const tmode[] =
+ {
+ bitalloc_a_4,
+ bitalloc_b_4,
+@@ -309,64 +309,64 @@
+ bitalloc_d_4
+ };
+
+-huff_entry_t bitalloc_a_5[] =
++static const huff_entry_t bitalloc_a_5[] =
+ {
+ { 1, 0, 0}, { 2, 2, 1}, { 3, 6, -1}, { 4, 14, 2},
+ { 4, 15, -2}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_5[] =
++static const huff_entry_t bitalloc_b_5[] =
+ {
+ { 2, 2, 0}, { 2, 0, 1}, { 2, 1, -1}, { 3, 6, 2},
+ { 3, 7, -2}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_5[] =
++static const huff_entry_t bitalloc_c_5[] =
+ {
+ { 1, 0, 0}, { 3, 4, 1}, { 3, 5, -1}, { 3, 6, 2},
+ { 3, 7, -2}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_7[] =
++static const huff_entry_t bitalloc_a_7[] =
+ {
+ { 1, 0, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 4, 2},
+ { 4, 14, -2}, { 5, 31, 3}, { 5, 30, -3}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_7[] =
++static const huff_entry_t bitalloc_b_7[] =
+ {
+ { 2, 3, 0}, { 2, 1, 1}, { 2, 0, -1}, { 3, 4, 2},
+ { 4, 11, -2}, { 5, 21, 3}, { 5, 20, -3}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_7[] =
++static const huff_entry_t bitalloc_c_7[] =
+ {
+ { 2, 3, 0}, { 2, 2, 1}, { 2, 1, -1}, { 4, 3, 2},
+ { 4, 2, -2}, { 4, 1, 3}, { 4, 0, -3}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_9[] =
++static const huff_entry_t bitalloc_a_9[] =
+ {
+ { 1, 0, 0}, { 3, 7, 1}, { 3, 5, -1}, { 4, 13, 2},
+ { 4, 9, -2}, { 4, 8, 3}, { 5, 25, -3}, { 6, 49, 4},
+ { 6, 48, -4}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_9[] =
++static const huff_entry_t bitalloc_b_9[] =
+ {
+ { 2, 2, 0}, { 2, 0, 1}, { 3, 7, -1}, { 3, 3, 2},
+ { 3, 2, -2}, { 5, 27, 3}, { 5, 26, -3}, { 5, 25, 4},
+ { 5, 24, -4}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_9[] =
++static const huff_entry_t bitalloc_c_9[] =
+ {
+ { 2, 2, 0}, { 2, 0, 1}, { 3, 7, -1}, { 3, 6, 2},
+ { 3, 2, -2}, { 4, 6, 3}, { 5, 15, -3}, { 6, 29, 4},
+ { 6, 28, -4}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_13[] =
++static const huff_entry_t bitalloc_a_13[] =
+ {
+ { 1, 0, 0}, { 3, 4, 1}, { 4, 15, -1}, { 4, 13, 2},
+ { 4, 12, -2}, { 4, 10, 3}, { 5, 29, -3}, { 5, 22, 4},
+@@ -374,7 +374,7 @@
+ { 7, 112, -6}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_13[] =
++static const huff_entry_t bitalloc_b_13[] =
+ {
+ { 2, 0, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 2, 2},
+ { 4, 15, -2}, { 4, 9, 3}, { 4, 7, -3}, { 4, 6, 4},
+@@ -382,7 +382,7 @@
+ { 6, 56, -6}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_13[] =
++static const huff_entry_t bitalloc_c_13[] =
+ {
+ { 3, 5, 0}, { 3, 4, 1}, { 3, 3, -1}, { 3, 2, 2},
+ { 3, 0, -2}, { 4, 15, 3}, { 4, 14, -3}, { 4, 12, 4},
+@@ -390,7 +390,7 @@
+ { 5, 4, -6}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_17[] =
++static const huff_entry_t bitalloc_a_17[] =
+ {
+ { 2, 1, 0}, { 3, 7, 1}, { 3, 6, -1}, { 3, 4, 2},
+ { 3, 1, -2}, { 4, 11, 3}, { 4, 10, -3}, { 4, 0, 4},
+@@ -399,7 +399,7 @@
+ {12, 340, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_17[] =
++static const huff_entry_t bitalloc_b_17[] =
+ {
+ { 2, 0, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 2, 2},
+ { 4, 15, -2}, { 4, 9, 3}, { 4, 8, -3}, { 5, 29, 4},
+@@ -408,7 +408,7 @@
+ { 8, 124, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_17[] =
++static const huff_entry_t bitalloc_c_17[] =
+ {
+ { 3, 6, 0}, { 3, 4, 1}, { 3, 3, -1}, { 3, 0, 2},
+ { 4, 15, -2}, { 4, 11, 3}, { 4, 10, -3}, { 4, 4, 4},
+@@ -417,7 +417,7 @@
+ { 7, 44, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_17[] =
++static const huff_entry_t bitalloc_d_17[] =
+ {
+ { 1, 0, 0}, { 3, 7, 1}, { 3, 6, -1}, { 4, 11, 2},
+ { 4, 10, -2}, { 5, 19, 3}, { 5, 18, -3}, { 6, 35, 4},
+@@ -426,7 +426,7 @@
+ { 9, 256, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_17[] =
++static const huff_entry_t bitalloc_e_17[] =
+ {
+ { 1, 0, 0}, { 3, 5, 1}, { 3, 4, -1}, { 4, 12, 2},
+ { 5, 31, -2}, { 5, 28, 3}, { 5, 27, -3}, { 6, 60, 4},
+@@ -435,7 +435,7 @@
+ { 8, 232, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_f_17[] =
++static const huff_entry_t bitalloc_f_17[] =
+ {
+ { 3, 6, 0}, { 3, 5, 1}, { 3, 4, -1}, { 3, 2, 2},
+ { 3, 1, -2}, { 4, 15, 3}, { 4, 14, -3}, { 4, 6, 4},
+@@ -444,7 +444,7 @@
+ { 8, 4, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_g_17[] =
++static const huff_entry_t bitalloc_g_17[] =
+ {
+ { 2, 2, 0}, { 3, 7, 1}, { 3, 6, -1}, { 3, 1, 2},
+ { 3, 0, -2}, { 4, 5, 3}, { 4, 4, -3}, { 5, 14, 4},
+@@ -453,7 +453,7 @@
+ { 8, 96, -8}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_25[] =
++static const huff_entry_t bitalloc_a_25[] =
+ {
+ { 3, 6, 0}, { 3, 4, 1}, { 3, 3, -1}, { 3, 1, 2},
+ { 3, 0, -2}, { 4, 15, 3}, { 4, 14, -3}, { 4, 5, 4},
+@@ -464,7 +464,7 @@
+ {14, 10324,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_25[] =
++static const huff_entry_t bitalloc_b_25[] =
+ {
+ { 3, 5, 0}, { 3, 2, 1}, { 3, 1, -1}, { 4, 15, 2},
+ { 4, 14, -2}, { 4, 9, 3}, { 4, 8, -3}, { 4, 6, 4},
+@@ -475,7 +475,7 @@
+ { 9, 28,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_25[] =
++static const huff_entry_t bitalloc_c_25[] =
+ {
+ { 3, 1, 0}, { 4, 15, 1}, { 4, 14, -1}, { 4, 12, 2},
+ { 4, 11, -2}, { 4, 9, 3}, { 4, 8, -3}, { 4, 6, 4},
+@@ -486,7 +486,7 @@
+ { 8, 76,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_25[] =
++static const huff_entry_t bitalloc_d_25[] =
+ {
+ { 2, 2, 0}, { 3, 7, 1}, { 3, 6, -1}, { 3, 1, 2},
+ { 3, 0, -2}, { 4, 5, 3}, { 4, 4, -3}, { 5, 13, 4},
+@@ -497,7 +497,7 @@
+ {12, 1920,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_25[] =
++static const huff_entry_t bitalloc_e_25[] =
+ {
+ { 2, 3, 0}, { 3, 3, 1}, { 3, 2, -1}, { 4, 11, 2},
+ { 4, 10, -2}, { 4, 1, 3}, { 4, 0, -3}, { 5, 17, 4},
+@@ -508,7 +508,7 @@
+ { 8, 60,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_f_25[] =
++static const huff_entry_t bitalloc_f_25[] =
+ {
+ { 3, 1, 0}, { 3, 0, 1}, { 4, 15, -1}, { 4, 14, 2},
+ { 4, 13, -2}, { 4, 11, 3}, { 4, 10, -3}, { 4, 8, 4},
+@@ -519,7 +519,7 @@
+ {10, 804,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_g_25[] =
++static const huff_entry_t bitalloc_g_25[] =
+ {
+ { 2, 1, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 0, 2},
+ { 4, 15, -2}, { 4, 8, 3}, { 4, 3, -3}, { 5, 28, 4},
+@@ -530,7 +530,7 @@
+ {10, 936,-12}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_33[] =
++static const huff_entry_t bitalloc_a_33[] =
+ {
+ { 3, 2, 0}, { 3, 1, 1}, { 3, 0, -1}, { 4, 14, 2},
+ { 4, 13, -2}, { 4, 12, 3}, { 4, 11, -3}, { 4, 9, 4},
+@@ -543,7 +543,7 @@
+ {13, 5504,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_33[] =
++static const huff_entry_t bitalloc_b_33[] =
+ {
+ { 3, 1, 0}, { 4, 15, 1}, { 4, 14, -1}, { 4, 11, 2},
+ { 4, 10, -2}, { 4, 8, 3}, { 4, 7, -3}, { 4, 4, 4},
+@@ -556,7 +556,7 @@
+ {10, 780,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_33[] =
++static const huff_entry_t bitalloc_c_33[] =
+ {
+ { 4, 13, 0}, { 4, 11, 1}, { 4, 10, -1}, { 4, 8, 2},
+ { 4, 7, -2}, { 4, 4, 3}, { 4, 3, -3}, { 4, 2, 4},
+@@ -569,7 +569,7 @@
+ { 9, 204,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_33[] =
++static const huff_entry_t bitalloc_d_33[] =
+ {
+ { 2, 1, 0}, { 3, 6, 1}, { 3, 5, -1}, { 3, 0, 2},
+ { 4, 15, -2}, { 4, 8, 3}, { 4, 3, -3}, { 5, 28, 4},
+@@ -582,7 +582,7 @@
+ {14, 15096,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_33[] =
++static const huff_entry_t bitalloc_e_33[] =
+ {
+ { 2, 2, 0}, { 3, 2, 1}, { 3, 1, -1}, { 4, 12, 2},
+ { 4, 7, -2}, { 4, 0, 3}, { 5, 31, -3}, { 5, 27, 4},
+@@ -595,7 +595,7 @@
+ { 9, 456,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_f_33[] =
++static const huff_entry_t bitalloc_f_33[] =
+ {
+ { 4, 13, 0}, { 4, 12, 1}, { 4, 11, -1}, { 4, 9, 2},
+ { 4, 8, -2}, { 4, 7, 3}, { 4, 6, -3}, { 4, 4, 4},
+@@ -608,7 +608,7 @@
+ {11, 1828,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_g_33[] =
++static const huff_entry_t bitalloc_g_33[] =
+ {
+ { 3, 6, 0}, { 3, 3, 1}, { 3, 2, -1}, { 4, 15, 2},
+ { 4, 14, -2}, { 4, 9, 3}, { 4, 8, -3}, { 4, 1, 4},
+@@ -621,7 +621,7 @@
+ {10, 644,-16}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_65[] =
++static const huff_entry_t bitalloc_a_65[] =
+ {
+ { 4, 6, 0}, { 4, 5, 1}, { 4, 4, -1}, { 4, 2, 2},
+ { 4, 1, -2}, { 4, 0, 3}, { 5, 31, -3}, { 5, 29, 4},
+@@ -642,7 +642,7 @@
+ {16, 40540,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_65[] =
++static const huff_entry_t bitalloc_b_65[] =
+ {
+ { 4, 4, 0}, { 4, 2, 1}, { 4, 1, -1}, { 5, 30, 2},
+ { 5, 29, -2}, { 5, 26, 3}, { 5, 25, -3}, { 5, 23, 4},
+@@ -663,7 +663,7 @@
+ {12, 2700,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_65[] =
++static const huff_entry_t bitalloc_c_65[] =
+ {
+ { 5, 28, 0}, { 5, 25, 1}, { 5, 24, -1}, { 5, 23, 2},
+ { 5, 22, -2}, { 5, 19, 3}, { 5, 18, -3}, { 5, 16, 4},
+@@ -684,7 +684,7 @@
+ {11, 1116,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_65[] =
++static const huff_entry_t bitalloc_d_65[] =
+ {
+ { 3, 4, 0}, { 3, 1, 1}, { 3, 0, -1}, { 4, 13, 2},
+ { 4, 12, -2}, { 4, 7, 3}, { 4, 6, -3}, { 5, 31, 4},
+@@ -705,7 +705,7 @@
+ {15, 28848,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_65[] =
++static const huff_entry_t bitalloc_e_65[] =
+ {
+ { 3, 4, 0}, { 3, 0, 1}, { 4, 15, -1}, { 4, 7, 2},
+ { 4, 6, -2}, { 5, 29, 3}, { 5, 28, -3}, { 5, 23, 4},
+@@ -726,7 +726,7 @@
+ {10, 812,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_f_65[] =
++static const huff_entry_t bitalloc_f_65[] =
+ {
+ { 3, 6, 0}, { 3, 3, 1}, { 3, 2, -1}, { 4, 15, 2},
+ { 4, 14, -2}, { 4, 9, 3}, { 4, 8, -3}, { 4, 1, 4},
+@@ -747,7 +747,7 @@
+ {14, 4064,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_g_65[] =
++static const huff_entry_t bitalloc_g_65[] =
+ {
+ { 4, 14, 0}, { 4, 11, 1}, { 4, 10, -1}, { 4, 8, 2},
+ { 4, 6, -2}, { 4, 4, 3}, { 4, 3, -3}, { 4, 0, 4},
+@@ -768,7 +768,7 @@
+ {11, 268,-32}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_a_129[] =
++static const huff_entry_t bitalloc_a_129[] =
+ {
+ { 4, 8, 0}, { 4, 10, 1}, { 4, 9, -1}, { 4, 0, 2},
+ { 5, 31, -2}, { 5, 24, 3}, { 5, 23, -3}, { 5, 12, 4},
+@@ -805,7 +805,7 @@
+ {11, 1632,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_b_129[] =
++static const huff_entry_t bitalloc_b_129[] =
+ {
+ { 5, 10, 0}, { 5, 7, 1}, { 5, 6, -1}, { 5, 4, 2},
+ { 5, 3, -2}, { 5, 0, 3}, { 6, 63, -3}, { 6, 60, 4},
+@@ -842,7 +842,7 @@
+ {14, 10716,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_c_129[] =
++static const huff_entry_t bitalloc_c_129[] =
+ {
+ { 6, 58, 0}, { 6, 55, 1}, { 6, 54, -1}, { 6, 52, 2},
+ { 6, 51, -2}, { 6, 49, 3}, { 6, 48, -3}, { 6, 46, 4},
+@@ -879,7 +879,7 @@
+ {13, 3676,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_d_129[] =
++static const huff_entry_t bitalloc_d_129[] =
+ {
+ { 4, 9, 0}, { 4, 6, 1}, { 4, 5, -1}, { 4, 2, 2},
+ { 4, 1, -2}, { 5, 30, 3}, { 5, 29, -3}, { 5, 26, 4},
+@@ -916,7 +916,7 @@
+ {16, 42392,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_e_129[] =
++static const huff_entry_t bitalloc_e_129[] =
+ {
+ { 5, 12, 0}, { 5, 11, 1}, { 5, 10, -1}, { 5, 9, 2},
+ { 5, 8, -2}, { 5, 7, 3}, { 5, 6, -3}, { 5, 4, 4},
+@@ -953,7 +953,7 @@
+ {16, 41276,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_f_129[] =
++static const huff_entry_t bitalloc_f_129[] =
+ {
+ { 6, 56, 0}, { 6, 55, 1}, { 6, 54, -1}, { 6, 52, 2},
+ { 6, 51, -2}, { 6, 50, 3}, { 6, 49, -3}, { 6, 48, 4},
+@@ -990,7 +990,7 @@
+ {15, 30252,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t bitalloc_g_129[] =
++static const huff_entry_t bitalloc_g_129[] =
+ {
+ { 4, 0, 0}, { 5, 29, 1}, { 5, 28, -1}, { 5, 25, 2},
+ { 5, 24, -2}, { 5, 21, 3}, { 5, 20, -3}, { 5, 17, 4},
+@@ -1027,7 +1027,7 @@
+ {13, 7712,-64}, { 0, 0, 0}
+ };
+
+-huff_entry_t *bitalloc_select[11][8] =
++static const huff_entry_t *const bitalloc_select[11][8] =
+ {
+ { 0 },
+ { bitalloc_a_3, 0 },
+@@ -1047,7 +1047,7 @@
+ bitalloc_e_129, bitalloc_f_129, bitalloc_g_129, 0 },
+ };
+
+-static int InverseQ( dca_state_t * state, huff_entry_t * huff )
++static int InverseQ( dca_state_t * state, const huff_entry_t * huff )
+ {
+ int value = 0;
+ int length = 0, j;
+--- libdca.orig/libdca/tables_quantization.h
++++ libdca/libdca/tables_quantization.h
+@@ -21,7 +21,7 @@
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+
+-int scale_factor_quant6[] =
++static const int scale_factor_quant6[] =
+ {
+ 1, 2, 2, 3, 3, 4, 6, 7,
+ 10, 12, 16, 20, 26, 34, 44, 56,
+@@ -33,7 +33,7 @@
+ 1819701, 2344229, 3019952, 3890451, 5011872, 6456542, 8317638, 0
+ };
+
+-int scale_factor_quant7[] =
++static const int scale_factor_quant7[] =
+ {
+ 1, 1, 2, 2, 2, 2, 3, 3,
+ 3, 4, 4, 5, 6, 7, 7, 8,
+@@ -54,7 +54,7 @@
+ };
+
+ /* 20bits unsigned fractional binary codes */
+-int lossy_quant[] =
++static const int lossy_quant[] =
+ {
+ 0, 6710886, 4194304, 3355443, 2474639, 2097152, 1761608, 1426063,
+ 796918, 461373, 251658, 146801, 79692, 46137, 27263, 16777,
+@@ -62,7 +62,7 @@
+ 84, 42, 21, 0, 0, 0, 0, 0
+ };
+
+-double lossy_quant_d[] =
++static const double lossy_quant_d[] =
+ {
+ 0, 1.6, 1.0, 0.8, 0.59, 0.50, 0.42, 0.34,
+ 0.19, 0.11, 0.06, 0.035, 0.019, 0.011, 0.0065, 0.0040,
+@@ -71,7 +71,7 @@
+ };
+
+ /* 20bits unsigned fractional binary codes */
+-int lossless_quant[] =
++static const int lossless_quant[] =
+ {
+ 0, 4194304, 2097152, 1384120, 1048576, 696254, 524288, 348127,
+ 262144, 131072, 65431, 33026, 16450, 8208, 4100, 2049,
+@@ -79,7 +79,7 @@
+ 4, 2, 1, 0, 0, 0, 0, 0
+ };
+
+-double lossless_quant_d[] =
++static const double lossless_quant_d[] =
+ {
+ 0, 1.0, 0.5, 0.33, 0.25, 0.166, 0.125,
+ 0.083, 0.0625, 0.03125, 0.0156, 7.874E-3, 3.922E-3, 1.957E-3,
+--- libdca.orig/libdca/parse.c
++++ libdca/libdca/parse.c
+@@ -548,7 +548,7 @@
+ /* Scale factors */
+ for (j = 0; j < state->prim_channels; j++)
+ {
+- int *scale_table;
++ const int *scale_table;
+ int scale_sum;
+
+ for (k = 0; k < state->subband_activity[j]; k++)
+@@ -761,7 +761,7 @@
+ int k, l;
+ int subsubframe = state->current_subsubframe;
+
+- double *quant_step_table;
++ const double *quant_step_table;
+
+ /* FIXME */
+ double subband_samples[DCA_PRIM_CHANNELS_MAX][DCA_SUBBANDS][8];
+@@ -1145,7 +1145,7 @@
+ double samples_in[32][8], sample_t *samples_out,
+ double scale, sample_t bias)
+ {
+- double *prCoeff;
++ const double *prCoeff;
+ int i, j, k;
+ double raXin[32];
+
+@@ -1236,7 +1236,7 @@
+ */
+
+ int nDeciFactor, k, J;
+- double *prCoeff;
++ const double *prCoeff;
+
+ int NumFIRCoef = 512; /* Number of FIR coefficients */
+ int nInterpIndex = 0; /* Index to the interpolated samples */
diff --git a/src/libdca-2-normalisation-factor-sqrt2+output-bias.patch b/src/libdca-2-normalisation-factor-sqrt2+output-bias.patch
new file mode 100644
index 0000000..2d4cdb5
--- /dev/null
+++ b/src/libdca-2-normalisation-factor-sqrt2+output-bias.patch
@@ -0,0 +1,112 @@
+This file is part of MXE.
+See index.html for further information.
+
+Taken from libdca svn: svn://svn.videolan.org/libdca/trunk.
+
+r84 | gbazin | 2008-06-01 16:13:33 +0000 (Sun, 01 Jun 2008) | 3 lines
+ * libdca/parse.c: Change output normalisation factor from 3/2 to sqrt(2).
+ Thanks to Alexander E. Patrakov for finding that this is the proper normalisation factor.
+ Fixed a bug where the output bias wasn't applied when downmixing wasn't being done.
+
+--- libdca.orig/libdca/parse.c
++++ libdca/libdca/parse.c
+@@ -59,12 +59,11 @@
+ static int decode_blockcode (int code, int levels, int *values);
+
+ static void qmf_32_subbands (dca_state_t * state, int chans,
+- double samples_in[32][8], sample_t *samples_out,
+- double rScale, sample_t bias);
++ double samples_in[32][8], sample_t *samples_out);
+
+ static void lfe_interpolation_fir (int nDecimationSelect, int nNumDeciSample,
+ double *samples_in, sample_t *samples_out,
+- double rScale, sample_t bias );
++ sample_t bias);
+
+ static void pre_calc_cosmod( dca_state_t * state );
+
+@@ -123,7 +122,9 @@
+ bitstream_get (state, 1);
+
+ *frame_length = (bitstream_get (state, 7) + 1) * 32;
++ if (*frame_length < 6 * 32) return 0;
+ frame_size = bitstream_get (state, 14) + 1;
++ if (frame_size < 96) return 0;
+ if (!state->word_mode) frame_size = frame_size * 8 / 14 * 2;
+
+ /* Audio channel arrangement */
+@@ -981,14 +982,7 @@
+ /* 32 subbands QMF */
+ for (k = 0; k < state->prim_channels; k++)
+ {
+- /*static double pcm_to_float[8] =
+- {32768.0, 32768.0, 524288.0, 524288.0, 0, 8388608.0, 8388608.0};*/
+-
+- qmf_32_subbands (state, k,
+- subband_samples[k],
+- &state->samples[256*k],
+- /*WTF ???*/ 32768.0*3/2/*pcm_to_float[state->source_pcm_res]*/,
+- 0/*state->bias*/);
++ qmf_32_subbands (state, k, subband_samples[k], &state->samples[256*k]);
+ }
+
+ /* Down/Up mixing */
+@@ -1000,6 +994,10 @@
+ {
+ dca_downmix (state->samples, state->amode, state->output, state->bias,
+ state->clev, state->slev);
++ } else if (state->bias)
++ {
++ for ( k = 0; k < 256*state->prim_channels; k++ )
++ state->samples[k] += state->bias;
+ }
+
+ /* Generate LFE samples for this subsubframe FIXME!!! */
+@@ -1011,8 +1009,7 @@
+ lfe_interpolation_fir (state->lfe, 2 * state->lfe,
+ state->lfe_data + lfe_samples +
+ 2 * state->lfe * subsubframe,
+- &state->samples[256*i_channels],
+- 8388608.0, state->bias);
++ &state->samples[256*i_channels], state->bias);
+ /* Outputs 20bits pcm samples */
+ }
+
+@@ -1142,9 +1139,9 @@
+ }
+
+ static void qmf_32_subbands (dca_state_t * state, int chans,
+- double samples_in[32][8], sample_t *samples_out,
+- double scale, sample_t bias)
++ double samples_in[32][8], sample_t *samples_out)
+ {
++ static const double scale = 1.4142135623730951 /* sqrt(2) */ * 32768.0;
+ const double *prCoeff;
+ int i, j, k;
+ double raXin[32];
+@@ -1211,7 +1208,7 @@
+
+ /* Create 32 PCM output samples */
+ for (i=0;i<32;i++)
+- samples_out[nChIndex++] = subband_fir_hist2[i] / scale + bias;
++ samples_out[nChIndex++] = subband_fir_hist2[i] / scale;
+
+ /* Update working arrays */
+ for (i=511;i>=32;i--)
+@@ -1225,7 +1222,7 @@
+
+ static void lfe_interpolation_fir (int nDecimationSelect, int nNumDeciSample,
+ double *samples_in, sample_t *samples_out,
+- double scale, sample_t bias)
++ sample_t bias)
+ {
+ /* samples_in: An array holding decimated samples.
+ * Samples in current subframe starts from samples_in[0],
+@@ -1235,6 +1232,7 @@
+ * samples_out: An array holding interpolated samples
+ */
+
++ static const double scale = 8388608.0;
+ int nDeciFactor, k, J;
+ const double *prCoeff;
+
diff --git a/src/libdca-3-sanity-check-for-subframes-and-prim_channels.patch b/src/libdca-3-sanity-check-for-subframes-and-prim_channels.patch
new file mode 100644
index 0000000..25bdb4c
--- /dev/null
+++ b/src/libdca-3-sanity-check-for-subframes-and-prim_channels.patch
@@ -0,0 +1,27 @@
+This file is part of MXE.
+See index.html for further information.
+
+Taken from libdca svn: svn://svn.videolan.org/libdca/trunk.
+
+r87 | sam | 2008-07-18 19:22:47 +0000 (Fri, 18 Jul 2008) | 2 lines
+ * parse.c: sanity check for subframes and prim_channels to avoid crashes
+ with invalid streams.
+
+--- libdca.orig/libdca/parse.c
++++ libdca/libdca/parse.c
+@@ -305,8 +305,15 @@
+
+ /* Primary audio coding header */
+ state->subframes = bitstream_get (state, 4) + 1;
++
++ if (state->subframes > DCA_SUBFRAMES_MAX)
++ state->subframes = DCA_SUBFRAMES_MAX;
++
+ state->prim_channels = bitstream_get (state, 3) + 1;
+
++ if (state->prim_channels > DCA_PRIM_CHANNELS_MAX)
++ state->prim_channels = DCA_PRIM_CHANNELS_MAX;
++
+ #ifdef DEBUG
+ fprintf (stderr, "subframes: %i\n", state->subframes);
+ fprintf (stderr, "prim channels: %i\n", state->prim_channels);
diff --git a/src/libdca-4-fix-random-crashes-caused-by-invalid-32-bit-shifts.patch b/src/libdca-4-fix-random-crashes-caused-by-invalid-32-bit-shifts.patch
new file mode 100644
index 0000000..f247802
--- /dev/null
+++ b/src/libdca-4-fix-random-crashes-caused-by-invalid-32-bit-shifts.patch
@@ -0,0 +1,48 @@
+This file is part of MXE.
+See index.html for further information.
+
+Taken from libdca svn: svn://svn.videolan.org/libdca/trunk.
+
+r88 | sam | 2008-07-19 22:26:13 +0000 (Sat, 19 Jul 2008) | 2 lines
+ * bitstream.c: fix random crashes caused by invalid 32-bit shifts on 32-bit
+ values.
+
+--- libdca.orig/libdca/bitstream.c
++++ libdca/libdca/bitstream.c
+@@ -25,6 +25,7 @@
+
+ #include "config.h"
+
++#include <stdio.h>
+ #include <inttypes.h>
+
+ #include "dca.h"
+@@ -46,7 +47,7 @@
+ state->bigendian_mode = bigendian_mode;
+ bitstream_get (state, align * 8);
+ }
+-#include<stdio.h>
++
+ static inline void bitstream_fill_current (dca_state_t * state)
+ {
+ uint32_t tmp;
+@@ -76,12 +77,14 @@
+
+ uint32_t dca_bitstream_get_bh (dca_state_t * state, uint32_t num_bits)
+ {
+- uint32_t result;
+-
+- num_bits -= state->bits_left;
++ uint32_t result = 0;
+
+- result = ((state->current_word << (32 - state->bits_left)) >>
+- (32 - state->bits_left));
++ if (state->bits_left)
++ {
++ num_bits -= state->bits_left;
++ result = ((state->current_word << (32 - state->bits_left)) >>
++ (32 - state->bits_left));
++ }
+
+ if ( !state->word_mode && num_bits > 28 ) {
+ bitstream_fill_current (state);
diff --git a/src/libdca-5-avoid-crashing-with-invalid-frames.patch b/src/libdca-5-avoid-crashing-with-invalid-frames.patch
new file mode 100644
index 0000000..cd14444
--- /dev/null
+++ b/src/libdca-5-avoid-crashing-with-invalid-frames.patch
@@ -0,0 +1,31 @@
+This file is part of MXE.
+See index.html for further information.
+
+Taken from libdca svn: svn://svn.videolan.org/libdca/trunk.
+
+r89 | sam | 2008-07-19 22:26:17 +0000 (Sat, 19 Jul 2008) | 2 lines
+ * parse.c: avoid crashing with invalid frames setting a bitalloc_huffman
+ component to 7.
+
+--- libdca.orig/libdca/parse.c
++++ libdca/libdca/parse.c
+@@ -364,7 +364,10 @@
+ for (i = 0; i < state->prim_channels; i++)
+ {
+ state->bitalloc_huffman[i] = bitstream_get (state, 3);
+- /* if (state->bitalloc_huffman[i] == 7) bailout */
++ /* There might be a way not to trash the whole frame, but for
++ * now we must bail out or we will buffer overflow later. */
++ if (state->bitalloc_huffman[i] == 7)
++ return 1;
+ #ifdef DEBUG
+ fprintf (stderr, "bit allocation quantizer: %i\n",
+ state->bitalloc_huffman[i]);
+@@ -541,6 +544,7 @@
+ k < state->vq_start_subband[j] &&
+ state->bitalloc[j][k] > 0)
+ {
++ /* tmode cannot overflow since transient_huffman[j] < 4 */
+ state->transition_mode[j][k] = InverseQ (state,
+ tmode[state->transient_huffman[j]]);
+ }
diff --git a/src/libdca-test.c b/src/libdca-test.c
new file mode 100644
index 0000000..3028f34
--- /dev/null
+++ b/src/libdca-test.c
@@ -0,0 +1,23 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <stdint.h>
+#include <dca.h>
+
+int main(int argc, char *argv[])
+{
+ dca_state_t *state;
+
+ (void)argc;
+ (void)argv;
+
+ state = dca_init(0);
+ if (!state) {
+ return 1;
+ }
+
+ dca_free(state);
+ return 0;
+}
diff --git a/src/libdca.mk b/src/libdca.mk
new file mode 100644
index 0000000..1a9174c
--- /dev/null
+++ b/src/libdca.mk
@@ -0,0 +1,31 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libdca
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.0.5
+$(PKG)_CHECKSUM := 3fa5188eaaa2fc83fb9c4196f6695a23cb17f3bc
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
+$(PKG)_URL := http://download.videolan.org/pub/videolan/libdca/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ echo 'TODO: write update script for libdca.' >&2;
+ echo $(libdca_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --enable-static \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-libdca.exe' \
+ `'$(TARGET)-pkg-config' libdca --cflags --libs`
+endef
diff --git a/src/libdvdcss.mk b/src/libdvdcss.mk
new file mode 100644
index 0000000..9206d0a
--- /dev/null
+++ b/src/libdvdcss.mk
@@ -0,0 +1,25 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libdvdcss
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.2.13
+$(PKG)_CHECKSUM := 1a4a5e55c7529da46386c1c333340eee2c325a77
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.bz2
+$(PKG)_URL := http://download.videolan.org/pub/libdvdcss/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://download.videolan.org/pub/libdvdcss/last/' | \
+ $(SED) -n 's,.*libdvdcss-\([0-9][^<]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --disable-doc
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/libdvdnav.mk b/src/libdvdnav.mk
new file mode 100644
index 0000000..7e78aea
--- /dev/null
+++ b/src/libdvdnav.mk
@@ -0,0 +1,40 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libdvdnav
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 4d3753f
+$(PKG)_CHECKSUM := 0717da4d0997cc43417afd58d9fc7ef35711c20e
+$(PKG)_SUBDIR := mirror-$(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/mirror/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
+# Use Git snapshot for now because of its crash and assertion fixes
+# Commented out until new version based on Git is released
+# $(PKG)_VERSION := 4.2.1
+# $(PKG)_CHECKSUM :=
+# $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+# $(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
+# $(PKG)_URL := https://dvdnav.mplayerhq.hu/releases/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc libdvdread
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'https://github.com/mirror/libdvdnav/commits/master' | \
+ $(SED) -n 's#.*<span class="sha">\([^<]\{7\}\)[^<]\{3\}<.*#\1#p' | \
+ head -1
+endef
+
+define $(PKG)_UPDATE_RELEASE
+ $(WGET) -q -O- 'https://dvdnav.mplayerhq.hu/releases/' | \
+ $(SED) -n 's,.*libdvdnav-\([0-9][^<]*\)\.tar.*,\1,p' | \
+ grep -v 'alpha\|beta\|rc' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && autoreconf -fi
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS=-no-undefined
+ $(MAKE) -C '$(1)' -j 1 install LDFLAGS=-no-undefined
+endef
diff --git a/src/libdvdread.mk b/src/libdvdread.mk
new file mode 100644
index 0000000..fe08a2a
--- /dev/null
+++ b/src/libdvdread.mk
@@ -0,0 +1,45 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libdvdread
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 7c74365
+$(PKG)_CHECKSUM := 99b12a4147064df85a7e5d6b0f00c00342c520a4
+$(PKG)_SUBDIR := mirror-$(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/mirror/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
+# Use Git snapshot for now because of its crash and assertion fixes
+# Commented out until new version based on Git is released
+# $(PKG)_VERSION := 4.2.1
+# $(PKG)_CHECKSUM :=
+# $(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+# $(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
+# $(PKG)_URL := https://dvdnav.mplayerhq.hu/releases/$($(PKG)_FILE)
+
+# libdvdread supports libdvdcss either by dynamic loading (dlfcn-win32) or
+# directly linking to libdvdcss. We directly links to the library here.
+$(PKG)_DEPS := gcc libdvdcss
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'https://github.com/mirror/libdvdread/commits/master' | \
+ $(SED) -n 's#.*<span class="sha">\([^<]\{7\}\)[^<]\{3\}<.*#\1#p' | \
+ head -1
+endef
+
+define $(PKG)_UPDATE_RELEASE
+ $(WGET) -q -O- 'https://dvdnav.mplayerhq.hu/releases/' | \
+ $(SED) -n 's,.*libdvdread-\([0-9][^<]*\)\.tar.*,\1,p' | \
+ grep -v 'alpha\|beta\|rc' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && autoreconf -fi
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --with-libdvdcss \
+ --disable-apidoc
+ $(MAKE) -C '$(1)' -j '$(JOBS)' LDFLAGS=-no-undefined
+ $(MAKE) -C '$(1)' -j 1 install LDFLAGS=-no-undefined
+endef
diff --git a/src/libffi.mk b/src/libffi.mk
index 373526e..7d88a32 100644
--- a/src/libffi.mk
+++ b/src/libffi.mk
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)/$(TARGET)' -j '$(JOBS)'
$(MAKE) -C '$(1)/$(TARGET)' -j 1 install
diff --git a/src/libftdi1-1-dont-build-tests.patch b/src/libftdi1-1-dont-build-tests.patch
new file mode 100644
index 0000000..bba3a44
--- /dev/null
+++ b/src/libftdi1-1-dont-build-tests.patch
@@ -0,0 +1,14 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff -Naur a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt.orig 2013-08-22 17:27:01.000000000 +0200
++++ b/CMakeLists.txt 2013-08-22 17:27:07.000000000 +0200
+@@ -143,7 +143,6 @@
+ add_subdirectory(ftdi_eeprom)
+ add_subdirectory(examples)
+ add_subdirectory(packages)
+-add_subdirectory(test)
+
+ # PkgConfig
+ set(prefix ${CMAKE_INSTALL_PREFIX})
diff --git a/src/libftdi1.mk b/src/libftdi1.mk
new file mode 100644
index 0000000..3292ee1
--- /dev/null
+++ b/src/libftdi1.mk
@@ -0,0 +1,25 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libftdi1
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.0
+$(PKG)_CHECKSUM := 5be76cfd7cd36c5291054638f7caf4137303386f
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://www.intra2net.com/en/developer/libftdi/download/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc libusb1
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://www.intra2net.com/en/developer/libftdi/download.php' | \
+ $(SED) -n 's,.*libftdi1-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && cmake . \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DLIBUSB_INCLUDE_DIR=$(PREFIX)/$(TARGET)/include/libusb-1.0
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install VERBOSE=1
+endef
diff --git a/src/libgcrypt-1-mingw-w64.patch b/src/libgcrypt-1-mingw-w64.patch
index df09b24..634c3c6 100644
--- a/src/libgcrypt-1-mingw-w64.patch
+++ b/src/libgcrypt-1-mingw-w64.patch
@@ -1,46 +1,86 @@
This file is part of MXE.
See index.html for further information.
-These patches have been taken from http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git
+From 147c86d57e45bc3d4cafddbde00c447ea4610c47 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Mon, 3 Jun 2013 11:24:12 +0200
+Subject: [PATCH 1/2] avoid accidental inclusion of old winsock.h
-http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-mingw64-use-correct-datatype-for-GetProcessWorkingSet.patch
+taken from http://permalink.gmane.org/gmane.comp.encryption.gpg.libgcrypt.devel/2834
---- a/random/rndw32.c.orig 2011-07-04 19:11:18.137525831 +0200
-+++ b/random/rndw32.c 2011-07-04 19:11:40.785404249 +0200
-@@ -887,7 +887,7 @@
- {
- HANDLE handle;
- FILETIME creationTime, exitTime, kernelTime, userTime;
-- DWORD minimumWorkingSetSize, maximumWorkingSetSize;
-+ SIZE_T minimumWorkingSetSize, maximumWorkingSetSize;
-
- handle = GetCurrentThread ();
- GetThreadTimes (handle, &creationTime, &exitTime,
+/src/gcrypt.h.in:# include <winsock2.h> implicitly includes
+windows.h. Avoid including windows.h explicitly before
+winsock2.h, to avoid implicit inclusion of conflicting winsock.h
+from windows.h.
+diff --git a/random/rndw32.c b/random/rndw32.c
+index f8a83b6..d6c8e34 100644
+--- a/random/rndw32.c
++++ b/random/rndw32.c
+@@ -78,7 +78,6 @@
+ #include <stdint.h>
+ #endif
+
+-#include <windows.h>
+
+
+ #include "types.h"
+diff --git a/src/ath.h b/src/ath.h
+index 8769551..1d6be15 100644
+--- a/src/ath.h
++++ b/src/ath.h
+@@ -24,7 +24,6 @@
+ #include <config.h>
+
+ #ifdef _WIN32
+-# include <windows.h>
+ #else /* !_WIN32 */
+ # ifdef HAVE_SYS_SELECT_H
+ # include <sys/select.h>
+diff --git a/tests/benchmark.c b/tests/benchmark.c
+index 106e01b..d7a6188 100644
+--- a/tests/benchmark.c
++++ b/tests/benchmark.c
+@@ -25,7 +25,6 @@
+ #include <time.h>
+ #include <stdarg.h>
+ #ifdef _WIN32
+-#include <windows.h>
+ #else
+ #include <sys/times.h>
+ #endif
+--
+1.8.4.5
-http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-correct-def-file.patch
---- a/src/libgcrypt.def.orig 2012-02-28 00:16:33.422552508 +0100
-+++ b/src/libgcrypt.def 2012-02-28 00:16:59.188018940 +0100
-@@ -1,3 +1,4 @@
-+EXPORTS
- ;; libgcrypt.defs - Exported symbols for W32
- ;; Copyright (C) 2003, 2007 Free Software Foundation, Inc.
- ;;
-@@ -22,7 +23,6 @@
- ;; never be changed. Also check libgcrypt.vers and visibility.h.
+From 446a9c19d4c307e319a08633c08b2f62e69230fa Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Fri, 7 Feb 2014 21:22:10 +0100
+Subject: [PATCH 2/2] mingw-w64 compatibility
+
+
+diff --git a/mpi/generic/mpi-asm-defs.h b/mpi/generic/mpi-asm-defs.h
+index 13424e2..74a7501 100644
+--- a/mpi/generic/mpi-asm-defs.h
++++ b/mpi/generic/mpi-asm-defs.h
+@@ -1,8 +1,11 @@
+ /* This file defines some basic constants for the MPI machinery. We
+ * need to define the types on a per-CPU basis, so it is done with
+ * this file here. */
++#ifdef _WIN64
++#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG_LONG)
++#else
+ #define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG)
+-
++#endif
--EXPORTS
- gcry_check_version @1
- gcry_control @2
-
-http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-correct-asm-code-for-win64.patch
-
---- a/mpi/mpi-internal.h.orig 2013-01-02 12:04:49.634772462 +0100
-+++ b/mpi/mpi-internal.h 2013-01-02 12:11:41.222744150 +0100
-@@ -168,6 +168,12 @@
+diff --git a/mpi/mpi-internal.h b/mpi/mpi-internal.h
+index e75b7c6..a0f45e4 100644
+--- a/mpi/mpi-internal.h
++++ b/mpi/mpi-internal.h
+@@ -168,6 +168,12 @@ typedef int mpi_size_t; /* (must be a signed type) */
} while (0)
@@ -53,7 +93,7 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
/*-- mpiutil.c --*/
#define mpi_alloc_limb_space(n,f) _gcry_mpi_alloc_limb_space((n),(f))
mpi_ptr_t _gcry_mpi_alloc_limb_space( unsigned nlimbs, int sec );
-@@ -186,7 +192,7 @@
+@@ -186,7 +192,7 @@ void _gcry_mpi_lshift_limbs( gcry_mpi_t a, unsigned int count );
mpi_limb_t _gcry_mpih_add_1(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_add_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
@@ -62,7 +102,7 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
-@@ -194,7 +200,7 @@
+@@ -194,7 +200,7 @@ mpi_limb_t _gcry_mpih_add(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_siz
mpi_limb_t _gcry_mpih_sub_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
mpi_size_t s1_size, mpi_limb_t s2_limb );
mpi_limb_t _gcry_mpih_sub_n( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
@@ -71,7 +111,7 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
mpi_limb_t _gcry_mpih_sub(mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr, mpi_size_t s1_size,
mpi_ptr_t s2_ptr, mpi_size_t s2_size);
-@@ -216,9 +222,9 @@
+@@ -216,9 +222,9 @@ struct karatsuba_ctx {
void _gcry_mpih_release_karatsuba_ctx( struct karatsuba_ctx *ctx );
mpi_limb_t _gcry_mpih_addmul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
@@ -83,7 +123,7 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
void _gcry_mpih_mul_n( mpi_ptr_t prodp, mpi_ptr_t up, mpi_ptr_t vp,
mpi_size_t size);
mpi_limb_t _gcry_mpih_mul( mpi_ptr_t prodp, mpi_ptr_t up, mpi_size_t usize,
-@@ -235,7 +241,7 @@
+@@ -235,7 +241,7 @@ void _gcry_mpih_mul_karatsuba_case( mpi_ptr_t prodp,
/*-- mpih-mul_1.c (or xxx/cpu/ *.S) --*/
mpi_limb_t _gcry_mpih_mul_1( mpi_ptr_t res_ptr, mpi_ptr_t s1_ptr,
@@ -92,7 +132,7 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
/*-- mpih-div.c --*/
mpi_limb_t _gcry_mpih_mod_1(mpi_ptr_t dividend_ptr, mpi_size_t dividend_size,
-@@ -249,9 +255,9 @@
+@@ -249,9 +255,9 @@ mpi_limb_t _gcry_mpih_divmod_1( mpi_ptr_t quot_ptr,
/*-- mpih-shift.c --*/
mpi_limb_t _gcry_mpih_lshift( mpi_ptr_t wp, mpi_ptr_t up, mpi_size_t usize,
@@ -104,18 +144,36 @@ http://pkgs.fedoraproject.org/cgit/mingw-libgcrypt.git/plain/libgcrypt-use-corre
/* Define stuff for longlong.h. */
---- a/mpi/generic/mpi-asm-defs.h.orig 2013-01-02 15:07:53.540464492 +0100
-+++ b/mpi/generic/mpi-asm-defs.h 2013-01-02 15:08:16.720633878 +0100
-@@ -1,8 +1,11 @@
- /* This file defines some basic constants for the MPI machinery. We
- * need to define the types on a per-CPU basis, so it is done with
- * this file here. */
-+#ifdef _WIN64
-+#define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG_LONG)
-+#else
- #define BYTES_PER_MPI_LIMB (SIZEOF_UNSIGNED_LONG)
--
-+#endif
+diff --git a/random/rndw32.c b/random/rndw32.c
+index d6c8e34..b3e34f9 100644
+--- a/random/rndw32.c
++++ b/random/rndw32.c
+@@ -886,7 +886,7 @@ _gcry_rndw32_gather_random_fast (void (*add)(const void*, size_t,
+ {
+ HANDLE handle;
+ FILETIME creationTime, exitTime, kernelTime, userTime;
+- DWORD minimumWorkingSetSize, maximumWorkingSetSize;
++ SIZE_T minimumWorkingSetSize, maximumWorkingSetSize;
+ handle = GetCurrentThread ();
+ GetThreadTimes (handle, &creationTime, &exitTime,
+diff --git a/src/libgcrypt.def b/src/libgcrypt.def
+index 031b941..2f440c7 100644
+--- a/src/libgcrypt.def
++++ b/src/libgcrypt.def
+@@ -1,3 +1,4 @@
++EXPORTS
+ ;; libgcrypt.defs - Exported symbols for W32
+ ;; Copyright (C) 2003, 2007 Free Software Foundation, Inc.
+ ;;
+@@ -22,7 +23,6 @@
+ ;; never be changed. Also check libgcrypt.vers and visibility.h.
+-EXPORTS
+ gcry_check_version @1
+ gcry_control @2
+
+--
+1.8.4.5
+
diff --git a/src/libgcrypt.mk b/src/libgcrypt.mk
index 14544ea..dbb42a9 100644
--- a/src/libgcrypt.mk
+++ b/src/libgcrypt.mk
@@ -3,8 +3,8 @@
PKG := libgcrypt
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.5.2
-$(PKG)_CHECKSUM := c9998383532ba3e8bcaf690f2f0d65e814b48d2f
+$(PKG)_VERSION := 1.5.3
+$(PKG)_CHECKSUM := 2c6553cc17f2a1616d512d6870fe95edf6b0e26e
$(PKG)_SUBDIR := libgcrypt-$($(PKG)_VERSION)
$(PKG)_FILE := libgcrypt-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := ftp://ftp.gnupg.org/gcrypt/libgcrypt/$($(PKG)_FILE)
@@ -19,10 +19,7 @@ endef
define $(PKG)_CONFIGURE
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-gpg-error-prefix='$(PREFIX)/$(TARGET)'
endef
diff --git a/src/libglade-1-fixes.patch b/src/libglade-1-fixes.patch
new file mode 100644
index 0000000..52cd435
--- /dev/null
+++ b/src/libglade-1-fixes.patch
@@ -0,0 +1,32 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From 01e3cf1fae96edc0b5e8ccd0bf2c2ea11d0a6987 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Sun, 4 Aug 2013 23:32:15 +0200
+Subject: [PATCH] comment out production of some file for make install to
+ succeed
+
+
+diff --git a/glade/Makefile.am b/glade/Makefile.am
+index f6271f7..fae55bc 100644
+--- a/glade/Makefile.am
++++ b/glade/Makefile.am
+@@ -13,10 +13,10 @@ if OS_WIN32
+ export_symbols = -export-symbols glade.def
+
+ install-libtool-import-lib:
+- $(INSTALL) .libs/libglade-2.0.dll.a $(DESTDIR)$(libdir)
++# $(INSTALL) .libs/libglade-2.0.dll.a $(DESTDIR)$(libdir)
+
+ uninstall-libtool-import-lib:
+- -rm $(DESTDIR)$(libdir)/libglade-2.0.dll.a
++# -rm $(DESTDIR)$(libdir)/libglade-2.0.dll.a
+ else
+
+ export_symbols = -export-symbols-regex "^[^_].*"
+--
+1.8.1.2
+
diff --git a/src/libglade.mk b/src/libglade.mk
index 4f95d7d..f321d9b 100644
--- a/src/libglade.mk
+++ b/src/libglade.mk
@@ -17,6 +17,7 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
+ cd '$(1)' && autoreconf -fi -I'$(PREFIX)/$(TARGET)/share/aclocal'
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
@@ -24,5 +25,5 @@ define $(PKG)_BUILD
--prefix='$(PREFIX)/$(TARGET)' \
PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config'
$(MAKE) -C '$(1)' -j '$(JOBS)'
- $(MAKE) -C '$(1)' -j 1 install-exec
+ $(MAKE) -C '$(1)' -j 1 install
endef
diff --git a/src/libgomp.mk b/src/libgomp.mk
index 9d4ed6e..54eaa5b 100644
--- a/src/libgomp.mk
+++ b/src/libgomp.mk
@@ -16,17 +16,15 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- mkdir -p '$(1)/build/$(TARGET)/libgomp'
- cd '$(1)/build/$(TARGET)/libgomp' && '$(1)/libgomp/configure' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --target='$(TARGET)' \
+ mkdir -p '$(1).build'
+ cd '$(1).build' && '$(1)/libgomp/configure' \
+ $(MXE_CONFIGURE_OPTS) \
--prefix='$(PREFIX)' \
--enable-version-specific-runtime-libs \
--with-gnu-ld \
- --disable-shared \
- LIBS='-lws2_32'
- $(MAKE) -C '$(1)/build/$(TARGET)/libgomp' -j '$(JOBS)' install
+ LIBS='-lws2_32' \
+ ac_cv_prog_FC='$(TARGET)-gfortran'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)' install
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
diff --git a/src/libgpg_error.mk b/src/libgpg_error.mk
index 42abb35..83213d4 100644
--- a/src/libgpg_error.mk
+++ b/src/libgpg_error.mk
@@ -18,12 +18,10 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-nls \
--disable-languages
$(MAKE) -C '$(1)/src' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)/src' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ ln -sf '$(PREFIX)/$(TARGET)/bin/gpg-error-config' '$(PREFIX)/bin/$(TARGET)-gpg-error-config'
endef
diff --git a/src/libgsf.mk b/src/libgsf.mk
index 55731c6..f2190c0 100644
--- a/src/libgsf.mk
+++ b/src/libgsf.mk
@@ -3,8 +3,8 @@
PKG := libgsf
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.14.27
-$(PKG)_CHECKSUM := b6082b71bf9d6e1cdafde9628cae58fcedc4a8fd
+$(PKG)_VERSION := 1.14.28
+$(PKG)_CHECKSUM := 6e361410a8922bd5970add23398868abab47608f
$(PKG)_SUBDIR := libgsf-$($(PKG)_VERSION)
$(PKG)_FILE := libgsf-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/libgsf/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -22,10 +22,7 @@ define $(PKG)_BUILD
$(SED) -i 's,^\(Requires:.*\),\1 gio-2.0,' '$(1)'/libgsf-1.pc.in
echo 'Libs.private: -lz -lbz2' >> '$(1)'/libgsf-1.pc.in
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-nls \
--disable-gtk-doc \
--without-python \
diff --git a/src/libiconv.mk b/src/libiconv.mk
index 1ac605c..c939e29 100644
--- a/src/libiconv.mk
+++ b/src/libiconv.mk
@@ -20,9 +20,7 @@ endef
define $(PKG)_BUILD
$(SED) -i 's, sed , $(SED) ,g' '$(1)/windows/windres-options'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--disable-nls
$(MAKE) -C '$(1)/libcharset' -j '$(JOBS)' install
$(MAKE) -C '$(1)/lib' -j '$(JOBS)' install
diff --git a/src/libidn.mk b/src/libidn.mk
index 316ccd1..c5fe124 100644
--- a/src/libidn.mk
+++ b/src/libidn.mk
@@ -3,8 +3,8 @@
PKG := libidn
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.27
-$(PKG)_CHECKSUM := 67364d0cc331f2ea93f09a1b436dc606db16ad4d
+$(PKG)_VERSION := 1.28
+$(PKG)_CHECKSUM := 725587211b229c156e29fa2ad116b0ef71a7ca17
$(PKG)_SUBDIR := libidn-$($(PKG)_VERSION)
$(PKG)_FILE := libidn-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := ftp://ftp.gnu.org/gnu/libidn/$($(PKG)_FILE)
@@ -19,11 +19,8 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--disable-csharp \
- --prefix='$(PREFIX)/$(TARGET)' \
--with-libiconv-prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/libircclient-1-fixes.patch b/src/libircclient-1-fixes.patch
index da48eb5..b22e428 100644
--- a/src/libircclient-1-fixes.patch
+++ b/src/libircclient-1-fixes.patch
@@ -3,58 +3,19 @@ See index.html for further information.
Contains ad hoc patches for cross building.
-From 06b27e262de1d156ea31b52762ed372211b72de9 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Mon, 23 Jan 2012 08:26:14 +0100
+From aab6124359bbf8d0b3003ccf4adc791e0d921aa3 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 8 Oct 2013 22:37:07 +0200
Subject: [PATCH 1/2] use the proper WIN32 define
-diff --git a/examples/censor.cpp b/examples/censor.cpp
-index 0c15f4c..c784040 100644
---- a/examples/censor.cpp
-+++ b/examples/censor.cpp
-@@ -32,7 +32,7 @@
- #include <errno.h>
- #include <string.h>
-
--#if !defined (WIN32)
-+#if !defined (_WIN32)
- #include <unistd.h>
- #endif
-
-diff --git a/examples/irctest.c b/examples/irctest.c
-index bd6dbc3..08d2ba7 100644
---- a/examples/irctest.c
-+++ b/examples/irctest.c
-@@ -51,7 +51,7 @@ void addlog (const char * fmt, ...)
- va_list va_alist;
-
- va_start (va_alist, fmt);
--#if defined (WIN32)
-+#if defined (_WIN32)
- _vsnprintf (buf, sizeof(buf), fmt, va_alist);
- #else
- vsnprintf (buf, sizeof(buf), fmt, va_alist);
-diff --git a/examples/spammer.c b/examples/spammer.c
-index ae9c2c7..2a0861b 100644
---- a/examples/spammer.c
-+++ b/examples/spammer.c
-@@ -17,7 +17,7 @@
- #include <errno.h>
- #include <string.h>
-
--#if defined (WIN32)
-+#if defined (_WIN32)
- #include <windows.h>
-
- #define CREATE_THREAD(id,func,param) (CreateThread(0, 0, func, param, 0, id) == 0)
diff --git a/include/libircclient.h b/include/libircclient.h
-index 2dcd44c..af7d769 100644
+index 250a0d1..7ff83be 100644
--- a/include/libircclient.h
+++ b/include/libircclient.h
-@@ -44,7 +44,7 @@
- #ifndef INCLUDE_LIBIRC_H
- #define INCLUDE_LIBIRC_H
+@@ -46,7 +46,7 @@
+
+ #include <stdlib.h>
-#if !defined (WIN32)
+#if !defined (_WIN32)
@@ -62,20 +23,20 @@ index 2dcd44c..af7d769 100644
#else
#include <winsock2.h>
--
-1.7.8.3
+1.8.1.4
-From 1a54c4dda67b99c1c0c0c68b45a395b741cb7030 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Sun, 22 Jan 2012 22:39:23 +0100
+From 1ac4521bd869d7cb3a82640d44f80cb9f9388eb7 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 8 Oct 2013 22:37:29 +0200
Subject: [PATCH 2/2] fix missing header
diff --git a/include/libircclient.h b/include/libircclient.h
-index af7d769..57c8516 100644
+index 7ff83be..677f41f 100644
--- a/include/libircclient.h
+++ b/include/libircclient.h
-@@ -131,6 +131,7 @@ typedef void (*irc_dcc_callback_t) (irc_session_t * session, irc_dcc_t id, int s
+@@ -133,6 +133,7 @@ typedef void (*irc_dcc_callback_t) (irc_session_t * session, irc_dcc_t id, int s
#include "libirc_errors.h"
#include "libirc_events.h"
#include "libirc_options.h"
@@ -84,5 +45,5 @@ index af7d769..57c8516 100644
--
-1.7.8.3
+1.8.1.4
diff --git a/src/libircclient.mk b/src/libircclient.mk
index 4f2b5dc..ac114a4 100644
--- a/src/libircclient.mk
+++ b/src/libircclient.mk
@@ -5,8 +5,8 @@
PKG := libircclient
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.6
-$(PKG)_CHECKSUM := 10fb7a2478f6d668dce2d7fb5cd5a35ea8f53ed4
+$(PKG)_VERSION := 1.7
+$(PKG)_CHECKSUM := 02f1502d486c89ca26a59d6ba2cc5a4f92be95b1
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
diff --git a/src/liblo.mk b/src/liblo.mk
index 3b4dd99..1e02853 100644
--- a/src/liblo.mk
+++ b/src/liblo.mk
@@ -3,8 +3,8 @@
PKG := liblo
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.27
-$(PKG)_CHECKSUM := bbd92eb9ab7316ee3f75b6b887b6f853b848c1e5
+$(PKG)_VERSION := 0.28rc
+$(PKG)_CHECKSUM := 2296e49472ab6ed3c323af4812e26655d4f5b9e0
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
diff --git a/src/libltdl.mk b/src/libltdl.mk
new file mode 100644
index 0000000..345e136
--- /dev/null
+++ b/src/libltdl.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libltdl
+$(PKG)_IGNORE = $(libtool_IGNORE)
+$(PKG)_VERSION = $(libtool_VERSION)
+$(PKG)_CHECKSUM = $(libtool_CHECKSUM)
+$(PKG)_SUBDIR = $(libtool_SUBDIR)
+$(PKG)_FILE = $(libtool_FILE)
+$(PKG)_URL = $(libtool_URL)
+$(PKG)_DEPS := gcc dlfcn-win32
+
+define $(PKG)_UPDATE
+ echo $(libtool_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)/libltdl' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --enable-ltdl-install
+ $(MAKE) -C '$(1)/libltdl' -j '$(JOBS)'
+ $(MAKE) -C '$(1)/libltdl' -j 1 install
+endef
diff --git a/src/libmad.mk b/src/libmad.mk
index 77560f5..cfcbae3 100644
--- a/src/libmad.mk
+++ b/src/libmad.mk
@@ -19,8 +19,6 @@ endef
define $(PKG)_BUILD
$(SED) -i '/-fforce-mem/d' '$(1)'/configure
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
- $(MAKE) -C '$(1)' -j '$(JOBS)' install
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install LDFLAGS='-no-undefined'
endef
diff --git a/src/libmicrohttpd-1-fixes.patch b/src/libmicrohttpd-1-fixes.patch
new file mode 100644
index 0000000..31891be
--- /dev/null
+++ b/src/libmicrohttpd-1-fixes.patch
@@ -0,0 +1,27 @@
+This file is part of MXE.
+See index.html for further information.
+
+Contains ad hoc patches for cross building.
+
+From e4d4a423ea51d159b7a214b2aa2f6f36ab49df70 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Tue, 12 Nov 2013 00:45:28 +1100
+Subject: [PATCH] add requirements to pkg-config file
+
+
+diff --git a/libmicrohttpd.pc.in b/libmicrohttpd.pc.in
+index 54ce379..5cb9321 100644
+--- a/libmicrohttpd.pc.in
++++ b/libmicrohttpd.pc.in
+@@ -6,7 +6,7 @@ includedir=@includedir@
+ Name: libmicrohttpd
+ Description: A library for creating an embedded HTTP server
+ Version: @VERSION@
+-Requires:
++Requires: pthreads plibc
+ Conflicts:
+ Libs: -L${libdir} -lmicrohttpd
+ Libs.private: @MHD_LIBDEPS@
+--
+1.8.4
+
diff --git a/src/libmicrohttpd-test.c b/src/libmicrohttpd-test.c
new file mode 100644
index 0000000..3157060
--- /dev/null
+++ b/src/libmicrohttpd-test.c
@@ -0,0 +1,46 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <stdio.h>
+#include <sys/types.h>
+#include <microhttpd.h>
+
+#define PORT 8888
+
+int answer_to_connection (void *cls, struct MHD_Connection *connection,
+ const char *url,
+ const char *method, const char *version,
+ const char *upload_data,
+ size_t *upload_data_size, void **con_cls)
+{
+ const char *page = "<html><body>Hello, browser!</body></html>";
+
+ struct MHD_Response *response;
+ int ret;
+
+ response = MHD_create_response_from_buffer (strlen (page),
+ (void*) page, MHD_RESPMEM_PERSISTENT);
+ ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
+ MHD_destroy_response (response);
+
+ return ret;
+}
+
+int main (int argc, char *const *argv)
+{
+ (void)argc;
+ (void)argv;
+
+ struct MHD_Daemon *daemon;
+
+ daemon = MHD_start_daemon (MHD_USE_THREAD_PER_CONNECTION, PORT, NULL, NULL,
+ &answer_to_connection, NULL, MHD_OPTION_END);
+ if (NULL == daemon) return 1;
+
+ getchar ();
+
+ MHD_stop_daemon (daemon);
+ return 0;
+}
diff --git a/src/libmicrohttpd.mk b/src/libmicrohttpd.mk
new file mode 100644
index 0000000..711ab36
--- /dev/null
+++ b/src/libmicrohttpd.mk
@@ -0,0 +1,40 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libmicrohttpd
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.9.33
+$(PKG)_CHECKSUM := 75f53089ba86b5aa4e4eeb2579c47fed6ca63c72
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/libmicrohttpd/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc plibc pthreads
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ftp.gnu.org/gnu/libmicrohttpd/?C=M;O=D' | \
+ $(SED) -n 's,.*<a href="libmicrohttpd-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --build="`config.guess`" \
+ --host='$(TARGET)' \
+ --enable-static \
+ --disable-shared \
+ CFLAGS="`'$(TARGET)-pkg-config' --cflags plibc`" \
+ LIBS="`'$(TARGET)-pkg-config' --libs plibc`"
+ $(MAKE) -C '$(1).build' -j '$(JOBS)' PROGRAMS=
+ $(MAKE) -C '$(1).build' -j 1 install PROGRAMS=
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -std=c99 -pedantic -Wno-error=unused-parameter \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-libmicrohttpd.exe' \
+ `'$(TARGET)-pkg-config' --cflags --libs libmicrohttpd`
+endef
+
+$(PKG)_BUILD_i686-w64-mingw32 =
+$(PKG)_BUILD_x86_64-w64-mingw32 =
diff --git a/src/libmng-1-fixes.patch b/src/libmng-1-fixes.patch
deleted file mode 100644
index dcf0fdb..0000000
--- a/src/libmng-1-fixes.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-Contains ad hoc patches for cross building.
-
-From 1a94342a8f86ab72b8d6c24b8ecd974d2821be04 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Thu, 3 Nov 2011 14:40:24 +0100
-Subject: [PATCH] add pkg-config file
-
-
-diff --git a/libmng.pc.in b/libmng.pc.in
-new file mode 100644
-index 0000000..1dfc9fa
---- /dev/null
-+++ b/libmng.pc.in
-@@ -0,0 +1,12 @@
-+prefix=@prefix@
-+exec_prefix=${prefix}
-+libdir=${exec_prefix}/lib
-+includedir=${prefix}/include
-+
-+Name: libmng
-+Description: The MNG library.
-+Version: @VERSION@
-+Libs: -L${libdir} -lmng
-+Libs.private: @mng_libs_private@
-+Cflags: -I${includedir}
-+Requires.private: @mng_requires_private@
---
-1.7.7
-
diff --git a/src/libmng.mk b/src/libmng.mk
index 33a9151..c1ea157 100644
--- a/src/libmng.mk
+++ b/src/libmng.mk
@@ -3,12 +3,12 @@
PKG := libmng
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.0.10
-$(PKG)_CHECKSUM := c21c84b614500ae1a41c6595d5f81c596e406ca2
+$(PKG)_VERSION := 2.0.2
+$(PKG)_CHECKSUM := 7dd35369ff5916e1823cbacef984ab1b87714b69
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)-devel/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc zlib jpeg lcms1
+$(PKG)_DEPS := gcc zlib jpeg lcms
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/libmng/files/libmng-devel/' | \
@@ -17,18 +17,8 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- $(MAKE) -C '$(1)' -j '$(JOBS)' \
- -f '$(1)'/makefiles/makefile.unix \
- CC=$(TARGET)-gcc CFLAGS='-DMNG_BUILD_SO -DMNG_FULL_CMS'
- $(TARGET)-ranlib '$(1)/libmng.a'
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/libmng.a' '$(PREFIX)/$(TARGET)/lib/'
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
- $(INSTALL) -m644 '$(1)/libmng.h' '$(1)/libmng_conf.h' '$(1)/libmng_types.h' '$(PREFIX)/$(TARGET)/include/'
- $(SED) -e 's^@prefix@^$(PREFIX)/$(TARGET)^;' \
- -e 's^@VERSION@^$(libmng_VERSION)^;' \
- -e 's^@mng_libs_private@^-ljpeg^;' \
- -e 's^@mng_requires_private@^lcms zlib^;' \
- < '$(1)/libmng.pc.in' > '$(1)/libmng.pc'
- $(INSTALL) -m644 '$(1)/libmng.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig/'
+ echo 'Requires: zlib lcms2 jpeg' >> '$(1)/libmng.pc.in'
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/libmpcdec-1-configure_ac.patch b/src/libmpcdec-1-configure_ac.patch
new file mode 100644
index 0000000..55c2725
--- /dev/null
+++ b/src/libmpcdec-1-configure_ac.patch
@@ -0,0 +1,47 @@
+diff -urN libmpcdec-1.2.6/configure.ac libmpcdec-1.2.6-patch/configure.ac
+--- libmpcdec-1.2.6/configure.ac 2007-04-17 22:05:32.000000000 +0300
++++ libmpcdec-1.2.6-patch/configure.ac 2013-12-17 15:45:49.892190871 +0200
+@@ -5,6 +5,7 @@
+ AM_CONFIG_HEADER(include/config.h)
+
+ AM_PROG_LIBTOOL
++AC_PROG_CXX
+
+ CFLAGS="$CFLAGS -O3 -fomit-frame-pointer -fPIC"
+
+@@ -58,14 +59,14 @@
+ ac_cv_c_int64_t=int64_t
+ fi
+
+-AC_FUNC_MEMCMP
+-if test "x$ac_cv_func_memcmp_working" = "xno" ; then
+- AC_MSG_ERROR([working memcmp is not available.])
+-fi
+-
+-AC_CHECK_FUNCS([memmove memset], [],
+- AC_MSG_ERROR([memset or memmove is missing.]))
+-
++dnl AC_FUNC_MEMCMP
++dnl if test "x$ac_cv_func_memcmp_working" = "xno" ; then
++dnl AC_MSG_ERROR([working memcmp is not available.])
++dnl fi
++
++dnl AC_CHECK_FUNCS([memmove memset], [],
++dnl AC_MSG_ERROR([memset or memmove is missing.]))
++dnl
+ dnl Make substitutions
+
+ AC_SUBST(VERSION)
+diff -urN libmpcdec-1.2.6/include/Makefile.am libmpcdec-1.2.6-patch/include/Makefile.am
+--- libmpcdec-1.2.6/include/Makefile.am 2007-01-09 22:22:14.000000000 +0200
++++ libmpcdec-1.2.6-patch/include/Makefile.am 2013-12-17 15:49:30.054396946 +0200
+@@ -10,7 +10,8 @@
+ mpcdec/mpcdec.h \
+ mpcdec/reader.h \
+ mpcdec/requant.h \
+- mpcdec/streaminfo.h
++ mpcdec/streaminfo.h \
++ mpcdec/config_win32.h
+
+ EXTRA_DIST = \
+ mpcdec/internal.h
diff --git a/src/libmpcdec.mk b/src/libmpcdec.mk
new file mode 100644
index 0000000..ff57872
--- /dev/null
+++ b/src/libmpcdec.mk
@@ -0,0 +1,29 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libmpcdec
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.2.6
+$(PKG)_CHECKSUM := 32139ff5cb43a18f7c99637da76703c63a55485a
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://files.musepack.net/source/$(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://files.musepack.net/source/$(PKG)-$($(PKG)_VERSION)' | \
+ $(SED) -n 's,.*$(PKG)-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ grep -v 'alpha' | \
+ grep -v 'beta' | \
+ $(SORT) -Vr | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && aclocal
+ cd '$(1)' && libtoolize
+ cd '$(1)' && autoreconf
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/libntlm.mk b/src/libntlm.mk
index 59895e8..f66824a 100644
--- a/src/libntlm.mk
+++ b/src/libntlm.mk
@@ -3,8 +3,8 @@
PKG := libntlm
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.3
-$(PKG)_CHECKSUM := 5dd798d5fb9a75656225052aa88ceb9befbbd4a0
+$(PKG)_VERSION := 1.4
+$(PKG)_CHECKSUM := b15c9ccbd3829154647b3f9d6594b1ffe4491b6f
$(PKG)_SUBDIR := libntlm-$($(PKG)_VERSION)
$(PKG)_FILE := libntlm-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.nongnu.org/libntlm/releases/$($(PKG)_FILE)
diff --git a/src/libpano13.mk b/src/libpano13.mk
index bd0a67a..38ffb37 100644
--- a/src/libpano13.mk
+++ b/src/libpano13.mk
@@ -3,7 +3,7 @@
PKG := libpano13
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.9.18_rc2
+$(PKG)_VERSION := 2.9.18
$(PKG)_CHECKSUM := 23849bdbdfc9176a2b53d157e58bd24aa0e7276e
$(PKG)_SUBDIR := $(PKG)-$(word 1,$(subst _, ,$($(PKG)_VERSION)))
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
@@ -13,6 +13,8 @@ $(PKG)_DEPS := gcc jpeg tiff libpng zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/api/file/index/project-id/96188/rss?path=/libpano13' | \
$(SED) -n 's,.*libpano13-\([0-9].*\)\.tar.*,\1,p' | \
+ grep -v beta | \
+ grep -v rc | \
tail -1
endef
diff --git a/src/libpng-test.c b/src/libpng-test.c
index f6f033f..b084de1 100644
--- a/src/libpng-test.c
+++ b/src/libpng-test.c
@@ -8,7 +8,6 @@
#include <stdio.h>
#include <stdlib.h>
-#include <unistd.h>
#include <string.h>
#include <png.h>
diff --git a/src/libpng.mk b/src/libpng.mk
index 2dcdf10..baffb58 100644
--- a/src/libpng.mk
+++ b/src/libpng.mk
@@ -3,16 +3,15 @@
PKG := libpng
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.6.1
-$(PKG)_CHECKSUM := 1abe4e377b3e7863bb0d642330bdd83f4c704cc2
+$(PKG)_VERSION := 1.6.10
+$(PKG)_CHECKSUM := adb44c93795446eaa4170bf9305b6f771eb368bc
$(PKG)_SUBDIR := libpng-$($(PKG)_VERSION)
$(PKG)_FILE := libpng-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := ftp://ftp.simplesystems.org/pub/$(PKG)/png/src/libpng16/$($(PKG)_FILE)
$(PKG)_DEPS := gcc zlib
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://libpng.git.sourceforge.net/git/gitweb.cgi?p=libpng/libpng;a=tags' | \
- grep '<a class="list name"' | \
+ $(WGET) -q -O- 'http://sourceforge.net/p/libpng/code/ref/master/tags/' | \
$(SED) -n 's,.*<a[^>]*>v\([0-9][^<]*\)<.*,\1,p' | \
grep -v alpha | \
grep -v beta | \
@@ -23,11 +22,9 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ ln -sf '$(PREFIX)/$(TARGET)/bin/libpng-config' '$(PREFIX)/bin/$(TARGET)-libpng-config'
'$(TARGET)-gcc' \
-W -Wall -Werror -std=c99 -pedantic \
diff --git a/src/librsvg-1-fixes.patch b/src/librsvg-1-fixes.patch
index dbaf5de..8e25e66 100644
--- a/src/librsvg-1-fixes.patch
+++ b/src/librsvg-1-fixes.patch
@@ -6,7 +6,7 @@ Contains an ad hoc patch for cross building.
From 1ff5a73bee660f1d61f9cdd7c8d7aff29e959c4c Mon Sep 17 00:00:00 2001
From: MXE
Date: Mon, 27 Sep 2010 12:00:52 +0200
-Subject: [PATCH] fix .pc requirements
+Subject: [PATCH 1/2] fix .pc requirements
diff --git a/librsvg.pc.in b/librsvg.pc.in
@@ -24,3 +24,35 @@ index 372f199..b6ee7a9 100644
Cflags: -I${includedir}/librsvg-@RSVG_API_VERSION@
--
1.7.1
+
+
+[PATCH 2/2] Work around use of canonicalize_file_name()
+
+
+diff -ur librsvg-2.40.0.orig/rsvg-base.c librsvg-2.40.0/rsvg-base.c
+--- librsvg-2.40.0.orig/rsvg-base.c 2013-05-11 11:19:07.000000000 +0200
++++ librsvg-2.40.0/rsvg-base.c 2013-11-09 15:24:47.865999754 +0100
+@@ -2191,7 +2191,11 @@
+ g_object_unref (base);
+
+ /* FIXME portability */
++#ifndef __MINGW32__
+ cdir = canonicalize_file_name (dir);
++#else
++ cdir = dir;
++#endif
+ g_free (dir);
+ if (cdir == NULL)
+ goto deny;
+@@ -2201,7 +2205,11 @@
+ goto deny;
+
+ /* FIXME portability */
++#ifndef __MINGW32__
+ cpath = canonicalize_file_name (path);
++#else
++ cpath = path;
++#endif
+ g_free (path);
+
+ if (cpath == NULL)
diff --git a/src/librsvg.mk b/src/librsvg.mk
index a540e3a..4bdc193 100644
--- a/src/librsvg.mk
+++ b/src/librsvg.mk
@@ -3,12 +3,12 @@
PKG := librsvg
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.37.0
-$(PKG)_CHECKSUM := 92ac16f1210e2324011039284407e17d3fda6e88
+$(PKG)_VERSION := 2.40.1
+$(PKG)_CHECKSUM := abbfed10433b26e88f18fe62a9b84d48fc00b9e1
$(PKG)_SUBDIR := librsvg-$($(PKG)_VERSION)
$(PKG)_FILE := librsvg-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/GNOME/sources/librsvg/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc glib libgsf cairo pango gtk2 libcroco
+$(PKG)_DEPS := gcc glib libgsf cairo pango gdk-pixbuf libcroco
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://git.gnome.org/browse/librsvg/refs/tags' | \
@@ -18,12 +18,8 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-pixbuf-loader \
- --disable-gtk-theme \
--disable-gtk-doc \
--enable-introspection=no
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/libsamplerate.mk b/src/libsamplerate.mk
index 3dfb81a..5959804 100644
--- a/src/libsamplerate.mk
+++ b/src/libsamplerate.mk
@@ -5,25 +5,22 @@ PKG := libsamplerate
$(PKG)_IGNORE :=
$(PKG)_VERSION := 0.1.8
$(PKG)_CHECKSUM := e5fe82c4786be2fa33ca6bd4897db4868347fe70
-$(PKG)_SUBDIR := libsamplerate-$($(PKG)_VERSION)
-$(PKG)_FILE := libsamplerate-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://www.mega-nerd.com/SRC/$($(PKG)_FILE)
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.mega-nerd.com/SRC/$(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.mega-nerd.com/SRC/download.html' | \
- $(SED) -n 's,.*libsamplerate-\([0-9][^>]*\)\.tar.*,\1,p' | \
- grep -v alpha | \
- grep -v beta | \
+ $(SED) -n 's,.*$(PKG)-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ grep -v 'alpha' | \
+ grep -v 'beta' | \
+ $(SORT) -Vr | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
- $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
- $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install LDFLAGS='-no-undefined'
endef
diff --git a/src/libsigc++.mk b/src/libsigc++.mk
index 21f10a5..fca9bdd 100644
--- a/src/libsigc++.mk
+++ b/src/libsigc++.mk
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
CXX='$(TARGET)-c++' \
PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config' \
MAKE=$(MAKE)
diff --git a/src/libsndfile.mk b/src/libsndfile.mk
index e4319f9..9b7c787 100644
--- a/src/libsndfile.mk
+++ b/src/libsndfile.mk
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-sqlite \
--enable-external-libs \
--disable-octave \
diff --git a/src/libssh2.mk b/src/libssh2.mk
index 1020b2f..9ea781b 100644
--- a/src/libssh2.mk
+++ b/src/libssh2.mk
@@ -20,9 +20,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./buildconf
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--without-openssl \
--with-libgcrypt \
PKG_CONFIG='$(TARGET)-pkg-config'
diff --git a/src/libtool.mk b/src/libtool.mk
index 558a6dd..fcc55eb 100644
--- a/src/libtool.mk
+++ b/src/libtool.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 22b71a8b5ce3ad86e1094e7285981cae10e6ff88
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc
+$(PKG)_DEPS := autoconf automake
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://ftp.gnu.org/gnu/libtool/?C=M;O=D' | \
@@ -16,12 +16,10 @@ define $(PKG)_UPDATE
head -1
endef
-define $(PKG)_BUILD
- cd '$(1)/libltdl' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
- --enable-ltdl-install
- $(MAKE) -C '$(1)/libltdl' -j '$(JOBS)'
- $(MAKE) -C '$(1)/libltdl' -j 1 install
+define $(PKG)_BUILD_$(BUILD)
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
endef
diff --git a/src/libusb1.mk b/src/libusb1.mk
new file mode 100644
index 0000000..cb946d9
--- /dev/null
+++ b/src/libusb1.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := libusb1
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.0.18
+$(PKG)_CHECKSUM := dc206a4d3eafa740753937856b507d3d913a0e9d
+$(PKG)_SUBDIR := libusbx-$($(PKG)_VERSION)
+$(PKG)_FILE := libusbx-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/libusbx/releases/$($(PKG)_VERSION)/source/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/libusbx/files/releases/' | \
+ $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
+endef
diff --git a/src/libvpx-1-fixes.patch b/src/libvpx-1-fixes.patch
index b2ede8c..b8baeb0 100644
--- a/src/libvpx-1-fixes.patch
+++ b/src/libvpx-1-fixes.patch
@@ -3,39 +3,21 @@ See index.html for further information.
Contains ad hoc patches for cross building.
-From 01c0e284b4d458fade9f8b2288863f3dd4dbc81a Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Fri, 25 May 2012 23:36:41 +0200
-Subject: [PATCH 1/4] add Libs.private to vpx.pc
-
-
-diff --git a/libs.mk b/libs.mk
-index e2ba737..209f77e 100644
---- a/libs.mk
-+++ b/libs.mk
-@@ -242,6 +242,7 @@ vpx.pc: config.mk libs.mk
- $(qexec)echo 'Requires:' >> $@
- $(qexec)echo 'Conflicts:' >> $@
- $(qexec)echo 'Libs: -L$${libdir} -lvpx' >> $@
-+ $(qexec)echo 'Libs.private: -lpthread' >> $@
- $(qexec)echo 'Cflags: -I$${includedir}' >> $@
- INSTALL-LIBS-yes += $(LIBSUBDIR)/pkgconfig/vpx.pc
- INSTALL_MAPS += $(LIBSUBDIR)/pkgconfig/%.pc %.pc
---
-1.7.11.5
-
-
-From 73c1c32c41b75a432fbe092fb621474a760d0f51 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Fri, 25 May 2012 23:40:00 +0200
-Subject: [PATCH 2/4] linking as test is not good for cross compiling
+From 1408d07fb86254ae1aded0e8cf38e7e0c2550550 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 5 Sep 2013 14:25:31 -0700
+Subject: [PATCH 1/2] Linking as test is not good for cross compiling
+Signed-off-by: Timothy Gu <timothygu99@gmail.com>
+---
+ configure | 3 ---
+ 1 file changed, 3 deletions(-)
diff --git a/configure b/configure
-index 62e1ffb..0c4faf9 100755
+index be36e56..987b2e9 100755
--- a/configure
+++ b/configure
-@@ -481,9 +481,6 @@ process_detect() {
+@@ -490,9 +490,6 @@ process_detect() {
}
fi
check_header stdio.h || die "Unable to invoke compiler: ${CC} ${CFLAGS}"
@@ -46,14 +28,25 @@ index 62e1ffb..0c4faf9 100755
check_header stdint.h
check_header pthread.h
--
-1.7.11.5
-
-
-From 88bedac576559c599f3084b4eaa61a2ef85cfd06 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Fri, 25 May 2012 23:40:55 +0200
-Subject: [PATCH 3/4] fix bin/bash
-
+1.8.1.2
+
+
+From bada4be247273378809a30bf9a0ca7d9c9d2b936 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 5 Sep 2013 14:28:28 -0700
+Subject: [PATCH 2/2] Fix /bin/bash
+
+Signed-off-by: Timothy Gu <timothygu99@gmail.com>
+---
+ build/make/armlink_adapter.sh | 2 +-
+ build/make/configure.sh | 2 +-
+ build/make/gen_asm_deps.sh | 2 +-
+ build/make/gen_msvs_def.sh | 2 +-
+ build/make/gen_msvs_proj.sh | 2 +-
+ build/make/gen_msvs_sln.sh | 2 +-
+ build/make/version.sh | 2 +-
+ configure | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/build/make/armlink_adapter.sh b/build/make/armlink_adapter.sh
index b53669c..71cf7e9 100755
@@ -66,7 +59,7 @@ index b53669c..71cf7e9 100755
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
##
diff --git a/build/make/configure.sh b/build/make/configure.sh
-index 3c772e5..032b5e8 100755
+index c99a01c..9023dee 100755
--- a/build/make/configure.sh
+++ b/build/make/configure.sh
@@ -1,4 +1,4 @@
@@ -76,7 +69,7 @@ index 3c772e5..032b5e8 100755
## configure.sh
##
diff --git a/build/make/gen_asm_deps.sh b/build/make/gen_asm_deps.sh
-index 717f870..81b7095 100755
+index 0b4e3aa..158ec34 100755
--- a/build/make/gen_asm_deps.sh
+++ b/build/make/gen_asm_deps.sh
@@ -1,4 +1,4 @@
@@ -126,7 +119,7 @@ index 3efb956..b3a9c23 100755
## Copyright (c) 2010 The WebM project authors. All Rights Reserved.
##
diff --git a/configure b/configure
-index 0c4faf9..5d1db69 100755
+index 987b2e9..d581cf2 100755
--- a/configure
+++ b/configure
@@ -1,4 +1,4 @@
@@ -136,30 +129,4 @@ index 0c4faf9..5d1db69 100755
## configure
##
--
-1.7.11.5
-
-
-From 3d905203699e813027233bd0f19b05d44b98470d Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Mon, 17 Sep 2012 20:23:14 +1000
-Subject: [PATCH 4/4] Fix for building on OSX
-
-Taken from:
-https://gerrit.chromium.org/gerrit/#/c/26027/
-
-diff --git a/build/make/gen_asm_deps.sh b/build/make/gen_asm_deps.sh
-index 81b7095..158ec34 100755
---- a/build/make/gen_asm_deps.sh
-+++ b/build/make/gen_asm_deps.sh
-@@ -42,7 +42,7 @@ done
-
- [ -n "$srcfile" ] || show_help
- sfx=${sfx:-asm}
--includes=$(LC_ALL=C egrep -i "include +\"?+[a-z0-9_/]+\.${sfx}" $srcfile |
-+includes=$(LC_ALL=C egrep -i "include +\"?[a-z0-9_/]+\.${sfx}" $srcfile |
- perl -p -e "s;.*?([a-z0-9_/]+.${sfx}).*;\1;")
- #" restore editor state
- for inc in ${includes}; do
---
-1.7.11.5
-
+1.8.1.2
diff --git a/src/libvpx.mk b/src/libvpx.mk
index b521e9a..732d2d5 100644
--- a/src/libvpx.mk
+++ b/src/libvpx.mk
@@ -3,8 +3,8 @@
PKG := libvpx
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.1.0
-$(PKG)_CHECKSUM := 356af5f770c50cd021c60863203d8f30164f6021
+$(PKG)_VERSION := 1.2.0
+$(PKG)_CHECKSUM := 214d9a215af1a3278d9fcba4cac89566e321e4cf
$(PKG)_SUBDIR := $(PKG)-v$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-v$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://webm.googlecode.com/files/$($(PKG)_FILE)
@@ -22,7 +22,7 @@ define $(PKG)_BUILD
CROSS='$(TARGET)-' \
./configure \
--prefix='$(PREFIX)/$(TARGET)' \
- --target=libvpx-target \
+ --target=@libvpx-target@ \
--disable-examples \
--disable-install-docs \
--as=$(TARGET)-yasm
@@ -31,6 +31,6 @@ define $(PKG)_BUILD
$(TARGET)-ranlib $(PREFIX)/$(TARGET)/lib/libvpx.a
endef
-$(PKG)_BUILD_i686-pc-mingw32 = $(subst libvpx-target ,x86-win32-gcc ,$($(PKG)_BUILD))
-$(PKG)_BUILD_i686-w64-mingw32 = $(subst libvpx-target ,x86-win32-gcc ,$($(PKG)_BUILD))
-$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst libvpx-target ,x86_64-win64-gcc ,$($(PKG)_BUILD))
+$(PKG)_BUILD_i686-pc-mingw32 = $(subst @libvpx-target@,x86-win32-gcc,$($(PKG)_BUILD))
+$(PKG)_BUILD_i686-w64-mingw32 = $(subst @libvpx-target@,x86-win32-gcc,$($(PKG)_BUILD))
+$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst @libvpx-target@,x86_64-win64-gcc,$($(PKG)_BUILD))
diff --git a/src/libxml++.mk b/src/libxml++.mk
index 546e16b..36386a5 100644
--- a/src/libxml++.mk
+++ b/src/libxml++.mk
@@ -3,8 +3,8 @@
PKG := libxml++
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.36.0
-$(PKG)_CHECKSUM := 446714be0becb1d1bca914a9a545af96a24de26e
+$(PKG)_VERSION := 2.37.1
+$(PKG)_CHECKSUM := 12717f0ec25aa656334db7e0baf8bb1d58820e47
$(PKG)_SUBDIR := libxml++-$($(PKG)_VERSION)
$(PKG)_FILE := libxml++-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/GNOME/sources/libxml++/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && CXX="$(TARGET)-g++ -mthreads" ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
MAKE=$(MAKE)
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/libxml2.mk b/src/libxml2.mk
index 53cbffb..d15330a 100644
--- a/src/libxml2.mk
+++ b/src/libxml2.mk
@@ -20,11 +20,8 @@ endef
define $(PKG)_BUILD
$(SED) -i 's,`uname`,MinGW,g' '$(1)/xml2-config.in'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--without-debug \
- --prefix='$(PREFIX)/$(TARGET)' \
--without-python \
--without-threads
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/src/libzip.mk b/src/libzip.mk
index b281295..ab5b0e0 100644
--- a/src/libzip.mk
+++ b/src/libzip.mk
@@ -3,8 +3,8 @@
PKG := libzip
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.11.1
-$(PKG)_CHECKSUM := 3c82cdc0de51f06d5e1c60f098d3d9cc0d48f8a7
+$(PKG)_VERSION := 0.11.2
+$(PKG)_CHECKSUM := da86a7b4bb2b7ab7c8c5fb773f8a48a5adc7a405
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://www.nih.at/libzip/$($(PKG)_FILE)
diff --git a/src/llvm.mk b/src/llvm.mk
index 78856e2..cb0534a 100644
--- a/src/llvm.mk
+++ b/src/llvm.mk
@@ -3,9 +3,9 @@
PKG := llvm
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.3
-$(PKG)_CHECKSUM := c6c22d5593419e3cb47cbcf16d967640e5cce133
-$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION).src
+$(PKG)_VERSION := 3.4
+$(PKG)_CHECKSUM := 10b1fd085b45d8b19adb9a628353ce347bc136b8
+$(PKG)_SUBDIR := llvm-$($(PKG)_VERSION)
$(PKG)_FILE := llvm-$($(PKG)_VERSION).src.tar.gz
$(PKG)_URL := http://llvm.org/releases/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
@@ -22,7 +22,6 @@ define $(PKG)_BUILD
cd '$(1)/build' && cmake .. \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
-DLIBTYPE=STATIC \
- -DLLVM_TARGETS_TO_BUILD="X86" \
-DLLVM_BUILD_TOOLS=OFF
$(MAKE) -C '$(1)/build' -j $(JOBS) llvm-tblgen
$(MAKE) -C '$(1)/build' -j $(JOBS) intrinsics_gen
diff --git a/src/lua.mk b/src/lua.mk
index 1e3364c..1b5502b 100644
--- a/src/lua.mk
+++ b/src/lua.mk
@@ -3,8 +3,8 @@
PKG := lua
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.2.2
-$(PKG)_CHECKSUM := 0857e41e5579726a4cb96732e80d7aa47165eaf5
+$(PKG)_VERSION := 5.2.3
+$(PKG)_CHECKSUM := 926b7907bc8d274e063d42804666b40a3f3c124c
$(PKG)_SUBDIR := lua-$($(PKG)_VERSION)
$(PKG)_FILE := lua-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.lua.org/ftp/$($(PKG)_FILE)
diff --git a/src/lzo.mk b/src/lzo.mk
index 42d54f1..6b876cd 100644
--- a/src/lzo.mk
+++ b/src/lzo.mk
@@ -20,8 +20,6 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
- $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= LDFLAGS=-no-undefined
endef
diff --git a/src/m4.mk b/src/m4.mk
new file mode 100644
index 0000000..e914df2
--- /dev/null
+++ b/src/m4.mk
@@ -0,0 +1,28 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := m4
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.4.17
+$(PKG)_CHECKSUM := 74ad71fa100ec8c13bc715082757eb9ab1e4bbb0
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := ftp://ftp.gnu.org/pub/gnu/m4/$($(PKG)_FILE)
+$(PKG)_DEPS :=
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ftp.gnu.org/gnu/m4/?C=M;O=D' | \
+ $(SED) -n 's,.*<a href="m4-\([0-9][^"]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD_$(BUILD)
+ # gets has been removed from recent glibc
+ $(SED) -i -e '/gets is a/d' '$(1)/lib/stdio.in.h'
+ mkdir '$(1).build'
+ cd '$(1).build' && '$(1)/configure' \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1).build' -j '$(JOBS)'
+ $(MAKE) -C '$(1).build' -j 1 install
+endef
diff --git a/src/matio.mk b/src/matio.mk
index 1dccb0d..d2d8514 100644
--- a/src/matio.mk
+++ b/src/matio.mk
@@ -3,10 +3,10 @@
PKG := matio
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.5.1
-$(PKG)_CHECKSUM := 12b8ed59688b2f41903ddc3e7975f21f10fe42bb
+$(PKG)_VERSION := 1.5.2
+$(PKG)_CHECKSUM := d5a83a51eb2550d75811d2dde967ef3e167d4f52
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc zlib hdf5
diff --git a/src/mdbtools.mk b/src/mdbtools.mk
index cbf80aa..786cbc3 100644
--- a/src/mdbtools.mk
+++ b/src/mdbtools.mk
@@ -3,9 +3,9 @@
PKG := mdbtools
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.7
-$(PKG)_CHECKSUM := 62fe0703fd8691e4536e1012317406bdb72594cf
-$(PKG)_SUBDIR := brianb-mdbtools-004cc9f
+$(PKG)_VERSION := 0.7.1
+$(PKG)_CHECKSUM := 672b0afcb1ae3809eee21fa5017d45fcccef82d9
+$(PKG)_SUBDIR := brianb-mdbtools-f8ce1cc
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://github.com/brianb/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc glib
@@ -18,12 +18,12 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- '$(SED)' -i 's/libtooloze/libtoolize/g;' '$(1)/autogen.sh'
- cd '$(1)' && NOCONFIGURE=1 ./autogen.sh
+ cd '$(1)' && autoreconf -i -f
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
+ --disable-man \
--prefix='$(PREFIX)/$(TARGET)' \
PKG_CONFIG='$(PREFIX)/bin/$(TARGET)-pkg-config'
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= html_DATA= || \
diff --git a/src/mingw-utils.mk b/src/mingw-utils.mk
index f7ec696..108832a 100644
--- a/src/mingw-utils.mk
+++ b/src/mingw-utils.mk
@@ -8,7 +8,9 @@ $(PKG)_CHECKSUM := 716f51d7622b36448fc1e92d2c69d8f41b1cc2df
$(PKG)_SUBDIR := $(PKG)-$(word 1,$(subst -, ,$($(PKG)_VERSION)))
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION)-mingw32-src.tar.lzma
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/mingw/MinGW/Extension/$(PKG)/$(PKG)-$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc
+$(PKG)_DEPS :=
+
+$(PKG)_DEPS_i686-pc-mingw32 := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/mingw/files/MinGW/Extension/mingw-utils/' | \
@@ -21,7 +23,8 @@ define $(PKG)_BUILD_i686-pc-mingw32
cp -Rp '$(1)' '$(1).native'
cd '$(1).native' && ./configure \
--disable-shared \
- --prefix='$(PREFIX)'
+ --prefix='$(PREFIX)' \
+ CFLAGS='-Wno-error=return-type'
$(MAKE) -C '$(1).native/reimp' -j '$(JOBS)'
$(INSTALL) -m755 '$(1).native/reimp/reimp' '$(PREFIX)/bin/$(TARGET)-reimp'
diff --git a/src/mingw-w64-1-math-h.patch b/src/mingw-w64-1-math-h.patch
new file mode 100644
index 0000000..7484f71
--- /dev/null
+++ b/src/mingw-w64-1-math-h.patch
@@ -0,0 +1,18 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch was taken from:
+https://sourceforge.net/p/mingw-w64/code/6479/
+
+--- a/mingw-w64-headers/crt/math.h
++++ b/mingw-w64-headers/crt/math.h
+@@ -36,7 +36,7 @@
+ #endif
+ #endif
+
+-#ifndef __STRICT_ANSI__
++#if !defined(__STRICT_ANSI__) || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #define M_E 2.7182818284590452354
+ #define M_LOG2E 1.4426950408889634074
+ #define M_LOG10E 0.43429448190325182765
+
diff --git a/src/mingw-w64-2-float-h.patch b/src/mingw-w64-2-float-h.patch
new file mode 100644
index 0000000..990a3b6
--- /dev/null
+++ b/src/mingw-w64-2-float-h.patch
@@ -0,0 +1,25 @@
+This file is part of MXE.
+See index.html for further information.
+
+workaround for -isystem flag messing up include order
+https://bugzilla.redhat.com/show_bug.cgi?id=843436
+
+diff -ur a/mingw-w64-headers/crt/float.h b/mingw-w64-headers/crt/float.h
+--- a/mingw-w64-headers/crt/float.h 2014-01-11 21:38:50.640418500 +1100
++++ b/mingw-w64-headers/crt/float.h 2014-01-11 21:44:08.528393903 +1100
+@@ -105,6 +105,15 @@
+ #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
+ #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
+
++ /* The difference between 1 and the least value greater than 1 that is
++ representable in the given floating point type, b**1-p. */
++ #undef FLT_EPSILON
++ #undef DBL_EPSILON
++ #undef LDBL_EPSILON
++ #define FLT_EPSILON __FLT_EPSILON__
++ #define DBL_EPSILON __DBL_EPSILON__
++ #define LDBL_EPSILON __LDBL_EPSILON__
++
+ /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */
+ /* ??? This is supposed to change with calls to fesetround in <fenv.h>. */
+ #undef FLT_ROUNDS
diff --git a/src/mingw-w64.mk b/src/mingw-w64.mk
index 895e2b9..f197cb6 100644
--- a/src/mingw-w64.mk
+++ b/src/mingw-w64.mk
@@ -3,17 +3,18 @@
PKG := mingw-w64
$(PKG)_IGNORE :=
-$(PKG)_VERSION := c28722c
-$(PKG)_CHECKSUM := bc48803ff15a777adad8890519bd3ebec90acab9
-$(PKG)_SUBDIR := mirror-$(PKG)-$($(PKG)_VERSION)/trunk
-$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := https://github.com/mirror/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_VERSION := 3.1.0
+$(PKG)_CHECKSUM := c167b1dc114a13c465fe6adcce9dc65c509baf75
+$(PKG)_SUBDIR := $(PKG)-v$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-v$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$(PKG)-release/$($(PKG)_FILE)
$(PKG)_DEPS :=
define $(PKG)_UPDATE
- $(WGET) -q -O- 'https://github.com/mirror/$(PKG)/commits/master' | \
- $(SED) -n 's#.*<span class="sha">\([^<]\{7\}\)[^<]\{3\}<.*#\1#p' | \
- head -1
+ $(WGET) -q -O- 'http://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/' | \
+ $(SED) -n 's,.*mingw-w64-v\([0-9.]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD_mingw-w64
diff --git a/src/mman-win32-1-include_name_change.patch b/src/mman-win32-1-include_name_change.patch
new file mode 100644
index 0000000..d69cf29
--- /dev/null
+++ b/src/mman-win32-1-include_name_change.patch
@@ -0,0 +1,12 @@
+diff -urN mman-win32-master/Makefile mman-win32-master-patch/Makefile
+--- mman-win32-master/Makefile 2013-04-23 07:36:23.000000000 +0300
++++ mman-win32-master-patch/Makefile 2014-01-05 14:24:31.793744239 +0200
+@@ -25,7 +25,7 @@
+ mkdir -p $(DESTDIR)$(libdir)
+ cp libmman.a $(DESTDIR)$(libdir)
+ mkdir -p $(DESTDIR)$(incdir)
+- cp mman.h $(DESTDIR)$(incdir)
++ cp mman.h $(DESTDIR)$(incdir)/mman-win32.h
+
+ lib-install:
+ mkdir -p $(DESTDIR)$(libdir)
diff --git a/src/mman-win32.mk b/src/mman-win32.mk
new file mode 100644
index 0000000..ef722b4
--- /dev/null
+++ b/src/mman-win32.mk
@@ -0,0 +1,28 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := mman-win32
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3421c28e753c38d24a2e27c111b1c9b4601ebe7d
+$(PKG)_CHECKSUM := c33e84043d49d0e33bc434bda3a16ce60432e789
+$(PKG)_SUBDIR := mman-win32-master
+$(PKG)_FILE := mman-win32-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/witwall/mman-win32/archive/master.tar.gz
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package mman-win32 need to be written.' >&2;
+ echo $(mman-win32_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && chmod +x configure
+ cd '$(1)' && ./configure \
+ --cross-prefix='$(TARGET)'- \
+ $(if $(BUILD_STATIC),--enable-static ) \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --libdir='$(PREFIX)/$(TARGET)/lib' \
+ --incdir='$(PREFIX)/$(TARGET)/include/sys'
+ $(MAKE) -C '$(1)' -j 1
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/mpc.mk b/src/mpc.mk
new file mode 100644
index 0000000..5852f0a
--- /dev/null
+++ b/src/mpc.mk
@@ -0,0 +1,37 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := mpc
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.0.2
+$(PKG)_CHECKSUM := 5072d82ab50ec36cc8c0e320b5c377adb48abe70
+$(PKG)_SUBDIR := mpc-$($(PKG)_VERSION)
+$(PKG)_FILE := mpc-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.multiprecision.org/mpc/download/$($(PKG)_FILE)
+$(PKG)_URL_2 := http://ftp.debian.org/debian/pool/main/m/mpclib/mpclib_$($(PKG)_VERSION).orig.tar.gz
+$(PKG)_DEPS := gcc gmp mpfr
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'https://gforge.inria.fr/scm/viewvc.php/tags/?root=mpc&sortby=date' | \
+ $(SED) -n 's,.*<a name="\([0-9][^"]*\)".*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --with-gmp='$(PREFIX)/$(TARGET)/' \
+ --with-mpfr='$(PREFIX)/$(TARGET)/'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install
+
+ # build runtime tests to verify toolchain components
+ -$(MAKE) -C '$(1)' -j '$(JOBS)' check -k
+ rm -rf '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ cp -R '$(1)/tests' '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ (printf 'date /t > all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'time /t >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'set PATH=..\\;%%PATH%%\r\n'; \
+ printf 'for /R %%%%f in (*.exe) do %%%%f || echo %%%%f fail >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n';) \
+ > '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests/all-tests-$(PKG)-$($(PKG)_VERSION).bat'
+endef
diff --git a/src/mpfr.mk b/src/mpfr.mk
index d39cea7..d17850f 100644
--- a/src/mpfr.mk
+++ b/src/mpfr.mk
@@ -20,13 +20,20 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --enable-static \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads=win32 \
--with-gmp-include='$(PREFIX)/$(TARGET)/include/'
--with-gmp-lib='$(PREFIX)/$(TARGET)/lib/'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
+
+ # build runtime tests to verify toolchain components
+ -$(MAKE) -C '$(1)' -j '$(JOBS)' check -k
+ rm -rf '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ cp -R '$(1)/tests' '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ (printf 'date /t > all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'time /t >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n'; \
+ printf 'set PATH=..\\;%%PATH%%\r\n'; \
+ printf 'for /R %%%%f in (*.exe) do %%%%f || echo %%%%f fail >> all-tests-$(PKG)-$($(PKG)_VERSION).txt\r\n';) \
+ > '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests/all-tests-$(PKG)-$($(PKG)_VERSION).bat'
endef
diff --git a/src/mpg123.mk b/src/mpg123.mk
new file mode 100644
index 0000000..96a5e14
--- /dev/null
+++ b/src/mpg123.mk
@@ -0,0 +1,29 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := mpg123
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.17.0
+$(PKG)_CHECKSUM := 8185f06ab94651adb2fc7a1ab860f0fd154b6f80
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/mpg123/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc sdl
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/mpg123/files/mpg123/' | \
+ $(SED) -n 's,.*/\([0-9][^"]*\)/".*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-default-audio=win32 \
+ --with-audio=win32,sdl,dummy \
+ --enable-modules=no
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/mxml.mk b/src/mxml.mk
index 1fadaf1..3cc70e6 100644
--- a/src/mxml.mk
+++ b/src/mxml.mk
@@ -3,8 +3,8 @@
PKG := mxml
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.7
-$(PKG)_CHECKSUM := a3bdcab48307794c297e790435bcce7becb9edae
+$(PKG)_VERSION := 2.8
+$(PKG)_CHECKSUM := 09d88f1720f69b64b76910dfe2a5c5fa24a8b361
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.msweet.org/files/project3/$($(PKG)_FILE)
diff --git a/src/ncurses.mk b/src/ncurses.mk
index 7f6514b..b99f3ed 100644
--- a/src/ncurses.mk
+++ b/src/ncurses.mk
@@ -27,6 +27,8 @@ define $(PKG)_BUILD
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix=$(PREFIX)/$(TARGET) \
+ --with-build-cc=gcc \
+ --with-build-cpp=cpp \
--disable-home-terminfo \
--enable-sp-funcs \
--enable-term-driver \
@@ -34,9 +36,14 @@ define $(PKG)_BUILD
--without-debug \
--without-ada \
--without-manpages \
+ --without-progs \
+ --without-tests \
--enable-pc-files \
+ PKG_CONFIG_LIBDIR='$(PREFIX)/$(TARGET)/lib/pkgconfig' \
--with-normal \
--without-shared
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install TIC_PATH='$(1).native/progs/tic'
endef
+
+$(PKG)_BUILD_SHARED =
diff --git a/src/netpbm.mk b/src/netpbm.mk
index 417c870..0ac713d 100644
--- a/src/netpbm.mk
+++ b/src/netpbm.mk
@@ -3,8 +3,8 @@
PKG := netpbm
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 10.35.89
-$(PKG)_CHECKSUM := f9d07c0b82f5feed66a5e995b077492093aa24b5
+$(PKG)_VERSION := 10.35.92
+$(PKG)_CHECKSUM := b0c480d066cea7560429c156c4f7bfa5f18e0f9b
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tgz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/netpbm/super_stable/$($(PKG)_VERSION)/$($(PKG)_FILE)
diff --git a/src/nettle.mk b/src/nettle.mk
index 15dbd39..fd6bc35 100644
--- a/src/nettle.mk
+++ b/src/nettle.mk
@@ -20,10 +20,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
- $(MAKE) -C '$(1)' -j '$(JOBS)' getopt.o getopt1.o
- $(MAKE) -C '$(1)' -j '$(JOBS)' install
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)' $(if $(BUILD_STATIC),getopt.o getopt1.o,) SUBDIRS=
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install SUBDIRS=
endef
diff --git a/src/nlopt.mk b/src/nlopt.mk
new file mode 100644
index 0000000..6332b80
--- /dev/null
+++ b/src/nlopt.mk
@@ -0,0 +1,26 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := nlopt
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.4.1
+$(PKG)_CHECKSUM := 181181a3f7dd052e0740771994eb107bd59886ad
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://ab-initio.mit.edu/$(PKG)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://ab-initio.mit.edu/wiki/index.php/NLopt' | \
+ $(SED) -n 's,.*<a href=".*nlopt-\([0-9.]\+\).tar.gz".*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
+ --with-cxx
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/nsis.mk b/src/nsis.mk
index 8fc9016..5b2c520 100644
--- a/src/nsis.mk
+++ b/src/nsis.mk
@@ -11,10 +11,10 @@ $(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/nsis/NSIS 2/$($(PKG)_VER
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://nsis.svn.sourceforge.net/viewvc/nsis/NSIS/tags/?sortby=date' | \
- grep '<a name="' | \
- $(SED) -n 's,.*<a name="v\([0-9]\)\([^"]*\)".*,\1.\2,p' | \
- head -1
+ $(WGET) -q -O- 'http://sourceforge.net/p/nsis/code/HEAD/tree/NSIS/tags/' | \
+ grep '<a href="' | \
+ $(SED) -n 's,.*<a href="v\([0-9]\)\([^"]*\)".*,\1.\2,p' | \
+ tail -1
endef
define $(PKG)_BUILD
diff --git a/src/ocaml-cairo.mk b/src/ocaml-cairo.mk
index 6b06466..82cb800 100644
--- a/src/ocaml-cairo.mk
+++ b/src/ocaml-cairo.mk
@@ -34,4 +34,3 @@ define $(PKG)_BUILD
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
diff --git a/src/ocaml-lablgl-1-fixes.patch b/src/ocaml-lablgl-1-fixes.patch
index a377d62..857a4a8 100644
--- a/src/ocaml-lablgl-1-fixes.patch
+++ b/src/ocaml-lablgl-1-fixes.patch
@@ -3,13 +3,11 @@ See index.html for further information.
Contains ad hoc patches for cross building.
-[master 4380599] new version
- 3 files changed, 11130 insertions(+), 3 deletions(-)
- create mode 100644 src/glext.h
-From 43805990b921d3aa32ec3772ecb35de55c1f852d Mon Sep 17 00:00:00 2001
+From 29ddb2d1493f45ac281bbaa6cae80b3767201c9b Mon Sep 17 00:00:00 2001
From: MXE
Date: Thu, 10 May 2012 20:07:55 +0200
-Subject: [PATCH] small modification of Makefile for cross-compilation ; includes external glext.h
+Subject: [PATCH 1/2] small modification of Makefile for cross-compilation ;
+ includes external glext.h
diff --git a/src/Makefile b/src/Makefile
@@ -11176,5 +11174,28 @@ index e10cbce..e337d9b 100644
#include <caml/misc.h>
--
-1.7.5.4
+1.8.1.2
+
+
+From 3693a79d1c425d88b20be62f8ca2064bd82bf2c7 Mon Sep 17 00:00:00 2001
+From: MXE
+Date: Sun, 4 Aug 2013 21:35:28 +0200
+Subject: [PATCH 2/2] ml_gl.c : refer to new glext.h
+
+
+diff --git a/src/ml_gl.c b/src/ml_gl.c
+index c9b04ad..3ccedaa 100644
+--- a/src/ml_gl.c
++++ b/src/ml_gl.c
+@@ -10,7 +10,7 @@
+ #include <GL/gl.h>
+ #endif
+ #ifdef HAS_GLEXT_H
+-#include <GL/glext.h>
++#include "glext.h"
+ #undef GL_VERSION_1_3
+ #endif
+ #include <caml/misc.h>
+--
+1.8.1.2
diff --git a/src/ocaml-lablgl.mk b/src/ocaml-lablgl.mk
index 34354f4..0859f0a 100644
--- a/src/ocaml-lablgl.mk
+++ b/src/ocaml-lablgl.mk
@@ -3,11 +3,12 @@
PKG := ocaml-lablgl
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 20120306
-$(PKG)_CHECKSUM := 996f0aba788f5fa1531587fb06d667b94237cc92
-$(PKG)_SUBDIR := lablGL
+$(PKG)_VERSION := 1.05
+$(PKG)_CHECKSUM := 6451294c1591e17db38874e654f319f8ecf401c9
+$(PKG)_SUBDIR := lablgl-$($(PKG)_VERSION)
$(PKG)_FILE := lablgl-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/$($(PKG)_FILE)
+$(PKG)_URL_2 := https://forge.ocamlcore.org/frs/download.php/1254/$($(PKG)_FILE)
$(PKG)_DEPS := gcc ocaml-findlib gtkglarea
define $(PKG)_UPDATE
@@ -55,4 +56,3 @@ define $(PKG)_BUILD
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
diff --git a/src/ocaml-lablgtk2.mk b/src/ocaml-lablgtk2.mk
index 5e973ec..9a814a3 100644
--- a/src/ocaml-lablgtk2.mk
+++ b/src/ocaml-lablgtk2.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 3dec411a410fbb38d6e2e5a43a4ebfb2e407e7e6
$(PKG)_SUBDIR := lablgtk-$($(PKG)_VERSION)
$(PKG)_FILE := lablgtk-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://forge.ocamlcore.org/frs/download.php/979/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc ocaml-findlib libglade gtkglarea ocaml-lablgl gtk2
+$(PKG)_DEPS := gcc ocaml-findlib libglade gtkglarea ocaml-lablgl gtk2 gtksourceview
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://forge.ocamlcore.org/frs/?group_id=220' | \
@@ -34,4 +34,3 @@ define $(PKG)_BUILD
endef
$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
diff --git a/src/ocaml-native-1-fixes.patch b/src/ocaml-native-1-fixes.patch
index f188c4c..8c32893 100644
--- a/src/ocaml-native-1-fixes.patch
+++ b/src/ocaml-native-1-fixes.patch
@@ -3,10 +3,11 @@ See index.html for further information.
Contains ad hoc patches for cross building.
-From 93d5a514d545567b194af9b9fba0954bb82565e3 Mon Sep 17 00:00:00 2001
+From 3a3ddccba8fa90a42551fb4d529c921c0aac4f63 Mon Sep 17 00:00:00 2001
From: MXE
Date: Wed, 3 Oct 2012 09:25:11 +0200
-Subject: [PATCH 1/2] findlib.ml
+Subject: [PATCH] ocamlbuild : support for prefixed
+ ocaml{c,opt,mklib,mktop,find} tools
diff --git a/ocamlbuild/findlib.ml b/ocamlbuild/findlib.ml
@@ -22,19 +23,8 @@ index b5ef878..77454ed 100644
type package = {
name: string;
---
-1.7.9.5
-
-
-From b2ce063eee6dca5b3cd67bdb59d2a11ed2043995 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Wed, 3 Oct 2012 09:31:13 +0200
-Subject: [PATCH 2/2] options : support for prefixed ocaml-tools with
- ocamlfind
-
-
diff --git a/ocamlbuild/options.ml b/ocamlbuild/options.ml
-index 1be4b63..48f6648 100644
+index 1be4b63..e7313de 100644
--- a/ocamlbuild/options.ml
+++ b/ocamlbuild/options.ml
@@ -39,16 +39,17 @@ let use_menhir = ref false
@@ -68,7 +58,7 @@ index 1be4b63..48f6648 100644
- "ocamlyacc"; "menhir"; "ocamllex"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"]
+ mk_virtual_solvers "@target@-"
+ ["ocamlc"; "ocamlopt"; "ocamldep"; "ocamlmklib"; "ocamlmktop"; "ocamlfind"];
-+ mk_virtual_solvers "" ["ocamldoc"; "ocamlyacc"; "menhir"; "ocamllex"; "ocamlfind"]
++ mk_virtual_solvers "" ["ocamldoc"; "ocamlyacc"; "menhir"; "ocamllex"]
let ocamlc = ref (V"OCAMLC")
let ocamlopt = ref (V"OCAMLOPT")
let ocamldep = ref (V"OCAMLDEP")
@@ -107,5 +97,5 @@ index 1be4b63..48f6648 100644
let reorder x y = x := !x @ (List.concat (List.rev !y)) in
--
-1.7.9.5
+1.8.1.2
diff --git a/src/ogg.mk b/src/ogg.mk
index 808e21b..2b3da5b 100644
--- a/src/ogg.mk
+++ b/src/ogg.mk
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/openblas.mk b/src/openblas.mk
new file mode 100644
index 0000000..b19fb2b
--- /dev/null
+++ b/src/openblas.mk
@@ -0,0 +1,45 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := openblas
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.2.8
+$(PKG)_CHECKSUM := d012ebc2b8dcd3e95f667dff08318a81479a47c3
+$(PKG)_SUBDIR := OpenBLAS-$($(PKG)_VERSION)
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
+$(PKG)_URL := http://github.com/xianyi/OpenBLAS/archive/v$($(PKG)_VERSION).tar.gz
+$(PKG)_DEPS := gcc libgomp
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'https://github.com/xianyi/OpenBLAS/releases' | \
+ $(SED) -n 's,.*OpenBLAS/archive/v\([0-9][^"]*\)\.tar\.gz.*,\1,p' | \
+ grep -v 'rc' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+$(PKG)_MAKE_OPTS = \
+ PREFIX='$(PREFIX)/$(TARGET)' \
+ CROSS_SUFFIX='$(TARGET)-' \
+ FC='$(TARGET)-gfortran' \
+ CC='$(TARGET)-gcc' \
+ HOSTFC='gfortran' \
+ HOSTCC='gcc' \
+ CROSS=1 \
+ NO_CBLAS=1 \
+ NO_LAPACK=1 \
+ USE_THREAD=1 \
+ USE_OPENMP=1 \
+ TARGET=CORE2 \
+ DYNAMIC_ARCH=1 \
+ ARCH=$(strip \
+ $(if $(findstring x86_64,$(TARGET)),x86_64,\
+ $(if $(findstring i686,$(TARGET)),x86)) \
+ BINARY=$(if $(findstring x86_64,$(TARGET)),64,32)) \
+ $(if $(BUILD_STATIC),NO_SHARED=1) \
+ EXTRALIB="`'$(TARGET)-pkg-config' --libs pthreads` -fopenmp"
+
+define $(PKG)_BUILD
+ $(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install $($(PKG)_MAKE_OPTS)
+endef
diff --git a/src/opencore-amr.mk b/src/opencore-amr.mk
index 04df10a..3bbe8d3 100644
--- a/src/opencore-amr.mk
+++ b/src/opencore-amr.mk
@@ -3,11 +3,11 @@
PKG := opencore-amr
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.1.2
-$(PKG)_CHECKSUM := 289478d49701213255e9d63a93aae9ad472125cc
+$(PKG)_VERSION := 0.1.3
+$(PKG)_CHECKSUM := 737f00e97a237f4ae701ea55913bb38dc5513501
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
@@ -18,9 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef
diff --git a/src/opencv-1-fixes.patch b/src/opencv-1-fixes.patch
index 3c8d02d..4701053 100644
--- a/src/opencv-1-fixes.patch
+++ b/src/opencv-1-fixes.patch
@@ -1,14 +1,6 @@
This file is part of MXE.
See index.html for further information.
-Contains ad hoc patches for cross building.
-
-From c5cbee4c3334d5216af64ac17045c79baaeeb023 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Sun, 12 May 2013 18:07:47 +1000
-Subject: [PATCH 1/3] add hoc patches for cross building
-
-
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 579312d..53e4132 100644
--- a/CMakeLists.txt
@@ -22,83 +14,74 @@ index 579312d..53e4132 100644
endif(NOT CMAKE_TOOLCHAIN_FILE)
# --------------------------------------------------------------
-diff --git a/cmake/OpenCVFindLCMS.cmake b/cmake/OpenCVFindLCMS.cmake
-new file mode 100644
-index 0000000..426bbae
---- /dev/null
-+++ b/cmake/OpenCVFindLCMS.cmake
-@@ -0,0 +1,71 @@
-+# - Find LCMS
-+# Find the LCMS includes and library
-+# This module defines
-+# LCMS_INCLUDE_DIR, where to find lcms.h
-+# LCMS_LIBRARIES, the libraries needed to use LCMS.
-+# LCMS_VERSION, The value of LCMS_VERSION defined in lcms.h
-+# LCMS_FOUND, If false, do not try to use LCMS.
-+
-+
-+# Copyright (c) 2008, Adrian Page, <adrian@pagenet.plus.com>
-+# Copyright (c) 2009, Cyrille Berger, <cberger@cberger.net>
-+#
-+# Redistribution and use is allowed according to the terms of the BSD license.
-+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
-+
-+
-+# use pkg-config to get the directories and then use these values
-+# in the FIND_PATH() and FIND_LIBRARY() calls
-+if(NOT WIN32)
-+ find_package(PkgConfig)
-+ pkg_check_modules(PC_LCMS lcms)
-+ set(LCMS_DEFINITIONS ${PC_LCMS_CFLAGS_OTHER})
-+endif(NOT WIN32)
-+
-+find_path(LCMS_INCLUDE_DIR lcms.h
-+ PATHS
-+ ${PC_LCMS_INCLUDEDIR}
-+ ${PC_LCMS_INCLUDE_DIRS}
-+ PATH_SUFFIXES lcms liblcms
-+)
-+
-+find_library(LCMS_LIBRARIES NAMES lcms liblcms lcms-1 liblcms-1
-+ PATHS
-+ ${PC_LCMS_LIBDIR}
-+ ${PC_LCMS_LIBRARY_DIRS}
-+ PATH_SUFFIXES lcms
-+)
-+
-+if(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES)
-+ set(LCMS_FOUND TRUE)
-+else(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES)
-+ set(LCMS_FOUND FALSE)
-+endif(LCMS_INCLUDE_DIR AND LCMS_LIBRARIES)
-+
-+if(LCMS_FOUND)
-+ file(READ ${LCMS_INCLUDE_DIR}/lcms.h LCMS_VERSION_CONTENT)
-+ string(REGEX MATCH "#define LCMS_VERSION[ ]*[0-9]*\n" LCMS_VERSION_MATCH ${LCMS_VERSION_CONTENT})
-+ if(LCMS_VERSION_MATCH)
-+ string(REGEX REPLACE "#define LCMS_VERSION[ ]*([0-9]*)\n" "\\1" LCMS_VERSION ${LCMS_VERSION_MATCH})
-+ if(NOT LCMS_FIND_QUIETLY)
-+ string(SUBSTRING ${LCMS_VERSION} 0 1 LCMS_MAJOR_VERSION)
-+ string(SUBSTRING ${LCMS_VERSION} 1 2 LCMS_MINOR_VERSION)
-+ message(STATUS "Found lcms version ${LCMS_MAJOR_VERSION}.${LCMS_MINOR_VERSION}, ${LCMS_LIBRARIES}")
-+ endif(NOT LCMS_FIND_QUIETLY)
-+ else(LCMS_VERSION_MATCH)
-+ if(NOT LCMS_FIND_QUIETLY)
-+ message(STATUS "Found lcms but failed to find version ${LCMS_LIBRARIES}")
-+ endif(NOT LCMS_FIND_QUIETLY)
-+ set(LCMS_VERSION NOTFOUND)
-+ endif(LCMS_VERSION_MATCH)
-+else(LCMS_FOUND)
-+ if(NOT LCMS_FIND_QUIETLY)
-+ if(LCMS_FIND_REQUIRED)
-+ message(FATAL_ERROR "Required package lcms NOT found")
-+ else(LCMS_FIND_REQUIRED)
-+ message(STATUS "lcms NOT found")
-+ endif(LCMS_FIND_REQUIRED)
-+ endif(NOT LCMS_FIND_QUIETLY)
-+endif(LCMS_FOUND)
-+
-+mark_as_advanced(LCMS_INCLUDE_DIR LCMS_LIBRARIES LCMS_VERSION)
+diff -ur a/modules/core/src/lapack.cpp b/modules/core/src/lapack.cpp
+--- a/modules/core/src/lapack.cpp 2013-12-28 04:09:18.000000000 +1100
++++ b/modules/core/src/lapack.cpp 2014-01-05 21:14:52.869649685 +1100
+@@ -716,7 +716,7 @@
+
+ static void JacobiSVD(double* At, size_t astep, double* W, double* Vt, size_t vstep, int m, int n, int n1=-1)
+ {
+- JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10);
++ JacobiSVDImpl_(At, astep, W, Vt, vstep, m, n, !Vt ? 0 : n1 < 0 ? n : n1, DBL_MIN, DBL_EPSILON*10L);
+ }
+
+ /* y[0:m,0:n] += diag(a[0:1,0:m]) * x[0:m,0:n] */
+diff -ur a/modules/core/src/precomp.hpp b/modules/core/src/precomp.hpp
+--- a/modules/core/src/precomp.hpp 2013-12-28 04:09:18.000000000 +1100
++++ b/modules/core/src/precomp.hpp 2014-01-05 21:05:08.968467624 +1100
+@@ -51,7 +51,7 @@
+
+ #include <assert.h>
+ #include <ctype.h>
+-#include <float.h>
++#include <cfloat>
+ #include <limits.h>
+ #include <math.h>
+ #include <stdio.h>
+diff -ur a/modules/highgui/src/window_w32.cpp b/modules/highgui/src/window_w32.cpp
+--- a/modules/highgui/src/window_w32.cpp 2013-12-28 04:09:18.000000000 +1100
++++ b/modules/highgui/src/window_w32.cpp 2014-01-05 21:23:48.318950096 +1100
+@@ -75,7 +75,7 @@
+ #include <vector>
+ #include <functional>
+ #include "opencv2/highgui/highgui.hpp"
+-#include <GL\gl.h>
++#include <GL/gl.h>
+ #endif
+
+ static const char* trackbar_text =
+
+diff -ur a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake
+--- a/cmake/OpenCVFindLibsVideo.cmake 2013-12-28 04:09:18.000000000 +1100
++++ b/cmake/OpenCVFindLibsVideo.cmake 2014-01-07 22:34:22.291927941 +1100
+@@ -228,12 +228,12 @@
+
+ # --- Extra HighGUI libs on Windows ---
+ if(WIN32)
+- list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 setupapi ws2_32 vfw32)
++ list(APPEND HIGHGUI_LIBRARIES -lcomctl32 -lgdi32 -lole32 -lsetupapi -lws2_32 -lvfw32 -lstrmiids -loleaut32 -luuid)
+ if(MINGW64)
+- list(APPEND HIGHGUI_LIBRARIES avifil32 avicap32 winmm msvfw32)
+- list(REMOVE_ITEM HIGHGUI_LIBRARIES vfw32)
++ list(APPEND HIGHGUI_LIBRARIES -lavifil32 -lavicap32 -lwinmm -lmsvfw32)
++ list(REMOVE_ITEM HIGHGUI_LIBRARIES -lvfw32)
+ elseif(MINGW)
+- list(APPEND HIGHGUI_LIBRARIES winmm)
++ list(APPEND HIGHGUI_LIBRARIES -lwinmm)
+ endif()
+ endif(WIN32)
+
+--- a/modules/highgui/CMakeLists.txt
++++ b/modules/highgui/CMakeLists.txt
+@@ -262,7 +267,7 @@ set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "")
+ ocv_add_precompiled_headers(${the_module})
+ ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
+
+-if(WIN32 AND WITH_FFMPEG)
++if(WIN32 AND WITH_FFMPEG AND BUILD_SHARED_LIBS)
+ #copy ffmpeg dll to the output folder
+ if(MSVC64 OR MINGW64)
+ set(FFMPEG_SUFFIX _64)
diff --git a/cmake/OpenCVFindLZMA.cmake b/cmake/OpenCVFindLZMA.cmake
new file mode 100644
index 0000000..0b46b2c
@@ -189,132 +172,37 @@ index 5988169..738e1f3 100644
include(FindPNG)
if(PNG_FOUND)
check_include_file("${PNG_PNG_INCLUDE_DIR}/png.h" HAVE_PNG_H)
-diff --git a/cmake/OpenCVGenConfig.cmake b/cmake/OpenCVGenConfig.cmake
-index 705ccc8..fe9b01b 100644
---- a/cmake/OpenCVGenConfig.cmake
-+++ b/cmake/OpenCVGenConfig.cmake
-@@ -177,6 +177,6 @@ if(WIN32)
- exec_program(mkdir ARGS "-p \"${CMAKE_BINARY_DIR}/win-install/\"" OUTPUT_VARIABLE RET_VAL)
- configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" IMMEDIATE @ONLY)
- configure_file("${OpenCV_SOURCE_DIR}/cmake/templates/OpenCVConfig-version.cmake.in" "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" IMMEDIATE @ONLY)
-- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/")
-- install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/")
-+ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake/")
-+ install(FILES "${CMAKE_BINARY_DIR}/win-install/OpenCVConfig-version.cmake" DESTINATION "${CMAKE_INSTALL_PREFIX}/cmake/")
- endif()
diff --git a/modules/core/CMakeLists.txt b/modules/core/CMakeLists.txt
index 4c5112e..7411f32 100644
--- a/modules/core/CMakeLists.txt
+++ b/modules/core/CMakeLists.txt
-@@ -1,6 +1,12 @@
+@@ -1,12 +1,12 @@
set(the_description "The Core Functionality")
--ocv_add_module(core ${ZLIB_LIBRARIES})
--ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
-+
-+if(BUILD_opencv_apps OR BUILD_EXAMPLES OR BUILD_PERF_TESTS OR BUILD_TESTS)
-+ ocv_add_module(core ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
-+ ocv_module_include_directories(${ZLIB_INCLUDE_DIR} ${LZMA_INCLUDE_DIR} ${LCMS_INCLUDE_DIR})
-+else()
-+ ocv_add_module(core ${ZLIB_LIBRARIES})
-+ ocv_module_include_directories(${ZLIB_INCLUDE_DIR})
-+endif()
-
- if(HAVE_CUDA)
- ocv_source_group("Src\\Cuda" GLOB "src/cuda/*.cu")
-diff --git a/modules/highgui/CMakeLists.txt b/modules/highgui/CMakeLists.txt
-index 7e5fae3..d4e4ed0 100644
---- a/modules/highgui/CMakeLists.txt
-+++ b/modules/highgui/CMakeLists.txt
-@@ -10,8 +10,13 @@ ocv_add_module(highgui opencv_imgproc OPTIONAL opencv_androidcamera)
- ocv_clear_vars(GRFMT_LIBS)
- if(WITH_PNG OR WITH_TIFF OR WITH_OPENEXR)
-- ocv_include_directories(${ZLIB_INCLUDE_DIR})
-- list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES})
-+ if(BUILD_opencv_apps OR BUILD_EXAMPLES OR BUILD_PERF_TESTS OR BUILD_TESTS)
-+ ocv_include_directories(${ZLIB_INCLUDE_DIR} ${LZMA_INCLUDE_DIR} ${LCMS_INCLUDE_DIR})
-+ list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
-+ else()
-+ ocv_include_directories(${ZLIB_INCLUDE_DIR})
-+ list(APPEND GRFMT_LIBS ${ZLIB_LIBRARIES})
-+ endif()
+ if (NOT HAVE_CUDA OR ENABLE_DYNAMIC_CUDA)
+- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES})
++ ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
+ else()
+- ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY})
++ ocv_add_module(core PRIVATE_REQUIRED ${ZLIB_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_npp_LIBRARY} ${LZMA_LIBRARIES} ${LCMS_LIBRARIES})
endif()
- if(WITH_JPEG)
-@@ -262,7 +267,7 @@ set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "")
- ocv_add_precompiled_headers(${the_module})
- ocv_warnings_disable(CMAKE_CXX_FLAGS -Wno-deprecated-declarations)
+-ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR})
++ocv_module_include_directories("${OpenCV_SOURCE_DIR}/modules/dynamicuda/include/" ${ZLIB_INCLUDE_DIR} ${LZMA_INCLUDE_DIR} ${LCMS_INCLUDE_DIR})
--if(WIN32 AND WITH_FFMPEG)
-+if(WIN32 AND WITH_FFMPEG AND BUILD_SHARED_LIBS)
- #copy ffmpeg dll to the output folder
- if(MSVC64 OR MINGW64)
- set(FFMPEG_SUFFIX _64)
-diff --git a/modules/highgui/src/window_w32.cpp b/modules/highgui/src/window_w32.cpp
-index 0948197..f32718f 100644
---- a/modules/highgui/src/window_w32.cpp
-+++ b/modules/highgui/src/window_w32.cpp
-@@ -76,7 +76,7 @@
- #include <vector>
- #include <functional>
- #include "opencv2/highgui/highgui.hpp"
--#include <GL\gl.h>
-+#include <GL/gl.h>
- #endif
-
- static const char* trackbar_text =
---
-1.8.2.2
-
-
-From c135e32015f138223765c631e14dc81904d11775 Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Sun, 12 May 2013 18:41:21 +1000
-Subject: [PATCH 2/3] fix lib names
-
-
-diff --git a/cmake/OpenCVFindLibsVideo.cmake b/cmake/OpenCVFindLibsVideo.cmake
-index 4149185..84cceff 100644
---- a/cmake/OpenCVFindLibsVideo.cmake
-+++ b/cmake/OpenCVFindLibsVideo.cmake
-@@ -183,11 +183,11 @@ endif(WITH_VIDEOINPUT)
-
- # --- Extra HighGUI libs on Windows ---
- if(WIN32)
-- list(APPEND HIGHGUI_LIBRARIES comctl32 gdi32 ole32 vfw32)
-+ list(APPEND HIGHGUI_LIBRARIES -lcomctl32 -lgdi32 -lole32 -lvfw32)
- if(MINGW64)
-- list(APPEND HIGHGUI_LIBRARIES avifil32 avicap32 winmm msvfw32)
-- list(REMOVE_ITEM HIGHGUI_LIBRARIES vfw32)
-+ list(APPEND HIGHGUI_LIBRARIES -lavifil32 -lavicap32 -lwinmm -lmsvfw32)
-+ list(REMOVE_ITEM HIGHGUI_LIBRARIES -lvfw32)
- elseif(MINGW)
-- list(APPEND HIGHGUI_LIBRARIES winmm)
-+ list(APPEND HIGHGUI_LIBRARIES -lwinmm)
- endif()
- endif(WIN32)
---
-1.8.2.2
-
-
-From 297635f66f80a794721292a0d91a61deac2774de Mon Sep 17 00:00:00 2001
-From: MXE
-Date: Sun, 12 May 2013 19:08:25 +1000
-Subject: [PATCH 3/3] pkgconfig static fixes
-
+ if(HAVE_WINRT_CX)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /ZW")
diff --git a/cmake/templates/opencv-XXX.pc.cmake.in b/cmake/templates/opencv-XXX.pc.cmake.in
index 4f6415c..ea1ed15 100644
---- a/cmake/templates/opencv-XXX.pc.cmake.in
-+++ b/cmake/templates/opencv-XXX.pc.cmake.in
-@@ -9,5 +9,7 @@ includedir_new=@includedir@
+--- a/cmake/templates/opencv-XXX.pc.in
++++ b/cmake/templates/opencv-XXX.pc.in
+@@ -9,5 +9,7 @@
Name: OpenCV
Description: Open Source Computer Vision Library
- Version: @VERSION@
+ Version: @OPENCV_VERSION@
+Requires: OpenEXR libtiff-4
Libs: @OpenCV_LIB_COMPONENTS@
+Libs.private: -luuid -loleaut32
Cflags: -I${includedir_old} -I${includedir_new}
---
-1.8.2.2
diff --git a/src/opencv.mk b/src/opencv.mk
index 0c72cc7..b3cd457 100644
--- a/src/opencv.mk
+++ b/src/opencv.mk
@@ -3,10 +3,10 @@
PKG := opencv
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.4.4
-$(PKG)_CHECKSUM := 6e518c0274a8392c0c98d18ef0ef754b9c596aca
+$(PKG)_VERSION := 2.4.8
+$(PKG)_CHECKSUM := 7878a8c375ab3e292c8de7cb102bb3358056e01e
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
-$(PKG)_FILE := OpenCV-$($(PKG)_VERSION)a.tar.bz2
+$(PKG)_FILE := opencv-$($(PKG)_VERSION).zip
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)library/$(PKG)-unix/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc eigen ffmpeg jasper jpeg lcms1 libpng openexr tiff xz zlib
@@ -43,14 +43,18 @@ define $(PKG)_BUILD
-DBUILD_OPENEXR=OFF \
-DCMAKE_VERBOSE=ON \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DCMAKE_CXX_FLAGS='-D_WIN32_WINNT=0x0500' \
'$(1)'
# install
$(MAKE) -C '$(1).build' -j '$(JOBS)' install VERBOSE=1
# fixup and install pkg-config file
- # can't figure out where these unprefixed libs are coming from
- $(SED) -i 's,\(opengl32\|glu32\|stdc++\),-l\1,g' '$(1).build/unix-install/opencv.pc'
+ # openexr isn't available on x86_64-w64-mingw32
+ # opencv builds it's own libIlmImf.a
+ $(if $(findstring x86_64-w64-mingw32,$(TARGET)),\
+ $(SED) -i 's/OpenEXR//' '$(1).build/unix-install/opencv.pc')
+ $(SED) -i 's,share/OpenCV/3rdparty/,,g' '$(1).build/unix-install/opencv.pc'
$(INSTALL) -m755 '$(1).build/unix-install/opencv.pc' '$(PREFIX)/$(TARGET)/lib/pkgconfig'
'$(TARGET)-g++' \
@@ -58,8 +62,3 @@ define $(PKG)_BUILD
'$(1)/samples/c/fback_c.c' -o '$(PREFIX)/$(TARGET)/bin/test-opencv.exe' \
`'$(TARGET)-pkg-config' opencv --cflags --libs`
endef
-
-# float.h issues https://bugzilla.redhat.com/show_bug.cgi?id=843436
-$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
-
diff --git a/src/openexr-1-disable-zlib_winapi.patch b/src/openexr-1-disable-zlib_winapi.patch
deleted file mode 100644
index ef4d4c8..0000000
--- a/src/openexr-1-disable-zlib_winapi.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-diff -urN a/IlmImf/ImfPxr24Compressor.cpp b/IlmImf/ImfPxr24Compressor.cpp
---- a/IlmImf/ImfPxr24Compressor.cpp 2010-07-17 01:11:52.000000000 +0200
-+++ b/IlmImf/ImfPxr24Compressor.cpp 2011-09-21 23:41:28.130452657 +0200
-@@ -62,7 +62,6 @@
- // string of bytes is compressed with zlib.
- //
- //-----------------------------------------------------------------------------
--#define ZLIB_WINAPI
-
- #include <ImfPxr24Compressor.h>
- #include <ImfHeader.h>
-diff -urN a/IlmImf/ImfZipCompressor.cpp b/IlmImf/ImfZipCompressor.cpp
---- a/IlmImf/ImfZipCompressor.cpp 2010-07-17 01:11:52.000000000 +0200
-+++ b/IlmImf/ImfZipCompressor.cpp 2011-09-21 23:42:01.154288691 +0200
-@@ -39,7 +39,6 @@
- // class ZipCompressor
- //
- //-----------------------------------------------------------------------------
--#define ZLIB_WINAPI
-
- #include <ImfZipCompressor.h>
- #include <ImfCheckedArithmetic.h>
diff --git a/src/openexr-2-fix-include.patch b/src/openexr-2-fix-include.patch
deleted file mode 100644
index a109b43..0000000
--- a/src/openexr-2-fix-include.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-
-http://lists.gnu.org/archive/html/openexr-devel/2010-08/msg00006.html
-
-diff -urN openexr-1.7.1.orig/IlmImf/ImfHuf.h openexr-1.7.1/IlmImf/ImfHuf.h
---- openexr-1.7.1.orig/IlmImf/ImfHuf.h 2012-12-09 22:33:49.000000000 +1100
-+++ openexr-1.7.1/IlmImf/ImfHuf.h 2012-12-09 22:35:59.000000000 +1100
-@@ -32,7 +32,7 @@
- //
- ///////////////////////////////////////////////////////////////////////////
-
--
-+#include <string.h>
-
- #ifndef INCLUDED_IMF_HUF_H
- #define INCLUDED_IMF_HUF_H
-
diff --git a/src/openexr.mk b/src/openexr.mk
index 46a7ca6..e37100d 100644
--- a/src/openexr.mk
+++ b/src/openexr.mk
@@ -3,8 +3,8 @@
PKG := openexr
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.0.0
-$(PKG)_CHECKSUM := 774ae69ac01bbe4443b6fa0a9b12e276d0af44f5
+$(PKG)_VERSION := 2.1.0
+$(PKG)_CHECKSUM := 4a3db5ea527856145844556e0ee349f45ed4cbc7
$(PKG)_SUBDIR := openexr-$($(PKG)_VERSION)
$(PKG)_FILE := openexr-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://download.savannah.nongnu.org/releases/openexr/$($(PKG)_FILE)
@@ -34,10 +34,7 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)/$(ilmbase_SUBDIR)' -j '$(JOBS)' install \
bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-threading \
--disable-posix-sem \
--disable-ilmbasetest \
diff --git a/src/openmp-validation-1-fixes.patch b/src/openmp-validation-1-fixes.patch
new file mode 100644
index 0000000..9ab291c
--- /dev/null
+++ b/src/openmp-validation-1-fixes.patch
@@ -0,0 +1,43 @@
+diff -u OpenMP3.1_Validation/Makefile OpenMP3.1_Validation.new/Makefile
+--- OpenMP3.1_Validation/Makefile 2013-07-18 00:19:20.000000000 +1000
++++ OpenMP3.1_Validation.new/Makefile 2014-02-22 16:23:37.000000000 +1100
+@@ -185,14 +185,21 @@
+ .c.o: omp_testsuite omp_my_sleep
+ $(CC) $(CFLAGS) -c $<
+
++# Overwrite built-in rules to allow .exe suffix
++%: %.c
++ $(LINK.c) $^ $(LOADLIBES) $(LDLIBS) -o $@$(EXE_SUFFIX)
++
++%: %.f
++ $(LINK.f) $^ $(LOADLIBES) $(LDLIBS) -o $@$(EXE_SUFFIX)
++
+ ctest: omp_my_sleep omp_testsuite
+- ./runtest.pl --lang=c testlist-c.txt
++ ./runtest.pl $(RUNTEST_OPTIONS) --lang=c testlist-c.txt
+
+ ftest:
+ mkdir -p bin/fortran
+ cp omp_testsuite.f bin/fortran
+ cp omp_my_sleep.f bin/fortran
+- ./runtest.pl --lang=fortran testlist-f.txt
++ ./runtest.pl $(RUNTEST_OPTIONS) --lang=fortran testlist-f.txt
+
+ print_compile_options:
+ @echo "-------------------"
+Only in OpenMP3.1_Validation.new: bin
+Common subdirectories: OpenMP3.1_Validation/c and OpenMP3.1_Validation.new/c
+Common subdirectories: OpenMP3.1_Validation/fortran and OpenMP3.1_Validation.new/fortran
+diff -u OpenMP3.1_Validation/omp_my_sleep.h OpenMP3.1_Validation.new/omp_my_sleep.h
+--- OpenMP3.1_Validation/omp_my_sleep.h 2013-07-18 00:19:04.000000000 +1000
++++ OpenMP3.1_Validation.new/omp_my_sleep.h 2014-02-22 15:07:33.000000000 +1100
+@@ -5,7 +5,6 @@
+ #include<stdlib.h>
+ #include<unistd.h>
+
+-#include <sys/times.h>
+ #include <sys/time.h>
+ #include <time.h>
+ #include <errno.h>
+Only in OpenMP3.1_Validation.new: ompts.log
+Only in OpenMP3.1_Validation.new: results.txt
diff --git a/src/openmp-validation-2-test-crlf.patch b/src/openmp-validation-2-test-crlf.patch
new file mode 100644
index 0000000..ac57baf
--- /dev/null
+++ b/src/openmp-validation-2-test-crlf.patch
@@ -0,0 +1,44 @@
+diff -urN OpenMP3.1_Validation.orig/all-tests-openmp-validation.bat OpenMP3.1_Validation/all-tests-openmp-validation.bat
+--- OpenMP3.1_Validation.orig/all-tests-openmp-validation.bat 1970-01-01 10:00:00.000000000 +1000
++++ OpenMP3.1_Validation/all-tests-openmp-validation.bat 2014-02-23 04:35:51.000000000 +1100
+@@ -0,0 +1,40 @@
++setlocal enableextensions enabledelayedexpansion
++set /a TEST_COUNT=0
++set /a FAIL_COUNT=0
++set /a PASS_COUNT=0
++set LOG_FILE=%~n0.log
++set BLANK=
++for /l %%I in (1,1,79) do set SPACER=%BLANK% %BLANK%!SPACER!
++date /t > %LOG_FILE%
++time /t >> %LOG_FILE%
++echo. >> %LOG_FILE%
++echo L=Language (c=c, n=fortran) >> %LOG_FILE%
++echo Pass 0=Y >> %LOG_FILE%
++echo. >> %LOG_FILE%
++echo L Test Name %SPACER:~0,50% Pass Certainty%%>> %LOG_FILE%
++echo %SPACER: =-%>> %LOG_FILE%
++for /r %%F in (test*.exe) do (
++ set /a TEST_COUNT += 1
++ %%F
++ set ERR=!errorlevel!
++ if !ERR! neq 0 (set /a FAIL_COUNT += 1) else set /a PASS_COUNT += 1
++ set TEST_LANG=%%~pF
++ set TEST_NAME=%%~nF%SPACER%
++ set ERR_SPC=!ERR!%SPACER%
++ set /p "=!TEST_LANG:~-2,-1! !TEST_NAME:~0,60! !ERR_SPC:~0,5! " < nul >> %LOG_FILE%
++ %%~dpFc%%~nxF
++ echo !errorlevel!%% >> %LOG_FILE%
++ if exist %%~dpForph_%%~nxF (
++ set /a TEST_COUNT += 1
++ %%~dpForph_%%~nxF
++ set ERR=!errorlevel!
++ if !ERR! neq 0 (set /a FAIL_COUNT += 1) else set /a PASS_COUNT += 1
++ set TEST_NAME=orph_%%~nF%SPACER%
++ set ERR_SPC=!ERR!%SPACER%
++ set /p "=!TEST_LANG:~-2,-1! !TEST_NAME:~0,60! !ERR_SPC:~0,5! " < nul >> %LOG_FILE%
++ %%~dpForph_c%%~nxF
++ echo !errorlevel!%% >> %LOG_FILE%
++ )
++)
++echo. >> %LOG_FILE%
++echo Total tests: !TEST_COUNT! Total Failed: !FAIL_COUNT! Total Passed: !PASS_COUNT!>> %LOG_FILE%
diff --git a/src/openmp-validation.mk b/src/openmp-validation.mk
new file mode 100644
index 0000000..011f4ce
--- /dev/null
+++ b/src/openmp-validation.mk
@@ -0,0 +1,34 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := openmp-validation
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 3.1
+$(PKG)_CHECKSUM := 98e33b0d80a4e572c995cd40f50cce2c124d9465
+$(PKG)_SUBDIR := OpenMP$($(PKG)_VERSION)_Validation
+$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
+$(PKG)_URL := http://web.cs.uh.edu/~openuh/download/packages/$($(PKG)_FILE)
+$(PKG)_URL_2 :=
+$(PKG)_DEPS := gcc libgomp
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package openmp-validation need to be written.' >&2;
+ echo $(openmp-validation_VERSION)
+endef
+
+define $(PKG)_BUILD
+ $(MAKE) -C '$(1)' -j '$(JOBS)' \
+ RUNTEST_OPTIONS='--norun' \
+ EXE_SUFFIX='.exe' \
+ CC='$(TARGET)-gcc' \
+ FC='$(TARGET)-gfortran' \
+ ctest ftest
+
+ # execute validation tests on host - perl testsuite doesn't
+ # work on windows (perl runtest.pl --nocompile --lang=c testlist-c.txt)
+ # so run $(PREFIX)/$(TARGET)/bin/$(PKG)-tests/all-tests-openmp-validation.bat
+
+ mkdir -p '$(PREFIX)/$(TARGET)/bin'
+ rm -rf '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+ cp -rv '$(1)' '$(PREFIX)/$(TARGET)/bin/$(PKG)-tests'
+endef
diff --git a/src/openscenegraph-1-disable-broken-plugins.patch b/src/openscenegraph-1-disable-broken-plugins.patch
deleted file mode 100644
index 4810e12..0000000
--- a/src/openscenegraph-1-disable-broken-plugins.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-
-http://lists.nongnu.org/archive/html/mingw-cross-env-list/2012-11/msg00009.html
-
-diff -uNr a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt 2011-07-31 09:50:34.000000000 +0200
-+++ b/CMakeLists.txt 2012-11-26 09:41:12.199384455 +0100
-@@ -530,7 +530,7 @@
- # can use Quicktime.
- IF(NOT ANDROID)
- IF(NOT APPLE)
-- FIND_PACKAGE(GIFLIB)
-+ #FIND_PACKAGE(GIFLIB)
- FIND_PACKAGE(JPEG)
- FIND_PACKAGE(PNG)
- FIND_PACKAGE(TIFF)
diff --git a/src/openscenegraph.mk b/src/openscenegraph.mk
index 60c1884..04c5082 100644
--- a/src/openscenegraph.mk
+++ b/src/openscenegraph.mk
@@ -3,8 +3,8 @@
PKG := openscenegraph
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.1.9
-$(PKG)_CHECKSUM := 400794c0a4a568110f28ad89513df66f2f8121b3
+$(PKG)_VERSION := 3.2.0
+$(PKG)_CHECKSUM := c20891862b5876983d180fc4a3d3cfb2b4a3375c
$(PKG)_SUBDIR := OpenSceneGraph-$($(PKG)_VERSION)
$(PKG)_FILE := OpenSceneGraph-$($(PKG)_VERSION).zip
$(PKG)_URL := http://www.openscenegraph.org/downloads/developer_releases/$($(PKG)_FILE)
@@ -12,7 +12,8 @@ $(PKG)_DEPS := gcc boost curl dcmtk ffmpeg freetype gdal giflib gta jasper j
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.openscenegraph.org/downloads/developer_releases/?C=M;O=D' | \
- $(SED) -n 's,.*OpenSceneGraph-\([0-9][^<]*\)\.zip.*,\1,p' | \
+ $(SED) -n 's,.*OpenSceneGraph-\([0-9]*\.[0-9]*[02468]\.[^<]*\)\.zip.*,\1,p' | \
+ grep -v rc | \
$(SORT) -V | \
tail -1
endef
diff --git a/src/openssl-2-pod.patch b/src/openssl-1-fixes.patch
index 8c67521..e2cd29c 100644
--- a/src/openssl-2-pod.patch
+++ b/src/openssl-1-fixes.patch
@@ -1,10 +1,72 @@
This file is part of MXE.
See index.html for further information.
-diff -uNPr a/doc/apps/cms.pod b/doc/apps/cms.pod
---- a/doc/apps/cms.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/apps/cms.pod 2013-06-01 22:08:31.005787054 +0100
-@@ -450,28 +450,28 @@
+From fa1d94198fa75abfdb2e3fdbe071d37677347375 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Wed, 8 Jan 2014 02:19:10 +0100
+Subject: [PATCH 1/2] winsock2
+
+-This patch has been taken from:
+-http://rt.openssl.org/Ticket/Display.html?id=2285&user=guest&pass=guest
+
+diff --git a/e_os.h b/e_os.h
+index 79c1392..efe345f 100644
+--- a/e_os.h
++++ b/e_os.h
+@@ -492,7 +492,7 @@ static unsigned int _strlen31(const char *str)
+ # endif
+ # if !defined(IPPROTO_IP)
+ /* winsock[2].h was included already? */
+-# include <winsock.h>
++# include <winsock2.h>
+ # endif
+ # ifdef getservbyname
+ # undef getservbyname
+diff --git a/ssl/dtls1.h b/ssl/dtls1.h
+index e65d501..7762089 100644
+--- a/ssl/dtls1.h
++++ b/ssl/dtls1.h
+@@ -68,7 +68,7 @@
+ #endif
+ #ifdef OPENSSL_SYS_WIN32
+ /* Needed for struct timeval */
+-#include <winsock.h>
++#include <winsock2.h>
+ #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
+ #include <sys/timeval.h>
+ #else
+diff --git a/ssl/ssltest.c b/ssl/ssltest.c
+index 4f80be8..af5f1be 100644
+--- a/ssl/ssltest.c
++++ b/ssl/ssltest.c
+@@ -193,7 +193,7 @@
+ */
+
+ #ifdef OPENSSL_SYS_WINDOWS
+-#include <winsock.h>
++#include <winsock2.h>
+ #else
+ #include OPENSSL_UNISTD
+ #endif
+--
+1.8.4
+
+
+From ea68b7956d716fe09d7b47764e32127f5c1d0f10 Mon Sep 17 00:00:00 2001
+From: Tom Molesworth <tom@entitymodel.com>
+Date: Wed, 8 Jan 2014 02:20:21 +0100
+Subject: [PATCH 2/2] Patch OpenSSL POD docs for perl-5.16+
+
+Stricter validation in recent Perl versions means the install
+stage fails without these applied.
+
+Should be harmless for earlier versions of perl.
+
+diff --git a/doc/apps/cms.pod b/doc/apps/cms.pod
+index a09588a..a8301c7 100644
+--- a/doc/apps/cms.pod
++++ b/doc/apps/cms.pod
+@@ -450,28 +450,28 @@ remains DER.
=over 4
@@ -39,10 +101,11 @@ diff -uNPr a/doc/apps/cms.pod b/doc/apps/cms.pod
the message was verified correctly but an error occurred writing out
the signers certificates.
-diff -uNPr a/doc/apps/smime.pod b/doc/apps/smime.pod
---- a/doc/apps/smime.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/apps/smime.pod 2013-06-01 22:09:26.732719037 +0100
-@@ -308,28 +308,28 @@
+diff --git a/doc/apps/smime.pod b/doc/apps/smime.pod
+index e4e89af..617343f 100644
+--- a/doc/apps/smime.pod
++++ b/doc/apps/smime.pod
+@@ -308,28 +308,28 @@ remains DER.
=over 4
@@ -77,10 +140,11 @@ diff -uNPr a/doc/apps/smime.pod b/doc/apps/smime.pod
the message was verified correctly but an error occurred writing out
the signers certificates.
-diff -uNPr a/doc/crypto/rand.pod b/doc/crypto/rand.pod
---- a/doc/crypto/rand.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/crypto/rand.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -74,17 +74,14 @@
+diff --git a/doc/crypto/rand.pod b/doc/crypto/rand.pod
+index 1c068c8..801ef88 100644
+--- a/doc/crypto/rand.pod
++++ b/doc/crypto/rand.pod
+@@ -74,17 +74,14 @@ First up I will state the things I believe I need for a good RNG.
=over 4
@@ -101,7 +165,7 @@ diff -uNPr a/doc/crypto/rand.pod b/doc/crypto/rand.pod
The state should be very large. If the RNG is being used to generate
4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
If your RNG state only has 128 bits, you are obviously limiting the
-@@ -93,14 +90,12 @@
+@@ -93,14 +90,12 @@ carried away on this last point but it does indicate that it may not be
a bad idea to keep quite a lot of RNG state. It should be easier to
break a cipher than guess the RNG seed data.
@@ -118,7 +182,7 @@ diff -uNPr a/doc/crypto/rand.pod b/doc/crypto/rand.pod
When using data to seed the RNG state, the data used should not be
extractable from the RNG state. I believe this should be a
requirement because one possible source of 'secret' semi random
-@@ -108,13 +103,11 @@
+@@ -108,13 +103,11 @@ data would be a private key or a password. This data must
not be disclosed by either subsequent random numbers or a
'core' dump left by a program crash.
@@ -134,66 +198,11 @@ diff -uNPr a/doc/crypto/rand.pod b/doc/crypto/rand.pod
Given the random number output stream, it should not be possible to determine
the RNG state or the next random number.
-diff -uNPr a/doc/crypto/X509_STORE_CTX_get_error.pod b/doc/crypto/X509_STORE_CTX_get_error.pod
---- a/doc/crypto/X509_STORE_CTX_get_error.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/crypto/X509_STORE_CTX_get_error.pod 2013-06-01 22:11:00.014931266 +0100
-@@ -278,6 +278,8 @@
- an application specific error. This will never be returned unless explicitly
- set by an application.
-
-+=back
-+
- =head1 NOTES
-
- The above functions should be used instead of directly referencing the fields
-diff -uNPr a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod
---- a/doc/ssl/SSL_accept.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_accept.pod 2013-06-01 22:21:46.302545052 +0100
-@@ -44,18 +44,16 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
- established.
-
--=item 0
--
-+=item * 0
- The TLS/SSL handshake was not successful but was shut down controlled and
- by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
- return value B<ret> to find out the reason.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The TLS/SSL handshake was not successful because a fatal error occurred either
- at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod
---- a/doc/ssl/SSL_clear.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_clear.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -56,13 +56,11 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The SSL_clear() operation could not be performed. Check the error stack to
- find out the reason.
-
--=item 1
--
-+=item * 1
- The SSL_clear() operation was successful.
-
- =back
-diff -uNPr a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod
---- a/doc/ssl/SSL_COMP_add_compression_method.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_COMP_add_compression_method.pod 2013-06-01 22:12:10.753575547 +0100
-@@ -53,11 +53,11 @@
+diff --git a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod
+index 42fa66b..d531299 100644
+--- a/doc/ssl/SSL_COMP_add_compression_method.pod
++++ b/doc/ssl/SSL_COMP_add_compression_method.pod
+@@ -53,11 +53,11 @@ SSL_COMP_add_compression_method() may return the following values:
=over 4
@@ -207,35 +216,11 @@ diff -uNPr a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_
The operation failed. Check the error queue to find out the reason.
-diff -uNPr a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod
---- a/doc/ssl/SSL_connect.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_connect.pod 2013-06-01 22:22:44.109437174 +0100
-@@ -41,18 +41,16 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
- established.
-
--=item 0
--
-+=item * 0
- The TLS/SSL handshake was not successful but was shut down controlled and
- by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
- return value B<ret> to find out the reason.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The TLS/SSL handshake was not successful, because a fatal error occurred either
- at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod
---- a/doc/ssl/SSL_CTX_add_session.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_add_session.pod 2013-06-01 22:13:06.396509142 +0100
-@@ -52,15 +52,15 @@
+diff --git a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod
+index 82676b2..ca89dcc 100644
+--- a/doc/ssl/SSL_CTX_add_session.pod
++++ b/doc/ssl/SSL_CTX_add_session.pod
+@@ -52,15 +52,15 @@ The following values are returned by all functions:
=over 4
@@ -257,10 +242,11 @@ diff -uNPr a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod
=back
-diff -uNPr a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod
---- a/doc/ssl/SSL_CTX_load_verify_locations.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_load_verify_locations.pod 2013-06-01 22:13:55.759563092 +0100
-@@ -100,13 +100,13 @@
+diff --git a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod
+index 84a799f..66031d4 100644
+--- a/doc/ssl/SSL_CTX_load_verify_locations.pod
++++ b/doc/ssl/SSL_CTX_load_verify_locations.pod
+@@ -100,13 +100,13 @@ The following return values can occur:
=over 4
@@ -276,28 +262,31 @@ diff -uNPr a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_ve
The operation succeeded.
-diff -uNPr a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod
---- a/doc/ssl/SSL_CTX_set_client_CA_list.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -66,12 +66,10 @@
+diff --git a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod
+index 5e66133..2874fb8 100644
+--- a/doc/ssl/SSL_CTX_set_client_CA_list.pod
++++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod
+@@ -66,13 +66,13 @@ values:
=over 4
--=item 1
--
-+=item * 1
- The operation succeeded.
-
-=item 0
--
+=item * 0
+
A failure while manipulating the STACK_OF(X509_NAME) object occurred or
the X509_NAME could not be extracted from B<cacert>. Check the error stack
to find out the reason.
-diff -uNPr a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod
---- a/doc/ssl/SSL_CTX_set_session_id_context.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_session_id_context.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -64,14 +64,12 @@
+
+-=item 1
++=item * 1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod
+index 58fc685..b3306aa 100644
+--- a/doc/ssl/SSL_CTX_set_session_id_context.pod
++++ b/doc/ssl/SSL_CTX_set_session_id_context.pod
+@@ -64,14 +64,12 @@ return the following values:
=over 4
@@ -314,10 +303,11 @@ diff -uNPr a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_se
The operation succeeded.
=back
-diff -uNPr a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod
---- a/doc/ssl/SSL_CTX_set_ssl_version.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_ssl_version.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -42,12 +42,10 @@
+diff --git a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod
+index 254f2b4..21df5a2 100644
+--- a/doc/ssl/SSL_CTX_set_ssl_version.pod
++++ b/doc/ssl/SSL_CTX_set_ssl_version.pod
+@@ -42,12 +42,10 @@ and SSL_set_ssl_method():
=over 4
@@ -332,21 +322,20 @@ diff -uNPr a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_versi
The operation succeeded.
=back
-diff -uNPr a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
---- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2013-06-01 22:16:32.156565713 +0100
-@@ -81,7 +81,9 @@
+diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
+index 7e60df5..77e2139 100644
+--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
+@@ -83,7 +83,7 @@ Return values from the server callback are interpreted as follows:
- Return values from the server callback are interpreted as follows:
+ =over 4
-=item > 0
-+=over 4
-+
+=item * > 0
PSK identity was found and the server callback has provided the PSK
successfully in parameter B<psk>. Return value is the length of
-@@ -94,9 +96,11 @@
+@@ -96,7 +96,7 @@ data to B<psk> and return the length of the random data, so the
connection will fail with decryption_error before it will be finished
completely.
@@ -355,39 +344,109 @@ diff -uNPr a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk
PSK identity was not found. An "unknown_psk_identity" alert message
will be sent and the connection setup fails.
+diff --git a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod
+index b1c34d1..b8a2c17 100644
+--- a/doc/ssl/SSL_accept.pod
++++ b/doc/ssl/SSL_accept.pod
+@@ -44,18 +44,18 @@ The following return values can occur:
+
+ =over 4
+
+-=item 0
++=item * 0
+
+ The TLS/SSL handshake was not successful but was shut down controlled and
+ by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
+ return value B<ret> to find out the reason.
+
+-=item 1
++=item * 1
+
+ The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+ established.
+
+-=item E<lt>0
++=item * E<lt>0
-+=back
-+
- =cut
-diff -uNPr a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod
---- a/doc/ssl/SSL_do_handshake.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_do_handshake.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -45,18 +45,16 @@
+ The TLS/SSL handshake was not successful because a fatal error occurred either
+ at the protocol level or a connection failure occurred. The shutdown was
+diff --git a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod
+index d4df1bf..c6416cf 100644
+--- a/doc/ssl/SSL_clear.pod
++++ b/doc/ssl/SSL_clear.pod
+@@ -56,13 +56,11 @@ The following return values can occur:
=over 4
+-=item 0
+-
++=item * 0
+ The SSL_clear() operation could not be performed. Check the error stack to
+ find out the reason.
+
-=item 1
-
+=item * 1
+ The SSL_clear() operation was successful.
+
+ =back
+diff --git a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod
+index 946ca89..792821e 100644
+--- a/doc/ssl/SSL_connect.pod
++++ b/doc/ssl/SSL_connect.pod
+@@ -41,18 +41,18 @@ The following return values can occur:
+
+ =over 4
+
+-=item 0
++=item * 0
+
+ The TLS/SSL handshake was not successful but was shut down controlled and
+ by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
+ return value B<ret> to find out the reason.
+
+-=item 1
++=item * 1
+
The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
established.
+-=item E<lt>0
++=item * E<lt>0
+
+ The TLS/SSL handshake was not successful, because a fatal error occurred either
+ at the protocol level or a connection failure occurred. The shutdown was
+diff --git a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod
+index 7f8cf24..c46d18d 100644
+--- a/doc/ssl/SSL_do_handshake.pod
++++ b/doc/ssl/SSL_do_handshake.pod
+@@ -45,18 +45,18 @@ The following return values can occur:
+
+ =over 4
+
-=item 0
--
+=item * 0
+
The TLS/SSL handshake was not successful but was shut down controlled and
by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
return value B<ret> to find out the reason.
+-=item 1
++=item * 1
+
+ The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+ established.
+
-=item E<lt>0
+=item * E<lt>0
The TLS/SSL handshake was not successful because a fatal error occurred either
at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
---- a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -36,11 +36,11 @@
+diff --git a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
+index 165c6a5..073e99c 100644
+--- a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
++++ b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
+@@ -36,11 +36,11 @@ before the SSL index is created.
=over 4
@@ -401,10 +460,11 @@ diff -uNPr a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod b/doc/ssl/SSL_get_ex
An error occurred, check the error stack for a detailed error message.
-diff -uNPr a/doc/ssl/SSL_get_fd.pod b/doc/ssl/SSL_get_fd.pod
---- a/doc/ssl/SSL_get_fd.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_get_fd.pod 2013-06-01 22:26:15.961376995 +0100
-@@ -26,12 +26,12 @@
+diff --git a/doc/ssl/SSL_get_fd.pod b/doc/ssl/SSL_get_fd.pod
+index 89260b5..1207658 100644
+--- a/doc/ssl/SSL_get_fd.pod
++++ b/doc/ssl/SSL_get_fd.pod
+@@ -26,12 +26,12 @@ The following return values can occur:
=over 4
@@ -419,10 +479,11 @@ diff -uNPr a/doc/ssl/SSL_get_fd.pod b/doc/ssl/SSL_get_fd.pod
The file descriptor linked to B<ssl>.
-diff -uNPr a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
---- a/doc/ssl/SSL_read.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_read.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -81,13 +81,12 @@
+diff --git a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
+index 7038cd2..de52b49 100644
+--- a/doc/ssl/SSL_read.pod
++++ b/doc/ssl/SSL_read.pod
+@@ -81,13 +81,12 @@ The following return values can occur:
=over 4
@@ -438,7 +499,7 @@ diff -uNPr a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
The read operation was not successful. The reason may either be a clean
shutdown due to a "close notify" alert sent by the peer (in which case
the SSL_RECEIVED_SHUTDOWN flag in the ssl shutdown state is set
-@@ -103,7 +102,7 @@
+@@ -103,7 +102,7 @@ only be detected, whether the underlying connection was closed. It cannot
be checked, whether the closure was initiated by the peer or by something
else.
@@ -447,10 +508,11 @@ diff -uNPr a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
The read operation was not successful, because either an error occurred
or action must be taken by the calling process. Call SSL_get_error() with the
-diff -uNPr a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod
---- a/doc/ssl/SSL_session_reused.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_session_reused.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -27,12 +27,10 @@
+diff --git a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod
+index da7d062..e55c958 100644
+--- a/doc/ssl/SSL_session_reused.pod
++++ b/doc/ssl/SSL_session_reused.pod
+@@ -27,12 +27,10 @@ The following return values can occur:
=over 4
@@ -465,10 +527,11 @@ diff -uNPr a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod
A session was reused.
=back
-diff -uNPr a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod
---- a/doc/ssl/SSL_set_fd.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_fd.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -35,12 +35,10 @@
+diff --git a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod
+index 7029112..42bfa1a 100644
+--- a/doc/ssl/SSL_set_fd.pod
++++ b/doc/ssl/SSL_set_fd.pod
+@@ -35,12 +35,10 @@ The following return values can occur:
=over 4
@@ -483,10 +546,11 @@ diff -uNPr a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod
The operation succeeded.
=back
-diff -uNPr a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod
---- a/doc/ssl/SSL_set_session.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_session.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -37,12 +37,10 @@
+diff --git a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod
+index 5f54714..1aeee12 100644
+--- a/doc/ssl/SSL_set_session.pod
++++ b/doc/ssl/SSL_set_session.pod
+@@ -37,12 +37,10 @@ The following return values can occur:
=over 4
@@ -501,10 +565,11 @@ diff -uNPr a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod
The operation succeeded.
=back
-diff -uNPr a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod
---- a/doc/ssl/SSL_set_shutdown.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_shutdown.pod 2013-06-01 22:29:14.361957917 +0100
-@@ -24,16 +24,16 @@
+diff --git a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod
+index 011a022..6f3e03e 100644
+--- a/doc/ssl/SSL_set_shutdown.pod
++++ b/doc/ssl/SSL_set_shutdown.pod
+@@ -24,16 +24,16 @@ The shutdown state of an ssl connection is a bitmask of:
=over 4
@@ -524,36 +589,38 @@ diff -uNPr a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod
A shutdown alert was received form the peer, either a normal "close notify"
or a fatal error.
-diff -uNPr a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod
---- a/doc/ssl/SSL_shutdown.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_shutdown.pod 2013-06-02 01:49:05.023205397 +0100
-@@ -92,19 +92,17 @@
+diff --git a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod
+index 42a89b7..2853e65 100644
+--- a/doc/ssl/SSL_shutdown.pod
++++ b/doc/ssl/SSL_shutdown.pod
+@@ -92,19 +92,19 @@ The following return values can occur:
=over 4
--=item 1
--
-+=item * 1
- The shutdown was successfully completed. The "close notify" alert was sent
- and the peer's "close notify" alert was received.
-
-=item 0
--
+=item * 0
+
The shutdown is not yet finished. Call SSL_shutdown() for a second time,
if a bidirectional shutdown shall be performed.
The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an
erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred.
+-=item 1
++=item * 1
+
+ The shutdown was successfully completed. The "close notify" alert was sent
+ and the peer's "close notify" alert was received.
+
-=item -1
+=item * -1
The shutdown was not successful because a fatal error occurred either
at the protocol level or a connection failure occurred. It can also occur if
-diff -uNPr a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
---- a/doc/ssl/SSL_write.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_write.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -74,13 +74,12 @@
+diff --git a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
+index e013c12..b2934b8 100644
+--- a/doc/ssl/SSL_write.pod
++++ b/doc/ssl/SSL_write.pod
+@@ -74,13 +74,12 @@ The following return values can occur:
=over 4
@@ -569,7 +636,7 @@ diff -uNPr a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
The write operation was not successful. Probably the underlying connection
was closed. Call SSL_get_error() with the return value B<ret> to find out,
whether an error occurred or the connection was shut down cleanly
-@@ -90,7 +89,7 @@
+@@ -90,7 +89,7 @@ SSLv2 (deprecated) does not support a shutdown alert protocol, so it can
only be detected, whether the underlying connection was closed. It cannot
be checked, why the closure happened.
@@ -578,3 +645,6 @@ diff -uNPr a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
The write operation was not successful, because either an error occurred
or action must be taken by the calling process. Call SSL_get_error() with the
+--
+1.8.4
+
diff --git a/src/openssl-1-winsock2.patch b/src/openssl-1-winsock2.patch
deleted file mode 100644
index 8d5a684..0000000
--- a/src/openssl-1-winsock2.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://rt.openssl.org/Ticket/Display.html?id=2285&user=guest&pass=guest
-
-diff -urN a/e_os.h b/e_os.h
---- a/e_os.h 2010-05-31 15:18:08.000000000 +0200
-+++ b/e_os.h 2010-06-04 17:43:44.370181869 +0200
-@@ -492,7 +492,7 @@
- # endif
- # if !defined(IPPROTO_IP)
- /* winsock[2].h was included already? */
--# include <winsock.h>
-+# include <winsock2.h>
- # endif
- # ifdef getservbyname
- # undef getservbyname
-diff -urN a/ssl/dtls1.h b/ssl/dtls1.h
---- a/ssl/dtls1.h 2010-04-14 02:17:29.000000000 +0200
-+++ b/ssl/dtls1.h 2010-06-04 17:44:27.318182412 +0200
-@@ -68,7 +68,7 @@
- #endif
- #ifdef OPENSSL_SYS_WIN32
- /* Needed for struct timeval */
--#include <winsock.h>
-+#include <winsock2.h>
- #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
- #include <sys/timeval.h>
- #else
-diff -urN a/ssl/ssltest.c b/ssl/ssltest.c
---- a/ssl/ssltest.c 2010-01-24 17:57:38.000000000 +0100
-+++ b/ssl/ssltest.c 2010-06-04 17:44:26.134181765 +0200
-@@ -193,7 +193,7 @@
- */
-
- #ifdef OPENSSL_SYS_WINDOWS
--#include <winsock.h>
-+#include <winsock2.h>
- #else
- #include OPENSSL_UNISTD
- #endif
diff --git a/src/openssl.mk b/src/openssl.mk
index 414dd37..4e41ba6 100644
--- a/src/openssl.mk
+++ b/src/openssl.mk
@@ -3,8 +3,8 @@
PKG := openssl
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.0.1e
-$(PKG)_CHECKSUM := 3f1b1223c9e8189bfe4e186d86449775bd903460
+$(PKG)_VERSION := 1.0.1f
+$(PKG)_CHECKSUM := 9ef09e97dfc9f14ac2c042f3b7e301098794fc0f
$(PKG)_SUBDIR := openssl-$($(PKG)_VERSION)
$(PKG)_FILE := openssl-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.openssl.org/source/$($(PKG)_FILE)
@@ -20,15 +20,18 @@ endef
define $(PKG)_BUILD
cd '$(1)' && CC='$(TARGET)-gcc' ./Configure \
- mingw \
+ @openssl-target@ \
zlib \
- no-shared \
+ $(if $(BUILD_STATIC),no-,)shared \
no-capieng \
--prefix='$(PREFIX)/$(TARGET)'
$(MAKE) -C '$(1)' install -j 1 \
CC='$(TARGET)-gcc' \
RANLIB='$(TARGET)-ranlib' \
- AR='$(TARGET)-ar rcu'
+ AR='$(TARGET)-ar rcu' \
+ CROSS_COMPILE='$(TARGET)-'
endef
-$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst mingw ,mingw64 ,$($(PKG)_BUILD))
+$(PKG)_BUILD_i686-pc-mingw32 = $(subst @openssl-target@,mingw,$($(PKG)_BUILD))
+$(PKG)_BUILD_i686-w64-mingw32 = $(subst @openssl-target@,mingw,$($(PKG)_BUILD))
+$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst @openssl-target@,mingw64,$($(PKG)_BUILD))
diff --git a/src/opus.mk b/src/opus.mk
index bcf88d4..faafe02 100644
--- a/src/opus.mk
+++ b/src/opus.mk
@@ -3,8 +3,8 @@
PKG := opus
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.0.2
-$(PKG)_CHECKSUM := 37dd3d69b10612cd513ccf26675ef6d61eda24b4
+$(PKG)_VERSION := 1.1
+$(PKG)_CHECKSUM := 35005f5549e2583f5770590135984dcfce6f3d58
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.xiph.org/releases/$(PKG)/$($(PKG)_FILE)
@@ -14,15 +14,15 @@ define $(PKG)_UPDATE
$(WGET) -q -O- 'http://downloads.xiph.org/releases/opus/?C=M;O=D' | \
$(SED) -n 's,.*opus-\([0-9][^>]*\)\.tar.*,\1,p' | \
grep -v 'alpha' | \
+ grep -v 'beta' | \
+ grep -v 'rc' | \
+ $(SORT) -Vr | \
head -1
endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/opusfile-1-fseeko64.patch b/src/opusfile-1-fseeko64.patch
deleted file mode 100644
index 1df58b7..0000000
--- a/src/opusfile-1-fseeko64.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://git.xiph.org/?p=opusfile.git;a=patch;h=d75915786f465892f5eadcd93444f51a32b9ad1c
-
-From d75915786f465892f5eadcd93444f51a32b9ad1c Mon Sep 17 00:00:00 2001
-From: Timothy B. Terriberry <tterribe@xiph.org>
-Date: Tue, 8 Jan 2013 05:04:41 -0800
-Subject: [PATCH] Use fseeko64/ftello64 for mingw32.
-
-It turns out i686-pc-mingw32 does define these functions, and they
- are always available (unlike _fseeki64/_ftelli64).
-This means we can build and link without requiring
- i686-w64-mingw32.
-The resulting binary still doesn't run in wine for me, but that may
- be a personal problem.
----
- src/stream.c | 22 ++++++++++++++++++++++
- 1 files changed, 22 insertions(+), 0 deletions(-)
-
-diff --git a/src/stream.c b/src/stream.c
-index caa82f1..1c7266b 100644
---- a/src/stream.c
-+++ b/src/stream.c
-@@ -56,7 +56,18 @@ static int op_fread(void *_stream,unsigned char *_ptr,int _buf_size){
- static int op_fseek(void *_stream,opus_int64 _offset,int _whence){
- #if defined(_MSC_VER)
- return _fseeki64((FILE *)_stream,_offset,_whence);
-+#elif defined(__MINGW32__)
-+ /*i686-pc-mingw32 does not have fseeko() and requires
-+ __MSVCRT_VERSION__>=0x800 for _fseeki64(), which screws up linking with
-+ other libraries (that don't use MSVCRT80 from MSVC 2005 by default).
-+ i686-w64-mingw32 does have fseeko() and respects _FILE_OFFSET_BITS, but I
-+ don't know how to detect that at compile time.
-+ We don't need to use fopen64(), as this just dispatches to fopen() in
-+ mingw32.*/
-+ return fseeko64((FILE *)_stream,(off64_t)_offset,_whence);
- #else
-+ /*This function actually conforms to the SUSv2 and POSIX.1-2001, so we prefer
-+ it except in the two special-cases above.*/
- return fseeko((FILE *)_stream,(off_t)_offset,_whence);
- #endif
- }
-@@ -64,7 +75,18 @@ static int op_fseek(void *_stream,opus_int64 _offset,int _whence){
- static opus_int64 op_ftell(void *_stream){
- #if defined(_MSC_VER)
- return _ftelli64((FILE *)_stream);
-+#elif defined(__MINGW32__)
-+ /*i686-pc-mingw32 does not have ftello() and requires
-+ __MSVCRT_VERSION__>=0x800 for _ftelli64(), which screws up linking with
-+ other libraries (that don't use MSVCRT80 from MSVC 2005 by default).
-+ i686-w64-mingw32 does have ftello() and respects _FILE_OFFSET_BITS, but I
-+ don't know how to detect that at compile time.
-+ We don't need to use fopen64(), as this just dispatches to fopen() in
-+ mingw32.*/
-+ return ftello64((FILE *)_stream);
- #else
-+ /*This function actually conforms to the SUSv2 and POSIX.1-2001, so we prefer
-+ it except in the two special-cases above.*/
- return ftello((FILE *)_stream);
- #endif
- }
---
-1.7.2.5
-
diff --git a/src/opusfile-2-lrint-lib.patch b/src/opusfile-2-lrint-lib.patch
deleted file mode 100644
index ec848d2..0000000
--- a/src/opusfile-2-lrint-lib.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://lists.xiph.org/pipermail/opus/2013-March/001972.html
-
-From 6ab2eb850c467e9eaca1c67d37b3e49521a04460 Mon Sep 17 00:00:00 2001
-From: Ulrich Klauer <ulrich@chirlu.de>
-Date: Sun, 10 Mar 2013 04:02:49 +0100
-Subject: [PATCH] Handle AC_SEARCH_LIBS special result value
-
-AC_SEARCH_LIBS will give a result of "none required" if the relevant
-function is available without any special libraries. (This is the case
-for lrintf on MinGW.) Make sure this special value isn't put verbatim
-into the pkg-config files, as it would cause the linker to search for
-files named "none" and "required", and fail.
----
- configure.ac | 6 +++++-
- opusfile-uninstalled.pc.in | 2 +-
- opusfile.pc.in | 2 +-
- 3 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8b1a3b3..d82d53f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -107,7 +107,11 @@ AS_IF([test "x$enable_fixed_point" = "xyes"],
- ])
- ]
- )
--AC_SUBST(ac_cv_search_lrintf)
-+lrintf_lib=" $ac_cv_search_lrintf"
-+AS_IF([test "x$ac_cv_search_lrintf" = "xnone required"],
-+ [lrintf_lib=""]
-+)
-+AC_SUBST(lrintf_lib)
-
- CC_ATTRIBUTE_VISIBILITY([default], [
- CC_FLAG_VISIBILITY([CFLAGS="${CFLAGS} -fvisibility=hidden"])
-diff --git a/opusfile-uninstalled.pc.in b/opusfile-uninstalled.pc.in
-index b63a23c..7f555d6 100644
---- a/opusfile-uninstalled.pc.in
-+++ b/opusfile-uninstalled.pc.in
-@@ -10,5 +10,5 @@ Description: Opus playback library (not installed)
- Version: @VERSION@
- Requires: ogg >= 1.3 opus >= 1.0.1 @openssl@
- Conflicts:
--Libs: ${libdir}/libopusfile.la @ac_cv_search_lrintf@
-+Libs: ${libdir}/libopusfile.la@lrintf_lib@
- Cflags: -I${includedir}
-diff --git a/opusfile.pc.in b/opusfile.pc.in
-index 0a77f0c..c96d6a8 100644
---- a/opusfile.pc.in
-+++ b/opusfile.pc.in
-@@ -11,5 +11,5 @@ Version: @VERSION@
- Requires: ogg >= 1.3 opus >= 1.0.1 @openssl@
- Conflicts:
- Libs: -L${libdir} -lopusfile
--Libs.private: @ac_cv_search_lrintf@
-+Libs.private:@lrintf_lib@
- Cflags: -I${includedir}/opus
---
-1.7.10.4
-
diff --git a/src/opusfile.mk b/src/opusfile.mk
index d1375af..b14f469 100644
--- a/src/opusfile.mk
+++ b/src/opusfile.mk
@@ -3,8 +3,8 @@
PKG := opusfile
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.2
-$(PKG)_CHECKSUM := db020e25178b501929a11b0e0f469890f4f4e6fa
+$(PKG)_VERSION := 0.4
+$(PKG)_CHECKSUM := d514e57ffc051e4359b9bc13d6fc8805a26cdd3b
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.xiph.org/releases/opus/$($(PKG)_FILE)
@@ -14,6 +14,8 @@ define $(PKG)_UPDATE
$(WGET) -q -O- 'http://downloads.xiph.org/releases/opus/?C=M;O=D' | \
$(SED) -n 's,.*opusfile-\([0-9][^>]*\)\.tar.*,\1,p' | \
grep -v 'alpha' | \
+ grep -v 'beta' | \
+ $(SORT) -Vr | \
head -1
endef
diff --git a/src/pango-1-fixes.patch b/src/pango-1-fixes.patch
index ca5f093..39397f2 100644
--- a/src/pango-1-fixes.patch
+++ b/src/pango-1-fixes.patch
@@ -166,7 +166,7 @@ index ac62a89..96837d6 100644
- fi
-fi
-
--GTK_DOC_CHECK([1.0])
+-GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
+enable_gtk_doc=no
AC_ARG_ENABLE(man,
diff --git a/src/pango.mk b/src/pango.mk
index d040e93..a387cef 100644
--- a/src/pango.mk
+++ b/src/pango.mk
@@ -3,8 +3,8 @@
PKG := pango
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.35.0
-$(PKG)_CHECKSUM := 13f10192b6dcbb0f0f5f95eecedd8fa392d964b1
+$(PKG)_VERSION := 1.36.1
+$(PKG)_CHECKSUM := 8800fc023f0be07190b2a6708af4f064568a4710
$(PKG)_SUBDIR := pango-$($(PKG)_VERSION)
$(PKG)_FILE := pango-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnome.org/pub/gnome/sources/pango/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
@@ -21,10 +21,7 @@ define $(PKG)_BUILD
rm '$(1)'/docs/Makefile.am
cd '$(1)' && NOCONFIGURE=1 ./autogen.sh
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-explicit-deps \
--with-included-modules \
--without-dynamic-modules \
diff --git a/src/pcre.mk b/src/pcre.mk
index d736780..3a18848 100644
--- a/src/pcre.mk
+++ b/src/pcre.mk
@@ -3,8 +3,8 @@
PKG := pcre
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 8.33
-$(PKG)_CHECKSUM := c4dd6aa1ffeca7bea1bc45b214c8e862bfdacc3c
+$(PKG)_VERSION := 8.34
+$(PKG)_CHECKSUM := e02257272c2c554b14bee723158d46da2b1ad72a
$(PKG)_SUBDIR := pcre-$($(PKG)_VERSION)
$(PKG)_FILE := pcre-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/pcre/pcre/$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -17,14 +17,9 @@ define $(PKG)_UPDATE
head -1
endef
-define $(PKG)_BUILD
- $(SED) -i 's,__declspec(dllimport),,' '$(1)/pcre.h.in'
- $(SED) -i 's,__declspec(dllimport),,' '$(1)/pcreposix.h'
+define $(PKG)_BUILD_SHARED
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-pcre16 \
--enable-utf \
--enable-unicode-properties \
@@ -34,4 +29,11 @@ define $(PKG)_BUILD
--disable-pcretest-libreadline
rm -f '$(PREFIX)/$(TARGET)'/share/man/man3/pcre16*.3
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ ln -sf '$(PREFIX)/$(TARGET)/bin/pcre-config' '$(PREFIX)/bin/$(TARGET)-pcre-config'
+endef
+
+define $(PKG)_BUILD
+ $(SED) -i 's,__declspec(dllimport),,' '$(1)/pcre.h.in'
+ $(SED) -i 's,__declspec(dllimport),,' '$(1)/pcreposix.h'
+ $($(PKG)_BUILD_SHARED)
endef
diff --git a/src/pdcurses.mk b/src/pdcurses.mk
index 7efc0a0..fbf7352 100644
--- a/src/pdcurses.mk
+++ b/src/pdcurses.mk
@@ -25,10 +25,15 @@ define $(PKG)_BUILD
PDCURSES_SRCDIR=. \
WIDE=Y \
UTF8=Y
- $(TARGET)-ranlib '$(1)/pdcurses.a' '$(1)/panel.a'
+ mv '$(1)/pdcurses.a' '$(1)/libcurses.a'
+ mv '$(1)/panel.a' '$(1)/libpanel.a'
+ $(TARGET)-ranlib '$(1)/libcurses.a' '$(1)/libpanel.a'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/curses.h' '$(1)/panel.h' '$(1)/term.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/'
- $(INSTALL) -m644 '$(1)/pdcurses.a' '$(PREFIX)/$(TARGET)/lib/libpdcurses.a'
- $(INSTALL) -m644 '$(1)/panel.a' '$(PREFIX)/$(TARGET)/lib/libpanel.a'
+ $(if $(BUILD_STATIC), \
+ $(INSTALL) -m644 '$(1)/libcurses.a' '$(1)/libpanel.a' '$(PREFIX)/$(TARGET)/lib/', \
+ $(MAKE_SHARED_FROM_STATIC) '$(1)/libcurses.a' && \
+ $(MAKE_SHARED_FROM_STATIC) '$(1)/libpanel.a' \
+ )
endef
diff --git a/src/pixman.mk b/src/pixman.mk
index a0d2395..0bd0ccf 100644
--- a/src/pixman.mk
+++ b/src/pixman.mk
@@ -3,8 +3,8 @@
PKG := pixman
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.29.4
-$(PKG)_CHECKSUM := de11c690f2aa0ffb4d98db9d8735888a72a510d2
+$(PKG)_VERSION := 0.31.2
+$(PKG)_CHECKSUM := 0246796a1220a52e8e98110dd1460b64e7f2476c
$(PKG)_SUBDIR := pixman-$($(PKG)_VERSION)
$(PKG)_FILE := pixman-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://cairographics.org/snapshots/$($(PKG)_FILE)
@@ -19,9 +19,6 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/pkgconf.mk b/src/pkgconf.mk
new file mode 100644
index 0000000..d7791ee
--- /dev/null
+++ b/src/pkgconf.mk
@@ -0,0 +1,90 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := pkgconf
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := da179fd
+$(PKG)_CHECKSUM := 1e7b5ffe35ca4580a9b801307c3bc919fd77a4fd
+$(PKG)_SUBDIR := $(PKG)-$(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://github.com/$(PKG)/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS :=
+
+$(PKG)_DEPS_$(BUILD) := automake
+
+define $(PKG)_UPDATE_
+ $(WGET) -q -O- 'https://github.com/pkgconf/pkgconf/commits/master' | \
+ $(SED) -n 's#.*<span class="sha">\([^<]\{7\}\)[^<]\{3\}<.*#\1#p' | \
+ head -1
+endef
+
+define $(PKG)_UPDATE
+ echo 'Warning: Updates are temporarily disabled for package pkgconf.' >&2;
+ echo $(pkgconf_VERSION)
+endef
+
+define $(PKG)_BUILD_COMMON
+ cd '$(1)' && ./autogen.sh
+ cd '$(1)' && ./configure \
+ --prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+ ln -sf '$(PREFIX)/$(TARGET)/bin/pkgconf' '$(PREFIX)/$(TARGET)/bin/pkg-config'
+
+ # install target-specific autotools config file
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/share'
+ echo "ac_cv_build=$(BUILD)" > '$(PREFIX)/$(TARGET)/share/config.site'
+
+ # install config.guess for general use
+ $(INSTALL) -d '$(PREFIX)/bin'
+ $(INSTALL) -m755 '$(EXT_DIR)/config.guess' '$(PREFIX)/bin/'
+
+ # create pkg-config script
+ (echo '#!/bin/sh'; \
+ echo 'PKG_CONFIG_PATH="$(PREFIX)/$(TARGET)/qt5/lib/pkgconfig":"$$PKG_CONFIG_PATH_$(subst .,_,$(subst -,_,$(TARGET)))" PKG_CONFIG_LIBDIR='\''$(PREFIX)/$(TARGET)/lib/pkgconfig'\'' exec '$(PREFIX)/$(TARGET)/bin/pkg-config' $(if $(BUILD_STATIC),--static) "$$@"') \
+ > '$(PREFIX)/bin/$(TARGET)-pkg-config'
+ chmod 0755 '$(PREFIX)/bin/$(TARGET)-pkg-config'
+
+ # create the CMake toolchain file
+ [ -d '$(dir $(CMAKE_TOOLCHAIN_FILE))' ] || mkdir -p '$(dir $(CMAKE_TOOLCHAIN_FILE))'
+ (echo 'set(CMAKE_SYSTEM_NAME Windows)'; \
+ echo 'set(MSYS 1)'; \
+ echo 'set(BUILD_SHARED_LIBS $(if $(BUILD_SHARED),ON,OFF))'; \
+ echo 'set(LIBTYPE $(if $(BUILD_SHARED),SHARED,STATIC))'; \
+ echo 'set(CMAKE_BUILD_TYPE Release)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH $(PREFIX)/$(TARGET))'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)'; \
+ echo 'set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)'; \
+ echo 'set(CMAKE_C_COMPILER $(PREFIX)/bin/$(TARGET)-gcc)'; \
+ echo 'set(CMAKE_CXX_COMPILER $(PREFIX)/bin/$(TARGET)-g++)'; \
+ echo 'set(CMAKE_Fortran_COMPILER $(PREFIX)/bin/$(TARGET)-gfortran)'; \
+ echo 'set(CMAKE_RC_COMPILER $(PREFIX)/bin/$(TARGET)-windres)'; \
+ echo 'set(HDF5_C_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5cc)'; \
+ echo 'set(HDF5_CXX_COMPILER_EXECUTABLE $(PREFIX)/bin/$(TARGET)-h5c++)'; \
+ echo 'set(PKG_CONFIG_EXECUTABLE $(PREFIX)/bin/$(TARGET)-pkg-config)'; \
+ echo 'set(QT_QMAKE_EXECUTABLE $(PREFIX)/$(TARGET)/qt/bin/qmake)'; \
+ echo 'set(CMAKE_INSTALL_PREFIX $(PREFIX)/$(TARGET) CACHE PATH "Installation Prefix")'; \
+ echo 'set(CMAKE_BUILD_TYPE Release CACHE STRING "Debug|Release|RelWithDebInfo|MinSizeRel")') \
+ > '$(CMAKE_TOOLCHAIN_FILE)'
+endef
+
+define $(PKG)_BUILD
+ $($(PKG)_BUILD_COMMON)
+
+ # create pkg-config files for OpenGL/GLU
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+ (echo 'Name: gl'; \
+ echo 'Version: 0'; \
+ echo 'Description: OpenGL'; \
+ echo 'Libs: -lopengl32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/gl.pc'
+
+ (echo 'Name: glu'; \
+ echo 'Version: 0'; \
+ echo 'Description: OpenGL'; \
+ echo 'Libs: -lglu32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/glu.pc'
+endef
+
+$(PKG)_BUILD_$(BUILD) = $($(PKG)_BUILD_COMMON)
diff --git a/src/plibc-test.c b/src/plibc-test.c
new file mode 100644
index 0000000..c8f7365
--- /dev/null
+++ b/src/plibc-test.c
@@ -0,0 +1,19 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ *
+ */
+
+#include "plibc.h"
+
+int main(int argc, char *argv[])
+{
+ (void)argc;
+ (void)argv;
+
+ plibc_init("MXE", "MXE");
+ PRINTF("%s Test", "PlibC");
+ plibc_shutdown();
+
+ return 0;
+}
diff --git a/src/plibc.mk b/src/plibc.mk
index e4f5e0a..7b2ed10 100644
--- a/src/plibc.mk
+++ b/src/plibc.mk
@@ -2,23 +2,22 @@
# See index.html for further information.
PKG := plibc
-$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.1.7
-$(PKG)_CHECKSUM := b545c602dc5b381fcea9d096910dede95168fbeb
-$(PKG)_SUBDIR := PlibC-$($(PKG)_VERSION)
-$(PKG)_FILE := plibc-$($(PKG)_VERSION)-src.tar.gz
-$(PKG)_URL := http://sourceforge.net/projects/plibc/files/plibc/$($(PKG)_VERSION)/$($(PKG)_FILE)/download
+$(PKG)_IGNORE := %
+$(PKG)_VERSION := cd7ed09
+$(PKG)_CHECKSUM := 303afa33721e2d0e92044e18f36bb3b57f48da35
+$(PKG)_SUBDIR := mirror-plibc-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/mirror/plibc/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
- $(WGET) -q -O- "http://sourceforge.net/projects/plibc/files/plibc/" | \
- grep 'plibc/files/plibc' | \
- $(SED) -n 's,.*plibc/\([0-9][^>]*\)/.*,\1,p' | \
+ $(WGET) -q -O- 'https://github.com/mirror/plibc/commits/master' | \
+ $(SED) -n 's#.*<span class="sha">\([^<]\{7\}\)[^<]\{3\}<.*#\1#p' | \
head -1
endef
define $(PKG)_BUILD
- chmod 0755 '$(1)/configure'
+ cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
@@ -27,6 +26,21 @@ define $(PKG)_BUILD
--enable-static \
--disable-shared
$(MAKE) -C '$(1)' -j '$(JOBS)' install
+
+ # create pkg-config file
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+ (echo 'Name: $(PKG)'; \
+ echo 'Version: $($(PKG)_VERSION)'; \
+ echo 'Description: PlibC'; \
+ echo 'Cflags: -I''$(PREFIX)/$(TARGET)/include/plibc'' -DWINDOWS'; \
+ echo 'Libs: -lplibc'; \
+ echo 'Libs.private: -lws2_32 -lole32 -luuid';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/plibc.pc'
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -std=c99 -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-plibc.exe' \
+ `'$(TARGET)-pkg-config' --cflags --libs plibc`
endef
$(PKG)_BUILD_i686-w64-mingw32 =
diff --git a/src/poco.mk b/src/poco.mk
index 565f9b9..6f3077b 100644
--- a/src/poco.mk
+++ b/src/poco.mk
@@ -3,11 +3,11 @@
PKG := poco
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.4.6p1
-$(PKG)_CHECKSUM := c89833d208cc6a3b54a239a776dcb611e7cd4b02
+$(PKG)_VERSION := 1.4.6p2
+$(PKG)_CHECKSUM := 90042349faf1790b5167bad0e84e1713bfd46046
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $($(PKG)_SUBDIR).tar.gz
-$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/sources/$(PKG)-$(word 1,$(subst p, ,$($(PKG)_VERSION)))/$($(PKG)_FILE)
+$(PKG)_URL := http://pocoproject.org/releases/$(PKG)-$(word 1,$(subst p, ,$($(PKG)_VERSION)))/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
diff --git a/src/polarssl.mk b/src/polarssl.mk
new file mode 100644
index 0000000..6d4ef23
--- /dev/null
+++ b/src/polarssl.mk
@@ -0,0 +1,28 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := polarssl
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.3.4
+$(PKG)_CHECKSUM := e43dc467e36ae2761ca2e4fa02c54f5771ee51a1
+$(PKG)_SUBDIR := polarssl-$($(PKG)_VERSION)
+$(PKG)_FILE := polarssl-$($(PKG)_VERSION)-gpl.tgz
+$(PKG)_URL := https://polarssl.org/download/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+# Match lines like:
+# <a href="/tech-updates/releases/polarssl-1.3.4-released">PolarSSL 1.3.4 released</a></br>
+# On the releases page of polarssl for update
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- https://polarssl.org/tech-updates/releases | \
+ $(SED) -n "s,.*releases/polarssl\-\([0-9]\.[0-9].[0-9]\)-released.*,\1,p" | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ mkdir '$(1)/build'
+ cd '$(1)/build' && cmake .. \
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)'
+ $(MAKE) -C '$(1)/build' -j '$(JOBS)' install
+endef
diff --git a/src/poppler-1-win32.patch b/src/poppler-1-win32.patch
index b3a326f..1db2f0e 100644
--- a/src/poppler-1-win32.patch
+++ b/src/poppler-1-win32.patch
@@ -14,7 +14,7 @@ diff --git a/poppler/GlobalParamsWin.cc b/poppler/GlobalParamsWin.cc
index 527f08e..0739946 100644
--- a/poppler/GlobalParamsWin.cc
+++ b/poppler/GlobalParamsWin.cc
-@@ -424,7 +424,7 @@ void GlobalParams::setupBaseFonts(char * dir)
+@@ -423,7 +423,7 @@ void GlobalParams::setupBaseFonts(char * dir)
if (fontFiles->lookup(fontName))
continue;
diff --git a/src/poppler.mk b/src/poppler.mk
index c1d8cad..904adb6 100644
--- a/src/poppler.mk
+++ b/src/poppler.mk
@@ -3,16 +3,16 @@
PKG := poppler
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.22.5
-$(PKG)_CHECKSUM := 9491bb33788d7f0ee67da572dc4798004f98323a
+$(PKG)_VERSION := 0.24.5
+$(PKG)_CHECKSUM := 7b7cabee85bd81a7e55c939740d5d7ccd7c0dda5
$(PKG)_SUBDIR := poppler-$($(PKG)_VERSION)
-$(PKG)_FILE := poppler-$($(PKG)_VERSION).tar.gz
+$(PKG)_FILE := poppler-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://poppler.freedesktop.org/$($(PKG)_FILE)
$(PKG)_DEPS := gcc glib cairo libpng lcms jpeg tiff freetype zlib curl qt
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://poppler.freedesktop.org/' | \
- $(SED) -n 's,.*"poppler-\([0-9.]\+\)\.tar\.gz".*,\1,p' | \
+ $(SED) -n 's,.*"poppler-\([0-9.]\+\)\.tar\.xz".*,\1,p' | \
head -1
endef
@@ -21,7 +21,9 @@ define $(PKG)_BUILD
# pick up libtiff (otherwise linking a minimal test program fails not
# because libtiff is not found, but because some references are
# undefined)
- cd '$(1)' && ./configure \
+ cd '$(1)' \
+ && PATH='$(PREFIX)/$(TARGET)/qt/bin:$(PATH)' \
+ ./configure \
--host='$(TARGET)' \
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
@@ -31,6 +33,7 @@ define $(PKG)_BUILD
--enable-xpdf-headers \
--enable-poppler-qt4 \
--enable-zlib \
+ --enable-cms=lcms2 \
--enable-libcurl \
--enable-libtiff \
--enable-libjpeg \
@@ -48,9 +51,11 @@ define $(PKG)_BUILD
--disable-gtk-doc-html \
--disable-gtk-doc-pdf \
--with-font-configuration=win32 \
- PKG_CONFIG_PATH_$(subst -,_,$(TARGET))='$(PREFIX)/$(TARGET)/qt/lib/pkgconfig' \
+ PKG_CONFIG_PATH_$(subst .,_,$(subst -,_,$(TARGET)))='$(PREFIX)/$(TARGET)/qt/lib/pkgconfig' \
+ CXXFLAGS=-D_WIN32_WINNT=0x0500 \
LIBTIFF_LIBS="`'$(TARGET)-pkg-config' libtiff-4 --libs`"
- $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ PATH='$(PREFIX)/$(TARGET)/qt/bin:$(PATH)' \
+ $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
# Test program
diff --git a/src/popt.mk b/src/popt.mk
index 54136e8..7df6098 100644
--- a/src/popt.mk
+++ b/src/popt.mk
@@ -20,9 +20,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-nls
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/portaudio-1-win32.patch b/src/portaudio-1-win32.patch
index 2eab8e3..ffe3293 100644
--- a/src/portaudio-1-win32.patch
+++ b/src/portaudio-1-win32.patch
@@ -14,60 +14,29 @@ diff -aur portaudio/src/hostapi/dsound/pa_win_ds.c portaudio-patched/src/hostapi
case DSSPEAKER_7POINT1: count = 8; break;
#ifndef DSSPEAKER_7POINT1_SURROUND
#define DSSPEAKER_7POINT1_SURROUND 0x00000008
-diff -aur portaudio/src/hostapi/wdmks/pa_win_wdmks.c portaudio-patched/src/hostapi/wdmks/pa_win_wdmks.c
---- portaudio/src/hostapi/wdmks/pa_win_wdmks.c 2011-02-17 15:56:04.000000000 +0000
-+++ portaudio-patched/src/hostapi/wdmks/pa_win_wdmks.c 2012-03-02 21:49:13.000000000 +0000
-@@ -136,6 +136,7 @@
+diff -Nuar portaudio/src/hostapi/dsound/pa_win_ds.c portaudio-patched/src/hostapi/dsound/pa_win_ds.c
+--- portaudio/src/hostapi/dsound/pa_win_ds.c 2014-02-02 14:16:01.916602634 +0100
++++ portaudio-patched/src/hostapi/dsound/pa_win_ds.c 2014-02-02 14:17:19.340378622 +0100
+@@ -2108,7 +2108,8 @@
+ }
+ else
+ {
+- CalculateBufferSettings( &stream->hostBufferSizeFrames, &pollingPeriodFrames,
++ CalculateBufferSettings( (unsigned long*)&stream->hostBufferSizeFrames,
++ &pollingPeriodFrames,
+ /* isFullDuplex = */ (inputParameters && outputParameters),
+ suggestedInputLatencyFrames,
+ suggestedOutputLatencyFrames,
+diff --git a/configure.in b/configure.in
+index 305b64e..3f3b31e 100644
+--- a/configure.in
++++ b/configure.in
+@@ -318,7 +318,7 @@ case "${host_os}" in
- #include <mmreg.h>
- #include <ks.h>
-+#define _WAVEFORMATEXTENSIBLE_
- #include <ksmedia.h>
- #include <tchar.h>
- #include <assert.h>
---- portaudio/configure.in 14:07:02.000000000 +0000
-+++ portaudio-patched/configure.in 2012-05-27 14:08:34.000000000 +0000
-@@ -247,7 +247,7 @@
- if [[ "x$with_directx" = "xyes" ]]; then
- DXDIR="$with_dxdir"
- add_objects src/hostapi/dsound/pa_win_ds.o src/hostapi/dsound/pa_win_ds_dynlink.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_coinitialize.o src/os/win/pa_win_waveformat.o
-- LIBS="-lwinmm -lm -ldsound -lole32"
-+ LIBS="$LIBS -lwinmm -lm -ldsound -lole32"
- DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
- #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
- #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
-@@ -257,7 +257,7 @@
- if [[ "x$with_asio" = "xyes" ]]; then
- ASIODIR="$with_asiodir"
- add_objects src/hostapi/asio/pa_asio.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_coinitialize.o src/hostapi/asio/iasiothiscallresolver.o $ASIODIR/common/asio.o $ASIODIR/host/asiodrivers.o $ASIODIR/host/pc/asiolist.o
-- LIBS="-lwinmm -lm -lole32 -luuid"
-+ LIBS="$LIBS -lwinmm -lm -lole32 -luuid"
- DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
- CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer -I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common -I$ASIODIR/host -UPA_USE_ASIO -DPA_USE_ASIO=1 -DWINDOWS"
-
-@@ -273,7 +273,7 @@
if [[ "x$with_wdmks" = "xyes" ]]; then
DXDIR="$with_dxdir"
- add_objects src/hostapi/wdmks/pa_win_wdmks.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o
-- LIBS="-lwinmm -lm -luuid -lsetupapi -lole32"
-+ LIBS="$LIBS -lwinmm -lm -luuid -lsetupapi -lole32"
+- add_objects src/hostapi/wdmks/pa_win_wdmks.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_wdmks_util.o src/os/win/pa_win_waveformat.o
++ add_objects src/hostapi/wdmks/pa_win_wdmks.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_wdmks_utils.o src/os/win/pa_win_waveformat.o
+ LIBS="${LIBS} -lwinmm -lm -luuid -lsetupapi -lole32"
DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
- #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
-@@ -282,14 +282,14 @@
-
- if [[ "x$with_wmme" = "xyes" ]]; then
- add_objects src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o
-- LIBS="-lwinmm -lm -lole32 -luuid"
-+ LIBS="$LIBS -lwinmm -lm -lole32 -luuid"
- DLL_LIBS="${DLL_LIBS} -lwinmm"
- CFLAGS="$CFLAGS -UPA_USE_WMME -DPA_USE_WMME=1"
- fi
-
- if [[ "x$with_wasapi" = "xyes" ]]; then
- add_objects src/hostapi/wasapi/pa_win_wasapi.o src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o src/os/win/pa_win_coinitialize.o src/os/win/pa_win_waveformat.o
-- LIBS="-lwinmm -lm -lole32 -luuid"
-+ LIBS="$LIBS -lwinmm -lm -lole32 -luuid"
- DLL_LIBS="${DLL_LIBS} -lwinmm -lole32"
- CFLAGS="$CFLAGS -I\$(top_srcdir)/src/hostapi/wasapi/mingw-include -UPA_USE_WASAPI -DPA_USE_WASAPI=1"
- fi
diff --git a/src/portaudio.mk b/src/portaudio.mk
index f7685d8..e0f4f48 100644
--- a/src/portaudio.mk
+++ b/src/portaudio.mk
@@ -3,8 +3,8 @@
PKG := portaudio
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 19_20111121
-$(PKG)_CHECKSUM := f07716c470603729a55b70f5af68f4a6807097eb
+$(PKG)_VERSION := 19_20140130
+$(PKG)_CHECKSUM := 526a7955de59016a06680ac24209ecb6ce05527d
$(PKG)_SUBDIR := portaudio
$(PKG)_FILE := pa_stable_v$($(PKG)_VERSION).tgz
$(PKG)_URL := http://www.portaudio.com/archives/$($(PKG)_FILE)
@@ -18,15 +18,20 @@ endef
define $(PKG)_BUILD
cd '$(1)' && autoconf
+ # libtool looks for a pei* format when linking shared libs
+ # apparently there's no real difference b/w pei and pe
+ # so we set the libtool cache variables
+ # https://sourceware.org/cgi-bin/cvsweb.cgi/src/bfd/libpei.h?annotate=1.25&cvsroot=src
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--with-host_os=mingw \
- --with-winapi=wmme,directx,wasapi,wdmks \
+ --with-winapi=@portaudio-winapi@ \
--with-dxdir=$(PREFIX)/$(TARGET) \
- ac_cv_path_AR=$(TARGET)-ar
- $(MAKE) -C '$(1)' -j '$(JOBS)' SHARED_FLAGS= TESTS=
+ ac_cv_path_AR=$(TARGET)-ar \
+ $(if $(BUILD_SHARED),\
+ lt_cv_deplibs_check_method='file_magic file format (pe-i386|pe-x86-64)' \
+ lt_cv_file_magic_cmd='$$OBJDUMP -f')
+ $(MAKE) -C '$(1)' -j '$(JOBS)' $(if $(BUILD_STATIC),SHARED_FLAGS=) TESTS=
$(MAKE) -C '$(1)' -j 1 install
'$(TARGET)-gcc' \
@@ -35,5 +40,9 @@ define $(PKG)_BUILD
`'$(TARGET)-pkg-config' portaudio-2.0 --cflags --libs`
endef
-$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
+$(PKG)_WINAPI_MINGW_ORG = wmme,directx,wasapi,wdmks
+$(PKG)_WINAPI_MINGW_W64 = wmme,directx
+
+$(PKG)_BUILD_i686-pc-mingw32 = $(subst @portaudio-winapi@,$($(PKG)_WINAPI_MINGW_ORG),$($(PKG)_BUILD))
+$(PKG)_BUILD_i686-w64-mingw32 = $(subst @portaudio-winapi@,$($(PKG)_WINAPI_MINGW_W64),$($(PKG)_BUILD))
+$(PKG)_BUILD_x86_64-w64-mingw32 = $(subst @portaudio-winapi@,$($(PKG)_WINAPI_MINGW_W64),$($(PKG)_BUILD))
diff --git a/src/portmidi.mk b/src/portmidi.mk
index 2b2fe29..18c2b69 100644
--- a/src/portmidi.mk
+++ b/src/portmidi.mk
@@ -20,15 +20,14 @@ endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)/build' && cmake .. \
- -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
- -DLIBTYPE=STATIC
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)'
- $(MAKE) -C '$(1)/build' -j '$(JOBS)' portmidi-static
+ $(MAKE) -C '$(1)/build' -j '$(JOBS)' portmidi-$(if $(BUILD_STATIC),static,dynamic)
# install library files
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/build/libportmidi_s.a' \
- '$(PREFIX)/$(TARGET)/lib/libportmidi.a'
+ $(INSTALL) -m644 '$(1)/build/libportmidi$(if $(BUILD_STATIC),_s).$(LIB_SUFFIX)' \
+ '$(PREFIX)/$(TARGET)/lib/libportmidi.$(LIB_SUFFIX)'
# install include files
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
diff --git a/src/postgresql.mk b/src/postgresql.mk
index 999f1b9..3029e8c 100644
--- a/src/postgresql.mk
+++ b/src/postgresql.mk
@@ -24,10 +24,7 @@ define $(PKG)_BUILD
cp -Rp '$(1)' '$(1).native'
# Since we build only client libary, use bogus tzdata to satisfy configure.
cd '$(1)' && ./configure \
- --prefix='$(PREFIX)/$(TARGET)' \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--disable-rpath \
--without-tcl \
--without-perl \
@@ -46,11 +43,13 @@ define $(PKG)_BUILD
--with-system-tzdata=/dev/null \
LIBS="-lsecur32 `'$(TARGET)-pkg-config' openssl --libs`" \
ac_cv_func_getaddrinfo=no
- $(MAKE) -C '$(1)'/src/interfaces/libpq -j '$(JOBS)' install haslibarule= shlib=
- $(MAKE) -C '$(1)'/src/port -j '$(JOBS)' haslibarule= shlib=
- $(MAKE) -C '$(1)'/src/bin/psql -j '$(JOBS)' install haslibarule= shlib=
+ $(MAKE) -C '$(1)'/src/interfaces/libpq -j '$(JOBS)' install $(if $(BUILD_STATIC),haslibarule= shlib=)
+ $(MAKE) -C '$(1)'/src/port -j '$(JOBS)' $(if $(BUILD_STATIC),haslibarule= shlib=)
+ $(MAKE) -C '$(1)'/src/bin/psql -j '$(JOBS)' install $(if $(BUILD_STATIC),haslibarule= shlib=)
$(INSTALL) -m644 '$(1)/src/include/pg_config.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/src/include/postgres_ext.h' '$(PREFIX)/$(TARGET)/include/'
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/include/libpq'
+ $(INSTALL) -m644 '$(1)'/src/include/libpq/* '$(PREFIX)/$(TARGET)/include/libpq/'
# Build a native pg_config.
$(SED) -i 's,-DVAL_,-D_DISABLED_VAL_,g' '$(1).native'/src/bin/pg_config/Makefile
cd '$(1).native' && ./configure \
diff --git a/src/protobuf.mk b/src/protobuf.mk
index 411f4b5..00921bc 100644
--- a/src/protobuf.mk
+++ b/src/protobuf.mk
@@ -26,9 +26,7 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j 1 distclean
# Second step: Build for target system.
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--with-zlib \
--with-protoc=src/protoc_host
$(MAKE) -C '$(1)' -j '$(JOBS)'
diff --git a/src/pthreads-w32-1-fixes.patch b/src/pthreads-w32-1-fixes.patch
deleted file mode 100644
index ef99e5b..0000000
--- a/src/pthreads-w32-1-fixes.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-From e951f784c852f4cd8298864190936fded1efceba Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sun, 27 May 2012 22:00:19 +0200
-Subject: [PATCH] force static for convenience
-
----
- pthread.h | 4 ++++
- sched.h | 4 ++++
- semaphore.h | 4 ++++
- 3 files changed, 12 insertions(+)
-
-diff --git a/pthread.h b/pthread.h
-index b4072f7..c88c886 100755
---- a/pthread.h
-+++ b/pthread.h
-@@ -547,6 +547,10 @@ extern "C"
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-+
-+// MXE: Set this for convenience here since MXE only does static.
-+#define PTW32_STATIC_LIB
-+
- #if !defined(PTW32_STATIC_LIB)
- # if defined(PTW32_BUILD)
- # define PTW32_DLLPORT __declspec (dllexport)
-diff --git a/sched.h b/sched.h
-index f36a97a..1f4f401 100755
---- a/sched.h
-+++ b/sched.h
-@@ -76,6 +76,10 @@
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-+
-+// MXE: Set this for convenience here since MXE only does static.
-+#define PTW32_STATIC_LIB
-+
- #if !defined(PTW32_STATIC_LIB)
- # if defined(PTW32_BUILD)
- # define PTW32_DLLPORT __declspec (dllexport)
-diff --git a/semaphore.h b/semaphore.h
-index c6e9407..2b64173 100755
---- a/semaphore.h
-+++ b/semaphore.h
-@@ -75,6 +75,10 @@
- * do NOT define PTW32_BUILD, and then the variables/functions will
- * be imported correctly.
- */
-+
-+// MXE: Set this for convenience here since MXE only does static.
-+#define PTW32_STATIC_LIB
-+
- #if !defined(PTW32_STATIC_LIB)
- # if defined(PTW32_BUILD)
- # define PTW32_DLLPORT __declspec (dllexport)
---
-1.7.9.2
-
diff --git a/src/pthreads-w32.mk b/src/pthreads-w32.mk
index f98c957..ba264e2 100644
--- a/src/pthreads-w32.mk
+++ b/src/pthreads-w32.mk
@@ -8,7 +8,9 @@ $(PKG)_CHECKSUM := 24d40e89c2e66a765733e8c98d6f94500343da86
$(PKG)_SUBDIR := pthreads-w32-$($(PKG)_VERSION)-release
$(PKG)_FILE := pthreads-w32-$($(PKG)_VERSION)-release.tar.gz
$(PKG)_URL := ftp://sourceware.org/pub/pthreads-win32/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc
+$(PKG)_DEPS :=
+
+$(PKG)_DEPS_i686-pc-mingw32 := gcc
define $(PKG)_UPDATE
$(WGET) -q -O- 'ftp://sourceware.org/pub/pthreads-win32/dll-latest/include/pthread.h' | \
@@ -16,9 +18,15 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD_i686-pc-mingw32
- $(MAKE) -C '$(1)' -j 1 GC-static CROSS='$(TARGET)-'
+ $(MAKE) -C '$(1)' -j 1 \
+ $(if $(BUILD_STATIC),GC-static,GC-inlined) \
+ CROSS='$(TARGET)-'
$(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
+ # This is the DLL include lib on a shared build
$(INSTALL) -m644 '$(1)/libpthreadGC2.a' '$(PREFIX)/$(TARGET)/lib/libpthread.a'
+ $(if $(BUILD_STATIC), \
+ $(SED) -i 's/defined(PTW32_STATIC_LIB)/1/' '$(1)/pthread.h' '$(1)/sched.h' '$(1)/semaphore.h',
+ $(INSTALL) -m644 '$(1)/pthreadGC2.dll' '$(PREFIX)/$(TARGET)/bin/pthread.dll')
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
$(INSTALL) -m644 '$(1)/pthread.h' '$(PREFIX)/$(TARGET)/include/'
$(INSTALL) -m644 '$(1)/sched.h' '$(PREFIX)/$(TARGET)/include/'
diff --git a/src/pthreads.mk b/src/pthreads.mk
index ea28232..d1c2757 100644
--- a/src/pthreads.mk
+++ b/src/pthreads.mk
@@ -15,7 +15,13 @@ define $(PKG)_UPDATE
endef
PTHREADS_TEST = \
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig' && \
+ (echo 'Name: pthreads'; \
+ echo 'Version: $($(PKG)_VERSION)'; \
+ echo 'Description: Posix Threads ($(PKG))'; \
+ echo 'Libs: -lpthread -lws2_32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/pthreads.pc' && \
'$(TARGET)-gcc' \
-W -Wall -Werror -ansi -pedantic \
- '$(TOP_DIR)/src/pthreads-test.c' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG).exe' \
- -lpthread -lws2_32
+ '$(TOP_DIR)/src/pthreads-test.c' -o '$(PREFIX)/$(TARGET)/bin/test-pthreads.exe' \
+ `'$(TARGET)-pkg-config' --libs pthreads`
diff --git a/src/qt-1-cherrypicks.patch b/src/qt-1-cherrypicks.patch
index 967a035..229a61f 100644
--- a/src/qt-1-cherrypicks.patch
+++ b/src/qt-1-cherrypicks.patch
@@ -4,11 +4,10 @@ See index.html for further information.
Commits backported (cherry-picked) from upstream branch or merge requests.
http://qt.gitorious.org/qt
Also contains MXE specific fixes.
-
-From 07dd00eda09c4d8bdad037fb0b47c5bc3c9c5b9c Mon Sep 17 00:00:00 2001
+From 6dfcbf0d99d76dbade4e3b427c9826e171382ca4 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Fri, 13 Jan 2012 00:17:48 +0100
-Subject: [PATCH 01/15] remove trailing whitespace
+Subject: [PATCH 01/17] remove trailing whitespace
backported from qt5/qtbase
Change-Id: If53a0bd1794e69b4856f993c6e2959369bd007d6
@@ -32,10 +31,10 @@ index 9090773..859ec8d 100644
1.8.1.4
-From 2bb8b31ebc88fb0a59a8988e7ae3908211e41f87 Mon Sep 17 00:00:00 2001
+From f35425afd4ab61c9d5b806223d58292aa519997b Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 30 Jun 2011 10:22:33 +0200
-Subject: [PATCH 02/15] do not detect or configure iconv for Windows
+Subject: [PATCH 02/17] do not detect or configure iconv for Windows
Qt doesn't use iconv on Windows, but configuring it will appear to
work and the build will complete. The result is that character
@@ -66,10 +65,10 @@ index 460b446..e337dc0 100755
1.8.1.4
-From a18496d765d41b43a44dc6596edb4d71847f9b90 Mon Sep 17 00:00:00 2001
+From 4dcf10f5beed5fbe74201f06a750bf18643dd716 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Wed, 18 Jan 2012 11:43:10 +0100
-Subject: [PATCH 03/15] fix whitespace
+Subject: [PATCH 03/17] fix whitespace
backported from qt5/qtbase
Change-Id: I0cfccae085c000d4368386a34f288c1e6f01a88f
@@ -140,10 +139,10 @@ index 859ec8d..70cd890 100644
1.8.1.4
-From b412f830f448ee7ba5f364238d71a4b4072bbdbb Mon Sep 17 00:00:00 2001
+From b3bf93f2b38902cabdd203ad0362e3a90977e118 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 4 Jul 2011 00:42:24 +0200
-Subject: [PATCH 04/15] build and load text codecs regardless of iconv and
+Subject: [PATCH 04/17] build and load text codecs regardless of iconv and
platform
Otherwise applications linking to static Qt may have to import
@@ -282,10 +281,10 @@ index 7c513a0..517ac87 100644
1.8.1.4
-From e3ee716ee2295eb6cb685a9d9c218179601a6795 Mon Sep 17 00:00:00 2001
+From 73d43da5b39105d52511036c3bef3a391d0f19ae Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Fri, 13 Jan 2012 00:24:13 +0100
-Subject: [PATCH 05/15] move plugin text codecs to QtCore
+Subject: [PATCH 05/17] move plugin text codecs to QtCore
Having plugin text codecs adds considerable complexity to
configuring Qt. The plugin interface is designed for optional
@@ -79233,10 +79232,10 @@ index 94ce675..c4af49b 100644
1.8.1.4
-From d92f8791dec8984c42613f623a5e48f1aeab1ebb Mon Sep 17 00:00:00 2001
+From aa4d579e9393c0f9b1be42c3b37c9feb04ad42d6 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Wed, 18 Jan 2012 21:01:26 +0100
-Subject: [PATCH 06/15] update private header references
+Subject: [PATCH 06/17] update private header references
backported from qt5/qtbase
Change-Id: I092d879653b6900532a0c4534c1eb2be84e9d0f6
@@ -79396,10 +79395,10 @@ index 054fbe5..c1e4689 100644
1.8.1.4
-From 0f5e4515de61fe6c00a8a5169e65477f3e396025 Mon Sep 17 00:00:00 2001
+From 1461f769066a4e73a421f88c57f6ebd5de279f9d Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sun, 3 Jul 2011 21:53:27 +0200
-Subject: [PATCH 07/15] cosmetic adjustments for files moved to core/codecs
+Subject: [PATCH 07/17] cosmetic adjustments for files moved to core/codecs
-update old reference to 'plugin'
-rename multiple inclusion guards
@@ -79888,10 +79887,10 @@ index c1e4689..d5cbd74 100644
1.8.1.4
-From e8e977e321ab075cae6b4109868d6642b7e54548 Mon Sep 17 00:00:00 2001
+From d2258c0533b501f36842f99fc7e32d44e5321fd8 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 12 Jan 2012 10:43:29 +0100
-Subject: [PATCH 08/15] remove obsolete codec plugin loading code
+Subject: [PATCH 08/17] remove obsolete codec plugin loading code
backported from qt5/qtbase
Change-Id: I1f3dbb5c10009413f701947b1b89ed3dbc94bf3d
@@ -80425,10 +80424,10 @@ index 1642947..36c09f1 100644
1.8.1.4
-From ec1d708e71b87739fde04fcd480ea7317ff390a0 Mon Sep 17 00:00:00 2001
+From 18bb9c4ba6b8d08af061a5465da5db16260a309d Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Mon, 23 Jan 2012 23:12:46 +0100
-Subject: [PATCH 09/15] remove vestiges of text codec plugins
+Subject: [PATCH 09/17] remove vestiges of text codec plugins
follow-up to 3a3356a85079d734dfa57205a00e1996afc033df
@@ -80459,10 +80458,10 @@ index dea05e0..12cd8ea 100644
1.8.1.4
-From f35eab15174376cf907517b7fa12468d84decd3c Mon Sep 17 00:00:00 2001
+From 4fc126e7430559acb80a5c8891d5f237be0409b3 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 3 Nov 2011 15:10:26 +0100
-Subject: [PATCH 10/15] use pkg-config for libmng (MXE specific)
+Subject: [PATCH 10/17] use pkg-config for libmng (MXE specific)
Change-Id: Ifce956d5cad06d5273088656b8500b87980063f4
@@ -80485,10 +80484,10 @@ index ffb98de..6aab68f 100644
1.8.1.4
-From e8fb265680c5170fd3796d86fd2fea55c7dbf95e Mon Sep 17 00:00:00 2001
+From 2e6ae6495c5ec5a52b4de2473a6a6ad7b1e0fbb2 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 3 Nov 2011 14:11:02 +0100
-Subject: [PATCH 11/15] use pkg-config for libtiff-4 (MXE specific)
+Subject: [PATCH 11/17] use pkg-config for libtiff-4 (MXE specific)
Change-Id: I5e89e66fc1606d425553e781c9e62db703136957
@@ -80511,10 +80510,10 @@ index e1cc3ee..71cbab1 100644
1.8.1.4
-From df24a20f268f023c1aa921366b59cf650cd71d92 Mon Sep 17 00:00:00 2001
+From 7040eedeada1f2e73e76b6ced8badd403138ed62 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 5 Jun 2010 23:41:04 +0200
-Subject: [PATCH 12/15] restore support for static linking of QtWebKit (MXE
+Subject: [PATCH 12/17] restore support for static linking of QtWebKit (MXE
specific)
Support was removed by 4221d629e2cf37ee8c5ba7cb595b05ab8c82f113.
@@ -80614,10 +80613,10 @@ index 9be0f4a..6744f58 100644
1.8.1.4
-From 67a99e7ba8cddb9257ea2d4b642191a40f70f931 Mon Sep 17 00:00:00 2001
+From 63506d7ad0ce09e8d1a28db6b76324c4a7576ed4 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Thu, 1 Sep 2011 13:47:10 +0200
-Subject: [PATCH 13/15] fix building on GNU/kFreeBSD (MXE specific)
+Subject: [PATCH 13/17] fix building on GNU/kFreeBSD (MXE specific)
This patch has been taken from:
@@ -80645,10 +80644,10 @@ index e914ede..d4d06c8 100644
1.8.1.4
-From 07cdc269228ef8a728392ce7eb973dda16507c08 Mon Sep 17 00:00:00 2001
+From 7dda90d3a9e0bb86bea079a225e245f031d2de36 Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Thu, 1 Sep 2011 13:49:47 +0200
-Subject: [PATCH 14/15] fix missing platform when building on GNU/kFreeBSD (MXE
+Subject: [PATCH 14/17] fix missing platform when building on GNU/kFreeBSD (MXE
specific)
This patch is inspired by:
@@ -80676,10 +80675,10 @@ index e54782e..707f55a 100755
1.8.1.4
-From 9be5f8ccf1d4664f9b799696c5c343be65bde5d4 Mon Sep 17 00:00:00 2001
+From 9c9244e24c767378429c70b6b85198fd8e91718f Mon Sep 17 00:00:00 2001
From: Tony Theodore <tonyt@logyst.com>
Date: Thu, 1 Sep 2011 13:51:50 +0200
-Subject: [PATCH 15/15] fix building on dragonfly (MXE specific)
+Subject: [PATCH 15/17] fix building on dragonfly (MXE specific)
This patch is inspired by:
http://cvsweb.NetBSD.org/bsdweb.cgi/pkgsrc/x11/qt4-libs/Makefile.common?rev=1.27&content-type=text/x-cvsweb-markup
@@ -80702,3 +80701,56 @@ index 707f55a..8c48f51 100755
--
1.8.1.4
+
+From 780cdd78482a95a44ae204588577e150e8c34ef3 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 17 Aug 2013 20:34:36 +0200
+Subject: [PATCH 16/17] libmng 2 config.test compatibility
+
+Change-Id: I6de90a0f51087c7927bd978f605f4960d3f8ee87
+
+diff --git a/config.tests/unix/libmng/libmng.cpp b/config.tests/unix/libmng/libmng.cpp
+index 0fbe554..2559132 100644
+--- a/config.tests/unix/libmng/libmng.cpp
++++ b/config.tests/unix/libmng/libmng.cpp
+@@ -46,9 +46,11 @@ int main(int, char **)
+ mng_handle hMNG;
+ mng_cleanup(&hMNG);
+
++#ifdef MNG_VERSION_MAJOR
+ #if MNG_VERSION_MAJOR < 1 || (MNG_VERSION_MAJOR == 1 && MNG_VERSION_MINOR == 0 && MNG_VERSION_RELEASE < 9)
+ #error System libmng version is less than 1.0.9; using built-in version instead.
+ #endif
++#endif
+
+ return 0;
+ }
+--
+1.8.1.4
+
+
+From 1b3fcce36a1301406bf35507352de7205e49158a Mon Sep 17 00:00:00 2001
+From: Tony Theodore <tonyt@logyst.com>
+Date: Sat, 19 Oct 2013 19:37:30 +0200
+Subject: [PATCH 17/17] mingw-w64 compatibility
+
+taken from https://raw.github.com/ant32/pkgbuild/master/mingw-w64-qt4/qt-include-intrin-h-on-mingw-w64.patch
+
+Change-Id: I0f49c7f9d280dfacc33870643d39909cf0917d79
+
+diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
+index 540b615..dc95ac9 100644
+--- a/src/corelib/tools/qsimd.cpp
++++ b/src/corelib/tools/qsimd.cpp
+@@ -47,7 +47,7 @@
+ #include <windows.h>
+ #endif
+
+-#if defined(Q_OS_WIN64) && !defined(Q_CC_GNU)
++#if defined(Q_OS_WIN64)
+ #include <intrin.h>
+ #endif
+
+--
+1.8.1.4
+
diff --git a/src/qt-2-designer.patch b/src/qt-2-designer.patch
new file mode 100644
index 0000000..e06b6f7
--- /dev/null
+++ b/src/qt-2-designer.patch
@@ -0,0 +1,16 @@
+This file is part of MXE.
+See index.html for further information.
+
+diff --git a/tools/designer/src/plugins/activeqt/activeqt.pro b/tools/designer/src/plugins/activeqt/activeqt.pro
+index f58df8a..5d9bdd4 100644
+--- a/tools/designer/src/plugins/activeqt/activeqt.pro
++++ b/tools/designer/src/plugins/activeqt/activeqt.pro
+@@ -10,6 +10,8 @@ build_all:!build_pass {
+
+ INCLUDEPATH += $$QT_SOURCE_TREE/src/activeqt/shared/ \
+ $$QT_BUILD_TREE/src/activeqt/container \
++ $$QT_BUILD_TREE/src/activeqt/container/.uic/release-shared \
++ $$QT_BUILD_TREE/src/activeqt/container/.uic/debug-shared \
+ ../../lib/uilib
+
+ # Input
diff --git a/src/qt.mk b/src/qt.mk
index 13d5a48..f74cac4 100644
--- a/src/qt.mk
+++ b/src/qt.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 745f9ebf091696c0d5403ce691dc28c039d77b9e
$(PKG)_SUBDIR := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-everywhere-opensource-src-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://download.qt-project.org/official_releases/qt/4.8/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc libodbc++ postgresql freetds openssl zlib libpng jpeg libmng tiff sqlite dbus
+$(PKG)_DEPS := gcc postgresql freetds openssl zlib libpng jpeg libmng tiff sqlite dbus
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://qt.gitorious.org/qt/qt/commits' | \
@@ -69,10 +69,20 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)'
rm -rf '$(PREFIX)/$(TARGET)/qt'
$(MAKE) -C '$(1)' -j 1 install
+ ln -sf '$(PREFIX)/$(TARGET)/qt/bin/qmake' '$(PREFIX)/bin/$(TARGET)'-qmake-qt4
cd '$(1)/tools/assistant' && '$(1)/bin/qmake' assistant.pro
+ # can't figure out where -lQtCLucene comes from so use
+ # sed on the output instead of patching the input
+ $(MAKE) -C '$(1)/tools/assistant' sub-lib-qmake_all
+ $(SED) -i 's,-lQtCLucene$$,-lQtCLucene4,' '$(1)/tools/assistant/lib/Makefile.Release'
$(MAKE) -C '$(1)/tools/assistant' -j '$(JOBS)' install
+ # likewise for these two
+ cd '$(1)/tools/designer/src/designer' && '$(1)/bin/qmake' designer.pro
+ $(if $(BUILD_SHARED),\
+ $(SED) -i 's/-lQtDesignerComponents /-lQtDesignerComponents4 /' '$(1)/tools/designer/src/designer/Makefile.Release' && \
+ $(SED) -i 's/-lQtDesigner /-lQtDesigner4 /' '$(1)/tools/designer/src/designer/Makefile.Release',)
cd '$(1)/tools/designer' && '$(1)/bin/qmake' designer.pro
$(MAKE) -C '$(1)/tools/designer' -j '$(JOBS)' install
@@ -84,4 +94,21 @@ define $(PKG)_BUILD
cd '$(1)/test-qt' && '$(PREFIX)/$(TARGET)/qt/bin/qmake' '$(PWD)/$(2).pro'
$(MAKE) -C '$(1)/test-qt' -j '$(JOBS)'
$(INSTALL) -m755 '$(1)/test-qt/release/test-qt.exe' '$(PREFIX)/$(TARGET)/bin/'
+
+ # copy pkg-config files to standard directory
+ cp '$(PREFIX)/$(TARGET)'/qt/lib/pkgconfig/* '$(PREFIX)/$(TARGET)'/lib/pkgconfig/
+
+ # build test the manual way
+ mkdir '$(1)/test-$(PKG)-pkgconfig'
+ '$(PREFIX)/$(TARGET)/qt/bin/uic' -o '$(1)/test-$(PKG)-pkgconfig/ui_qt-test.h' '$(TOP_DIR)/src/qt-test.ui'
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -std=c++0x -pedantic \
+ '$(TOP_DIR)/src/qt-test.cpp' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-pkgconfig.exe' \
+ -I'$(1)/test-$(PKG)-pkgconfig' \
+ `'$(TARGET)-pkg-config' QtGui --cflags --libs`
endef
+
+$(PKG)_BUILD_SHARED = $(subst -static ,-shared ,\
+ $(subst -no-webkit ,-webkit ,\
+ $(subst -qt-sql-,-plugin-sql-,\
+ $($(PKG)_BUILD))))
diff --git a/src/qtactiveqt-1.patch b/src/qtactiveqt-1.patch
index e6f7108..08e6b6e 100644
--- a/src/qtactiveqt-1.patch
+++ b/src/qtactiveqt-1.patch
@@ -1,7 +1,7 @@
This file is part of MXE.
See index.html for further information.
-From 8bf1da19f45922259b93d689240e73c147fe2426 Mon Sep 17 00:00:00 2001
+From 7779365c9bd2741e28f16f99e2df19e4597e1c69 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 18 May 2013 15:28:33 +0200
Subject: [PATCH] Revert "idc is a host tool"
@@ -19,5 +19,5 @@ index b9d8dee..05a592a 100644
SOURCES = main.cpp
--
-1.8.1.4
+1.8.4.5
diff --git a/src/qtactiveqt.mk b/src/qtactiveqt.mk
index 38904f1..1f81904 100644
--- a/src/qtactiveqt.mk
+++ b/src/qtactiveqt.mk
@@ -3,11 +3,11 @@
PKG := qtactiveqt
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 2ad59c7b4924c870f35fdc4abe352aa6db6278ae
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 31441f01c9d271c61cf289e372af3f4f9f0478e1
+$(PKG)_SUBDIR = $(subst qtbase,qtactiveqt,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtactiveqt,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtactiveqt,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qtbase-1-cherrypicks.patch b/src/qtbase-1-cherrypicks.patch
deleted file mode 100644
index 5b7c548..0000000
--- a/src/qtbase-1-cherrypicks.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-From 0fea27fabd57150874b80deacdf9f12c4a1d5172 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Tue, 26 Feb 2013 13:23:33 +0100
-Subject: [PATCH 1/3] use pkg-config for freetype
-
-Change-Id: Id2f78ed9dbdcacd570eb25982cbd700d0437542a
-
-diff --git a/src/platformsupport/fontdatabases/basic/basic.pri b/src/platformsupport/fontdatabases/basic/basic.pri
-index 88be809..8fc19d2 100644
---- a/src/platformsupport/fontdatabases/basic/basic.pri
-+++ b/src/platformsupport/fontdatabases/basic/basic.pri
-@@ -82,5 +82,7 @@ contains(QT_CONFIG, freetype) {
- } else:contains(QT_CONFIG, system-freetype) {
- # pull in the proper freetype2 include directory
- include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
-+ CONFIG += link_pkgconfig
-+ PKGCONFIG += freetype2
- }
-
---
-1.8.1.4
-
-
-From 7d17dc925a6d038be6689f2bd01dfe6a5af2f91d Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sat, 22 Dec 2012 17:45:34 +0100
-Subject: [PATCH 2/3] WIP: qmake writeFile(): work around concurrent
- QDir::mkpath() failure
-
-This actually happened when building qtimageformats with make -j4.
-Failure in mkspecs/features/qt_plugin.prf:
- write_file($$MODULE_PRI, MODULE_PRI_CONT)|error("Aborting.") with make -j4.
-
-Change-Id: Ibc685f613d721e178e6aff408905d77b0ce1740a
-
-diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp
-index be0d8ea..6306235 100644
---- a/qmake/library/qmakebuiltins.cpp
-+++ b/qmake/library/qmakebuiltins.cpp
-@@ -310,9 +310,17 @@ QMakeEvaluator::writeFile(const QString &ctx, const QString &fn, QIODevice::Open
- {
- QFileInfo qfi(fn);
- if (!QDir::current().mkpath(qfi.path())) {
-- evalError(fL1S("Cannot create %1directory %2.")
-- .arg(ctx, QDir::toNativeSeparators(qfi.path())));
-- return ReturnFalse;
-+ // could have failed due to concurrent mkpath attempt
-+#ifdef Q_OS_WIN
-+ Sleep(1000);
-+#else
-+ sleep(1);
-+#endif
-+ if (!qfi.dir().exists()) {
-+ evalError(fL1S("Cannot create %1directory %2.")
-+ .arg(ctx, QDir::toNativeSeparators(qfi.path())));
-+ return ReturnFalse;
-+ }
- }
- QString errStr;
- if (!doWriteFile(qfi.filePath(), mode, contents, &errStr)) {
---
-1.8.1.4
-
-
-From f758fbacac30a7c4b5e44fb6d5cbe16383d5d269 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sat, 18 May 2013 23:07:46 +0200
-Subject: [PATCH 3/3] use pkgconfig for icu detection (MXE specific)
-
-Change-Id: I874171361fec812cb5a5a56e4d8d90a630be3bf3
-
-diff --git a/config.tests/unix/icu/icu.pro b/config.tests/unix/icu/icu.pro
-index 8e58334..1d66c16 100644
---- a/config.tests/unix/icu/icu.pro
-+++ b/config.tests/unix/icu/icu.pro
-@@ -1,4 +1,4 @@
- SOURCES = icu.cpp
- CONFIG -= qt dylib app_bundle
--unix:LIBS += -licuuc -licui18n
--win32:LIBS += -licuin
-+CONFIG += link_pkgconfig
-+PKGCONFIG += icu-i18n
---
-1.8.1.4
-
diff --git a/src/qtbase-1.patch b/src/qtbase-1.patch
new file mode 100644
index 0000000..ea25b56
--- /dev/null
+++ b/src/qtbase-1.patch
@@ -0,0 +1,105 @@
+This file is part of MXE.
+See index.html for further information.
+
+From ce5c490ce4d6612a20cbfa2ed85e493af9513268 Mon Sep 17 00:00:00 2001
+From: Nicolas Cornu <ncornu@aldebaran-robotics.com>
+Date: Thu, 28 Nov 2013 00:06:41 +0100
+Subject: [PATCH 1/3] Allow temporary databases in sqlite driver
+
+http://www3.sqlite.org/inmemorydb.html#temp_db
+[ChangeLog][QtSql][QSQLITE] Enable creating temporary databases
+
+Change-Id: I9972fba5c91eca55cfc5a84f94cff03d19992324
+Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com>
+Reviewed-by: Mark Brand <mabrand@mabrand.nl>
+(cherry picked from commit 9de879c8a43a012254036d7f08b55793fa325cb2)
+
+diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc
+index f1fd2f6..9858e30 100644
+--- a/src/sql/doc/src/sql-driver.qdoc
++++ b/src/sql/doc/src/sql-driver.qdoc
+@@ -531,8 +531,8 @@
+ is not necessary to have a database server. SQLite operates on a
+ single file, which must be set as the database name when opening
+ a connection. If the file does not exist, SQLite will try to
+- create it. SQLite also supports in-memory databases, simply pass
+- ":memory:" as the database name.
++ create it. SQLite also supports in-memory and temporary databases. Simply
++ pass respectively ":memory:" or an empty string as the database name.
+
+ SQLite has some restrictions regarding multiple users and
+ multiple transactions. If you try to read/write on a resource from different
+diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp
+index c98d643..55ef092 100644
+--- a/src/sql/drivers/sqlite/qsql_sqlite.cpp
++++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp
+@@ -597,9 +597,6 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
+ if (isOpen())
+ close();
+
+- if (db.isEmpty())
+- return false;
+-
+ int timeOut = 5000;
+ bool sharedCache = false;
+ bool openReadOnlyOption = false;
+--
+1.8.4.5
+
+
+From 428f22caa4b1f0283821f25d4df639a674a075e3 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Tue, 26 Feb 2013 13:23:33 +0100
+Subject: [PATCH 2/3] use pkg-config for freetype
+
+Change-Id: Id2f78ed9dbdcacd570eb25982cbd700d0437542a
+
+diff --git a/src/platformsupport/fontdatabases/basic/basic.pri b/src/platformsupport/fontdatabases/basic/basic.pri
+index 88be809..8fc19d2 100644
+--- a/src/platformsupport/fontdatabases/basic/basic.pri
++++ b/src/platformsupport/fontdatabases/basic/basic.pri
+@@ -82,5 +82,7 @@ contains(QT_CONFIG, freetype) {
+ } else:contains(QT_CONFIG, system-freetype) {
+ # pull in the proper freetype2 include directory
+ include($$QT_SOURCE_TREE/config.tests/unix/freetype/freetype.pri)
++ CONFIG += link_pkgconfig
++ PKGCONFIG += freetype2
+ }
+
+--
+1.8.4.5
+
+
+From 802941a977d99c1942bfca13d4fee6fc11c31fee Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sat, 18 May 2013 23:07:46 +0200
+Subject: [PATCH 3/3] use pkgconfig for icu detection (MXE specific)
+
+Change-Id: I874171361fec812cb5a5a56e4d8d90a630be3bf3
+
+diff --git a/config.tests/unix/icu/icu.pro b/config.tests/unix/icu/icu.pro
+index 2c1b431..e29798b 100644
+--- a/config.tests/unix/icu/icu.pro
++++ b/config.tests/unix/icu/icu.pro
+@@ -1,16 +1,5 @@
+ SOURCES = icu.cpp
+ CONFIG += console
+ CONFIG -= qt dylib
+-win32 {
+- CONFIG(static, static|shared) {
+- CONFIG(debug, debug|release) {
+- LIBS += -lsicuind -lsicuucd -lsicudtd
+- } else {
+- LIBS += -lsicuin -lsicuuc -lsicudt
+- }
+- } else {
+- LIBS += -licuin -licuuc
+- }
+-} else {
+- LIBS += -licui18n -licuuc
+-}
++CONFIG += link_pkgconfig
++PKGCONFIG += icu-i18n
+--
+1.8.4.5
+
diff --git a/src/qtbase.mk b/src/qtbase.mk
index 78198f3..30382e9 100644
--- a/src/qtbase.mk
+++ b/src/qtbase.mk
@@ -3,12 +3,12 @@
PKG := qtbase
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 1fe45064daade31db01fe95f076b500a3d43fd24
+$(PKG)_VERSION := 5.2.1
+$(PKG)_CHECKSUM := 32cfec62138a478361711cb5f6c8d1c60a3d8c08
$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc libodbc++ postgresql freetds openssl zlib libpng jpeg sqlite pcre fontconfig freetype dbus icu4c
+$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.2/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc postgresql freetds openssl zlib libpng jpeg sqlite pcre fontconfig freetype dbus icu4c
define $(PKG)_UPDATE
$(WGET) -q -O- http://download.qt-project.org/official_releases/qt/5.1/ | \
@@ -38,6 +38,7 @@ define $(PKG)_BUILD
-accessibility \
-nomake examples \
-nomake tests \
+ -no-sql-mysql \
-qt-sql-sqlite \
-qt-sql-odbc \
-qt-sql-psql \
@@ -51,12 +52,35 @@ define $(PKG)_BUILD
-dbus-linked \
-v
- $(MAKE) -C '$(1)' -j '$(JOBS)'
+ # invoke qmake with removed debug options as a workaround for
+ # https://bugreports.qt-project.org/browse/QTBUG-30898
+ $(MAKE) -C '$(1)' -j '$(JOBS)' QMAKE="$(1)/bin/qmake CONFIG-='debug debug_and_release'"
rm -rf '$(PREFIX)/$(TARGET)/qt5'
$(MAKE) -C '$(1)' -j 1 install
+ ln -sf '$(PREFIX)/$(TARGET)/qt5/bin/qmake' '$(PREFIX)/bin/$(TARGET)'-qmake-qt5
mkdir '$(1)/test-qt'
cd '$(1)/test-qt' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake' '$(PWD)/src/qt-test.pro'
$(MAKE) -C '$(1)/test-qt' -j '$(JOBS)'
$(INSTALL) -m755 '$(1)/test-qt/release/test-qt5.exe' '$(PREFIX)/$(TARGET)/bin/'
+
+ # build test the manual way
+ mkdir '$(1)/test-$(PKG)-pkgconfig'
+ '$(PREFIX)/$(TARGET)/qt5/bin/uic' -o '$(1)/test-$(PKG)-pkgconfig/ui_qt-test.h' '$(TOP_DIR)/src/qt-test.ui'
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -std=c++0x -pedantic \
+ '$(TOP_DIR)/src/qt-test.cpp' -o '$(PREFIX)/$(TARGET)/bin/test-$(PKG)-pkgconfig.exe' \
+ -I'$(1)/test-$(PKG)-pkgconfig' \
+ `'$(TARGET)-pkg-config' Qt5Widgets --cflags --libs`
+
+ # batch file to run test programs
+ (printf 'set PATH=..\\lib;..\\qt5\\bin;..\\qt5\\lib;%%PATH%%\r\n'; \
+ printf 'set QT_QPA_PLATFORM_PLUGIN_PATH=..\\qt5\\plugins\r\n'; \
+ printf 'test-qt5.exe\r\n'; \
+ printf 'test-qtbase-pkgconfig.exe\r\n';) \
+ > '$(PREFIX)/$(TARGET)/bin/test-qt5.bat'
endef
+
+$(PKG)_BUILD_SHARED = $(subst -static ,-shared ,\
+ $(subst -qt-sql-,-plugin-sql-,\
+ $($(PKG)_BUILD)))
diff --git a/src/qtconnectivity.mk b/src/qtconnectivity.mk
new file mode 100644
index 0000000..1fc57a4
--- /dev/null
+++ b/src/qtconnectivity.mk
@@ -0,0 +1,21 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := qtconnectivity
+$(PKG)_IGNORE :=
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 2ec79e4869ed8b95f5fff8b4e30f33591cd73ccb
+$(PKG)_SUBDIR = $(subst qtbase,qtconnectivity,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtconnectivity,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtconnectivity,$(qtbase_URL))
+$(PKG)_DEPS := gcc qtbase qtdeclarative
+
+define $(PKG)_UPDATE
+ echo $(qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/qtdeclarative.mk b/src/qtdeclarative.mk
index a32e8b0..f3bdfd0 100644
--- a/src/qtdeclarative.mk
+++ b/src/qtdeclarative.mk
@@ -3,12 +3,12 @@
PKG := qtdeclarative
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 6b81191fb2e38146159681af5d51206855fc4fbb
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc qtbase qtjsbackend qtsvg qtxmlpatterns
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 1875e93665255ee4ef1694d946cd20c0861ac60d
+$(PKG)_SUBDIR = $(subst qtbase,qtdeclarative,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtdeclarative,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtdeclarative,$(qtbase_URL))
+$(PKG)_DEPS := gcc qtbase qtsvg qtxmlpatterns
define $(PKG)_UPDATE
echo $(qtbase_VERSION)
@@ -19,3 +19,5 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/qtgraphicaleffects.mk b/src/qtgraphicaleffects.mk
index d7dc684..3682bbe 100644
--- a/src/qtgraphicaleffects.mk
+++ b/src/qtgraphicaleffects.mk
@@ -3,11 +3,11 @@
PKG := qtgraphicaleffects
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 21c878319cbb97129877ce8581e62ce495477123
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 649765bb8054abccbd1002606469f56bba5cab25
+$(PKG)_SUBDIR = $(subst qtbase,qtgraphicaleffects,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtgraphicaleffects,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtgraphicaleffects,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase qtdeclarative
define $(PKG)_UPDATE
diff --git a/src/qtimageformats-1-cherrypicks.patch b/src/qtimageformats-1.patch
index 4b7e150..30e5fcd 100644
--- a/src/qtimageformats-1-cherrypicks.patch
+++ b/src/qtimageformats-1.patch
@@ -1,7 +1,7 @@
This file is part of MXE.
See index.html for further information.
-From f6906f5cb744554a985f6ecbb55a49dd2883d531 Mon Sep 17 00:00:00 2001
+From 44d6697bd01bbd489c90d3a0f64cd8ecfcb29eb3 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 3 Nov 2011 14:11:02 +0100
Subject: [PATCH 1/2] add pkg-config support for libtiff-4
@@ -37,10 +37,10 @@ index 353e3f3..fa22141 100644
} else {
include($$PWD/../../../3rdparty/libtiff.pri)
--
-1.8.1.4
+1.8.4.5
-From 3c300d849fbe41368aedbf8d9c8052a170dfd108 Mon Sep 17 00:00:00 2001
+From 8dea742660bb9d1196c4b05cf5b22fb4f4e41595 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Wed, 19 Dec 2012 23:29:52 +0100
Subject: [PATCH 2/2] add pkg-config support for libmng (mxe-specific)
@@ -76,5 +76,5 @@ index cdf17c5..00cd0b3 100644
} else {
include($$PWD/../../../3rdparty/libmng.pri)
--
-1.8.1.4
+1.8.4.5
diff --git a/src/qtimageformats.mk b/src/qtimageformats.mk
index e85b547..d59e621 100644
--- a/src/qtimageformats.mk
+++ b/src/qtimageformats.mk
@@ -3,11 +3,11 @@
PKG := qtimageformats
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 2ea432cfd0f94d809db31ae6c83cb65cbf8db9b8
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 6b08d46ef9147a5942e07f7c6b664d554f527e3a
+$(PKG)_SUBDIR = $(subst qtbase,qtimageformats,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtimageformats,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtimageformats,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase libmng tiff
define $(PKG)_UPDATE
diff --git a/src/qtjsbackend.mk b/src/qtjsbackend.mk
deleted file mode 100644
index 4a418cd..0000000
--- a/src/qtjsbackend.mk
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file is part of MXE.
-# See index.html for further information.
-
-PKG := qtjsbackend
-$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := df1cd292b2fce26308c3e85b99def8264891607c
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc qtbase
-
-define $(PKG)_UPDATE
- echo $(qtbase_VERSION)
-endef
-
-define $(PKG)_BUILD
- cd '$(1)' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake'
- $(MAKE) -C '$(1)' -j '$(JOBS)'
- $(MAKE) -C '$(1)' -j 1 install
-endef
diff --git a/src/qtlocation.mk b/src/qtlocation.mk
new file mode 100644
index 0000000..a6e254d
--- /dev/null
+++ b/src/qtlocation.mk
@@ -0,0 +1,21 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := qtlocation
+$(PKG)_IGNORE :=
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 40a73c0d94acadd35d1233affdef462206a91187
+$(PKG)_SUBDIR = $(subst qtbase,qtlocation,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtlocation,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtlocation,$(qtbase_URL))
+$(PKG)_DEPS := gcc qtbase qtdeclarative qtmultimedia
+
+define $(PKG)_UPDATE
+ echo $(qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/qtmultimedia-1-cherrypicks.patch b/src/qtmultimedia-1.patch
index 950678d..e416fc9 100644
--- a/src/qtmultimedia-1-cherrypicks.patch
+++ b/src/qtmultimedia-1.patch
@@ -1,14 +1,14 @@
This file is part of MXE.
See index.html for further information.
-From af295c0f78cfc8e54601048d5da66f6e81f6661e Mon Sep 17 00:00:00 2001
+From 678830f6f5e3e9c8112a40983be7f9fefc3e91b3 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 13 Dec 2012 20:23:48 +0100
Subject: [PATCH] remove duplicate defs (mxe-specific)
diff --git a/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp
-index 3c66d05..10e8037 100644
+index e9503d4..b92aa98 100644
--- a/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp
+++ b/src/multimedia/audio/qaudiodeviceinfo_win32_p.cpp
@@ -67,19 +67,19 @@ typedef struct _DDPIXELFORMAT* LPDDPIXELFORMAT;
@@ -41,5 +41,5 @@ index 3c66d05..10e8037 100644
#endif // __ICreateDevEnum_INTERFACE_DEFINED__
--
-1.7.10.4
+1.8.4.5
diff --git a/src/qtmultimedia.mk b/src/qtmultimedia.mk
index 57970d2..a830041 100644
--- a/src/qtmultimedia.mk
+++ b/src/qtmultimedia.mk
@@ -3,11 +3,11 @@
PKG := qtmultimedia
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 104564fc843e3640e65aee48c1a0b3a62d127ca4
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 0c686a2174c02e27bbf912a16b2939bf8b3e873d
+$(PKG)_SUBDIR = $(subst qtbase,qtmultimedia,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtmultimedia,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtmultimedia,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qtquick1.mk b/src/qtquick1.mk
index 6b295ad..dd9f731 100644
--- a/src/qtquick1.mk
+++ b/src/qtquick1.mk
@@ -3,11 +3,11 @@
PKG := qtquick1
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := bc98881532cba9d6618ab24e441b7c11e74d3273
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 6013b6446be890cd4b27756bbb445072b53b1aa5
+$(PKG)_SUBDIR = $(subst qtbase,qtquick1,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtquick1,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtquick1,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase qtscript qtsvg qttools qtxmlpatterns
define $(PKG)_UPDATE
diff --git a/src/qtquickcontrols.mk b/src/qtquickcontrols.mk
index 90ec497..bb9b9c8 100644
--- a/src/qtquickcontrols.mk
+++ b/src/qtquickcontrols.mk
@@ -3,11 +3,11 @@
PKG := qtquickcontrols
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := e7d178b8927dc0356023ae1fca3909dd509757f0
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 9fc54633504a593eb31b3bd71ed0a016fd5ddc65
+$(PKG)_SUBDIR = $(subst qtbase,qtquickcontrols,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtquickcontrols,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtquickcontrols,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase qtdeclarative
define $(PKG)_UPDATE
diff --git a/src/qtscript.mk b/src/qtscript.mk
index 2ea9758..7a872db 100644
--- a/src/qtscript.mk
+++ b/src/qtscript.mk
@@ -3,11 +3,11 @@
PKG := qtscript
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 144fd867441145c92e6099edf89b72d961f8f11a
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 329290ebb443966cbd9443189ced39a933de88e2
+$(PKG)_SUBDIR = $(subst qtbase,qtscript,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtscript,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtscript,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qtsensors.mk b/src/qtsensors.mk
index 9580dec..fd676b7 100644
--- a/src/qtsensors.mk
+++ b/src/qtsensors.mk
@@ -3,11 +3,11 @@
PKG := qtsensors
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 0399e4d8402b7931e482b951363d153d1426b209
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 5c9bd1be9920834cbd3cd1345235dab2dac9da44
+$(PKG)_SUBDIR = $(subst qtbase,qtsensors,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtsensors,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtsensors,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qtserialport.mk b/src/qtserialport.mk
index 42e3509..6c48980 100644
--- a/src/qtserialport.mk
+++ b/src/qtserialport.mk
@@ -3,11 +3,11 @@
PKG := qtserialport
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 5e3e9fb88ba2cf7b84fad34c6f9424aa8dc5e97c
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 929b27f7d67a44cd7f9fc138f0c1300145d7e517
+$(PKG)_SUBDIR = $(subst qtbase,qtserialport,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtserialport,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtserialport,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qtservice-1-fixes.patch b/src/qtservice-1-fixes.patch
new file mode 100644
index 0000000..5713f57
--- /dev/null
+++ b/src/qtservice-1-fixes.patch
@@ -0,0 +1,115 @@
+This file is part of MXE.
+See index.html for further information.
+
+From 431dd674645bbee5ea34d65aa4095f07890af088 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 29 Aug 2013 09:27:08 +0200
+Subject: [PATCH 1/4] qtservice: fixes for static build
+
+
+diff --git a/qtservice/buildlib/buildlib.pro b/qtservice/buildlib/buildlib.pro
+index 1e51cc1..c427a56 100644
+--- a/qtservice/buildlib/buildlib.pro
++++ b/qtservice/buildlib/buildlib.pro
+@@ -5,7 +5,7 @@ win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
+ include(../src/qtservice.pri)
+ TARGET = $$QTSERVICE_LIBNAME
+ DESTDIR = $$QTSERVICE_LIBDIR
+-win32 {
++win32:shared {
+ DLLDESTDIR = $$[QT_INSTALL_BINS]
+ QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QTSERVICE_LIBNAME}.dll
+ }
+diff --git a/qtservice/src/qtservice.pri b/qtservice/src/qtservice.pri
+index 0945298..0475e0f 100644
+--- a/qtservice/src/qtservice.pri
++++ b/qtservice/src/qtservice.pri
+@@ -15,7 +15,7 @@ qtservice-uselib:!qtservice-buildlib {
+ unix:SOURCES += $$PWD/qtservice_unix.cpp $$PWD/qtunixsocket.cpp $$PWD/qtunixserversocket.cpp
+ }
+
+-win32 {
+- qtservice-buildlib:shared:DEFINES += QT_QTSERVICE_EXPORT
++win32:shared {
++ qtservice-buildlib:DEFINES += QT_QTSERVICE_EXPORT
+ else:qtservice-uselib:DEFINES += QT_QTSERVICE_IMPORT
+ }
+--
+1.8.1.4
+
+
+From 539cadf46856af75becb54b40f65f617ae6dbf1f Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 29 Aug 2013 09:31:40 +0200
+Subject: [PATCH 2/4] qtservice: build as static lib and generate .prl
+
+
+diff --git a/qtservice/buildlib/buildlib.pro b/qtservice/buildlib/buildlib.pro
+index c427a56..8335202 100644
+--- a/qtservice/buildlib/buildlib.pro
++++ b/qtservice/buildlib/buildlib.pro
+@@ -1,7 +1,7 @@
+ TEMPLATE=lib
+-CONFIG += qt dll qtservice-buildlib
++CONFIG += qt staticlib qtservice-buildlib
+ mac:CONFIG += absolute_library_soname
+-win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all
++win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all create_prl
+ include(../src/qtservice.pri)
+ TARGET = $$QTSERVICE_LIBNAME
+ DESTDIR = $$QTSERVICE_LIBDIR
+--
+1.8.1.4
+
+
+From 01626c8c0f528e6642110b15dab658ad49b8075b Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 29 Aug 2013 09:44:49 +0200
+Subject: [PATCH 3/4] qtservice: no debug
+
+
+diff --git a/qtservice/buildlib/buildlib.pro b/qtservice/buildlib/buildlib.pro
+index 8335202..370156a 100644
+--- a/qtservice/buildlib/buildlib.pro
++++ b/qtservice/buildlib/buildlib.pro
+@@ -1,7 +1,7 @@
+ TEMPLATE=lib
+ CONFIG += qt staticlib qtservice-buildlib
+ mac:CONFIG += absolute_library_soname
+-win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += debug_and_release build_all create_prl
++win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += create_prl
+ include(../src/qtservice.pri)
+ TARGET = $$QTSERVICE_LIBNAME
+ DESTDIR = $$QTSERVICE_LIBDIR
+--
+1.8.1.4
+
+
+From 005eb0eb8275b6e50c814343e7fdb3d2c99f13d5 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 29 Aug 2013 11:32:45 +0200
+Subject: [PATCH 4/4] qtservice: install to Qt directory
+
+
+diff --git a/qtservice/buildlib/buildlib.pro b/qtservice/buildlib/buildlib.pro
+index 370156a..4180e83 100644
+--- a/qtservice/buildlib/buildlib.pro
++++ b/qtservice/buildlib/buildlib.pro
+@@ -4,10 +4,11 @@ mac:CONFIG += absolute_library_soname
+ win32|mac:!wince*:!win32-msvc:!macx-xcode:CONFIG += create_prl
+ include(../src/qtservice.pri)
+ TARGET = $$QTSERVICE_LIBNAME
+-DESTDIR = $$QTSERVICE_LIBDIR
+ win32:shared {
+ DLLDESTDIR = $$[QT_INSTALL_BINS]
+ QMAKE_DISTCLEAN += $$[QT_INSTALL_BINS]\\$${QTSERVICE_LIBNAME}.dll
+ }
+-target.path = $$DESTDIR
+-INSTALLS += target
++target.path = $$[QT_INSTALL_LIBS]
++headers.path = $$[QT_INSTALL_HEADERS]
++headers.files += ../src/qtservice.h
++INSTALLS += target headers
+--
+1.8.1.4
+
diff --git a/src/qtservice.mk b/src/qtservice.mk
new file mode 100644
index 0000000..6f9683c
--- /dev/null
+++ b/src/qtservice.mk
@@ -0,0 +1,21 @@
+# This file is part of MXE.
+# See index.html for further information.
+PKG := qtservice
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 4ac977553f2b04a54feb74ebcbc90ef255d38895
+$(PKG)_CHECKSUM := b3a185696066dc8f1792de83aa8d7187fb416580
+$(PKG)_SUBDIR := qt-solutions-qt-solutions
+$(PKG)_FILE := $($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://qt.gitorious.org/qt-solutions/qt-solutions/archive/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc qtbase
+
+define $(PKG)_UPDATE
+ echo 'Warning: Updates are temporarily disabled for package qtservice.' >&2;
+ echo $(qtservice_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)/qtservice/buildlib' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake'
+ $(MAKE) -C '$(1)/qtservice/buildlib' -j '$(JOBS)'
+ $(MAKE) -C '$(1)/qtservice/buildlib' -j 1 install
+endef
diff --git a/src/qtsvg.mk b/src/qtsvg.mk
index 7985db9..22ece5a 100644
--- a/src/qtsvg.mk
+++ b/src/qtsvg.mk
@@ -3,11 +3,11 @@
PKG := qtsvg
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 572550aad16a666781cc78d0fecffadf4ba088f3
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 8ffaafb48566699386546b4316afce83025f4090
+$(PKG)_SUBDIR = $(subst qtbase,qtsvg,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtsvg,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtsvg,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qttools.mk b/src/qttools.mk
index 3a0088f..899937a 100644
--- a/src/qttools.mk
+++ b/src/qttools.mk
@@ -3,11 +3,11 @@
PKG := qttools
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := 45130b598a36f187f6b083011e27c050896c7179
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := 3b7ecfa4f0dfcc57424360801e91027450a34130
+$(PKG)_SUBDIR = $(subst qtbase,qttools,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qttools,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qttools,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase qtactiveqt qtdeclarative
define $(PKG)_UPDATE
diff --git a/src/qttranslations.mk b/src/qttranslations.mk
index 63dfcc6..199685b 100644
--- a/src/qttranslations.mk
+++ b/src/qttranslations.mk
@@ -3,11 +3,11 @@
PKG := qttranslations
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := c94d0ae1f3b56966730cb701f9d606e241370b31
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := c3d3a88005113be42e85f4b7c7e76fb7faffb73f
+$(PKG)_SUBDIR = $(subst qtbase,qttranslations,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qttranslations,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qttranslations,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase qttools
define $(PKG)_UPDATE
diff --git a/src/qtwebkit.mk b/src/qtwebkit.mk
new file mode 100644
index 0000000..fa38fe1
--- /dev/null
+++ b/src/qtwebkit.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := qtwebkit
+$(PKG)_IGNORE :=
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := a3c6749c66d0192ef286c8a08c325124d52d9bc2
+$(PKG)_SUBDIR = $(subst qtbase,qtwebkit,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtwebkit,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtwebkit,$(qtbase_URL))
+$(PKG)_DEPS := gcc qtbase qtmultimedia qtquick1
+
+define $(PKG)_UPDATE
+ echo $(qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD_SHARED
+ # looks for build tools with .exe suffix and tries to use win_flex
+ $(SED) -i 's,\.exe,,' '$(1)/Tools/qmake/mkspecs/features/functions.prf'
+ cd '$(1)' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake' FLEX=flex
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/qtwinextras-1.patch b/src/qtwinextras-1.patch
new file mode 100644
index 0000000..ebe93ee
--- /dev/null
+++ b/src/qtwinextras-1.patch
@@ -0,0 +1,25 @@
+This file is part of MXE.
+See index.html for further information.
+
+From 45d94cc9d6d7a9e2e1349e826c44fa342149a867 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Thu, 24 Oct 2013 22:29:51 +0200
+Subject: [PATCH] Fix MinGW-w64 GCC 4.8.2 compilation
+
+
+diff --git a/src/winextras/winshobjidl_p.h b/src/winextras/winshobjidl_p.h
+index 91faed5..352c405 100644
+--- a/src/winextras/winshobjidl_p.h
++++ b/src/winextras/winshobjidl_p.h
+@@ -222,7 +222,7 @@ public:
+
+ #if (defined _MSC_VER && _MSC_VER < 1600) || defined(Q_CC_MINGW)
+
+-# if !defined(__MINGW64_VERSION_MAJOR) || !defined(__MINGW64_VERSION_MINOR) || __MINGW64_VERSION_MAJOR * 100 + __MINGW64_VERSION_MINOR < 301
++# if !defined(__MINGW64_VERSION_MAJOR) || !defined(__MINGW64_VERSION_MINOR) || __MINGW64_VERSION_MAJOR * 100 + __MINGW64_VERSION_MINOR < 300
+
+ typedef struct SHARDAPPIDINFOLINK
+ {
+--
+1.8.4.5
+
diff --git a/src/qtwinextras.mk b/src/qtwinextras.mk
new file mode 100644
index 0000000..647918f
--- /dev/null
+++ b/src/qtwinextras.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := qtwinextras
+$(PKG)_IGNORE :=
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := b2f4108dd419f4b0edc54023028f4d3dedf7f095
+$(PKG)_SUBDIR = $(subst qtbase,qtwinextras,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtwinextras,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtwinextras,$(qtbase_URL))
+$(PKG)_DEPS := gcc qtbase qtdeclarative qtmultimedia
+
+define $(PKG)_UPDATE
+ echo $(qtbase_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && '$(PREFIX)/$(TARGET)/qt5/bin/qmake'
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/qtxmlpatterns-1.patch b/src/qtxmlpatterns-1.patch
index 2f4845c..bb86820 100644
--- a/src/qtxmlpatterns-1.patch
+++ b/src/qtxmlpatterns-1.patch
@@ -1,22 +1,24 @@
This file is part of MXE.
See index.html for further information.
-From 910b5fc6c65e2a4508077821a1d31e080d738766 Mon Sep 17 00:00:00 2001
+From 58ae17b18cea09c1fd3f8ec6912913e147f1f8f5 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Sat, 18 May 2013 17:03:55 +0200
Subject: [PATCH] mingw build fix: _fileno
diff --git a/tools/xmlpatterns/xmlpatterns.pro b/tools/xmlpatterns/xmlpatterns.pro
-index d349a91..13a70ae 100644
+index 1fad197..2bbf5b5 100644
--- a/tools/xmlpatterns/xmlpatterns.pro
+++ b/tools/xmlpatterns/xmlpatterns.pro
-@@ -11,4 +11,5 @@ HEADERS = main.h \
+@@ -11,6 +11,7 @@ HEADERS = main.h \
qapplicationargument.cpp \
qapplicationargumentparser.cpp
+win32-g++*:QMAKE_CXXFLAGS += -U__STRICT_ANSI__
load(qt_tool)
+
+ # with c++11 / __STRICT_ANSI__ mingw.org stdio.h doesn't declare e.g. _fileno
--
-1.8.1.4
+1.8.4.5
diff --git a/src/qtxmlpatterns.mk b/src/qtxmlpatterns.mk
index daf7d41..9a0be38 100644
--- a/src/qtxmlpatterns.mk
+++ b/src/qtxmlpatterns.mk
@@ -3,11 +3,11 @@
PKG := qtxmlpatterns
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 5.1.0
-$(PKG)_CHECKSUM := b108adc53e337640f3e4430c5e60b7bb8af7d18a
-$(PKG)_SUBDIR := $(PKG)-opensource-src-$($(PKG)_VERSION)
-$(PKG)_FILE := $(PKG)-opensource-src-$($(PKG)_VERSION).tar.xz
-$(PKG)_URL := http://download.qt-project.org/official_releases/qt/5.1/$($(PKG)_VERSION)/submodules/$($(PKG)_FILE)
+$(PKG)_VERSION = $(qtbase_VERSION)
+$(PKG)_CHECKSUM := ef3a60e38e8c871835497a4b63094b8543a547c4
+$(PKG)_SUBDIR = $(subst qtbase,qtxmlpatterns,$(qtbase_SUBDIR))
+$(PKG)_FILE = $(subst qtbase,qtxmlpatterns,$(qtbase_FILE))
+$(PKG)_URL = $(subst qtbase,qtxmlpatterns,$(qtbase_URL))
$(PKG)_DEPS := gcc qtbase
define $(PKG)_UPDATE
diff --git a/src/qwt_qt4-1-fixes-crlf.patch b/src/qwt_qt4-1-fixes-crlf.patch
new file mode 100644
index 0000000..80179ef
--- /dev/null
+++ b/src/qwt_qt4-1-fixes-crlf.patch
@@ -0,0 +1,23 @@
+This file is part of MXE.
+See index.html for further information.
+
+--- qwt-6.0.1/qwtconfig.pri 2011-08-01 16:34:05.000000000 +0200
++++ qwt-6.0.1/qwtconfig.pri 2011-12-03 10:14:53.371757822 +0100
+@@ -23,7 +23,7 @@
+ }
+
+ win32 {
+- QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION
++# QWT_INSTALL_PREFIX = C:/Qwt-$$QWT_VERSION
+ }
+
+ QWT_INSTALL_DOCS = $${QWT_INSTALL_PREFIX}/doc
+@@ -70,7 +70,7 @@
+ # it will be a static library.
+ ######################################################################
+
+-QWT_CONFIG += QwtDll
++#QWT_CONFIG += QwtDll
+
+ ######################################################################
+ # QwtPlot enables all classes, that are needed to use the QwtPlot
diff --git a/src/qwt_qt4.mk b/src/qwt_qt4.mk
new file mode 100644
index 0000000..4dd7266
--- /dev/null
+++ b/src/qwt_qt4.mk
@@ -0,0 +1,28 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := qwt_qt4
+$(PKG)_VERSION = $(qwt_VERSION)
+$(PKG)_CHECKSUM = $(qwt_CHECKSUM)
+$(PKG)_SUBDIR = $(qwt_SUBDIR)
+$(PKG)_FILE = $(qwt_FILE)
+$(PKG)_WEBSITE = $(qwt_WEBSITE)
+$(PKG)_URL = $(qwt_URL)
+$(PKG)_DEPS := gcc qt
+
+define $(PKG)_UPDATE
+ echo $(qwt_VERSION)
+endef
+
+define $(PKG)_BUILD
+ # build
+ cd '$(1)/src' && $(PREFIX)/$(TARGET)/qt/bin/qmake
+ $(MAKE) -C '$(1)/src' -f 'Makefile.Release' -j '$(JOBS)' install
+
+ #build sinusplot example to test linkage
+ cd '$(1)/examples/sinusplot' && $(PREFIX)/$(TARGET)/qt/bin/qmake
+ $(MAKE) -C '$(1)/examples/sinusplot' -f 'Makefile.Release' -j '$(JOBS)'
+
+ # install
+ $(INSTALL) -m755 '$(1)/examples/bin/sinusplot.exe' '$(PREFIX)/$(TARGET)/bin/test-qwt-qt4.exe'
+endef
diff --git a/src/readline-1.patch b/src/readline-1.patch
new file mode 100644
index 0000000..a3eedfe
--- /dev/null
+++ b/src/readline-1.patch
@@ -0,0 +1,21 @@
+From 2ebb1d16beb6774af45bada0bae797e2852bca0a Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Sun, 9 Feb 2014 18:12:20 +0100
+Subject: [PATCH] package readline: add missing semicolon
+
+
+diff --git a/util.c b/util.c
+index 6c68ad8..15238c0 100644
+--- a/util.c
++++ b/util.c
+@@ -390,6 +390,7 @@ _rl_strnicmp (string1, string2, count)
+ s2++;
+ }
+ while (--count != 0)
++ ;
+
+ return (0);
+ }
+--
+1.8.4.5
+
diff --git a/src/readline.mk b/src/readline.mk
index fbf6dd6..f2e458d 100644
--- a/src/readline.mk
+++ b/src/readline.mk
@@ -21,12 +21,10 @@ define $(PKG)_BUILD
$(SED) -i 's,^ *case SIGQUIT:.*,,' '$(1)/signals.c'
$(SED) -i 's,^ *case SIGTSTP:.*,,' '$(1)/signals.c'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-multibyte \
--without-purify \
--with-curses \
- LIBS='-lpdcurses'
- $(MAKE) -C '$(1)' -j '$(JOBS)' install SHARED_LIBS=
+ LIBS='-lcurses'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install $(if $(BUILD_STATIC),SHARED_LIBS=,SHLIB_LIBS='-lcurses')
endef
diff --git a/src/rubberband.mk b/src/rubberband.mk
new file mode 100644
index 0000000..270583c
--- /dev/null
+++ b/src/rubberband.mk
@@ -0,0 +1,38 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := rubberband
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 1.8.1
+$(PKG)_CHECKSUM := ae1faaef211d612db745d66d77266cf6789fd4ee
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_URL := http://code.breakfastquay.com/attachments/download/34/$(PKG)-$($(PKG)_VERSION).tar.bz2
+$(PKG)_DEPS := gcc fftw libsamplerate libsndfile pthreads vamp-plugin-sdk
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package rubberband need to be written.' >&2;
+ echo $(rubberband_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -j $(JOBS) -C '$(1)' -j '$(JOBS)' \
+ AR='$(TARGET)-ar' \
+ RANLIB='$(TARGET)-ranlib' \
+ DYNAMIC_EXTENSION='.dll' \
+ DYNAMIC_FULL_VERSION= \
+ DYNAMIC_ABI_VERSION= \
+ lib vamp \
+ $(if $(BUILD_STATIC),static,dynamic)
+
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/include/$(PKG)'
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/vamp'
+ $(INSTALL) -m644 '$(1)/$(PKG)/'* '$(PREFIX)/$(TARGET)/include/$(PKG)'
+ $(INSTALL) -m644 '$(1)/lib/lib$(PKG).$(LIB_SUFFIX)' '$(PREFIX)/$(TARGET)/lib'
+ $(INSTALL) -m644 '$(1)/lib/vamp-'*.dll '$(PREFIX)/$(TARGET)/lib/vamp'
+ $(INSTALL) -m644 '$(1)/vamp/vamp-rubberband.cat' '$(PREFIX)/$(TARGET)/lib/vamp'
+ $(SED) 's,%PREFIX%,$(PREFIX)/$(TARGET),' '$(1)/$(PKG).pc.in' \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/$(PKG).pc'
+endef
diff --git a/src/sdl.mk b/src/sdl.mk
index 4182c80..eaf3727 100644
--- a/src/sdl.mk
+++ b/src/sdl.mk
@@ -13,15 +13,15 @@ $(PKG)_DEPS := gcc libiconv
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://hg.libsdl.org/SDL/tags' | \
$(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
- head -1
+ grep '^1\.' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD
$(SED) -i 's,-mwindows,-lwinmm -mwindows,' '$(1)/configure'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--enable-threads \
--enable-directx \
--disable-stdio-redirect
diff --git a/src/sdl2-1-dinput.patch b/src/sdl2-1-dinput.patch
new file mode 100644
index 0000000..e01237a
--- /dev/null
+++ b/src/sdl2-1-dinput.patch
@@ -0,0 +1,17 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch has been taken from:
+https://bugzilla.libsdl.org/show_bug.cgi?id=1739
+
+--- a/configure.in Sat Sep 14 11:25:52 2013 -0700
++++ b/configure.in Fri Sep 27 15:03:58 2013 +1000
+@@ -2127,7 +2127,7 @@
+ # FIXME: latest Cygwin finds dinput headers, but we die on other win32 headers.
+ # FIXME: ...so force it off for now.
+ case "$host" in
+- *-*-cygwin*)
++ *-*-cygwin* | *-pc-mingw32*)
+ have_dinput=false
+ ;;
+ esac
diff --git a/src/sdl2-2-dxgi.patch b/src/sdl2-2-dxgi.patch
new file mode 100644
index 0000000..9b1b924
--- /dev/null
+++ b/src/sdl2-2-dxgi.patch
@@ -0,0 +1,18 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch has been taken from:
+https://bugzilla.libsdl.org/show_bug.cgi?id=2440
+
+diff -u tmp-sdl2/SDL2-2.0.2/src/video/windows/SDL_windowsvideo.c SDL2-2.0.2/src/video/windows/SDL_windowsvideo.c
+--- a/src/video/windows/SDL_windowsvideo.c 2014-03-09 09:20:03.133800102 +0100
++++ b/src/video/windows/SDL_windowsvideo.c 2014-03-08 05:36:50.000000000 +0100
+@@ -247,7 +247,7 @@
+
+ #define CINTERFACE
+ #define COBJMACROS
+-#include <DXGI.h>
++#include <dxgi.h>
+
+ SDL_bool
+ DXGI_LoadDLL( void **pDXGIDLL , IDXGIFactory **pDXGIFactory )
diff --git a/src/sdl2.mk b/src/sdl2.mk
new file mode 100644
index 0000000..3d0aeba
--- /dev/null
+++ b/src/sdl2.mk
@@ -0,0 +1,33 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl2
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.2
+$(PKG)_CHECKSUM := 304c7cd3dddca98724a3e162f232a8a8f6e1ceb3
+$(PKG)_SUBDIR := SDL2-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL2-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/release/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc libiconv
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://hg.libsdl.org/SDL/tags' | \
+ $(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ $(SED) -i 's,-mwindows,-lwinmm -mwindows,' '$(1)/configure'
+ cd '$(1)' && aclocal -I acinclude && autoconf && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --enable-threads \
+ --enable-directx
+ $(SED) -i 's,defined(__MINGW64_VERSION_MAJOR),defined(__MINGW64_VERSION_MAJOR) \&\& defined(_WIN64),' '$(1)/include/SDL_cpuinfo.h'
+ $(SED) -i 's,-XCClinker,,' '$(1)/sdl2.pc'
+ $(SED) -i 's,-XCClinker,,' '$(1)/sdl2-config'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ ln -sf '$(PREFIX)/$(TARGET)/bin/sdl2-config' '$(PREFIX)/bin/$(TARGET)-sdl2-config'
+endef
diff --git a/src/sdl2_image.mk b/src/sdl2_image.mk
new file mode 100644
index 0000000..d3e259b
--- /dev/null
+++ b/src/sdl2_image.mk
@@ -0,0 +1,33 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl2_image
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.0
+$(PKG)_CHECKSUM := 20b1b0db9dd540d6d5e40c7da8a39c6a81248865
+$(PKG)_SUBDIR := SDL2_image-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL2_image-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/projects/SDL_image/release/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc sdl2 jpeg libpng tiff
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://hg.libsdl.org/SDL_image/tags' | \
+ $(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ $(SED) -i 's,^\(Requires:.*\),\1 libtiff-4 libpng,' '$(1)/SDL2_image.pc.in'
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-sdl-prefix='$(PREFIX)/$(TARGET)' \
+ --disable-sdltest \
+ --disable-jpg-shared \
+ --disable-webp-shared \
+ --disable-png-shared \
+ --disable-tif-shared \
+ LIBS='-lz'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+endef
diff --git a/src/sdl2_mixer.mk b/src/sdl2_mixer.mk
new file mode 100644
index 0000000..32aef6d
--- /dev/null
+++ b/src/sdl2_mixer.mk
@@ -0,0 +1,50 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl2_mixer
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.0
+$(PKG)_CHECKSUM := 9ed975587f09a1776ba9776dcc74a58e695aba6e
+$(PKG)_SUBDIR := SDL2_mixer-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL2_mixer-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/projects/SDL_mixer/release/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc sdl2 libmodplug ogg vorbis smpeg2
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://hg.libsdl.org/SDL_mixer/tags' | \
+ $(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ $(SED) -i 's,^\(Requires:.*\),\1 vorbisfile,' '$(1)/SDL2_mixer.pc.in'
+ echo \
+ 'Libs.private:' \
+ "`$(TARGET)-pkg-config libmodplug --libs`" \
+ >> '$(1)/SDL2_mixer.pc.in'
+ $(SED) -i 's,for path in /usr/local; do,for path in; do,' '$(1)/configure'
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-sdl-prefix='$(PREFIX)/$(TARGET)' \
+ --disable-sdltest \
+ --disable-music-mod \
+ --enable-music-mod-modplug \
+ --enable-music-ogg \
+ --disable-music-flac \
+ --enable-music-mp3 \
+ --disable-music-ogg-shared \
+ --disable-music-flac-shared \
+ --disable-smpegtest
+ WINDRES='$(TARGET)-windres' \
+ LIBS='-lvorbis -logg'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+# '$(TARGET)-gcc' \
+# -W -Wall -Werror -ansi -pedantic \
+# '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-sdl2_mixer.exe' \
+# `'$(TARGET)-pkg-config' SDL2_mixer --cflags --libs`
+endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/sdl2_net-test.c b/src/sdl2_net-test.c
new file mode 100644
index 0000000..c5204a5
--- /dev/null
+++ b/src/sdl2_net-test.c
@@ -0,0 +1,19 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ */
+
+#include <SDL_net.h>
+
+int main(int argc, char *argv[])
+{
+ (void)argc;
+ (void)argv;
+
+ if (SDL_Init(SDL_INIT_EVERYTHING) < 0) return 1;
+ if (SDLNet_Init() < 0) return 1;
+
+ SDLNet_Quit();
+ SDL_Quit();
+ return 0;
+}
diff --git a/src/sdl2_net.mk b/src/sdl2_net.mk
new file mode 100644
index 0000000..759cb8f
--- /dev/null
+++ b/src/sdl2_net.mk
@@ -0,0 +1,36 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl2_net
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.0
+$(PKG)_CHECKSUM := c7cf473b3adada23171df9f92b3117052eac69fa
+$(PKG)_SUBDIR := SDL2_net-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL2_net-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/projects/SDL_net/release/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc sdl2
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://www.libsdl.org/projects/SDL_net/release/?C=M;O=D' | \
+ $(SED) -n 's,.*SDL_net-\([0-9][^>]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-sdl-prefix='$(PREFIX)/$(TARGET)' \
+ --disable-sdltest \
+ --disable-gui
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+ '$(TARGET)-gcc' \
+ -W -Wall -Werror -std=c99 -pedantic \
+ '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-sdl2_net.exe' \
+ `'$(TARGET)-pkg-config' SDL2_net --cflags --libs` \
+ -lws2_32 -liphlpapi
+endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/sdl2_ttf.mk b/src/sdl2_ttf.mk
new file mode 100644
index 0000000..f646ef8
--- /dev/null
+++ b/src/sdl2_ttf.mk
@@ -0,0 +1,31 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl2_ttf
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.12
+$(PKG)_CHECKSUM := 542865c604fe92d2f26000428ef733381caa0e8e
+$(PKG)_SUBDIR := SDL2_ttf-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL2_ttf-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/projects/SDL_ttf/release/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc sdl2 freetype
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://hg.libsdl.org/SDL_ttf/tags' | \
+ $(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ echo 'Requires.private: freetype2' >> '$(1)/SDL2_ttf.pc.in'
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-sdl-prefix='$(PREFIX)/$(TARGET)' \
+ --disable-sdltest \
+ --with-freetype-prefix='$(PREFIX)/$(TARGET)'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/sdl_gfx.mk b/src/sdl_gfx.mk
index d167cee..3f54159 100644
--- a/src/sdl_gfx.mk
+++ b/src/sdl_gfx.mk
@@ -3,8 +3,8 @@
PKG := sdl_gfx
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.0.24
-$(PKG)_CHECKSUM := 34e8963188e4845557468a496066a8fa60d5f563
+$(PKG)_VERSION := 2.0.25
+$(PKG)_CHECKSUM := 20a89d0b71b7b790b830c70f17ed2c44100bc0f4
$(PKG)_SUBDIR := SDL_gfx-$($(PKG)_VERSION)
$(PKG)_FILE := SDL_gfx-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://www.ferzkopp.net/Software/SDL_gfx-2.0/$($(PKG)_FILE)
@@ -18,7 +18,6 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && autoreconf -fi -I'$(PREFIX)/$(TARGET)/share/aclocal'
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--disable-shared \
@@ -31,5 +30,3 @@ define $(PKG)_BUILD
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-sdl_gfx.exe' \
`'$(TARGET)-pkg-config' SDL_gfx --cflags --libs`
endef
-
-$(PKG)_BUILD_x86_64-w64-mingw32 =
diff --git a/src/sdl_image.mk b/src/sdl_image.mk
index 8cc5d82..a5ebc2f 100644
--- a/src/sdl_image.mk
+++ b/src/sdl_image.mk
@@ -13,7 +13,9 @@ $(PKG)_DEPS := gcc sdl jpeg libpng tiff
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://hg.libsdl.org/SDL_image/tags' | \
$(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
- head -1
+ grep '^1\.' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD
diff --git a/src/sdl_mixer.mk b/src/sdl_mixer.mk
index 6c2677f..d4f0ad4 100644
--- a/src/sdl_mixer.mk
+++ b/src/sdl_mixer.mk
@@ -13,7 +13,9 @@ $(PKG)_DEPS := gcc sdl libmodplug ogg vorbis smpeg
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://hg.libsdl.org/SDL_mixer/tags' | \
$(SED) -n 's,.*release-\([0-9][^<]*\).*,\1,p' | \
- head -1
+ grep '^1\.' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD
diff --git a/src/sdl_rwhttp-test.c b/src/sdl_rwhttp-test.c
new file mode 100644
index 0000000..4fd0d85
--- /dev/null
+++ b/src/sdl_rwhttp-test.c
@@ -0,0 +1,46 @@
+/*
+ * This file is part of MXE.
+ * See index.html for further information.
+ *
+ * This is a simple test program for SDL_rwhttp that tries to
+ * fetch something from the web.
+ *
+ * This file is in the Public Domain.
+ */
+
+#include <stdio.h>
+#include <SDL_rwhttp.h>
+
+int main(int argc, char *argv[])
+{
+ int ret = EXIT_SUCCESS;
+ const char *url;
+ SDL_RWops* rwops;
+
+ if (argc != 2) {
+ fprintf(stderr, "usage: %s <url>\n", argv[0]);
+ return EXIT_FAILURE;
+ }
+
+ url = argv[1];
+
+ if (SDL_RWHttpInit() == -1) {
+ fprintf(stderr, "%s\n", SDL_GetError());
+ return EXIT_FAILURE;
+ }
+
+ rwops = SDL_RWFromHttpSync(url);
+ if (!rwops) {
+ fprintf(stderr, "%s\n", SDL_GetError());
+ ret = EXIT_FAILURE;
+ } else {
+ printf("success\n");
+ SDL_RWclose(rwops);
+ }
+
+ if (SDL_RWHttpShutdown() == -1) {
+ fprintf(stderr, "%s\n", SDL_GetError());
+ return EXIT_FAILURE;
+ }
+ return ret;
+}
diff --git a/src/sdl_rwhttp.mk b/src/sdl_rwhttp.mk
new file mode 100644
index 0000000..3f98a46
--- /dev/null
+++ b/src/sdl_rwhttp.mk
@@ -0,0 +1,36 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := sdl_rwhttp
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.2.0
+$(PKG)_CHECKSUM := 9e01fc2bcbb26ca5dce42917be310e34ff48961d
+$(PKG)_SUBDIR := SDL_rwhttp-$($(PKG)_VERSION)
+$(PKG)_FILE := SDL_rwhttp-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/mgerhardy/SDL_rwhttp/releases/download/$(call SHORT_PKG_VERSION,$(PKG))/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc curl
+
+$(PKG)_DEPS_i686-pc-mingw32 := $($(PKG)_DEPS) sdl sdl_net
+$(PKG)_DEPS_i686-w64-mingw32 := $($(PKG)_DEPS) sdl2 sdl2_net
+$(PKG)_DEPS_x86_64-w64-mingw32 := $($(PKG)_DEPS) sdl2 sdl2_net
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://github.com/mgerhardy/SDL_rwhttp/tags' | \
+ grep '<a href="/mgerhardy/SDL_rwhttp/archive/' | \
+ $(SED) -n 's,.*href="/mgerhardy/SDL_rwhttp/archive/\([0-9][^"_]*\)\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ WINDRES='$(TARGET)-windres'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+# '$(TARGET)-gcc' \
+# -W -Wall -Werror -ansi -pedantic \
+# '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-sdl_rwhttp.exe' \
+# `'$(TARGET)-pkg-config' SDL_rwhttp --cflags --libs`
+endef
diff --git a/src/sdl_ttf.mk b/src/sdl_ttf.mk
index f2f0ae9..7879b65 100644
--- a/src/sdl_ttf.mk
+++ b/src/sdl_ttf.mk
@@ -2,7 +2,7 @@
# See index.html for further information.
PKG := sdl_ttf
-$(PKG)_IGNORE :=
+$(PKG)_IGNORE := 2%
$(PKG)_VERSION := 2.0.11
$(PKG)_CHECKSUM := 0ccf7c70e26b7801d83f4847766e09f09db15cc6
$(PKG)_SUBDIR := SDL_ttf-$($(PKG)_VERSION)
diff --git a/src/sfml.mk b/src/sfml.mk
index cc8f71c..0a03adc 100644
--- a/src/sfml.mk
+++ b/src/sfml.mk
@@ -3,8 +3,8 @@
PKG := sfml
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.0
-$(PKG)_CHECKSUM := ff8cf290f49e1a1d8517a4a344e9214139da462f
+$(PKG)_VERSION := 2.1
+$(PKG)_CHECKSUM := c27bdffdc4bedb5f6a20db03ceca715d42aa5752
$(PKG)_SUBDIR := SFML-$($(PKG)_VERSION)
$(PKG)_FILE := SFML-$($(PKG)_VERSION)-sources.zip
$(PKG)_URL := http://sfml-dev.org/download/sfml/$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -12,23 +12,31 @@ $(PKG)_DEPS := gcc freetype glew jpeg openal libsndfile
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.sfml-dev.org/download.php' | \
- grep 'download/sfml/' | \
- $(SED) -n 's,.*\([0-9.]\+\).*,\1,p' | \
+ $(SED) -n 's,.*download/sfml/\([^"]\+\).*,\1,p' | \
head -1
endef
define $(PKG)_BUILD
mkdir '$(1)/build'
cd '$(1)/build' && cmake .. \
- -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)'
+ -DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
+ -DFREETYPE_INCLUDE_DIRS='$(PREFIX)/$(TARGET)/include/freetype2'
$(MAKE) -C '$(1)/build' -j '$(JOBS)' install VERBOSE=1
+ # create pkg-config file
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib/pkgconfig'
+ (echo 'Name: sfml'; \
+ echo 'Version: 0'; \
+ echo 'Description: sfml'; \
+ echo 'Requires: freetype2 glew openal sndfile vorbisenc'; \
+ echo 'Cflags: -DSFML_STATIC'; \
+ echo 'Libs: -lsfml-audio-s -lsfml-network-s -lsfml-graphics-s -lsfml-window-s -lsfml-system-s'; \
+ echo 'Libs.private: -ljpeg -lws2_32 -lgdi32';) \
+ > '$(PREFIX)/$(TARGET)/lib/pkgconfig/sfml.pc'
+
'$(TARGET)-g++' \
- -W -Wall -Werror \
- -DSFML_STATIC -DAL_LIBTYPE_STATIC \
+ -W -Wall -Werror -ansi -pedantic \
'$(2).cpp' -o '$(PREFIX)/$(TARGET)/bin/test-sfml.exe' \
- -lsfml-audio-s -lsfml-network-s -lsfml-graphics-s -lsfml-window-s -lsfml-system-s \
- `$(TARGET)-pkg-config --cflags --libs freetype2 glew openal sndfile vorbisenc` \
- -ljpeg -lws2_32 -lgdi32
+ `$(TARGET)-pkg-config --cflags --libs sfml`
endef
diff --git a/src/smpeg2.mk b/src/smpeg2.mk
new file mode 100644
index 0000000..f1bcc60
--- /dev/null
+++ b/src/smpeg2.mk
@@ -0,0 +1,41 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := smpeg2
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.0.0
+$(PKG)_CHECKSUM := d0455466f61a8e55f83f4d7fd82f1c305bce6832
+$(PKG)_SUBDIR := smpeg2-$($(PKG)_VERSION)
+$(PKG)_FILE := smpeg2-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://www.libsdl.org/projects/smpeg/release/$(PKG)_FILE
+$(PKG)_DEPS := gcc sdl2
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://packages.debian.org/unstable/source/smpeg' | \
+ $(SED) -n 's,.*smpeg2_\([0-9][^>]*\)\.orig\.tar.*,\1,p' | \
+ head -1
+endef
+
+define $(PKG)_BUILD
+ $(SED) -i 's,\(-lsmpeg2\),\1 -lstdc++,' '$(1)/smpeg2-config.in'
+ cd '$(1)' && ./configure \
+ AR='$(TARGET)-ar' \
+ NM='$(TARGET)-nm' \
+ --host='$(TARGET)' \
+ --disable-shared \
+ --disable-debug \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --with-sdl-prefix='$(PREFIX)/$(TARGET)' \
+ --disable-sdltest \
+ --disable-gtk-player \
+ --disable-opengl-player \
+ CFLAGS='-ffriend-injection'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+
+# '$(TARGET)-gcc' \
+# -W -Wall -Werror -std=c99 -pedantic \
+# '$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-smpeg2.exe' \
+# `'$(PREFIX)/$(TARGET)/bin/smpeg2-config' --cflags --libs`
+endef
+
+$(PKG)_BUILD_i686-pc-mingw32 =
diff --git a/src/sox.mk b/src/sox.mk
index be64aed..a453915 100644
--- a/src/sox.mk
+++ b/src/sox.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 71f05afc51e3d9b03376b2f98fd452d3a274d595
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc file flac lame libgomp libmad libpng libsndfile libtool opencore-amr twolame vorbis wavpack
+$(PKG)_DEPS := gcc file flac lame libgomp libmad libpng libsndfile libltdl opencore-amr twolame vorbis wavpack
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/sox/files/sox/' | \
diff --git a/src/speex.mk b/src/speex.mk
index 8d2838c..c68903a 100644
--- a/src/speex.mk
+++ b/src/speex.mk
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-oggtest
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= man_MANS= doc_DATA=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= man_MANS= doc_DATA=
diff --git a/src/sqlite.mk b/src/sqlite.mk
index 8e361f5..25c7804 100644
--- a/src/sqlite.mk
+++ b/src/sqlite.mk
@@ -3,11 +3,11 @@
PKG := sqlite
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3071700
-$(PKG)_CHECKSUM := e31958e56b1d7bef9433b1ff2e875c8c290d37f4
+$(PKG)_VERSION := 3080402
+$(PKG)_CHECKSUM := 97d727b46ca67c98eb7a0fa3f57a1cfeb7f08f74
$(PKG)_SUBDIR := $(PKG)-autoconf-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-autoconf-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://www.sqlite.org/2013/$($(PKG)_FILE)
+$(PKG)_URL := http://www.sqlite.org/2014/$($(PKG)_FILE)
$(PKG)_DEPS := gcc
define $(PKG)_UPDATE
@@ -18,11 +18,9 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--disable-readline \
- --disable-threadsafe
+ --enable-threadsafe \
+ CFLAGS="-Os"
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/theora.mk b/src/theora.mk
index 5b1343b..4e0b0aa 100644
--- a/src/theora.mk
+++ b/src/theora.mk
@@ -17,10 +17,10 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
+ # https://aur.archlinux.org/packages/mi/mingw-w64-libtheora/PKGBUILD
+ $(SED) -i 's,EXPORTS,,' '$(1)/win32/xmingw32/libtheoradec-all.def'
+ $(SED) -i 's,EXPORTS,,' '$(1)/win32/xmingw32/libtheoraenc-all.def'
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)'
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= doc_DATA=
endef
diff --git a/src/tiff.mk b/src/tiff.mk
index d8552a1..3683c4e 100644
--- a/src/tiff.mk
+++ b/src/tiff.mk
@@ -19,10 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--without-x
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/vamp-plugin-sdk.mk b/src/vamp-plugin-sdk.mk
new file mode 100644
index 0000000..ecf382b
--- /dev/null
+++ b/src/vamp-plugin-sdk.mk
@@ -0,0 +1,35 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := vamp-plugin-sdk
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 2.5
+$(PKG)_CHECKSUM := e87292c5d02f4c562e269188c43500958b0ea65a
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://code.soundsoftware.ac.uk/attachments/download/690/$(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_DEPS := gcc zlib
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package vamp-plugin-sdk need to be written.' >&2;
+ echo $(vamp-plugin-sdk_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && $(MAKE) -f build/Makefile.mingw32 \
+ CXX='$(TARGET)-g++' \
+ CC='$(TARGET)-gcc' \
+ LD='$(TARGET)-ld' \
+ AR='$(TARGET)-ar' \
+ RANLIB='$(TARGET)-ranlib' \
+ DYNAMIC_LDFLAGS='-static-libgcc -shared -Wl,-Bsymbolic' \
+ sdk$(if $(BUILD_STATIC),static)
+
+ for f in vamp vamp-sdk vamp-hostsdk; do \
+ $(SED) 's,%PREFIX%,$(PREFIX)/$(TARGET),' "$(1)/pkgconfig/$$f.pc.in" \
+ > "$(PREFIX)/$(TARGET)/lib/pkgconfig/$$f.pc"; \
+ done
+
+ cp -rv '$(1)/vamp' '$(1)/vamp-hostsdk' '$(1)/vamp-sdk' '$(PREFIX)/$(TARGET)/include/'
+ cp -rv '$(1)/'libvamp-*.$(LIB_SUFFIX) '$(PREFIX)/$(TARGET)/lib'
+endef
diff --git a/src/vcdimager-1-configure.patch b/src/vcdimager-1-configure.patch
new file mode 100644
index 0000000..6c3cb31
--- /dev/null
+++ b/src/vcdimager-1-configure.patch
@@ -0,0 +1,51 @@
+diff -urN vcdimager-0.7.24/configure.ac vcdimager-0.7.24-patch/configure.ac
+--- vcdimager-0.7.24/configure.ac 2011-03-18 01:43:53.000000000 +0200
++++ vcdimager-0.7.24-patch/configure.ac 2013-12-18 10:58:39.175296932 +0200
+@@ -154,9 +154,13 @@
+ fi
+
+ if test "x$enable_xml_fe" = "xyes"; then
+- AM_PATH_XML2(2.3.8, , enable_xml_fe=no)
++ PKG_CHECK_MODULES(XML, libxml-2.0)
++ dnl Using this causes pain and suffering
++ dnl AM_PATH_XML2(2.3.8, , enable_xml_fe=no)
+ fi
+
++
++
+ dnl headers
+
+ dnl AC_DEFINE(_DEVELOPMENT_, [], enable warnings about being development release)
+diff -urN vcdimager-0.7.24/frontends/xml/Makefile.am vcdimager-0.7.24-patch/frontends/xml/Makefile.am
+--- vcdimager-0.7.24/frontends/xml/Makefile.am 2004-08-15 15:16:49.000000000 +0300
++++ vcdimager-0.7.24-patch/frontends/xml/Makefile.am 2013-12-18 11:07:39.344356593 +0200
+@@ -27,7 +27,7 @@
+
+ MAINTAINERCLEANFILES = $(man_MANS)
+
+-INCLUDES = -I$(top_srcdir) $(LIBPOPT_CFLAGS) $(LIBVCD_CFLAGS) $(XML_CFLAGS) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS) $(XML_CPPFLAGS)
++INCLUDES = -I$(top_srcdir) $(LIBPOPT_CFLAGS) $(LIBVCD_CFLAGS) $(XML_CFLAGS) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS) $(XML_CFLAGS)
+
+ BUILT_SOURCES = videocd_dtd.inc
+ MOSTLYCLEANFILES = videocd_dtd.inc
+diff -urN vcdimager-0.7.24/frontends/xml/Makefile.in vcdimager-0.7.24-patch/frontends/xml/Makefile.in
+--- vcdimager-0.7.24/frontends/xml/Makefile.in 2011-03-18 01:46:36.000000000 +0200
++++ vcdimager-0.7.24-patch/frontends/xml/Makefile.in 2013-12-18 11:08:17.458924350 +0200
+@@ -222,7 +222,7 @@
+ STRIP = @STRIP@
+ VERSION = @VERSION@
+ XML2_CONFIG = @XML2_CONFIG@
+-XML_CPPFLAGS = @XML_CPPFLAGS@
++XML_CFLAGS = @XML_CFLAGS@
+ XML_LIBS = @XML_LIBS@
+ abs_builddir = @abs_builddir@
+ abs_srcdir = @abs_srcdir@
+@@ -279,7 +279,7 @@
+ top_srcdir = @top_srcdir@
+ man_MANS = vcdxbuild.1 vcdxgen.1 vcdxrip.1 vcdxminfo.1
+ MAINTAINERCLEANFILES = $(man_MANS)
+-INCLUDES = -I$(top_srcdir) $(LIBPOPT_CFLAGS) $(LIBVCD_CFLAGS) $(XML_CFLAGS) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS) $(XML_CPPFLAGS)
++INCLUDES = -I$(top_srcdir) $(LIBPOPT_CFLAGS) $(LIBVCD_CFLAGS) $(XML_CFLAGS) $(LIBCDIO_CFLAGS) $(LIBISO9660_CFLAGS) $(XML_CFLAGS)
+ BUILT_SOURCES = videocd_dtd.inc
+ MOSTLYCLEANFILES = videocd_dtd.inc
+ EXTRA_DIST = videocd.dtd $(man_MANS)
diff --git a/src/vcdimager.mk b/src/vcdimager.mk
new file mode 100644
index 0000000..88ae949
--- /dev/null
+++ b/src/vcdimager.mk
@@ -0,0 +1,23 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := vcdimager
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.7.24
+$(PKG)_CHECKSUM := 8c245555c3e21dcbc3d4dbb2ecca74f609545424
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://ftp.gnu.org/gnu/vcdimager/$(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_DEPS := gcc libcdio libxml2 popt
+
+define $(PKG)_UPDATE
+ echo 'TODO: Updates for package vcdimager need to be written.' >&2;
+ echo $(vcdimager_VERSION)
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && autoconf
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/vmime-1.patch b/src/vmime-1.patch
index 633be6c..a38256f 100644
--- a/src/vmime-1.patch
+++ b/src/vmime-1.patch
@@ -1,10 +1,10 @@
This file is part of MXE.
See index.html for further information.
-From 01e591d33435cbd027be6a85bac521138e45c19f Mon Sep 17 00:00:00 2001
+From 80a6fbf5170509f5eab94dd36f64ad8a0406e928 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Tue, 14 May 2013 09:21:46 +0200
-Subject: [PATCH] predefine VMIME_STATIC for convenience
+Subject: [PATCH 1/3] predefine VMIME_STATIC for convenience
diff --git a/vmime.pc.in b/vmime.pc.in
@@ -19,5 +19,54 @@ index fc1103e..11dd0ea 100644
+Cflags: -I${includedir}/ @VMIME_PKGCONFIG_CFLAGS@ -DVMIME_STATIC
--
-1.8.1.4
+1.8.4.5
+
+
+From f5b2e83eb4b96c6cd061bcca9249dc40d1ec3fb2 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Fri, 10 Jan 2014 03:20:11 +0100
+Subject: [PATCH 2/3] remove -ansi because it interferes with -std=c++11
+
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aac379c..9aa0283 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1020,7 +1020,7 @@ ELSE()
+
+ SET(
+ CMAKE_CXX_FLAGS
+- "${CMAKE_CXX_FLAGS} -D_REENTRANT=1 -W -Wall -ansi -pedantic -Wpointer-arith -Wold-style-cast -Wconversion -Wcast-align -Wno-long-long"
++ "${CMAKE_CXX_FLAGS} -D_REENTRANT=1 -W -Wall -pedantic -Wpointer-arith -Wold-style-cast -Wconversion -Wcast-align -Wno-long-long"
+ CACHE STRING
+ "g++ Compiler Flags"
+ FORCE
+--
+1.8.4.5
+
+
+From 64daad47a33daaf9f5120941a9255be9d40391f0 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Wed, 26 Mar 2014 23:45:05 +0100
+Subject: [PATCH 3/3] workaround for stricmp decl problem on mingw32
+ (mingw.org)
+
+
+diff --git a/src/vmime/platforms/windows/windowsCodepages.hpp b/src/vmime/platforms/windows/windowsCodepages.hpp
+index dfd6afd..f01bc47 100644
+--- a/src/vmime/platforms/windows/windowsCodepages.hpp
++++ b/src/vmime/platforms/windows/windowsCodepages.hpp
+@@ -32,6 +32,10 @@
+
+
+ #include <string.h>
++#define stricmp _stricmp
++extern "C" {
++_CRTIMP int __cdecl __MINGW_NOTHROW _stricmp (const char*, const char*);
++}
+
+
+ namespace vmime {
+--
+1.8.4.5
diff --git a/src/vmime-TryRunResults.cmake b/src/vmime-TryRunResults.cmake
new file mode 100644
index 0000000..9449b41
--- /dev/null
+++ b/src/vmime-TryRunResults.cmake
@@ -0,0 +1,22 @@
+# This file was generated by CMake because it detected TRY_RUN() commands
+# in crosscompiling mode. It will be overwritten by the next CMake run.
+# Copy it to a safe location, set the variables to appropriate values
+# and use it then to preset the CMake cache (using -C).
+
+
+# _RUN_RESULT_VAR
+# indicates whether the executable would have been able to run on its
+# target platform. If so, set _RUN_RESULT_VAR to
+# the exit code (in many cases 0 for success), otherwise enter "FAILED_TO_RUN".
+# The _COMPILE_RESULT_VAR variable holds the build result for this TRY_RUN().
+#
+# Source file : /home/brand/projects/mxe/mxe/tmp-vmime/kisli-vmime-5f63d47/cmake/cmake-cxx11/Modules/CheckCXX11Features/cxx11-test-__func__.cpp
+# Executable : /home/brand/projects/mxe/mxe/tmp-vmime/kisli-vmime-5f63d47/CMakeFiles/cmTryCompileExec3506745296-_RUN_RESULT_VAR.exe
+# Run arguments :
+# Called from: [2] /home/brand/projects/mxe/mxe/tmp-vmime/kisli-vmime-5f63d47/cmake/cmake-cxx11/Modules/CheckCXX11Features.cmake
+# [1] /home/brand/projects/mxe/mxe/tmp-vmime/kisli-vmime-5f63d47/CMakeLists.txt
+
+SET( _RUN_RESULT_VAR
+ 0
+ CACHE STRING "Result from TRY_RUN" FORCE)
+
diff --git a/src/vmime.mk b/src/vmime.mk
index a645dea..7535089 100644
--- a/src/vmime.mk
+++ b/src/vmime.mk
@@ -3,12 +3,12 @@
PKG := vmime
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 86f0a63
-$(PKG)_CHECKSUM := 3e36800f6772371b37a2e4f38072342e6335c96a
+$(PKG)_VERSION := 4cf7e02
+$(PKG)_CHECKSUM := 62054750162b4691498c97353c113e9d1de40cec
$(PKG)_SUBDIR := kisli-vmime-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := https://github.com/kisli/vmime/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc libiconv gnutls libgsasl pthreads zlib
+$(PKG)_DEPS := gcc gnutls libgsasl pthreads zlib
define $(PKG)_UPDATE
$(WGET) -q -O- 'https://github.com/kisli/vmime/commits/master' | \
@@ -26,6 +26,16 @@ define $(PKG)_BUILD
-DCMAKE_CXX_FLAGS='-DWINVER=0x0501 -DAI_ADDRCONFIG=0x0400 -DIPV6_V6ONLY=27' \
-DVMIME_BUILD_STATIC_LIBRARY=ON \
-DVMIME_BUILD_SHARED_LIBRARY=OFF \
+ -DVMIME_BUILD_SAMPLES=OFF \
+ -DVMIME_BUILD_DOCUMENTATION=OFF \
+ -DCMAKE_MODULE_PATH='$(1)/cmake' \
+ -DICU_LIBRARIES="`'$(TARGET)-pkg-config' --libs-only-l icu-i18n`" \
+ -DVMIME_CHARSETCONV_LIB_IS_ICONV=OFF \
+ -DVMIME_CHARSETCONV_LIB_IS_ICU=OFF \
+ -DVMIME_CHARSETCONV_LIB_IS_WIN=ON \
+ -DVMIME_SHARED_PTR_USE_CXX=ON \
+ -DCXX11_COMPILER_FLAGS=ON \
+ -C../../src/vmime-TryRunResults.cmake \
.
$(MAKE) -C '$(1)' -j '$(JOBS)'
@@ -33,7 +43,7 @@ define $(PKG)_BUILD
$(MAKE) -C '$(1)' install
$(SED) -i 's/posix/windows/g;' '$(1)/examples/example6.cpp'
- $(TARGET)-g++ -s -o '$(1)/examples/test-vmime.exe' \
+ $(TARGET)-g++ -s -std=c++0x -o '$(1)/examples/test-vmime.exe' \
'$(1)/examples/example6.cpp' \
`'$(TARGET)-pkg-config' vmime --cflags --libs`
$(INSTALL) -m755 '$(1)/examples/test-vmime.exe' '$(PREFIX)/$(TARGET)/bin/'
diff --git a/src/vo-aacenc.mk b/src/vo-aacenc.mk
new file mode 100644
index 0000000..7eb1e90
--- /dev/null
+++ b/src/vo-aacenc.mk
@@ -0,0 +1,25 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := vo-aacenc
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.1.3
+$(PKG)_CHECKSUM := 6f8eea8e13f369e3568d9cb33d78e0ac28b7eaee
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/opencore-amr/$(PKG)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/opencore-amr/files/$(PKG)/' | \
+ $(SED) -n 's,.*aacenc-\([0-9.]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/vo-amrwbenc.mk b/src/vo-amrwbenc.mk
new file mode 100644
index 0000000..6f64848
--- /dev/null
+++ b/src/vo-amrwbenc.mk
@@ -0,0 +1,25 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := vo-amrwbenc
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := 0.1.3
+$(PKG)_CHECKSUM := 427a147a378d258614d5d470f1f222e249535be7
+$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/opencore-amr/$(PKG)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'http://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc/' | \
+ $(SED) -n 's,.*amrwbenc-\([0-9.]*\)\.tar.*,\1,p' | \
+ $(SORT) -V | \
+ tail -1
+endef
+
+define $(PKG)_BUILD
+ cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j '$(JOBS)'
+ $(MAKE) -C '$(1)' -j 1 install
+endef
diff --git a/src/vorbis.mk b/src/vorbis.mk
index 361bba5..7f4ef23 100644
--- a/src/vorbis.mk
+++ b/src/vorbis.mk
@@ -3,8 +3,8 @@
PKG := vorbis
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.3.3
-$(PKG)_CHECKSUM := 8dae60349292ed76db0e490dc5ee51088a84518b
+$(PKG)_VERSION := 1.3.4
+$(PKG)_CHECKSUM := 1602716c187593ffe4302124535240cec2079df3
$(PKG)_SUBDIR := libvorbis-$($(PKG)_VERSION)
$(PKG)_FILE := libvorbis-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.xiph.org/releases/vorbis/$($(PKG)_FILE)
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
PKG_CONFIG='$(TARGET)-pkg-config'
$(MAKE) -C '$(1)' -j '$(JOBS)' install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
endef
diff --git a/src/vtk.mk b/src/vtk.mk
index 9a3ffc0..8bc464c 100644
--- a/src/vtk.mk
+++ b/src/vtk.mk
@@ -41,7 +41,7 @@ define $(PKG)_BUILD
-DBUILD_TESTING=FALSE\
-DVTKCompileTools_DIR='$(1)/native_build'\
-DVTK_USE_SYSTEM_EXPAT=TRUE\
- -DVTK_USE_SYSTEM_FREETYPE=TRUE\
+ -DVTK_USE_SYSTEM_FREETYPE=FALSE\
-DVTK_USE_SYSTEM_HDF5=TRUE \
-DVTK_USE_SYSTEM_JPEG=TRUE\
-DVTK_USE_SYSTEM_LIBXML2=TRUE\
diff --git a/src/wavpack-1-exec_prefix.patch b/src/wavpack-1-exec_prefix.patch
new file mode 100644
index 0000000..0c8333e
--- /dev/null
+++ b/src/wavpack-1-exec_prefix.patch
@@ -0,0 +1,14 @@
+This file is part of MXE.
+See index.html for further information.
+
+Make sure exec_prefix is defined in wavpack.pc.
+
+diff -ur a/wavpack.pc.in b/wavpack.pc.in
+--- a/wavpack.pc.in 2013-09-29 23:30:14.000000000 +0200
++++ b/wavpack.pc.in 2013-11-17 18:31:35.351567596 +0100
+@@ -1,4 +1,5 @@
+ prefix=@prefix@
++exec_prefix=${prefix}
+ libdir=@libdir@
+ includedir=${prefix}/include
+
diff --git a/src/wavpack.mk b/src/wavpack.mk
index 1c85768..afd44a5 100644
--- a/src/wavpack.mk
+++ b/src/wavpack.mk
@@ -3,8 +3,8 @@
PKG := wavpack
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 4.60.1
-$(PKG)_CHECKSUM := 003c65cb4e29c55011cf8e7b10d69120df5e7f30
+$(PKG)_VERSION := 4.70.0
+$(PKG)_CHECKSUM := 7bf2022c988c19067196ee1fdadc919baacf46d1
$(PKG)_SUBDIR := wavpack-$($(PKG)_VERSION)
$(PKG)_FILE := wavpack-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://www.wavpack.com/$($(PKG)_FILE)
@@ -19,9 +19,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
+ $(MXE_CONFIGURE_OPTS) \
--without-iconv \
CFLAGS="-DWIN32"
$(MAKE) -C '$(1)' -j '$(JOBS)' SUBDIRS="src include"
diff --git a/src/wget-1-pod.patch b/src/wget-1-pod.patch
index 36922da..d894cae 100644
--- a/src/wget-1-pod.patch
+++ b/src/wget-1-pod.patch
@@ -1,15 +1,21 @@
This file is part of MXE.
See index.html for further information.
-diff -urN a/doc/texi2pod.pl b/doc/texi2pod.pl
---- a/doc/texi2pod.pl 2012-06-09 11:37:53.000000000 +0100
-+++ b/doc/texi2pod.pl 2013-06-02 22:36:16.641048831 +0100
-@@ -291,10 +291,10 @@
- if (defined $1) {
- my $thing = $1;
- if ($ic =~ /\@asis/) {
-- $_ = "\n=item $thing\n";
-+ $_ = "\n=item * $thing\n";
+From abe9b3992e846f154f05853a30486139d5bca8d6 Mon Sep 17 00:00:00 2001
+From: Tom Molesworth <tom@entitymodel.com>
+Date: Mon, 20 Jan 2014 21:23:26 +0100
+Subject: [PATCH] Patch texi2pod.pl for perl-5.14+
+
+As described in #200. Similar to #198, this time just needed to
+add * bullets to the =item lines to avoid pod errors for the wget
+exit codes.
+
+diff --git a/doc/texi2pod.pl b/doc/texi2pod.pl
+index 9db6de1..f8f9544 100755
+--- a/doc/texi2pod.pl
++++ b/doc/texi2pod.pl
+@@ -294,7 +294,7 @@ while(<$inf>) {
+ $_ = "\n=item C<$thing>\n";
} else {
# Entity escapes prevent munging by the <> processing below.
- $_ = "\n=item $ic\&LT;$thing\&GT;\n";
@@ -17,3 +23,6 @@ diff -urN a/doc/texi2pod.pl b/doc/texi2pod.pl
}
} else {
$_ = "\n=item $ic\n";
+--
+1.8.4
+
diff --git a/src/wget.mk b/src/wget.mk
index afe35e8..efcb3be 100644
--- a/src/wget.mk
+++ b/src/wget.mk
@@ -2,8 +2,8 @@
# See index.html for further information.
PKG := wget
-$(PKG)_VERSION := 1.14
-$(PKG)_CHECKSUM := cfa0906e6f72c1c902c29b52d140c22ecdcd617e
+$(PKG)_VERSION := 1.15
+$(PKG)_CHECKSUM := e9fb1d25fa04f9c69e74e656a3174dca02700ba1
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://ftp.gnu.org/gnu/$(PKG)/$($(PKG)_FILE)
@@ -24,6 +24,7 @@ define $(PKG)_BUILD
--build="`config.guess`" \
--prefix='$(PREFIX)/$(TARGET)' \
--with-ssl=gnutls \
- CFLAGS='-DIN6_ARE_ADDR_EQUAL=IN6_ADDR_EQUAL'
+ CFLAGS='-DIN6_ARE_ADDR_EQUAL=IN6_ADDR_EQUAL' \
+ LIBS='-lpthread'
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
diff --git a/src/winpthreads.mk b/src/winpthreads.mk
index f1e8a4f..342482a 100644
--- a/src/winpthreads.mk
+++ b/src/winpthreads.mk
@@ -8,7 +8,10 @@ $(PKG)_CHECKSUM = $(mingw-w64_CHECKSUM)
$(PKG)_SUBDIR = $(mingw-w64_SUBDIR)
$(PKG)_FILE = $(mingw-w64_FILE)
$(PKG)_URL = $(mingw-w64_URL)
-$(PKG)_DEPS := gcc mingw-w64
+$(PKG)_DEPS :=
+
+$(PKG)_DEPS_i686-w64-mingw32 := gcc
+$(PKG)_DEPS_x86_64-w64-mingw32 := gcc
define $(PKG)_UPDATE
echo $(mingw-w64_VERSION)
@@ -16,10 +19,7 @@ endef
define $(PKG)_BUILD_mingw-w64
cd '$(1)/mingw-w64-libraries/winpthreads' && ./configure \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --enable-static \
- --disable-shared
+ $(MXE_CONFIGURE_OPTS)
$(MAKE) -C '$(1)/mingw-w64-libraries/winpthreads' -j '$(JOBS)' install
$(PTHREADS_TEST)
diff --git a/src/wt-1-fixes.patch b/src/wt-1-fixes.patch
index ab0f00c..4fe4fdd 100644
--- a/src/wt-1-fixes.patch
+++ b/src/wt-1-fixes.patch
@@ -36,36 +36,6 @@ index 76697fc..9bc0fa1 100644
ELSE(WIN32)
FIND_LIBRARY(GM_LIB
NAMES
-diff --git a/cmake/WtFindHaru.txt b/cmake/WtFindHaru.txt
-index 4dba35f..642bd58 100644
---- a/cmake/WtFindHaru.txt
-+++ b/cmake/WtFindHaru.txt
-@@ -44,6 +44,7 @@ IF(WIN32)
- FIND_LIBRARY(Z_LIB
- NAMES
- zlib
-+ libz
- PATHS
- ${HARU_PREFIX}/lib
- ${USERLIB_PREFIX}/lib
-@@ -58,6 +59,17 @@ IF(WIN32)
- SET(HARU_SUPPORT_LIBS ${HARU_SUPPORT_LIBS} ${Z_LIB})
- ENDIF(Z_LIB)
- ENDIF(HARU_LIB_RELEASE AND HARU_LIB_DEBUG)
-+
-+ IF(HARU_LIB_RELEASE)
-+ SET(HARU_LIB optimized ${HARU_LIB_RELEASE})
-+ IF(PNG_LIB_RELEASE)
-+ SET(HARU_SUPPORT_LIBS ${HARU_SUPPORT_LIBS} optimized ${PNG_LIB_RELEASE})
-+ ENDIF(PNG_LIB_RELEASE)
-+ IF(Z_LIB)
-+ SET(HARU_SUPPORT_LIBS ${HARU_SUPPORT_LIBS} optimized ${Z_LIB})
-+ ENDIF(Z_LIB)
-+ ENDIF(HARU_LIB_RELEASE)
-+
- SET(HARU_SUPPORT_LIBS_FOUND TRUE)
- ELSE(WIN32)
- FIND_LIBRARY(HARU_LIB
diff --git a/cmake/WtFindPangoFt2.txt b/cmake/WtFindPangoFt2.txt
index cd1e640..b1bbe3d 100644
--- a/cmake/WtFindPangoFt2.txt
diff --git a/src/wt.mk b/src/wt.mk
index 492bcf9..fd5c75e 100644
--- a/src/wt.mk
+++ b/src/wt.mk
@@ -3,12 +3,12 @@
PKG := wt
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 3.3.0
-$(PKG)_CHECKSUM := da3ad190e51d4e2bd2851141b27dd70b272cbb2c
+$(PKG)_VERSION := 3.3.1
+$(PKG)_CHECKSUM := 0ae889c1411864d783962d4878b90efbce7f3382
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/witty/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc boost openssl libharu graphicsmagick pango postgresql sqlite
+$(PKG)_DEPS := gcc boost openssl libharu graphicsmagick pango postgresql qt sqlite
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://sourceforge.net/projects/witty/files/wt/' | \
@@ -32,6 +32,7 @@ define $(PKG)_BUILD
-DGM_PREFIX='$(PREFIX)/$(TARGET)' \
-DGM_LIBS="`'$(TARGET)-pkg-config' --libs-only-l GraphicsMagick++`" \
-DPANGO_FT2_LIBS="`'$(TARGET)-pkg-config' --libs-only-l pangoft2`" \
+ -DENABLE_QT4=ON \
-DWT_CMAKE_FINDER_INSTALL_DIR='/lib/wt' \
-DCMAKE_TOOLCHAIN_FILE='$(CMAKE_TOOLCHAIN_FILE)' \
'$(1)'
diff --git a/src/wxwidgets-1-fixes.patch b/src/wxwidgets-1-fixes.patch
deleted file mode 100644
index 33329b6..0000000
--- a/src/wxwidgets-1-fixes.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./src/msw/textctrl.cpp 2013-01-02 21:47:03.000000000 +0100
-+++ ./src/msw/textctrl.cpp 2013-01-02 21:46:53.000000000 +0100
-@@ -992,7 +992,7 @@
-
- EDITSTREAM eds;
- wxZeroMemory(eds);
-- eds.dwCookie = (DWORD)&data;
-+ eds.dwCookie = (DWORD_PTR)&data;
- eds.pfnCallback = wxRichEditStreamOut;
-
- ::SendMessage
diff --git a/src/wxwidgets.mk b/src/wxwidgets.mk
index 11fc6ba..68f4cd9 100644
--- a/src/wxwidgets.mk
+++ b/src/wxwidgets.mk
@@ -3,8 +3,8 @@
PKG := wxwidgets
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 2.9.4
-$(PKG)_CHECKSUM := 5a34ddf19d37c741f74652ee847df9568a8b81e1
+$(PKG)_VERSION := 3.0.0
+$(PKG)_CHECKSUM := 756a9c54d1f411e262f03bacb78ccef085a9880a
$(PKG)_SUBDIR := wxWidgets-$($(PKG)_VERSION)
$(PKG)_FILE := wxWidgets-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/wxwindows/$($(PKG)_VERSION)/$($(PKG)_FILE)
@@ -16,20 +16,14 @@ define $(PKG)_UPDATE
head -1
endef
-define $(PKG)_BUILD
- $(SED) -i 's,png_check_sig,png_sig_cmp,g' '$(1)/configure'
- $(SED) -i 's,wx_cv_cflags_mthread=yes,wx_cv_cflags_mthread=no,' '$(1)/configure'
- cd '$(1)' && ./configure \
+define $(PKG)_CONFIGURE_OPTS
--host='$(TARGET)' \
--build="`config.guess`" \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)' \
- --enable-compat24 \
- --enable-compat26 \
--enable-gui \
- --enable-stl \
+ --disable-stl \
--enable-threads \
- --enable-unicode \
--disable-universal \
--with-themes=all \
--with-msw \
@@ -57,68 +51,43 @@ define $(PKG)_BUILD
--without-dmalloc \
--without-odbc \
LIBS=" `'$(TARGET)-pkg-config' --libs-only-l libtiff-4`"
- $(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
- -$(MAKE) -C '$(1)/locale' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= allmo
- $(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= __install_wxrc___depname=
+endef
+
+define $(PKG)_BUILD_UNICODE
+ # build the wxWidgets variant with unicode support
+ mkdir '$(1).unicode'
+ cd '$(1).unicode' && '$(1)/configure' \
+ $($(PKG)_CONFIGURE_OPTS) \
+ --enable-unicode
+ $(MAKE) -C '$(1).unicode' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ -$(MAKE) -C '$(1).unicode/locale' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= allmo
+ $(MAKE) -C '$(1).unicode' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= __install_wxrc___depname=
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/bin/wx-config' '$(PREFIX)/bin/$(TARGET)-wx-config'
+endef
+# ansi build has been long deprecated
+# so don't build it by default
+define $(PKG)_BUILD_ANSI
# build the wxWidgets variant without unicode support
- cd '$(1)' && $(call UNPACK_PKG_ARCHIVE,wxwidgets)
- $(foreach PKG_PATCH,$(sort $(wildcard $(TOP_DIR)/src/wxwidgets-*.patch)),
- (cd '$(1)/$(wxwidgets_SUBDIR)' && $(PATCH) -p1 -u) < $(PKG_PATCH))
- $(SED) -i 's,png_check_sig,png_sig_cmp,g' '$(1)/$(wxwidgets_SUBDIR)/configure'
- $(SED) -i 's,wx_cv_cflags_mthread=yes,wx_cv_cflags_mthread=no,' '$(1)/$(wxwidgets_SUBDIR)/configure'
- cd '$(1)/$(wxwidgets_SUBDIR)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --disable-shared \
- --prefix='$(PREFIX)/$(TARGET)' \
- --enable-compat24 \
- --enable-compat26 \
- --enable-gui \
- --enable-stl \
- --enable-threads \
- --disable-unicode \
- --disable-universal \
- --with-themes=all \
- --with-msw \
- --with-opengl \
- --with-libpng=sys \
- --with-libjpeg=sys \
- --with-libtiff=sys \
- --with-regex=yes \
- --with-zlib=sys \
- --with-expat=sys \
- --with-sdl \
- --without-gtk \
- --without-motif \
- --without-mac \
- --without-macosx-sdk \
- --without-cocoa \
- --without-wine \
- --without-pm \
- --without-microwin \
- --without-libxpm \
- --without-libmspack \
- --without-gnomeprint \
- --without-gnomevfs \
- --without-hildon \
- --without-dmalloc \
- --without-odbc \
- LIBS=" `'$(TARGET)-pkg-config' --libs-only-l libtiff-4`"
- $(MAKE) -C '$(1)/$(wxwidgets_SUBDIR)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
+ mkdir '$(1).ansi'
+ cd '$(1).ansi' && '$(1)/configure' \
+ $($(PKG)_CONFIGURE_OPTS) \
+ --disable-unicode
+ $(MAKE) -C '$(1).ansi' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
# backup of the unicode wx-config script
# such that "make install" won't overwrite it
mv '$(PREFIX)/$(TARGET)/bin/wx-config' '$(PREFIX)/$(TARGET)/bin/wx-config-backup'
- $(MAKE) -C '$(1)/$(wxwidgets_SUBDIR)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= __install_wxrc___depname=
+ $(MAKE) -C '$(1).ansi' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS= __install_wxrc___depname=
mv '$(PREFIX)/$(TARGET)/bin/wx-config' '$(PREFIX)/$(TARGET)/bin/wx-config-nounicode'
$(INSTALL) -m755 '$(PREFIX)/$(TARGET)/bin/wx-config-nounicode' '$(PREFIX)/bin/$(TARGET)-wx-config-nounicode'
# restore the unicode wx-config script
mv '$(PREFIX)/$(TARGET)/bin/wx-config-backup' '$(PREFIX)/$(TARGET)/bin/wx-config'
+endef
+define $(PKG)_TEST
# build test program
'$(TARGET)-g++' \
-W -Wall -Werror -Wno-error=unused-local-typedefs -pedantic -std=gnu++0x \
@@ -126,5 +95,7 @@ define $(PKG)_BUILD
`'$(TARGET)-wx-config' --cflags --libs`
endef
-$(PKG)_BUILD_i686-w64-mingw32 =
-$(PKG)_BUILD_x86_64-w64-mingw32 =
+define $(PKG)_BUILD
+ $($(PKG)_BUILD_UNICODE)
+ $($(PKG)_TEST)
+endef
diff --git a/src/x264.mk b/src/x264.mk
index a2ee09a..6ddfb7d 100644
--- a/src/x264.mk
+++ b/src/x264.mk
@@ -3,8 +3,8 @@
PKG := x264
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 20130527-2245
-$(PKG)_CHECKSUM := 768008db411c03afbd74ea808da5a1f57a77fed4
+$(PKG)_VERSION := 20130816-2245
+$(PKG)_CHECKSUM := 34f8d1fbeb3c9642459e34b4e7173d083ff7074a
$(PKG)_SUBDIR := $(PKG)-snapshot-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-snapshot-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://download.videolan.org/pub/videolan/$(PKG)/snapshots/$($(PKG)_FILE)
@@ -17,12 +17,11 @@ endef
define $(PKG)_BUILD
$(SED) -i 's,yasm,$(TARGET)-yasm,g' '$(1)/configure'
cd '$(1)' && ./configure \
+ $(MXE_CONFIGURE_OPTS) \
--cross-prefix='$(TARGET)'- \
- --host='$(TARGET)' \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
- --enable-static \
- --enable-win32thread
+ --enable-win32thread \
+ --disable-lavf \
+ --disable-swscale # Avoid circular dependency with ffmpeg. Remove if undesired.
$(MAKE) -C '$(1)' -j 1 uninstall
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
diff --git a/src/xapian-core.mk b/src/xapian-core.mk
index c560d84..01731c9 100644
--- a/src/xapian-core.mk
+++ b/src/xapian-core.mk
@@ -3,11 +3,11 @@
PKG := xapian-core
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.2.15
-$(PKG)_CHECKSUM := 3d2ea66e9930451dcac4b96f321284f3dee98d51
+$(PKG)_VERSION := 1.2.16
+$(PKG)_CHECKSUM := c280ee15b14416043874f7754e0b054ac0624e7b
$(PKG)_SUBDIR := xapian-core-$($(PKG)_VERSION)
-$(PKG)_FILE := xapian-core-$($(PKG)_VERSION).tar.gz
-$(PKG)_URL := http://oligarchy.co.uk/xapian/$($(PKG)_VERSION)/xapian-core-$($(PKG)_VERSION).tar.gz
+$(PKG)_FILE := xapian-core-$($(PKG)_VERSION).tar.xz
+$(PKG)_URL := http://oligarchy.co.uk/xapian/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc zlib
define $(PKG)_UPDATE
diff --git a/src/xine-lib-1-configure_ac.patch b/src/xine-lib-1-configure_ac.patch
new file mode 100644
index 0000000..c2da23c
--- /dev/null
+++ b/src/xine-lib-1-configure_ac.patch
@@ -0,0 +1,21 @@
+diff -urN xine-lib-1.2.4/configure.ac xine-lib-1.2.4-patch/configure.ac
+--- xine-lib-1.2.4/configure.ac 2013-09-20 16:04:44.000000000 +0300
++++ xine-lib-1.2.4-patch/configure.ac 2013-12-17 11:45:43.657189416 +0200
+@@ -343,7 +343,7 @@
+ AC_CHECK_HEADERS([alloca.h])
+ AC_CHECK_HEADERS([assert.h byteswap.h dirent.h errno.h execinfo.h fcntl.h glob.h])
+ AC_CHECK_HEADERS([libgen.h malloc.h netdb.h stdbool.h ucontext.h])
+-AC_CHECK_HEADERS([sys/ioctl.h sys/mixer.h sys/mman.h sys/param.h sys/times.h sys/wait.h])
++AC_CHECK_HEADERS([sys/mixer.h sys/mman-win32.h sys/param.h sys/times.h sys/wait.h])
+
+ dnl This is duplicative due to AC_HEADER_STDC, but src/input/vcd stuff needs to
+ dnl have HAVE_STDIO_H defined, or it won't compile.
+@@ -378,7 +378,7 @@
+
+ AC_CACHE_CHECK([type of request parameter for ioctl()], [ac_cv_ioctl_request], [
+ for ac_ioctl_request_type in "unsigned long" "int"; do
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/ioctl.h>
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <windows.h>
+ int ioctl(int fd, $ac_ioctl_request_type request, ...);]], [[]])],
+ [ac_cv_ioctl_request=$ac_ioctl_request_type], [])
+ done
diff --git a/src/xine-lib-1-fixes.patch b/src/xine-lib-1-fixes.patch
deleted file mode 100644
index 5db3279..0000000
--- a/src/xine-lib-1-fixes.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-From 6dc46ed1253c1fce1cfa8d360e352b5bc12d0d3b Mon Sep 17 00:00:00 2001
-From: "mxe@mxe.cc" <mxe@mxe.cc>
-Date: Sun, 13 Nov 2011 12:05:22 +0100
-Subject: [PATCH 1/4] fake missing definitions for WIN32
-
-Taken from:
-https://bugs.xine-project.org/show_bug.cgi?id=433
----
- src/audio_out/audio_file_out.c | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/src/audio_out/audio_file_out.c b/src/audio_out/audio_file_out.c
-index bc40d4e..a613a89 100644
---- a/src/audio_out/audio_file_out.c
-+++ b/src/audio_out/audio_file_out.c
-@@ -53,6 +53,18 @@
- #endif
- #endif
-
-+#ifdef WIN32
-+#ifndef S_IWUSR
-+#define S_IWUSR 0x0000
-+#endif
-+#ifndef S_IRGRP
-+#define S_IRGRP 0x0000
-+#endif
-+#ifndef S_IROTH
-+#define S_IROTH 0x0000
-+#endif
-+#endif
-+
- /* Taken (hStudlyCapsAndAll) from sox's wavwritehdr */
-
- struct wavhdr {
---
-1.7.10.4
-
-
-From 4a7cd803cbc3daa3f19fdc6b34fb93e1994bc2f5 Mon Sep 17 00:00:00 2001
-From: "mxe@mxe.cc" <mxe@mxe.cc>
-Date: Sun, 13 Nov 2011 13:45:21 +0100
-Subject: [PATCH 2/4] force graphicsmagick over imagemagick
-
----
- configure.ac | 9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9112b58..67f1147 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1412,14 +1412,6 @@ AC_ARG_WITH([imagemagick],
- AS_HELP_STRING([--without-imagemagick], [Build without ImageMagick image decoder (or GraphicsMagick's compat layer)]))
-
- if test "x$with_imagemagick" != "xno"; then
-- PKG_CHECK_MODULES([WAND], [Wand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
-- if test "x$have_imagemagick" = 'xno'; then
-- PKG_CHECK_MODULES([MAGICKWAND], [MagickWand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
-- dnl Avoid $(WAND_FLAGS) $(MAGICKWAND_FLAGS) ...
-- WAND_CFLAGS="$MAGICKWAND_CFLAGS"
-- WAND_LIBS="$MAGICKWAND_LIBS"
-- fi
-- if test "x$have_imagemagick" = 'xno'; then
- PKG_CHECK_MODULES([GRAPHICSMAGICK], [ImageMagick], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
- PKG_CHECK_MODULES([GRAPHICSMAGICKWAND], [GraphicsMagickWand], [have_imagemagick=yes], [AC_MSG_RESULT([no]); have_imagemagick=no])
- dnl The following assignments are safe, since they include
-@@ -1427,7 +1419,6 @@ if test "x$with_imagemagick" != "xno"; then
- WAND_CFLAGS="$GRAPHICSMAGICKWAND_CFLAGS"
- WAND_LIBS="$GRAPHICSMAGICKWAND_LIBS"
- AC_DEFINE([HAVE_GRAPHICSMAGICK], [1], [Define this if you have GraphicsMagick installed])
-- fi
- if test "x$with_imagemagick" = "xyes" && test "x$have_imagemagick" = "xno"; then
- AC_MSG_ERROR([ImageMagick support requested, but neither Wand, MagickWand, nor GraphicsMagick were found])
- elif test "x$have_imagemagick" = "xyes"; then
---
-1.7.10.4
-
-
-From 5b362f4aed3a814a351cd259efb62b40761ddb3d Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sun, 27 May 2012 23:28:57 +0200
-Subject: [PATCH 3/4] add missing localtime_r
-
-Previously provided by pthreads-w32-2-8-0-release, which is also
-the source of this version.
----
- src/localtime_r.h | 3 +++
- src/xine-engine/scratch.c | 1 +
- 2 files changed, 4 insertions(+)
- create mode 100644 src/localtime_r.h
-
-diff --git a/src/localtime_r.h b/src/localtime_r.h
-new file mode 100644
-index 0000000..ec778c5
---- /dev/null
-+++ b/src/localtime_r.h
-@@ -0,0 +1,3 @@
-+#define localtime_r( _clock, _result ) \
-+ ( *(_result) = *localtime( (_clock) ), \
-+ (_result) )
-diff --git a/src/xine-engine/scratch.c b/src/xine-engine/scratch.c
-index 39bb592..41d561b 100644
---- a/src/xine-engine/scratch.c
-+++ b/src/xine-engine/scratch.c
-@@ -36,6 +36,7 @@
-
- #include "xineutils.h"
- #include "scratch.h"
-+#include "localtime_r.h"
-
- static void XINE_FORMAT_PRINTF(2, 0)
- scratch_printf (scratch_buffer_t *this, const char *format, va_list argp)
---
-1.7.10.4
-
-
-From 0d3546c3c12a8bf311c9751f0d0d2e3a95569657 Mon Sep 17 00:00:00 2001
-From: Mark Brand <mabrand@mabrand.nl>
-Date: Sun, 27 May 2012 23:23:19 +0200
-Subject: [PATCH 4/4] ffmpeg 0.11 removed avcodec_init
-
----
- src/combined/ffmpeg/ffmpeg_decoder.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/combined/ffmpeg/ffmpeg_decoder.c b/src/combined/ffmpeg/ffmpeg_decoder.c
-index 879df53..84ee1a3 100644
---- a/src/combined/ffmpeg/ffmpeg_decoder.c
-+++ b/src/combined/ffmpeg/ffmpeg_decoder.c
-@@ -312,7 +312,6 @@ void avcodec_register_all(void)
-
- void init_once_routine(void) {
- pthread_mutex_init(&ffmpeg_lock, NULL);
-- avcodec_init();
- avcodec_register_all();
- }
-
---
-1.7.10.4
-
diff --git a/src/xine-lib-2-build_fixes.patch b/src/xine-lib-2-build_fixes.patch
new file mode 100644
index 0000000..8fcb100
--- /dev/null
+++ b/src/xine-lib-2-build_fixes.patch
@@ -0,0 +1,303 @@
+diff -urN xine-lib-1.2.4/configure.ac xine-lib-1.2.4-patch/configure.ac
+--- xine-lib-1.2.4/configure.ac 2013-12-17 11:45:43.657189416 +0200
++++ xine-lib-1.2.4-patch/configure.ac 2013-12-17 14:57:28.907822042 +0200
+@@ -544,7 +544,7 @@
+
+ if test "$WIN32_SYS" = "mingw32"; then
+ WIN32_INCLUDES='-I$(top_srcdir)/win32/include'
+- LIBS="-lwinmm -lwsock32 $LIBS"
++ LIBS="-lwinmm -lwsock32 -lmman $LIBS"
+ LDFLAGS="-Wl,--enable-stdcall-fixup $LDFLAGS"
+ dnl iberty has been needed only in older versions
+ AC_CHECK_LIB(iberty, strncomp, [GOOM_LIBS="-liberty"])
+diff -urN xine-lib-1.2.4/include/xine/xine_internal.h xine-lib-1.2.4-patch/include/xine/xine_internal.h
+--- xine-lib-1.2.4/include/xine/xine_internal.h 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/include/xine/xine_internal.h 2013-12-17 15:14:55.229127435 +0200
+@@ -55,6 +55,26 @@
+ /* used by plugin loader */
+ #define XINE_VERSION_CODE XINE_MAJOR_VERSION*10000+XINE_MINOR_VERSION*100+XINE_SUB_VERSION
+
++// Add there to support them on MinGW
++#define timeradd(a, b, result) \
++ do { \
++ (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
++ (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
++ if ((result)->tv_usec >= 1000000L) { \
++ ++(result)->tv_sec; \
++ (result)->tv_usec -= 1000000L; \
++ } \
++ } while (0)
++
++#define timersub(a, b, result) \
++ do { \
++ (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
++ (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
++ if ((result)->tv_usec < 0) { \
++ --(result)->tv_sec; \
++ (result)->tv_usec += 1000000L; \
++ } \
++ } while (0)
+
+ /*
+ * log constants
+diff -urN xine-lib-1.2.4/include/xine/xineutils.h xine-lib-1.2.4-patch/include/xine/xineutils.h
+--- xine-lib-1.2.4/include/xine/xineutils.h 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/include/xine/xineutils.h 2013-12-20 12:29:33.465030673 +0200
+@@ -119,8 +119,8 @@
+
+
+ /* Optimized/fast memcpy */
+-
+-extern void *(* xine_fast_memcpy)(void *to, const void *from, size_t len) XINE_PROTECTED;
++//extern void *xine_fast_memcpy(void *to, const void *from, size_t len);
++#define xine_fast_memcpy(a, b, c) memcpy(a, b, c)
+
+ /*
+ * Debug stuff
+diff -urN xine-lib-1.2.4/misc/Makefile.am xine-lib-1.2.4-patch/misc/Makefile.am
+--- xine-lib-1.2.4/misc/Makefile.am 2012-02-05 21:17:01.000000000 +0200
++++ xine-lib-1.2.4-patch/misc/Makefile.am 2013-12-19 09:20:56.937982071 +0200
+@@ -21,7 +21,7 @@
+ pkgconfig_DATA=libxine.pc
+
+ xine_list_@XINE_SERIES@_SOURCES = xine-list.c
+-xine_list_@XINE_SERIES@_LDADD = $(XINE_LIB)
++xine_list_@XINE_SERIES@_LDADD = $(XINE_LIB) $(top_builddir)/src/xine-utils/libxineutils.la
+
+ fontdir = $(pkgdatadir)/fonts
+ dist_font_DATA = \
+diff -urN xine-lib-1.2.4/src/audio_dec/xine_lpcm_decoder.c xine-lib-1.2.4-patch/src/audio_dec/xine_lpcm_decoder.c
+--- xine-lib-1.2.4/src/audio_dec/xine_lpcm_decoder.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/audio_dec/xine_lpcm_decoder.c 2013-12-17 15:18:20.459131654 +0200
+@@ -41,7 +41,11 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
++#ifdef __MINGW32__
++#include <winsock.h>
++#else
+ #include <arpa/inet.h> /* htons */
++#endif
+ #include <netinet/in.h> /* ntohs */
+
+ #include <xine/xine_internal.h>
+diff -urN xine-lib-1.2.4/src/demuxers/demux_ts.c xine-lib-1.2.4-patch/src/demuxers/demux_ts.c
+--- xine-lib-1.2.4/src/demuxers/demux_ts.c 2013-09-23 23:56:56.000000000 +0300
++++ xine-lib-1.2.4-patch/src/demuxers/demux_ts.c 2013-12-18 12:04:09.269573623 +0200
+@@ -146,7 +146,11 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <arpa/inet.h>
++#ifdef __MINGW32__
++#include <winsock.h>
++#else
++#include <arpa/inet.h> /* htons */
++#endif
+
+ #ifdef HAVE_FFMPEG_AVUTIL_H
+ # include <crc.h>
+diff -urN xine-lib-1.2.4/src/input/libdvdnav/dvdnav_internal.h xine-lib-1.2.4-patch/src/input/libdvdnav/dvdnav_internal.h
+--- xine-lib-1.2.4/src/input/libdvdnav/dvdnav_internal.h 2009-11-30 23:28:34.000000000 +0200
++++ xine-lib-1.2.4-patch/src/input/libdvdnav/dvdnav_internal.h 2013-12-18 11:56:09.153450165 +0200
+@@ -64,11 +64,11 @@
+ /* pthread_mutex_* wrapper for win32 */
+ #include <windows.h>
+ #include <process.h>
+-typedef CRITICAL_SECTION pthread_mutex_t;
+-#define pthread_mutex_init(a, b) InitializeCriticalSection(a)
+-#define pthread_mutex_lock(a) EnterCriticalSection(a)
+-#define pthread_mutex_unlock(a) LeaveCriticalSection(a)
+-#define pthread_mutex_destroy(a)
++// typedef CRITICAL_SECTION pthread_mutex_t;
++// #define pthread_mutex_init(a, b) InitializeCriticalSection(a)
++// #define pthread_mutex_lock(a) EnterCriticalSection(a)
++// #define pthread_mutex_unlock(a) LeaveCriticalSection(a)
++// #define pthread_mutex_destroy(a)
+
+ #include <io.h> /* read() */
+ #define lseek64 _lseeki64
+diff -urN xine-lib-1.2.4/src/post/deinterlace/speedy.c xine-lib-1.2.4-patch/src/post/deinterlace/speedy.c
+--- xine-lib-1.2.4/src/post/deinterlace/speedy.c 2012-05-26 23:49:59.000000000 +0300
++++ xine-lib-1.2.4-patch/src/post/deinterlace/speedy.c 2013-12-20 12:24:59.608986588 +0200
+@@ -1392,28 +1392,28 @@
+ }
+ #endif
+
+-
+-#define speedy_memcpy_c xine_fast_memcpy
+-#define speedy_memcpy_mmx xine_fast_memcpy
+-#define speedy_memcpy_mmxext xine_fast_memcpy
++//#undef xine_fast_memcpy
++//#define speedy_memcpy_c xine_fast_memcpy
++//#define speedy_memcpy_mmx xine_fast_memcpy
++//#define speedy_memcpy_mmxext xine_fast_memcpy
+
+
+ static void blit_packed422_scanline_c( uint8_t *dest, const uint8_t *src, int width )
+ {
+- speedy_memcpy_c( dest, src, width*2 );
++ memcpy( dest, src, width*2 );
+ }
+
+ #if defined(ARCH_X86) || defined(ARCH_X86_64)
+ static void blit_packed422_scanline_mmx( uint8_t *dest, const uint8_t *src, int width )
+ {
+- speedy_memcpy_mmx( dest, src, width*2 );
++ memcpy( dest, src, width*2 );
+ }
+ #endif
+
+ #if defined(ARCH_X86) || defined(ARCH_X86_64)
+ static void blit_packed422_scanline_mmxext( uint8_t *dest, const uint8_t *src, int width )
+ {
+- speedy_memcpy_mmxext( dest, src, width*2 );
++ memcpy( dest, src, width*2 );
+ }
+ #endif
+
+@@ -2602,7 +2602,8 @@
+ kill_chroma_packed422_inplace_scanline = kill_chroma_packed422_inplace_scanline_c;
+ mirror_packed422_inplace_scanline = mirror_packed422_inplace_scanline_c;
+ halfmirror_packed422_inplace_scanline = halfmirror_packed422_inplace_scanline_c;
+- speedy_memcpy = speedy_memcpy_c;
++ speedy_memcpy = memcpy;
++ //speedy_memcpy = speedy_memcpy_c;
+ diff_packed422_block8x8 = diff_packed422_block8x8_c;
+ a8_subpix_blit_scanline = a8_subpix_blit_scanline_c;
+ quarter_blit_vertical_packed422_scanline = quarter_blit_vertical_packed422_scanline_c;
+@@ -2644,7 +2645,8 @@
+ invert_colour_packed422_inplace_scanline = invert_colour_packed422_inplace_scanline_mmx;
+ vfilter_chroma_121_packed422_scanline = vfilter_chroma_121_packed422_scanline_mmx;
+ vfilter_chroma_332_packed422_scanline = vfilter_chroma_332_packed422_scanline_mmx;
+- speedy_memcpy = speedy_memcpy_mmxext;
++ //speedy_memcpy = speedy_memcpy_mmxext;
++ speedy_memcpy = memcpy;
+ } else if( speedy_accel & MM_ACCEL_X86_MMX ) {
+ if( verbose ) {
+ printf( "speedycode: Using MMX optimized functions.\n" );
+@@ -2660,7 +2662,8 @@
+ invert_colour_packed422_inplace_scanline = invert_colour_packed422_inplace_scanline_mmx;
+ vfilter_chroma_121_packed422_scanline = vfilter_chroma_121_packed422_scanline_mmx;
+ vfilter_chroma_332_packed422_scanline = vfilter_chroma_332_packed422_scanline_mmx;
+- speedy_memcpy = speedy_memcpy_mmx;
++ //speedy_memcpy = speedy_memcpy_mmx;
++ speedy_memcpy = memcpy;
+ } else {
+ if( verbose ) {
+ printf( "speedycode: No MMX or MMXEXT support detected, using C fallbacks.\n" );
+diff -urN xine-lib-1.2.4/src/vdr/input_vdr.c xine-lib-1.2.4-patch/src/vdr/input_vdr.c
+--- xine-lib-1.2.4/src/vdr/input_vdr.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/vdr/input_vdr.c 2013-12-20 12:23:36.313756861 +0200
+@@ -28,13 +28,13 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
+-#include <sys/poll.h>
++// #include <sys/poll.h>
+ #include <errno.h>
+ #include <pthread.h>
+
+ #include <sys/socket.h>
+ #include <netinet/in.h>
+-#include <resolv.h>
++// #include <resolv.h>
+ #include <netdb.h>
+
+ #define LOG_MODULE "input_vdr"
+@@ -1919,7 +1919,7 @@
+ filename = strdup(filename);
+
+ _x_mrl_unescape (filename);
+- this->fh = xine_open_cloexec(filename, O_RDONLY | O_NONBLOCK);
++ this->fh = xine_open_cloexec(filename, O_RDONLY);
+
+ lprintf("filename '%s'\n", filename);
+
+@@ -1934,7 +1934,7 @@
+ }
+
+ {
+- struct pollfd poll_fh = { this->fh, POLLIN, 0 };
++ /*struct pollfd poll_fh = { this->fh, POLLIN, 0 };
+
+ int r = poll(&poll_fh, 1, 300);
+ if (1 != r)
+@@ -1945,10 +1945,10 @@
+ _("timeout expired during setup phase"));
+ free (filename);
+ return 0;
+- }
++ }*/
+ }
+
+- fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
++ //fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
+
+ /* eat initial handshake byte */
+ {
+@@ -2098,7 +2098,7 @@
+ if ((this->fh = vdr_plugin_open_socket(this, host, port + 0)) == -1)
+ return 0;
+
+- fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
++ //fcntl(this->fh, F_SETFL, ~O_NONBLOCK & fcntl(this->fh, F_GETFL, 0));
+
+ if ((this->fh_control = vdr_plugin_open_socket(this, host, port + 1)) == -1)
+ return 0;
+diff -urN xine-lib-1.2.4/src/video_dec/libjpeg.c xine-lib-1.2.4-patch/src/video_dec/libjpeg.c
+--- xine-lib-1.2.4/src/video_dec/libjpeg.c 2012-11-23 22:08:21.000000000 +0200
++++ xine-lib-1.2.4-patch/src/video_dec/libjpeg.c 2013-12-18 10:01:45.755428630 +0200
+@@ -26,6 +26,7 @@
+ #endif
+
+
++
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
+@@ -33,6 +34,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <stdio.h>
++#include <basetsd.h>
+
+ #define LOG_MODULE "jpeg_video_decoder"
+ #define LOG_VERBOSE
+diff -urN xine-lib-1.2.4/src/xine-utils/memcpy.c xine-lib-1.2.4-patch/src/xine-utils/memcpy.c
+--- xine-lib-1.2.4/src/xine-utils/memcpy.c 2013-09-18 19:58:32.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-utils/memcpy.c 2013-12-20 12:30:01.733448201 +0200
+@@ -55,7 +55,7 @@
+ #include <xine/xine_internal.h>
+ #include "../xine-engine/xine_private.h"
+
+-void *(* xine_fast_memcpy)(void *to, const void *from, size_t len);
++
+
+ /* Original comments from mplayer (file: aclib.c)
+ This part of code was taken by me from Linux-2.4.3 and slightly modified
+@@ -558,7 +558,7 @@
+ && (config_flags & memcpy_method[method].cpu_require) ==
+ memcpy_method[method].cpu_require ) {
+ lprintf("using %s memcpy()\n", memcpy_method[method].name );
+- xine_fast_memcpy = memcpy_method[method].function;
++ // xine_fast_memcpy = memcpy_method[method].function;
+ return;
+ } else {
+ xprintf(xine, XINE_VERBOSITY_DEBUG, "xine: will probe memcpy on startup\n" );
+@@ -603,13 +603,13 @@
+ (config_flags & memcpy_method[best].cpu_require) ==
+ memcpy_method[best].cpu_require ) {
+ lprintf("using %s memcpy()\n", memcpy_method[best].name );
+- xine_fast_memcpy = memcpy_method[best].function;
++ // xine_fast_memcpy = memcpy_method[best].function;
+ return;
+ }
+
+ best = 0;
+
+- xine_fast_memcpy = memcpy;
++ // xine_fast_memcpy = memcpy;
+
+ if( (buf1 = malloc(BUFSIZE)) == NULL )
+ return;
diff --git a/src/xine-lib-2-wavpack-alloca.patch b/src/xine-lib-2-wavpack-alloca.patch
deleted file mode 100644
index 007c6b1..0000000
--- a/src/xine-lib-2-wavpack-alloca.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-https://bugs.xine-project.org/show_bug.cgi?id=494
-
-diff -urN xine-lib-1.1.21-orig/src/combined/decoder_wavpack.c xine-lib-1.1.21/src/combined/decoder_wavpack.c
---- xine-lib-1.1.21-orig/src/combined/decoder_wavpack.c 2010-03-09 23:17:05.000000000 +0100
-+++ xine-lib-1.1.21/src/combined/decoder_wavpack.c 2013-03-03 17:43:00.000000000 +0100
-@@ -27,6 +27,13 @@
- #define LOG_MODULE "decode_wavpack"
- #define LOG_VERBOSE
-
-+#ifdef HAVE_ALLOCA_H
-+#include <alloca.h>
-+#endif
-+#ifdef HAVE_MALLOC_H
-+#include <malloc.h>
-+#endif
-+
- #include "xine_internal.h"
- #include "attributes.h"
- #include "bswap.h"
diff --git a/src/xine-lib-3-more_build_fixes.patch b/src/xine-lib-3-more_build_fixes.patch
new file mode 100644
index 0000000..7e1a349
--- /dev/null
+++ b/src/xine-lib-3-more_build_fixes.patch
@@ -0,0 +1,106 @@
+diff -urN xine-lib-1.2.4/src/combined/wavpack_decoder.c xine-lib-1.2.4-patch/src/combined/wavpack_decoder.c
+--- xine-lib-1.2.4/src/combined/wavpack_decoder.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/combined/wavpack_decoder.c 2014-01-01 12:45:31.120873116 +0200
+@@ -27,6 +27,7 @@
+ #define LOG_MODULE "decode_wavpack"
+ #define LOG_VERBOSE
+
++#include <malloc.h>
+ #include <xine/xine_internal.h>
+ #include <xine/attributes.h>
+ #include "bswap.h"
+diff -urN xine-lib-1.2.4/src/input/input_cdda.c xine-lib-1.2.4-patch/src/input/input_cdda.c
+--- xine-lib-1.2.4/src/input/input_cdda.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_cdda.c 2014-01-01 12:42:52.954879392 +0200
+@@ -56,6 +56,7 @@
+ #include <signal.h>
+ #include <netinet/in.h>
+ #include <sys/socket.h>
++#include <malloc.h>
+
+ #include <basedir.h>
+
+diff -urN xine-lib-1.2.4/src/vdr/input_vdr.c xine-lib-1.2.4-patch/src/vdr/input_vdr.c
+--- xine-lib-1.2.4/src/vdr/input_vdr.c 2014-01-01 12:52:41.000000000 +0200
++++ xine-lib-1.2.4-patch/src/vdr/input_vdr.c 2014-01-01 12:49:36.935863362 +0200
+@@ -1760,7 +1760,7 @@
+ if (this->event_queue)
+ xine_event_dispose_queue(this->event_queue);
+
+- if (this->rpc_thread)
++ /* if (this->rpc_thread)
+ {
+ struct timespec abstime;
+ int ms_to_time_out = 10000;
+@@ -1799,12 +1799,12 @@
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: joining rpc thread ...\n"), LOG_MODULE);
+ pthread_join(this->rpc_thread, 0);
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: rpc thread joined.\n"), LOG_MODULE);
+- }
++ }*/
+
+ pthread_cond_destroy(&this->rpc_thread_shutdown_cond);
+ pthread_mutex_destroy(&this->rpc_thread_shutdown_lock);
+
+- if (this->metronom_thread)
++ /*if (this->metronom_thread)
+ {
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: joining metronom thread ...\n"), LOG_MODULE);
+
+@@ -1814,12 +1814,6 @@
+ this->metronom_thread_request = -1;
+ this->metronom_thread_reply = 0;
+ pthread_cond_broadcast(&this->metronom_thread_request_cond);
+-/*
+- pthread_mutex_unlock(&this->metronom_thread_lock);
+-
+- pthread_mutex_lock(&this->metronom_thread_lock);
+- if (!this->metronom_thread_reply)
+-*/
+ pthread_cond_wait(&this->metronom_thread_reply_cond, &this->metronom_thread_lock);
+ pthread_mutex_unlock(&this->metronom_thread_lock);
+
+@@ -1827,7 +1821,7 @@
+
+ pthread_join(this->metronom_thread, 0);
+ xprintf(this->stream->xine, XINE_VERBOSITY_LOG, _("%s: metronom thread joined.\n"), LOG_MODULE);
+- }
++ }*/
+
+ pthread_mutex_destroy(&this->metronom_thread_lock);
+ pthread_cond_destroy(&this->metronom_thread_request_cond);
+diff -urN xine-lib-1.2.4/src/xine-engine/scratch.c xine-lib-1.2.4-patch/src/xine-engine/scratch.c
+--- xine-lib-1.2.4/src/xine-engine/scratch.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-engine/scratch.c 2014-01-01 12:36:59.724893408 +0200
+@@ -40,20 +40,20 @@
+ scratch_printf (scratch_buffer_t *this, const char *format, va_list argp)
+ {
+ time_t t;
+- struct tm tm;
++ struct tm *tm;
+ size_t l;
+
+ pthread_mutex_lock (&this->lock);
+
+ time (&t);
+- localtime_r (&t, &tm);
++ tm = localtime (&t);
+
+ if ( ! this->lines[this->cur] )
+ this->lines[this->cur] = malloc(SCRATCH_LINE_LEN_MAX+1);
+ if ( ! this->lines[this->cur] )
+ return;
+
+- l = strftime (this->lines[this->cur], SCRATCH_LINE_LEN_MAX, "%X: ", &tm);
++ l = strftime (this->lines[this->cur], SCRATCH_LINE_LEN_MAX, "%X: ", tm);
+ vsnprintf (this->lines[this->cur] + l, SCRATCH_LINE_LEN_MAX - l, format, argp);
+
+ lprintf ("printing format %s to line %d\n", format, this->cur);
+diff -urN xine-lib-1.2.4/src/xine-utils/Makefile.am xine-lib-1.2.4-patch/src/xine-utils/Makefile.am
+--- xine-lib-1.2.4/src/xine-utils/Makefile.am 2012-02-05 21:17:03.000000000 +0200
++++ xine-lib-1.2.4-patch/src/xine-utils/Makefile.am 2014-01-01 12:36:33.466894450 +0200
+@@ -37,3 +37,4 @@
+ noinst_PROGRAMS = xmltest
+ xmltest_SOURCES = xmllexer.c xmlparser.c
+ xmltest_CFLAGS = -DLOG -DXINE_XML_PARSER_TEST $(AM_CFLAGS)
++xmltest_LDFLAGS = $(top_builddir)/lib/libxineposix.la
diff --git a/src/xine-lib-4-mkdir.patch b/src/xine-lib-4-mkdir.patch
new file mode 100644
index 0000000..0307de3
--- /dev/null
+++ b/src/xine-lib-4-mkdir.patch
@@ -0,0 +1,11 @@
+diff -urN xine-lib-1.2.4/lib/os_internal.h xine-lib-1.2.4-patch/lib/os_internal.h
+--- xine-lib-1.2.4/lib/os_internal.h 2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/lib/os_internal.h 2014-01-03 19:05:56.643793781 +0200
+@@ -260,6 +260,7 @@
+ # ifdef __MINGW64__
+ # define mkdir(A, B) mkdir((A))
+ # else
++ _CRTIMP int __cdecl _mkdir(const char *_Path);
+ # define mkdir(A, B) _mkdir((A))
+ # endif
+
diff --git a/src/xine-lib-5-change_mma_h_to_mma_win32_h.patch b/src/xine-lib-5-change_mma_h_to_mma_win32_h.patch
new file mode 100644
index 0000000..f4c5408
--- /dev/null
+++ b/src/xine-lib-5-change_mma_h_to_mma_win32_h.patch
@@ -0,0 +1,300 @@
+diff -urN xine-lib-1.2.4/contrib/libdha/irq.c xine-lib-1.2.4-patch/contrib/libdha/irq.c
+--- xine-lib-1.2.4/contrib/libdha/irq.c 2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/irq.c 2014-01-05 14:30:37.000000000 +0200
+@@ -2,7 +2,7 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+-#include <sys/mman.h> /* mlock */
++#include <sys/mman-win32.h> /* mlock */
+ #include <pthread.h>
+ #include <errno.h>
+ #include <unistd.h>
+diff -urN xine-lib-1.2.4/contrib/libdha/kernelhelper/test.c xine-lib-1.2.4-patch/contrib/libdha/kernelhelper/test.c
+--- xine-lib-1.2.4/contrib/libdha/kernelhelper/test.c 2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/kernelhelper/test.c 2014-01-05 14:30:37.000000000 +0200
+@@ -4,7 +4,7 @@
+ #include <unistd.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdlib.h>
+
+ #include "dhahelper.h"
+diff -urN xine-lib-1.2.4/contrib/libdha/libdha.c xine-lib-1.2.4-patch/contrib/libdha/libdha.c
+--- xine-lib-1.2.4/contrib/libdha/libdha.c 2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/libdha.c 2014-01-05 14:30:37.000000000 +0200
+@@ -58,7 +58,7 @@
+ # endif /* SVR4 */
+
+ /* Generic version */
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/ioctl.h>
+ #ifndef DEV_MEM
+ #define DEV_MEM "/dev/mem"
+diff -urN xine-lib-1.2.4/contrib/libdha/mmi.c xine-lib-1.2.4-patch/contrib/libdha/mmi.c
+--- xine-lib-1.2.4/contrib/libdha/mmi.c 2012-02-05 21:16:59.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/libdha/mmi.c 2014-01-05 14:30:37.000000000 +0200
+@@ -2,7 +2,7 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+-#include <sys/mman.h> /* mlock */
++#include <sys/mman-win32.h> /* mlock */
+ #include <errno.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/mach64_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/mach64_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/mach64_vid.c 2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/mach64_vid.c 2014-01-05 14:30:35.000000000 +0200
+@@ -13,7 +13,7 @@
+ #include <inttypes.h>
+ #include <fcntl.h>
+ #include <limits.h>
+-#include <sys/mman.h> /* for m(un)lock */
++#include <sys/mman-win32.h> /* for m(un)lock */
+ #ifdef HAVE_MALLOC_H
+ #include <malloc.h>
+ #ifdef HAVE_MEMALIGN
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/pm3_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/pm3_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/pm3_vid.c 2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/pm3_vid.c 2014-01-05 14:30:35.000000000 +0200
+@@ -24,7 +24,7 @@
+ #include <string.h>
+ #include <inttypes.h>
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+
+ #include "vidix.h"
+ #include "fourcc.h"
+diff -urN xine-lib-1.2.4/contrib/vidix/drivers/radeon_vid.c xine-lib-1.2.4-patch/contrib/vidix/drivers/radeon_vid.c
+--- xine-lib-1.2.4/contrib/vidix/drivers/radeon_vid.c 2012-02-05 21:17:00.000000000 +0200
++++ xine-lib-1.2.4-patch/contrib/vidix/drivers/radeon_vid.c 2014-01-05 14:30:36.000000000 +0200
+@@ -12,7 +12,7 @@
+ #include <math.h>
+ #include <inttypes.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include "bswap.h"
+ #include "pci_ids.h"
+ #include "pci_names.h"
+diff -urN xine-lib-1.2.4/include/configure.h.in xine-lib-1.2.4-patch/include/configure.h.in
+--- xine-lib-1.2.4/include/configure.h.in 2013-09-20 16:07:56.000000000 +0300
++++ xine-lib-1.2.4-patch/include/configure.h.in 2014-01-05 14:39:09.000000000 +0200
+@@ -441,7 +441,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ #undef HAVE_SYS_MIXER_H
+
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ #undef HAVE_SYS_MMAN_H
+
+ /* Define to 1 if you have the <sys/param.h> header file. */
+diff -urN xine-lib-1.2.4/src/input/input_file.c xine-lib-1.2.4-patch/src/input/input_file.c
+--- xine-lib-1.2.4/src/input/input_file.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_file.c 2014-01-05 14:30:30.000000000 +0200
+@@ -35,7 +35,7 @@
+ #include <errno.h>
+
+ #ifdef HAVE_MMAP
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #endif
+
+ #define LOG_MODULE "input_file"
+diff -urN xine-lib-1.2.4/src/input/input_v4l2.c xine-lib-1.2.4-patch/src/input/input_v4l2.c
+--- xine-lib-1.2.4/src/input/input_v4l2.c 2012-02-05 21:17:02.000000000 +0200
++++ xine-lib-1.2.4-patch/src/input/input_v4l2.c 2014-01-05 14:30:30.000000000 +0200
+@@ -44,7 +44,7 @@
+ #else
+ # include <linux/videodev2.h>
+ #endif
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <errno.h>
+
+diff -urN xine-lib-1.2.4/src/input/input_v4l.c xine-lib-1.2.4-patch/src/input/input_v4l.c
+--- xine-lib-1.2.4/src/input/input_v4l.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/input/input_v4l.c 2014-01-05 14:30:26.000000000 +0200
+@@ -49,7 +49,7 @@
+
+ #include <linux/videodev.h>
+ #include <sys/ioctl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <errno.h>
+
+ /* Used to capture the audio data */
+diff -urN xine-lib-1.2.4/src/libw32dll/DirectShow/DS_VideoDecoder.c xine-lib-1.2.4-patch/src/libw32dll/DirectShow/DS_VideoDecoder.c
+--- xine-lib-1.2.4/src/libw32dll/DirectShow/DS_VideoDecoder.c 2009-12-02 20:32:57.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/DirectShow/DS_VideoDecoder.c 2014-01-05 14:29:19.000000000 +0200
+@@ -45,7 +45,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <stdlib.h> // labs
+
+diff -urN xine-lib-1.2.4/src/libw32dll/dmo/DMO_VideoDecoder.c xine-lib-1.2.4-patch/src/libw32dll/dmo/DMO_VideoDecoder.c
+--- xine-lib-1.2.4/src/libw32dll/dmo/DMO_VideoDecoder.c 2009-12-02 20:32:57.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/dmo/DMO_VideoDecoder.c 2014-01-05 14:29:15.000000000 +0200
+@@ -49,7 +49,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/types.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <stdio.h>
+ #include <stdlib.h> // labs
+
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/ext.c xine-lib-1.2.4-patch/src/libw32dll/wine/ext.c
+--- xine-lib-1.2.4/src/libw32dll/wine/ext.c 2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/ext.c 2014-01-05 14:29:18.000000000 +0200
+@@ -12,7 +12,7 @@
+ #include <malloc.h>
+ #endif
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <string.h>
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/ldt_keeper.c xine-lib-1.2.4-patch/src/libw32dll/wine/ldt_keeper.c
+--- xine-lib-1.2.4/src/libw32dll/wine/ldt_keeper.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/ldt_keeper.c 2014-01-05 14:29:18.000000000 +0200
+@@ -57,7 +57,7 @@
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <fcntl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <unistd.h>
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/module.c xine-lib-1.2.4-patch/src/libw32dll/wine/module.c
+--- xine-lib-1.2.4/src/libw32dll/wine/module.c 2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/module.c 2014-01-05 14:29:16.000000000 +0200
+@@ -19,7 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+
+
+diff -urN xine-lib-1.2.4/src/libw32dll/wine/pe_image.c xine-lib-1.2.4-patch/src/libw32dll/wine/pe_image.c
+--- xine-lib-1.2.4/src/libw32dll/wine/pe_image.c 2009-11-30 23:28:52.000000000 +0200
++++ xine-lib-1.2.4-patch/src/libw32dll/wine/pe_image.c 2014-01-05 14:29:18.000000000 +0200
+@@ -45,7 +45,7 @@
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #ifdef HAVE_SYS_MMAN_H
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #endif
+ #ifdef HAVE_ALLOCA_H
+ #include <alloca.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_aa.c xine-lib-1.2.4-patch/src/video_out/video_out_aa.c
+--- xine-lib-1.2.4/src/video_out/video_out_aa.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_aa.c 2014-01-05 14:29:48.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/stat.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/time.h>
+
+ #ifdef HAVE_FFMPEG_AVUTIL_H
+diff -urN xine-lib-1.2.4/src/video_out/video_out_caca.c xine-lib-1.2.4-patch/src/video_out/video_out_caca.c
+--- xine-lib-1.2.4/src/video_out/video_out_caca.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_caca.c 2014-01-05 14:29:41.000000000 +0200
+@@ -32,7 +32,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <sys/stat.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/time.h>
+ #include <cucul.h>
+ #include <caca.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_fb.c xine-lib-1.2.4-patch/src/video_out/video_out_fb.c
+--- xine-lib-1.2.4/src/video_out/video_out_fb.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_fb.c 2014-01-05 14:29:53.000000000 +0200
+@@ -60,7 +60,7 @@
+ #include <sys/shm.h>
+ #include <sys/time.h>
+ #include <sys/ioctl.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+
+ #include <pthread.h>
+ #include <netinet/in.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_pgx32.c xine-lib-1.2.4-patch/src/video_out/video_out_pgx32.c
+--- xine-lib-1.2.4/src/video_out/video_out_pgx32.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_pgx32.c 2014-01-05 14:29:51.000000000 +0200
+@@ -34,7 +34,7 @@
+ #include <unistd.h>
+ #include <sys/fbio.h>
+ #include <sys/visual_io.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+diff -urN xine-lib-1.2.4/src/video_out/video_out_pgx64.c xine-lib-1.2.4-patch/src/video_out/video_out_pgx64.c
+--- xine-lib-1.2.4/src/video_out/video_out_pgx64.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/video_out/video_out_pgx64.c 2014-01-05 14:29:44.000000000 +0200
+@@ -36,7 +36,7 @@
+ #include <unistd.h>
+ #include <sys/fbio.h>
+ #include <sys/visual_io.h>
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+diff -urN xine-lib-1.2.4/src/xine-utils/xmlparser.c xine-lib-1.2.4-patch/src/xine-utils/xmlparser.c
+--- xine-lib-1.2.4/src/xine-utils/xmlparser.c 2013-09-18 13:04:54.000000000 +0300
++++ xine-lib-1.2.4-patch/src/xine-utils/xmlparser.c 2014-01-05 14:30:22.000000000 +0200
+@@ -879,7 +879,7 @@
+ }
+
+ #ifdef XINE_XML_PARSER_TEST
+-#include <sys/mman.h>
++#include <sys/mman-win32.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+diff -urN xine-lib-1.2.4/win32/config.h xine-lib-1.2.4-patch/win32/config.h
+--- xine-lib-1.2.4/win32/config.h 2012-02-05 21:17:03.000000000 +0200
++++ xine-lib-1.2.4-patch/win32/config.h 2014-01-05 14:28:32.000000000 +0200
+@@ -273,7 +273,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ /* #undef HAVE_SYS_MIXER_H */
+
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ #define HAVE_SYS_MMAN_H 1
+
+ /* Define to 1 if you have the <sys/param.h> header file. */
+diff -urN xine-lib-1.2.4/win32/include/msvc/config.h xine-lib-1.2.4-patch/win32/include/msvc/config.h
+--- xine-lib-1.2.4/win32/include/msvc/config.h 2009-11-30 23:26:06.000000000 +0200
++++ xine-lib-1.2.4-patch/win32/include/msvc/config.h 2014-01-05 14:28:32.000000000 +0200
+@@ -425,7 +425,7 @@
+ /* Define to 1 if you have the <sys/mixer.h> header file. */
+ /* #undef HAVE_SYS_MIXER_H */
+
+-/* Define to 1 if you have the <sys/mman.h> header file. */
++/* Define to 1 if you have the <sys/mman-win32.h> header file. */
+ /* #undef HAVE_SYS_MMAN_H */
+
+ /* Define to 1 if you have the <sys/param.h> header file. */
diff --git a/src/xine-lib.mk b/src/xine-lib.mk
index 32f019d..b250d19 100644
--- a/src/xine-lib.mk
+++ b/src/xine-lib.mk
@@ -3,12 +3,12 @@
PKG := xine-lib
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 1.1.21
-$(PKG)_CHECKSUM := 0adf20ef55d24f2a1b4a8974e57ad1be5133b236
+$(PKG)_VERSION := 1.2.4
+$(PKG)_CHECKSUM := 32267c5fcaa1439a5fbf7606d27dc4fafba9e504
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.xz
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/xine/$(PKG)/$($(PKG)_VERSION)/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc faad2 ffmpeg flac fontconfig freetype graphicsmagick libiconv libmng pthreads sdl speex theora vorbis wavpack zlib
+$(PKG)_DEPS := gcc faad2 ffmpeg flac fontconfig freetype graphicsmagick libiconv libmng pthreads sdl speex theora vorbis wavpack zlib libmpcdec libcdio vcdimager mman-win32 libmad a52dec libmodplug
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.xine-project.org/releases' | \
@@ -20,10 +20,8 @@ endef
define $(PKG)_BUILD
# rebuild configure script as one of the patches modifies configure.ac
- cd '$(1)' && aclocal -I m4
+ cd '$(1)' && autoreconf -fi
cd '$(1)' && $(LIBTOOLIZE)
- cd '$(1)' && autoconf
-
cd '$(1)' && ./configure \
--host='$(TARGET)' \
--prefix='$(PREFIX)/$(TARGET)' \
@@ -41,9 +39,6 @@ define $(PKG)_BUILD
--with-theora \
--with-speex \
--with-libflac \
- --without-external-a52dec \
- --without-external-libmad \
- --without-external-libmpcdec \
--with-freetype \
--with-fontconfig \
--without-alsa \
@@ -56,10 +51,11 @@ define $(PKG)_BUILD
--with-wavpack \
CFLAGS='-I$(1)/win32/include' \
PTHREAD_LIBS='-lpthread -lws2_32' \
- LIBS="`$(TARGET)-pkg-config --libs libmng`"
+ LIBS="`$(TARGET)-pkg-config --libs libmng` -logg"
+ $(SED) -i 's,[\s^]*sed , $(SED) ,g' '$(1)/src/combined/ffmpeg/Makefile'
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' -j 1 install
endef
-$(PKG)_BUILD_x86_64-w64-mingw32 =
-$(PKG)_BUILD_i686-w64-mingw32 =
+# $(PKG)_BUILD_x86_64-w64-mingw32 =
+# $(PKG)_BUILD_i686-w64-mingw32 =
diff --git a/src/xmlrpc-c-1-fixes.patch b/src/xmlrpc-c-1-fixes.patch
new file mode 100644
index 0000000..f0f9efe
--- /dev/null
+++ b/src/xmlrpc-c-1-fixes.patch
@@ -0,0 +1,109 @@
+This file is part of MXE.
+See index.html for further information.
+
+Index: stable/lib/curl_transport/curltransaction.c
+===================================================================
+--- stable/lib/curl_transport/curltransaction.c (revision 2571)
++++ stable/lib/curl_transport/curltransaction.c (working copy)
+@@ -2,8 +2,6 @@
+ curlTransaction
+ =============================================================================*/
+
+-#define _XOPEN_SOURCE 600 /* Make sure strdup() is in <string.h> */
+-
+ #include <assert.h>
+ #include <string.h>
+ #include <stdlib.h>
+Index: stable/lib/expat/xmlparse/xmlparse.c
+===================================================================
+--- stable/lib/expat/xmlparse/xmlparse.c (revision 2571)
++++ stable/lib/expat/xmlparse/xmlparse.c (working copy)
+@@ -4547,14 +4547,6 @@
+
+
+ int
+-XML_SetHashSalt(XML_Parser parser,
+- unsigned long hash_salt)
+-{
+- hash_secret_salt = hash_salt;
+- return 1;
+-}
+-
+-int
+ xmlrpc_XML_Parse(XML_Parser const xmlParserP,
+ const char * const s,
+ size_t const len,
+Index: stable/lib/expat/xmlparse/xmlparse.h
+===================================================================
+--- stable/lib/expat/xmlparse/xmlparse.h (revision 2571)
++++ stable/lib/expat/xmlparse/xmlparse.h (working copy)
+@@ -491,8 +491,6 @@
+ function behavior. This must be called before parsing is started.
+ Returns 1 if successful, 0 when called after parsing has started.
+ */
+-int
+-XML_SetHashSalt(XML_Parser parser, unsigned long hash_salt);
+
+ enum XML_Error {
+ XML_ERROR_NONE,
+Index: stable/src/cpp/packetsocket.cpp
+===================================================================
+--- stable/src/cpp/packetsocket.cpp (revision 2571)
++++ stable/src/cpp/packetsocket.cpp (working copy)
+@@ -45,7 +45,7 @@
+ example, an unplugged TCP/IP network cable. It's probably better
+ to use the TCP keepalive facility for that.
+ ============================================================================*/
+-#include "xmlrpc_config.h"
++#define MSVCRT 1
+
+ #include <cassert>
+ #include <string>
+Index: stable/src/cpp/server_abyss.cpp
+===================================================================
+--- stable/src/cpp/server_abyss.cpp (revision 2571)
++++ stable/src/cpp/server_abyss.cpp (working copy)
+@@ -1,4 +1,4 @@
+-#include "xmlrpc_config.h"
++#define MSVCRT 1
+ #define WIN32_LEAN_AND_MEAN /* required by xmlrpc-c/abyss.h */
+ #include <cstdlib>
+ #include <string>
+Index: stable/src/cpp/server_cgi.cpp
+===================================================================
+--- stable/src/cpp/server_cgi.cpp (revision 2571)
++++ stable/src/cpp/server_cgi.cpp (working copy)
+@@ -12,7 +12,7 @@
+ Contributed to the public domain by its author.
+ =============================================================================*/
+
+-#include "xmlrpc_config.h"
++#define MSVCRT 1
+ #if MSVCRT
+ #ifndef _CRT_SECURE_NO_WARNINGS
+ #define _CRT_SECURE_NO_WARNINGS
+Index: stable/src/cpp/server_pstream.cpp
+===================================================================
+--- stable/src/cpp/server_pstream.cpp (revision 2571)
++++ stable/src/cpp/server_pstream.cpp (working copy)
+@@ -14,7 +14,7 @@
+ Contributed to the public domain by its author.
+ =============================================================================*/
+
+-#include "xmlrpc_config.h"
++#define MSVCRT 1
+ #if MSVCRT
+ #ifndef _CRT_SECURE_NO_WARNINGS
+ #define _CRT_SECURE_NO_WARNINGS
+Index: stable/src/xmlrpc_datetime.c
+===================================================================
+--- stable/src/xmlrpc_datetime.c (revision 2571)
++++ stable/src/xmlrpc_datetime.c (working copy)
+@@ -1,7 +1,5 @@
+ #include "xmlrpc_config.h"
+
+-#define _XOPEN_SOURCE 600 /* Make sure strdup() is in <string.h> */
+-
+ #include <time.h>
+ #include <stdlib.h>
+ #include <string.h>
diff --git a/src/xmlrpc-c.mk b/src/xmlrpc-c.mk
new file mode 100644
index 0000000..92d5c15
--- /dev/null
+++ b/src/xmlrpc-c.mk
@@ -0,0 +1,55 @@
+# This file is part of MXE.
+# See index.html for further information.
+
+PKG := xmlrpc-c
+$(PKG)_IGNORE :=
+$(PKG)_VERSION := d4364f4
+$(PKG)_CHECKSUM := 3f0cb2a5967832fa5463bd85740eb04911488da9
+$(PKG)_SUBDIR := mirror-$(PKG)-$($(PKG)_VERSION)/advanced
+$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.gz
+$(PKG)_URL := https://github.com/mirror/$(PKG)/tarball/$($(PKG)_VERSION)/$($(PKG)_FILE)
+$(PKG)_DEPS := gcc curl pthreads
+
+define $(PKG)_UPDATE
+ $(WGET) -q -O- 'https://github.com/mirror/xmlrpc-c/commits/master' | \
+ grep 'title="Release' | \
+ $(SED) -n 's,.*/mirror/xmlrpc-c/commit/\([^"]\{7\}\)[^"]\{33\}".*Release \([0-9]*\),\1 \2,p' | \
+ $(SORT) -V -k 2 | \
+ tail -1 | \
+ cut -d ' ' -f1
+endef
+
+$(PKG)_MAKE_OPTS = \
+ BUILDTOOL_CC=gcc \
+ BUILDTOOL_CCLD=gcc \
+ SHARED_LIB_TYPE=@xmlrpc-c-shared-lib-type@ \
+ MUST_BUILD_SHLIB=@xmlrpc-c-must-build-shlib@
+
+define $(PKG)_BUILD_COMMON
+ $(SED) -i 's,curl-config,$(TARGET)-curl-config,g' '$(1)/lib/curl_transport/Makefile'
+ $(SED) -i 's,curl-config,$(TARGET)-curl-config,g' '$(1)/src/Makefile'
+ cd '$(1)' && ./configure \
+ --host='$(TARGET)' \
+ --prefix='$(PREFIX)/$(TARGET)' \
+ --enable-abyss-server=no \
+ --enable-cgi-server=no \
+ --enable-cplusplus \
+ --enable-curl-client \
+ CURL_CONFIG='$(PREFIX)/$(TARGET)/bin/curl-config'
+ $(MAKE) -C '$(1)' -j '$(JOBS)' $($(PKG)_MAKE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 install $($(PKG)_MAKE_OPTS)
+
+ '$(TARGET)-g++' \
+ -W -Wall -Werror -ansi -pedantic \
+ '$(1)/examples/cpp/asynch_client.cpp' -o '$(PREFIX)/$(TARGET)/bin/test-xmlrpc-c.exe' \
+ `'$(PREFIX)/$(TARGET)/bin/xmlrpc-c-config' c++2 client --libs` \
+ `'$(TARGET)-pkg-config' libcurl --cflags --libs`
+endef
+
+$(PKG)_BUILD_STATIC=$(subst @xmlrpc-c-shared-lib-type@,NONE,\
+ $(subst @xmlrpc-c-must-build-shlib@,N,\
+ $($(PKG)_BUILD_COMMON)))
+
+$(PKG)_BUILD_SHARED=$(subst @xmlrpc-c-shared-lib-type@,dll,\
+ $(subst @xmlrpc-c-must-build-shlib@,Y,\
+ $($(PKG)_BUILD_COMMON)))
diff --git a/src/xvidcore.mk b/src/xvidcore.mk
index 662f5f7..369bbba 100644
--- a/src/xvidcore.mk
+++ b/src/xvidcore.mk
@@ -8,7 +8,7 @@ $(PKG)_CHECKSUM := 56e065d331545ade04c63c91153b9624b51d6e1b
$(PKG)_SUBDIR := xvidcore/build/generic
$(PKG)_FILE := xvidcore-$($(PKG)_VERSION).tar.gz
$(PKG)_URL := http://downloads.xvid.org/downloads/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc pthreads
+$(PKG)_DEPS := gcc pthreads yasm
define $(PKG)_UPDATE
$(WGET) -q -O- 'http://www.xvid.org/' | \
@@ -17,15 +17,22 @@ define $(PKG)_UPDATE
endef
define $(PKG)_BUILD
- cd '$(1)' && autoconf
+ $(SED) -i 's,yasm_prog="yasm",yasm_prog="$(TARGET)-yasm",' '$(1)/configure.in'
+ cd '$(1)' && autoreconf -fi
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)'
- $(MAKE) -C '$(1)' -j 1 BUILD_DIR='build' SHARED_LIB=
+ $(MXE_CONFIGURE_OPTS)
+ $(MAKE) -C '$(1)' -j 1 BUILD_DIR='build' $(if $(BUILD_STATIC),SHARED,STATIC)_LIB=
$(INSTALL) -d '$(PREFIX)/$(TARGET)/include'
$(INSTALL) -m644 '$(1)/../../src/xvid.h' '$(PREFIX)/$(TARGET)/include/'
- $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib'
- $(INSTALL) -m644 '$(1)/build/xvidcore.a' '$(PREFIX)/$(TARGET)/lib/'
- ln -sf '$(PREFIX)/$(TARGET)/lib/xvidcore.a' '$(PREFIX)/$(TARGET)/lib/libxvidcore.a'
+ $(INSTALL) -d '$(PREFIX)/$(TARGET)/lib' '$(PREFIX)/$(TARGET)/bin'
+ $(INSTALL) -m644 '$(1)/build/xvidcore.$(LIB_SUFFIX)' '$(PREFIX)/$(TARGET)/$(if $(BUILD_STATIC),lib,bin)/'
+ $(if $(BUILD_STATIC), \
+ ln -sf '$(PREFIX)/$(TARGET)/lib/xvidcore.$(LIB_SUFFIX)' '$(PREFIX)/$(TARGET)/lib/libxvidcore.$(LIB_SUFFIX)', \
+ mv '$(1)/build/xvidcore.dll.a' '$(1)/build/libxvidcore.dll.a' && \
+ $(INSTALL) -m644 '$(1)/build/libxvidcore.dll.a' '$(PREFIX)/$(TARGET)/lib/')
+endef
+
+define $(PKG)_BUILD_x86_64-w64-mingw32
+ $(SED) -i 's,yasm_prog="yasm",yasm_prog="$(TARGET)-yasm -DNO_PREFIX",' '$(1)/configure.in'
+ $($(PKG)_BUILD)
endef
diff --git a/src/xz.mk b/src/xz.mk
index dd8f35f..294f7be 100644
--- a/src/xz.mk
+++ b/src/xz.mk
@@ -18,10 +18,7 @@ endef
define $(PKG)_BUILD
cd '$(1)' && ./configure \
- --host='$(TARGET)' \
- --build="`config.guess`" \
- --prefix='$(PREFIX)/$(TARGET)' \
- --disable-shared \
+ $(MXE_CONFIGURE_OPTS) \
--disable-threads \
--disable-nls
$(MAKE) -C '$(1)'/src/liblzma -j '$(JOBS)' install
diff --git a/src/zlib.mk b/src/zlib.mk
index a61751c..5980760 100644
--- a/src/zlib.mk
+++ b/src/zlib.mk
@@ -23,3 +23,14 @@ define $(PKG)_BUILD
--static
$(MAKE) -C '$(1)' -j '$(JOBS)' install
endef
+
+define $(PKG)_BUILD_SHARED
+ $(MAKE) -C '$(1)' -f win32/Makefile.gcc \
+ SHARED_MODE=1 \
+ STATICLIB= \
+ BINARY_PATH='$(PREFIX)/$(TARGET)/bin' \
+ INCLUDE_PATH='$(PREFIX)/$(TARGET)/include' \
+ LIBRARY_PATH='$(PREFIX)/$(TARGET)/lib' \
+ PREFIX='$(TARGET)-' \
+ -j '$(JOBS)' install
+endef
diff --git a/src/zziplib-1-fix-fnmatch.patch b/src/zziplib-1-fix-fnmatch.patch
deleted file mode 100644
index ad495ac..0000000
--- a/src/zziplib-1-fix-fnmatch.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://sourceforge.net/tracker/?func=detail&aid=2995373&group_id=6389&atid=306389
-
---- zziplib-0.13.58/zzip/__fnmatch.h 2009-08-23 07:38:22.000000000 -0400
-+++ zziplib-0.13.58/zzip/__fnmatch.h 2010-01-09 13:32:11.311799466 -0500
-@@ -4,6 +4,7 @@
-
- #include <zzip/conf.h>
- #include <stdio.h>
-+#include <string.h>
-
- #ifdef ZZIP_HAVE_FNMATCH_H
- #include <fnmatch.h>
diff --git a/src/zziplib-1-fix-mmap.patch b/src/zziplib-1-fix-mmap.patch
new file mode 100644
index 0000000..f95a691
--- /dev/null
+++ b/src/zziplib-1-fix-mmap.patch
@@ -0,0 +1,37 @@
+This file is part of MXE.
+See index.html for further information.
+
+This patch has been taken from:
+http://sourceforge.net/tracker/?func=detail&aid=2995373&group_id=6389&atid=306389
+
+--- zziplib-0.13.59/zzip/__mmap.h 2013-10-03 22:23:32.467619238 -0400
++++ zzip-patched/zzip/__mmap.h 2013-10-04 21:44:16.412881609 -0400
+@@ -63,14 +63,15 @@
+ return 0;
+ {
+ HANDLE hFile = (HANDLE)_get_osfhandle(fd);
++ HANDLE fileMapping = NULL;
+ if (hFile)
+- *user = (int) CreateFileMapping (hFile, 0, PAGE_READONLY, 0, 0, NULL);
+- if (*user)
++ fileMapping = CreateFileMapping(hFile, 0, PAGE_READONLY, 0, 0, NULL);
++ if (fileMapping != NULL)
+ {
+ char* p = 0;
+- p = MapViewOfFile(*(HANDLE*)user, FILE_MAP_READ, 0, offs, len);
+- if (p) return p + offs;
+- CloseHandle (*(HANDLE*)user); *user = 1;
++ p = MapViewOfFile(fileMapping, FILE_MAP_READ, 0, offs, len);
++ CloseHandle (fileMapping);
++ if (p) return p;
+ }
+ return MAP_FAILED;
+ }
+@@ -78,7 +79,6 @@
+ static void win32_munmap (long* user, char* fd_map, size_t len)
+ {
+ UnmapViewOfFile (fd_map);
+- CloseHandle (*(HANDLE*)user); *user = 1;
+ }
+
+ #define _zzip_mmap(user, fd, offs, len) \
diff --git a/src/zziplib.mk b/src/zziplib.mk
index 1903731..a104985 100644
--- a/src/zziplib.mk
+++ b/src/zziplib.mk
@@ -3,17 +3,19 @@
PKG := zziplib
$(PKG)_IGNORE :=
-$(PKG)_VERSION := 0.13.59
-$(PKG)_CHECKSUM := ddbce25cb36c3b4c2b892e2c8a88fa4a0be29a71
+$(PKG)_VERSION := 0.13.62
+$(PKG)_CHECKSUM := cf8b642abd9db618324a1b98cc71492a007cd687
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/$(PKG)/$(PKG)$(word 2,$(subst ., ,$($(PKG)_VERSION)))/$($(PKG)_VERSION)/$($(PKG)_FILE)
$(PKG)_DEPS := gcc zlib
define $(PKG)_UPDATE
- $(WGET) -q -O- 'http://sourceforge.net/projects/zziplib/files/' | \
- $(SED) -n 's,.*zziplib-\([0-9][^>]*\)\.tar.*,\1,p' | \
- head -1
+ $(WGET) -q -O- 'http://sourceforge.net/p/zziplib/svn/HEAD/tree/tags/' | \
+ $(SED) -n 's,.*<a href="V_\([0-9][^"]*\)">.*,\1,p' | \
+ tr '_' '.' | \
+ $(SORT) -V | \
+ tail -1
endef
define $(PKG)_BUILD
@@ -21,9 +23,9 @@ define $(PKG)_BUILD
(echo '# DISABLED'; echo 'all:'; echo 'install:') > '$(1)/docs/Makefile.in'
cd '$(1)' && ./configure \
--host='$(TARGET)' \
- --disable-mmap \
--disable-shared \
--prefix='$(PREFIX)/$(TARGET)' \
+ CFLAGS="-O -ggdb" \
PKG_CONFIG='$(TARGET)-pkg-config'
$(MAKE) -C '$(1)' -j '$(JOBS)' bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
$(MAKE) -C '$(1)' -j 1 install bin_PROGRAMS= sbin_PROGRAMS= noinst_PROGRAMS=
diff --git a/tools/freebsd-excludes b/tools/freebsd-excludes
deleted file mode 100755
index b94e248..0000000
--- a/tools/freebsd-excludes
+++ /dev/null
@@ -1,35 +0,0 @@
-gmake \
-gtksourceviewmm2_BUILD_x86_64-w64-mingw32= \
-graphicsmagick_BUILD= \
-openexr_BUILD= \
-opencv_BUILD= \
-pcl_BUILD= \
-vigra_BUILD= \
-vtk6_BUILD= \
-qwt_BUILD= \
-ocaml-cairo_BUILD= \
-ocaml-findlib_BUILD= \
-ocaml-lablgtk2_BUILD= \
-ocaml-camlimages_BUILD= \
-ocaml-flexdll_BUILD= \
-ocaml-native_BUILD= \
-ocaml-core_BUILD= \
-ocaml-lablgl_BUILD= \
-ocaml-xml-light_BUILD= \
-qtactiveqt_BUILD= \
-qtbase_BUILD= \
-qtdeclarative_BUILD= \
-qtgraphicaleffects_BUILD= \
-qtimageformats_BUILD= \
-qtjsbackend_BUILD= \
-qtmultimedia_BUILD= \
-qtquickcontrols_BUILD= \
-qtquick1_BUILD= \
-qtscript_BUILD= \
-qtsensors_BUILD= \
-qtserialport_BUILD= \
-qtsvg_BUILD= \
-qttools_BUILD= \
-qttranslations_BUILD= \
-qtxmlpatterns_BUILD= \
--j4 -k
diff --git a/tools/make-shared-from-static b/tools/make-shared-from-static
new file mode 100755
index 0000000..cd720b2
--- /dev/null
+++ b/tools/make-shared-from-static
@@ -0,0 +1,218 @@
+#!/usr/bin/env bash
+
+set -e
+
+LD=
+AR=
+INSTALL=
+infile=
+outfile=
+libdir=
+bindir=
+install=false
+windowsdll=false
+msvc=false
+msvclibmode=false
+libprefix=
+libsuffix=
+LIBS=
+
+topdir=$(pwd)
+tmpdir=$topdir/make-shared-from-static.$$
+
+#trap "cd $topdir; rm -rf $tmpdir" 1 2 15
+
+for arg
+do
+ case "$1" in
+ --install)
+ install=true
+ shift
+ if [ $# -gt 0 ]; then
+ INSTALL="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --install option" 1>&2
+ exit 1
+ fi
+ ;;
+ --windowsdll)
+ shift
+ windowsdll=true
+ ;;
+ --msvc)
+ shift
+ msvc=true
+ ;;
+ --bindir)
+ shift
+ if [ $# -gt 0 ]; then
+ bindir="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --bindir option" 1>&2
+ exit 1
+ fi
+ ;;
+ --libdir)
+ shift
+ if [ $# -gt 0 ]; then
+ libdir="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --libdir option" 1>&2
+ exit 1
+ fi
+ ;;
+ --ld)
+ shift
+ if [ $# -gt 0 ]; then
+ LD="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --ld option" 1>&2
+ exit 1
+ fi
+ ;;
+ --ar)
+ shift
+ if [ $# -gt 0 ]; then
+ AR="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --ar option" 1>&2
+ exit 1
+ fi
+ ;;
+ --libprefix)
+ shift
+ if [ $# -gt 0 ]; then
+ libprefix="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --libprefix option" 1>&2
+ exit 1
+ fi
+ ;;
+ --libsuffix)
+ shift
+ if [ $# -gt 0 ]; then
+ libsuffix="$1"
+ shift
+ else
+ echo "make-shared-from-static: expecting argument for --libsuffix option" 1>&2
+ exit 1
+ fi
+ ;;
+ -l*)
+ LIBS="$LIBS $1"
+ shift
+ ;;
+ *.a)
+ if [ -z "$infile" ]; then
+ case "$1" in
+ /*)
+ infile="$1"
+ ;;
+ *)
+ infile=$(pwd)/$1
+ ;;
+ esac
+ shift
+ else
+ echo "make-shared-from-static: only one input file allowed" 1>&2
+ exit 1
+ fi
+ ;;
+ esac
+done
+
+if [ -n "$infile" ]; then
+ base_infile=$(basename $infile)
+ if $windowsdll; then
+ if $msvc; then
+ base_name=`echo $base_infile | sed -n -e 's/^lib\(.*\)\.a$/\1/p'`
+ outfile="${libprefix}${base_name}${libsuffix}.dll"
+ implibfile="$base_name.lib"
+ # Modern libtool won't create .a files, but will create directly .lib files.
+ # If the .a file does not exist, check for an existing .lib file.
+ if [ ! -f "$infile" ]; then
+ msvc_infiles="`echo $infile | sed -e 's/\.a$/.lib/'` \
+`dirname \"$infile\"`/`echo $base_infile | sed -e 's/\.a$/.lib/' -e 's/^lib//'`"
+ for msvc_infile in $msvc_infiles; do
+ if [ -f "$msvc_infile" ]; then
+ infile="$msvc_infile"
+ msvclibmode=true
+ break
+ fi
+ done
+ fi
+ else
+ outfile=$(echo $base_infile | sed 's/\.a$/.dll/')
+ implibfile="$outfile.a"
+ fi
+ else
+ outfile=$(echo $base_infile | sed 's/\.a$/.so/')
+ fi
+else
+ echo "make-shared-from-static: no input file specified" 1>&2
+ exit 1
+fi
+
+NM=nm
+SED=sed
+global_symbol_pipe="sed -n -e 's/^.*[ ]\\([ABCDGIRSTW][ABCDGIRSTW]*\\)[ ][ ]*_\\([_A-Za-z][_A-iZa-z0-9]*\\)\\{0,1\\}\$/\\1 _\\2 \\2/p' | sed '/ __gnu_lto/d'"
+# Ignore DATA symbols for now. They should be be properly exported from
+# the source code using dllexport. They can't be re-exported manually like
+# this using MSVC.
+#export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/s/.*[ ]\\\\([^ ]*\\\\)/\\\\1,DATA/' | \$SED -e '/^[AITW][ ]/s/.*[ ]//' | sort | uniq >> \$export_symbols"
+export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED -e '/^[BCDGRS][ ]/d' | \$SED -e '/^[AITW][ ]/s/.*[ ]//' | sort | uniq >> \$export_symbols"
+
+mkdir $tmpdir
+
+(
+ cd $tmpdir
+
+ $msvclibmode || $AR x $infile
+
+ LIBDIR_ARGS=
+ if [ -n "$libdir" ]; then
+ LIBDIR_ARGS="-L$libdir"
+ fi
+
+ if $windowsdll; then
+ if $msvc; then
+ export_symbols="$base_name.def"
+ echo EXPORTS > $export_symbols
+ if $msvclibmode; then
+ libobjs="$infile"
+ else
+ libobjs="*.o"
+ fi
+ convenience=
+ eval cmd=\"$export_symbols_cmds\"
+ eval "$cmd"
+ link_args="-Wl,-def:$export_symbols $libobjs"
+ else
+ link_args="-Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--enable-auto-image-base *.o"
+ fi
+ set -x
+ $LD -shared $link_args -Wl,--out-implib="$implibfile" -o "$outfile" $LIBDIR_ARGS $LIBS
+ else
+ $LD -shared -o $outfile *.o $LIBDIR_ARGS $LIBS
+ fi
+
+ if $install; then
+ if $windowsdll; then
+ $INSTALL -d "$libdir"
+ $INSTALL -d "$bindir"
+ $INSTALL -m755 "$implibfile" "$libdir/$implibfile"
+ $INSTALL -m755 "$outfile" "$bindir/$outfile"
+ else
+ $INSTALL -d "$libdir"
+ $INSTALL -m755 "$outfile" "$libdir/$outfile"
+ fi
+ fi
+)
+
+rm -rf $tmpdir
diff --git a/tools/mxe-activate b/tools/mxe-activate
index d7b80ca..461b547 100644
--- a/tools/mxe-activate
+++ b/tools/mxe-activate
@@ -1,8 +1,12 @@
export MXE_DIR=`pwd`
-export PATH=$MXE_DIR/usr/bin:$PATH
+export BUILD=`$MXE_DIR/ext/config.guess`
+export PATH=$MXE_DIR/usr/$BUILD/bin:$MXE_DIR/usr/bin:$PATH
MAKE=`gmake --help >/dev/null 2>&1 && echo g`make
SED=`gsed --help >/dev/null 2>&1 && echo g`sed
-MXE_TARGET_LIST="`grep 'MXE_TARGET_LIST.*:=' Makefile | $SED -n 's,^.*:= \(.*\)$,\1,p'`"
+
+MXE_TRIPLETS=`grep ^MXE_TRIPLETS Makefile | cut -d '=' -f2 | cut -d ' ' -f2- | tr ' ' ','`
+MXE_LIB_TYPES=`grep ^MXE_LIB_TYPES Makefile | cut -d '=' -f2 | cut -d ' ' -f2- | tr ' ' ','`
+MXE_TARGET_LIST=`eval "echo {$MXE_TRIPLETS}.{$MXE_LIB_TYPES}"`
alias mxe='$MAKE -C $MXE_DIR --no-print-directory'
@@ -43,8 +47,14 @@ _mxe()
COMPREPLY=( $(compgen -W "${_pkgs}" -- ${cur}) )
return 0
;;
+ show-*deps-*)
+ local base=`echo ${cur} | $SED -n 's,\(show.*deps-\).*,\1,p'`
+ local _pkgs=$( for x in ${pkgs}; do echo $base${x} ; done )
+ COMPREPLY=( $(compgen -W "${_pkgs}" -- ${cur}) )
+ return 0
+ ;;
[!-]*)
- pkgs+=" build-only- check-requirements clean clean-pkg download download- update-checksum-"
+ pkgs+=" build-only- check-requirements clean clean-pkg download download- update-checksum- show-deps- show-downstream-deps- show-upstream-deps-"
COMPREPLY=( $(compgen -W "${pkgs}" -- ${cur}) )
return 0
;;
diff --git a/tools/patch-tool-mxe b/tools/patch-tool-mxe
index 208655a..9c3c383 100755
--- a/tools/patch-tool-mxe
+++ b/tools/patch-tool-mxe
@@ -19,7 +19,8 @@ setupEnv() {
# John Doe <John Doe@acme.org>
export author=`git var GIT_AUTHOR_IDENT | sed 's/^\(.* [<].*[>]\).*$/\1/'`
- export pkg_version=$(sed -n "s/^.* id=\"${pkg}-version\">\([^<]*\)<.*$/\1/p" "${mxedir}/index.html")
+ export pkg_version=`grep '^$(PKG)_VERSION' $mxedir/src/$pkg.mk | \
+ sed 's/.*:= \(.*\)/\1/'`
export pkg_short_version=`echo $pkg_version | sed s/'\(.*\)\.[^.]*$'/'\1'/`