diff options
356 files changed, 11773 insertions, 3167 deletions
@@ -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. 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>. 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>. 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. 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). 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: 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: 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: 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: 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: 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: 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: 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> + 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: 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: 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: 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: 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> + 2: List to +iterate over calling the function in 1<br> +Returns: 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> + 2: List to +iterate over calling the function in 1<br> + 3: Second +list to iterate over calling the function in 1<br> +Returns: 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> + 2: ...this +list<br> +Returns: 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> + 2: ...this +list<br> +Returns: 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: 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: 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: 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> + 2: ...this +string<br> +Returns: 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> + 2: ...this +string<br> +Returns: 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: Returns the length of the string<br> +</span> +<hr><b>substr</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: A string<br> + 2: Start offset (first character is 1)<br> + 3: Ending offset (inclusive)<br>Returns: Returns a substring<br> +</span> +<hr><b>split</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: The character to +split on<br> + 2: A +string to split<br> +Returns: Splits a string into a list separated by +spaces at the split<br> + 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> + 2: A list +to merge into a string<br> +Returns: Merges a list into a single string, list +elements are separated<br> + 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> + 2: The +list of characters to translate to<br> + 3: The +text to translate<br> +Returns: 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: 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: 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: 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> + 2: A set<br> +Returns: 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> + 2: A set<br> +Returns: 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> + 2: A set<br> +Returns: 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> + 2: Another set<br> +Returns: 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> + 2: Another set<br> +Returns: 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> + 2: Another set<br> +Returns: 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> + 2: Another set<br> +Returns: 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. For example the number 4 is x x x x. 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>). 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. 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. 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: Returns the integer for human consumption +that is represented<br> + 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: 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> + 2: Another +number in x's represntation<br> +Returns: 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> + 2: Another +integer<br> +Returns: 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> + 2: Another +number in x's represntation<br> +Returns: Returns the difference of the two numbers in +x's representation,<br> + 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> + 2: Another +integer<br> +Returns: Returns the difference of the two integers,<br> + 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> + 2: Another +number in x's represntation<br> +Returns: 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> + 2: Another +integer<br> +Returns: 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> + 2: Another +number in x's represntation<br> +Returns: Returns the result of integer division of +argument 1 divided<br> + 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> + 2: Another +integer<br> +Returns: 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> + 2: Another +number in x's represntation<br> +Returns: Returns the maximum or minimum of its +arguments in x's<br> + +representation<br> +</span> +<hr><b>max, min</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: An integer<br> + 2: Another +integer<br> +Returns: 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: $(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: $(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: 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: 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: 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: 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: 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: 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: 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: The integer divided by 2<br> +</span> +<hr><b>sequence</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: An integer<br> + 2: An integer<br> +Returns: 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). <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> + 2: The key +value to associate<br> + 3: The +value associated with the key<br> +Returns: Nothing<br> +</span> +<hr><b>get</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: Name of associative +array<br> + 2: The key +to retrieve<br> +Returns: 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: 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> + 2: The key +to test<br> +Returns: 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> + 2: Value +to push onto the top of the stack (must not contain<br> + a space)<br> +Returns: None<br> +</span> +<hr><b>pop</b><br> +<br> +<span style="font-family: monospace;">Arguments: 1: Name of stack<br> +Returns: 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: 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: 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> + 2: String argument for the function<br> +Returns: 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 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: +$(true) if this version of the library is compatible<br> +</span><span style="font-family: monospace;"> +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> + wish to +print out.<br> +Action: Echos the name of the variable that matches +the % and its value.<br> + For +example, 'make gmsl-print-SHELL' will output the value of<br> + 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> + 2: The +message to print with the assertion<br> +Returns: 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> + will be +generated<br> +Returns: 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. 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&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 @@ -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(<plugin2>) 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(<plugin2>) <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(<plugin2>) <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(<plugin2>) <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(<plugin2>) <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(<plugin2>) <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(<plugin2>) <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(<plugin2>) 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! + – + 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 + @@ -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:$@ @@ -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 @@ -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) = @@ -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 */ - } @@ -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 \ @@ -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' \ @@ -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 @@ -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 @@ -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 @@ -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) @@ -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 @@ -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 @@ -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 @@ -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 = @@ -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 @@ -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\<$thing\>\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 @@ -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 @@ -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'/` |