[git] GpgEX - branch, master, updated. gpgex-0.9.7-14-g3cc9ee5
by Werner Koch
cvs at cvs.gnupg.org
Thu Jun 20 17:17:40 CEST 2013
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnupG extension for the Windows Explorer".
The branch, master has been updated
via 3cc9ee5a799bbd802f578386a22103b9a85b89cd (commit)
from b21cad89a4a6de617d5020bed340cdfa7d0636d2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3cc9ee5a799bbd802f578386a22103b9a85b89cd
Author: Werner Koch <wk at gnupg.org>
Date: Thu Jun 20 16:47:51 2013 +0200
Link gcc support libraries statically.
* src/Makefile.am (gpgex_LDFLAGS): New.
* src/versioninfo.rc.in: Add comments on how to add a manifest.
* src/gpgex.manifest.in: New.
* src/GNU.GnuPG.Gcc64Support.manifest: New.
* src/Makefile.am: Distribute sample files.
* configure.ac (BUILD_FILEVERSION_DOT, BUILD_CPU_ARCH): New ac_subst.
(AC_CONFIG_FILES): Add gpgex.manifest.
--
Despite many hours of trial and error, I was not able to get a private
side by side assembly work for gpgex. See versioninfo.rc.in for
details.
diff --git a/configure.ac b/configure.ac
index 24dc04a..2d1dc40 100644
--- a/configure.ac
+++ b/configure.ac
@@ -62,6 +62,8 @@ BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
changequote([,])dnl
BUILD_FILEVERSION="${BUILD_FILEVERSION}${SVN_REVISION}"
AC_SUBST(BUILD_FILEVERSION)
+BUILD_FILEVERSION_DOT=`echo "$BUILD_FILEVERSION" | tr ',' '.'`
+AC_SUBST(BUILD_FILEVERSION_DOT)
AH_BOTTOM([
@@ -106,10 +108,12 @@ case "${host}" in
have_dosish_system=yes
have_w32_system=yes
have_w64_system=yes
+ BUILD_CPU_ARCH=amd64
;;
*-mingw32*)
have_dosish_system=yes
have_w32_system=yes
+ BUILD_CPU_ARCH=x86
;;
*)
AC_MSG_ERROR([[
@@ -123,6 +127,10 @@ case "${host}" in
;;
esac
+# We need the CPU architecture for the manifest file.
+AC_SUBST(BUILD_CPU_ARCH)
+
+
AC_DEFINE(HAVE_DRIVE_LETTERS,1,
[defined if we must run on a stupid file system])
@@ -252,6 +260,7 @@ AC_CONFIG_FILES([ Makefile
doc/Makefile
src/Makefile
src/versioninfo.rc
+src/gpgex.manifest
po/Makefile.in
m4/Makefile
])
diff --git a/src/GNU.GnuPG.Gcc64Support.manifest b/src/GNU.GnuPG.Gcc64Support.manifest
new file mode 100644
index 0000000..7aedf3f
--- /dev/null
+++ b/src/GNU.GnuPG.Gcc64Support.manifest
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity
+ type="win32"
+ name="GNU.GnuPG.Gcc64Support"
+ version="6.0.0.0"
+ processorArchitecture="amd64"/>
+ <file name="libstdc++-6.dll"/>
+ <file name="libgcc_s_sjlj-1.dll"/>
+</assembly>
diff --git a/src/Makefile.am b/src/Makefile.am
index ec36b7f..061f4ae 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1,5 +1,5 @@
# Makefile.am - main makefile for dialogs part of GpgEX
-# Copyright (C) 2005, 2007 g10 Code GmbH
+# Copyright (C) 2005, 2007, 2013 g10 Code GmbH
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
@@ -12,7 +12,8 @@
## Process this file with automake to produce Makefile.in
bin_PROGRAMS = gpgex
-EXTRA_DIST = versioninfo.rc.in
+EXTRA_DIST = versioninfo.rc.in gpgex.manifest.in \
+ GNU.GnuPG.Gcc64Support.manifest
EXEEXT = .dll
AM_CFLAGS = $(LIBASSUAN_CFLAGS) $(GPG_ERROR_CFLAGS) -shared
@@ -23,7 +24,7 @@ ICON_SIZES = 12 16
ICONS = $(addprefix icon-, \
$(foreach size,$(ICON_SIZES),$(addsuffix -$(size).bmp, $(ICON_NAMES))))
-nodist_gpgex_SOURCES = versioninfo.rc
+nodist_gpgex_SOURCES = versioninfo.rc gpgex.manifest
gpgex_SOURCES = \
gpgex.def \
icons.rc \
@@ -50,6 +51,7 @@ clean-local:
#gpgex_LDADD = $(srcdir)/gpgex.def \
# -L . -lshell32 -lcomdlg32 -ladvapi32
+gpgex_LDFLAGS = -static-libgcc -static-libstdc++
# We need -loleaut32 for start_help() in gpgex.cc.
gpgex_LDADD = $(srcdir)/gpgex.def -L . \
-lshell32 -lgdi32 -lole32 -luuid \
diff --git a/src/gpgex.manifest.in b/src/gpgex.manifest.in
new file mode 100644
index 0000000..e1d63bf
--- /dev/null
+++ b/src/gpgex.manifest.in
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+ <assemblyIdentity
+ type="win32"
+ name="gpgex"
+ version="@BUILD_FILEVERSION_DOT@"
+ processorArchitecture="@BUILD_CPU_ARCH@"
+ />
+ <description>GpgEX - GnuPG shell extensions</description>
+ <dependency>
+ <dependentAssembly>
+ <assemblyIdentity
+ type="win32"
+ name="GNU.GnuPG.Gcc64Support"
+ version="6.0.0.0"
+ processorArchitecture="@BUILD_CPU_ARCH@"/>
+ </dependentAssembly>
+ </dependency>
+</assembly>
diff --git a/src/versioninfo.rc.in b/src/versioninfo.rc.in
index 28f2910..a88c5a0 100644
--- a/src/versioninfo.rc.in
+++ b/src/versioninfo.rc.in
@@ -1,6 +1,6 @@
-/* versioninfo.rc.in
- * Copyright (C) 2005, 2007, 2009 g10 Code GmbH
- *
+/* versioninfo.rc.in -*- c -*-
+ * Copyright (C) 2005, 2007, 2009, 2013 g10 Code GmbH
+ *
* This file is free software; as a special exception the author gives
* unlimited permission to copy and/or distribute it, with or without
* modifications, as long as this notice is preserved.
@@ -9,7 +9,7 @@
* WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
-
+
/* This file is processed by configure to create versioninfo.rc */
#line __LINE__ "versioninfo.rc.in"
@@ -54,3 +54,17 @@ BEGIN
END
END
+/* Fixme: It was not possible to convince Windows to use the manifest.
+ * Thus we resort to static linking of gpgex with the helper
+ * libraries. The idea was to put have this directory layout
+ *
+ * bin/gpgex.dll
+ * bin/GNU.GnuPG.Gcc64Support/GNU.GnuPG.Gcc64Support.manifest
+ * bin/GNU.GnuPG.Gcc64Support/libstdc++-6.dll
+ * bin/GNU.GnuPG.Gcc64Support/libgcc_s_sjlj-1.dll
+ *
+ * to cope with the 64 bit and 32 bit versions of the gcc support
+ * libraries. It works with exe files but not with DLLs loaded. Any
+ * hints to fix this are welcome.
+ */
+/* ISOLATIONAWARE_MANIFEST_RESOURCE_ID RT_MANIFEST "gpgex.manifest" */
-----------------------------------------------------------------------
Summary of changes:
configure.ac | 9 +++++++++
src/GNU.GnuPG.Gcc64Support.manifest | 10 ++++++++++
src/Makefile.am | 8 +++++---
src/gpgex.manifest.in | 19 +++++++++++++++++++
src/versioninfo.rc.in | 22 ++++++++++++++++++----
5 files changed, 61 insertions(+), 7 deletions(-)
create mode 100644 src/GNU.GnuPG.Gcc64Support.manifest
create mode 100644 src/gpgex.manifest.in
hooks/post-receive
--
GnupG extension for the Windows Explorer
http://git.gnupg.org
More information about the Gnupg-commits
mailing list