# HG changeset patch
# User Mark Brand
# Date 1274390613 -7200
# Node ID 63bc5584fb759f6d29d73fb4258c182049ff18dd
# Parent 9d8fc76f54e89a7009965454082f7a8b60fcaa2e
fix use of pthreads in package vmime
The configure option "-without-pthread" seems not to work even
if it is listed as a configure option. As long as pthreads is
available, it is detected. This meant that the configuration
of vmime dependend on whether pthreads had already been installed,
even though pthreads was not listed as a dependency.
The solution seems to be to add the missing #include
and allow pthreads to be used.
Also now build one of the examples as test-vmime.exe.
diff --git a/src/vmime-99999-fix-pthreads.patch b/src/vmime-99999-fix-pthreads.patch
new file mode 100644
--- /dev/null
+++ b/src/vmime-99999-fix-pthreads.patch
@@ -0,0 +1,17 @@
+This file is part of mingw-cross-env.
+See doc/index.html for further information.
+
+This patch has been taken from:
+https://sourceforge.net/tracker/?func=detail&aid=3004924&group_id=69724&atid=525570
+
+diff -urN a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
+--- a/src/net/tls/TLSSession.cpp 2010-05-20 12:19:24.163128483 +0200
++++ b/src/net/tls/TLSSession.cpp 2010-05-20 12:21:31.979114130 +0200
+@@ -27,6 +27,7 @@
+ #include "vmime/config.hpp"
+
+ #if VMIME_HAVE_PTHREAD
++# include
+ # include
+ # include
+ #endif // VMIME_HAVE_PTHREAD
diff --git a/src/vmime.mk b/src/vmime.mk
--- a/src/vmime.mk
+++ b/src/vmime.mk
@@ -10,7 +10,7 @@
$(PKG)_FILE := libvmime-$($(PKG)_VERSION).tar.bz2
$(PKG)_WEBSITE := http://vmime.sourceforge.net/
$(PKG)_URL := http://$(SOURCEFORGE_MIRROR)/project/vmime/vmime/0.9/$($(PKG)_FILE)
-$(PKG)_DEPS := gcc libiconv gnutls libgsasl
+$(PKG)_DEPS := gcc libiconv gnutls libgsasl pthreads
define $(PKG)_UPDATE
$(call SOURCEFORGE_FILES,http://sourceforge.net/projects/vmime/files/vmime/) | \
@@ -39,8 +39,7 @@
--disable-shared \
--enable-platform-windows \
--disable-rpath \
- --disable-dependency-tracking \
- --without-pthread
+ --disable-dependency-tracking
# Disable VMIME_HAVE_MLANG_H
# We have the header, but there is no implementation for IMultiLanguage in MinGW
@@ -48,4 +47,12 @@
$(MAKE) -C '$(1)' -j '$(JOBS)'
$(MAKE) -C '$(1)' install
+
+ $(SED) -i 's/posix/windows/g;' '$(1)/examples/example6.cpp'
+ i686-pc-mingw32-g++ -s -o '$(1)/examples/test-vmime.exe' \
+ -I'$(PREFIX)/$(TARGET)/include' \
+ '$(1)/examples/example6.cpp' \
+ -L'$(PREFIX)/$(TARGET)/lib' \
+ -lvmime -lgnutls -lgsasl -lntlm -lgcrypt -lgpg-error -liconv -lidn -lz -lpthread -lws2_32
+ $(INSTALL) -m755 '$(1)/examples/test-vmime.exe' '$(PREFIX)/$(TARGET)/bin/'
endef