diff --git a/Makefile.am b/Makefile.am
index ea62e463..2e181387 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,96 +1,94 @@
# Makefile.am - Installer for GnuPG 4 Windows Makefile.
# Copyright (C) 2005, 2008, 2012 g10 Code GmbH
#
# This file is part of GPG4Win.
#
# GPG4Win 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 2 of the License, or
# (at your option) any later version.
#
# GPG4Win 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 .
ACLOCAL_AMFLAGS = -I m4
AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip
DISTCHECK_CONFIGURE_FLAGS = --host=i686-w64-mingw32
SUBDIRS = po packages doc src
# find patches -type f | sort | sed 's/$/ \\/' | sed 's/^/ /'
EXTRA_DIST = autogen.sh README.GIT ONEWS \
doc/license-page doc/GPLv3 \
build-aux/git-log-footer build-aux/git-log-fix \
patches/glib-2.41.5/01-socket.patch \
patches/glib-2.41.5/02-formatsec.patch \
patches/qtbase/relative-paths.patch \
patches/qtbase/qtbase-mingw-fixes.patch \
patches/qtbase/config-standardpaths.patch \
patches/qtbase/windowsxp-support.patch \
patches/qtbase/windowsxp-support-revert.patch \
patches/qtbase/windowsxp-support-revert-2.patch \
patches/qtwinextras/support-xp.patch \
patches/w32pth-2.0.5/workaround-broken-libtool.patch \
patches/qttools/disable-most-tools.patch \
patches/ki18n/no-tests.patch \
patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch \
patches/kxmlgui/0003-Make-KTextWidgets-optional.patch \
patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch \
patches/kconfigwidgets/0001-Make-QDbus-optional.patch \
patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch \
patches/kiconthemes/0001-Make-DBus-optional.patch \
patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch \
patches/kleopatra/0005-Hack-generated-conf-files-for-Crosscompiling.patch \
- patches/kleopatra/lower-kf5-required.patch \
patches/kleopatra/fix-qt5.6-build.patch \
patches/libgpg-error-1.21/0001-Add-FD_ISSET-replacement-for-Windows.patch \
patches/gpgex-1.0.4/0001-Prefer-kleowrapped-gpgwrapped-binaries.patch \
- patches/libkleo/lower-kf5-required.patch \
patches/gpgex-1.0.4/0002-Fix-loop-logic-error-in-new-server-name-detection.patch \
patches/extra-cmake-modules/0001-Use-BIN_INSTALL_DIR-data-for-DATAROOTDIR-on-Windows.patch \
patches/gpa-0.9.10/0001-w32-Make-location-of-locale-dir-more-flexible.patch
copy-news:
cp NEWS doc/website/NEWS.last
copy-release: gpg4win-$(VERSION).tar.bz2 installers/gpg4win-$(VERSION).exe \
installers/gpg4win-light-$(VERSION).exe \
installers/gpg4win-vanilla-$(VERSION).exe
@echo Copying $(VERSION) to $(RELEASEHOST) >&2
@set -e;\
if ssh "$$(echo $(RELEASEHOST)|cut -d: -f -1)" \
test -f "$$(echo $(RELEASEHOST)/gpg4win-$(VERSION).exe|cut -d: -f2-)";\
then echo "This release has already been copied to the server" >&2 ;\
else scp gpg4win-$(VERSION).tar.bz2 \
installers/gpg4win-$(VERSION).exe \
installers/gpg4win-light-$(VERSION).exe \
installers/gpg4win-vanilla-$(VERSION).exe \
installers/gpg4win-src-$(VERSION).exe $(RELEASEHOST)/ ;\
for f in en de ; do \
scp src/README.$$f.txt \
$(RELEASEHOST)/README-$(VERSION).$$f.txt; \
done;\
fi
dist-hook: gen-ChangeLog
gen_start_date = 2012-03-26T00:00:00
.PHONY: gen-ChangeLog
gen-ChangeLog:
set -e; \
if test -d $(top_srcdir)/.git; then \
(cd $(top_srcdir) && \
$(GITLOG_TO_CHANGELOG) --append-dot --tear-off \
--amend=build-aux/git-log-fix \
--since=$(gen_start_date) ) > $(distdir)/cl-t; \
cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\
rm -f $(distdir)/ChangeLog; \
mv $(distdir)/cl-t $(distdir)/ChangeLog; \
fi
diff --git a/patches/kleopatra/lower-kf5-required.patch b/patches/kleopatra/lower-kf5-required.patch
deleted file mode 100755
index b9a3f0d0..00000000
--- a/patches/kleopatra/lower-kf5-required.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-#! /bin/sh
-patch -p1 -l -f $* < $0
-exit $?
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 855a4aff..8d2767b8 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -6,10 +6,10 @@ option(FORCE_DISABLE_KCMUTILS "Force building Kleopatra without KCMUtils. Doing
- option(DISABLE_KWATCHGNUPG "Don't build the kwatchgnupg tool [default=OFF]" OFF)
-
- # Standalone build. Find / include everything necessary.
--set(KF5_VERSION "5.37.0")
--set(KMIME_VERSION "5.6.40")
--set(LIBKLEO_VERSION "5.6.40")
--set(QT_REQUIRED_VERSION "5.8.0")
-+set(KF5_VERSION "5.20.0")
-+set(KMIME_VERSION "5.2.40")
-+set(LIBKLEO_VERSION "5.4.40")
-+set(QT_REQUIRED_VERSION "5.7.0")
- set(GPGME_REQUIRED_VERSION "1.8.0")
-
- option(RUN_UNINSTALL "test run uninstalled apps (experimental)" FALSE)
diff --git a/patches/libkleo/lower-kf5-required.patch b/patches/libkleo/lower-kf5-required.patch
deleted file mode 100755
index bea30a7d..00000000
--- a/patches/libkleo/lower-kf5-required.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-#! /bin/sh
-patch -p1 -l -f $* < $0
-exit $?
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7223ab9..754088c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 2.8.12)
-
- project(libkleo)
-
--set(KF5_VERSION "5.35.0")
-+set(KF5_VERSION "5.25.0")
- find_package(ECM ${KF5_VERSION} CONFIG REQUIRED)
- set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
- set(LIBRARY_NAMELINK)
diff --git a/src/gpg4win.mk.in b/src/gpg4win.mk.in
index 2cd8c7e1..c8c71e74 100644
--- a/src/gpg4win.mk.in
+++ b/src/gpg4win.mk.in
@@ -1,757 +1,763 @@
# gpg4win.m4.in - Installer for GnuPG 4 Windows Makefile. -*- makefile -*-
# Copyright (C) 2005, 2009 g10 Code GmbH
#
# This file is part of GPG4Win.
#
# GPG4Win 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 2 of the License, or
# (at your option) any later version.
#
# GPG4Win 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
# No servicable parts below this line :)
# These paths must be absolute, as we switch directories pretty often.
root := $(shell pwd)/playground
bdir := $(root)/build
idir := $(root)/install
ipdir := $(root)/install/pkgs
tsdir := $(shell pwd)/${top_srcdir}
pdir := $(shell pwd)/${top_srcdir}/patches
ex_idir := $(root)/install-ex
ex_ipdir := $(root)/install-ex/pkgs
# We collect the names of all pkg files used.
pkg_files =
# The playground area is our scratch area, where we unpack, build and
# install the packages.
stamps/stamp-directories:
$(MKDIR) stamps
$(MKDIR) playground
$(MKDIR) -p installers
$(MKDIR) $(bdir)
$(MKDIR) $(idir)
$(MKDIR) $(ipdir)
$(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_idir))
$(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_ipdir))
touch $(bdir)/versioninfo.txt
touch stamps/stamp-directories
# Frob the name $1 by converting all '-' and '+' characters to '_'.
define FROB_macro
$(subst +,_,$(subst -,_,$(1)))
endef
# Get the variable $(1) (which may contain '-' and '+' characters).
define GETVAR
$($(call FROB_macro,$(1)))
endef
# Set a couple of common variables.
define SETVARS
set -e; \
pkg="$(call GETVAR,gpg4win_pkg_$(1))"; \
pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgsdir="$(bdir)/$$$${pkg_version}"; \
pkgbdir="$(bdir)/$$$${pkg_version}-build"; \
pkgpdir="$(pdir)/$$$${pkg_version}"; \
pkgpbdir="$(pdir)/$(1)"; \
pkgidir="$(ipdir)/$$$${pkg_version}"; \
pkg_dev="$(call GETVAR,gpg4win_pkg_$(1)_dev)"; \
pkg_version_dev="$(1)-dev-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}"; \
pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_configure)"; \
pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_extracflags)"; \
pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_make_args)"; \
pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_args_inst)";\
pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \
pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \
export PKG_CONFIG="$(tsdir)/src/pkg-config"; \
export PKG_CONFIG_PATH="$(idir)/lib/pkgconfig"; \
export PKG_CONFIG_LIBDIR=""; \
export PATH="$(idir)/bin:$${PATH}"; \
export SYSROOT="$(idir)"; \
export CONFIG_SITE="$(tsdir)/src/config.site"
endef
# Set variables for building in an additional architecture
define SETVARS_EX
set -e; \
pkg="$(call GETVAR,gpg4win_pkg_$(1))"; \
pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \
pkgsdir="$(bdir)/$$$${pkg_version}"; \
pkgbdir="$(bdir)/$$$${pkg_version}-ex-build"; \
pkgpdir="$(pdir)/$$$${pkg_version}"; \
pkgpbdir="$(pdir)/$(1)"; \
pkgidir="$(ex_ipdir)/$$$${pkg_version}"; \
pkgidir_dev="$(ex_ipdir)/$$$${pkg_version_dev}"; \
pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_ex_configure)"; \
pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_ex_extracflags)"; \
pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args)"; \
pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args_inst)"; \
pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \
pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \
export PKG_CONFIG="$(tsdir)/src/pkg-config"; \
export PKG_CONFIG_PATH="$(ex_idir)/lib/pkgconfig"; \
export PKG_CONFIG_LIBDIR=""; \
export PATH="$(ex_idir)/bin:$${PATH}"; \
export SYSROOT="$(ex_idir)"
endef
# Support macro. Unpack the archive $(1).
define DEFLATE_macro
rm -rf $$$${pkgsdir}; \
case "$(1)" in \
*/qtbase*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtbase-opensource-src,qtbase,' -f "$(1)" ;; \
*/qttools*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qttools-opensource-src,qttools,' -f "$(1)" ;; \
*/qtwinextras*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtwinextras-opensource-src,qtwinextras,' -f "$(1)" ;; \
*/qtsvg*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qtsvg-opensource-src,qtsvg,' -f "$(1)" ;; \
*/qttranslations*.*.tar.xz) \
$(TAR) -xJ --transform='s,^qttranslations-opensource-src,qttranslations,' -f "$(1)" ;; \
*/boost*.*.tar.bz2) \
$(TAR) -xj --transform='s,^boost_1_60_0,boost-1.60.0,' -f "$(1)" ;; \
*.tar.gz | *.tgz) \
$(TAR) xzf "$(1)" ;; \
*.tar.bz2 | *.tbz2 | *.tbz) \
$(TAR) xjf "$(1)" ;; \
*.tar.xz ) \
$(TAR) xJf "$(1)" ;; \
*.exe ) \
cp "$(1)" . ;; \
*.zip) \
$(UNZIP) -o "$(1)" ;; \
esac
endef
# Support macro. Strip all exe files below $(1).
define STRIP_macro
if test -z '$(DEBUG)'; then \
(cd $(1); \
for f in `find . -name \*.exe -o -name \*.dll`; do \
echo Calling $(STRIP) "$$$${pkg_version}/$$$${f}"; \
$(STRIP) "$$$${f}"; done); \
fi
endef
# Support macro. Strip all exe files below $(1) using STRIP_EX.
define STRIP_EX_macro
if test -z '$(DEBUG)'; then \
(cd $(1); \
for f in `find . -name \*.exe -o -name \*.dll`; do \
echo Calling $(STRIP_EX) "$$$${pkg_version}/$$$${f}"; \
$(STRIP_EX) "$$$${f}"; done); \
fi
endef
define GETDEPS
$(addprefix stamps/stamp-final-, $(call GETVAR,gpg4win_pkg_$(1)_deps))
endef
define GETDEPS_EX
$(addprefix stamps/stamp-final-ex-, $(call GETVAR,gpg4win_pkg_$(1)_deps))
endef
# Template for source packages to build for an additional host
define EXPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-ex-00-unpack: stamps/stamp-$(1)-00-unpack
touch stamps/stamp-$(1)-ex-00-unpack
stamps/stamp-$(1)-ex-01-patch: stamps/stamp-$(1)-ex-00-unpack stamps/stamp-$(1)-01-patch
touch stamps/stamp-$(1)-ex-01-patch
stamps/stamp-$(1)-ex-02-configure: stamps/stamp-$(1)-ex-01-patch
($(call SETVARS_EX,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
eval "../$$$${pkg_version}/configure" \
--prefix="$$$${pkgidir}" \
--host=$(GPGEX_ADD_HOST) \
--build=$(build) \
$$$${pkgcfg} CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\";\
shopt -s nullglob; \
for pfile in "$$$${pkgpbdir}"/*.postcfg \
"$$$${pkgpdir}"/*.postcfg ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done; \
for pfile in "$$$${pkgpbdir}"/*.postcfg-build \
"$$$${pkgpdir}"/*.postcfg-build ; do \
(cd "$$$${pkgbdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-ex-02-configure
stamps/stamp-$(1)-ex-03-make: stamps/stamp-$(1)-ex-02-configure
($(call SETVARS_EX,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs} \
)
touch stamps/stamp-$(1)-ex-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
stamps/stamp-$(1)-ex-04-install: stamps/stamp-$(1)-ex-03-make
($(call SETVARS_EX,$(1)); \
cd "$$$${pkgbdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_EX_macro,"$$$${pkgidir}"); \
rm -f "$$$${pkgidir}/share/info/dir"; \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_ex_post_install))
touch stamps/stamp-$(1)-ex-04-install
stamps/stamp-$(1)-ex-05-stow: stamps/stamp-$(1)-ex-04-install
($(call SETVARS_EX,$(1)); \
cd $(ex_ipdir); \
$(STOW) -t `readlink -f $(ex_idir)` "$$$${pkg_version}")
touch stamps/stamp-$(1)-ex-05-stow
stamps/stamp-final-ex-$(1): stamps/stamp-$(1)-ex-05-stow
touch stamps/stamp-final-ex-$(1)
.PHONY : clean-ex-$(1)
clean-ex-$(1):
($(call SETVARS_EX,$(1)); \
(cd $(ex_ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f stamps/stamp-final-ex-$(1) stamps/stamp-$(1)-ex-*
endef
define EXPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call EXPKG_template_,$1))
endef
# Template for source packages.
define SPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-unpack
stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-01-patch
stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
eval "../$$$${pkg_version}/configure" \
--prefix="$$$${pkgidir}" \
--host=$(host) \
--build=$(build) \
$$$${pkgcfg} CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\";\
shopt -s nullglob; \
for pfile in "$$$${pkgpbdir}"/*.postcfg \
"$$$${pkgpdir}"/*.postcfg ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done; \
for pfile in "$$$${pkgpbdir}"/*.postcfg-build \
"$$$${pkgpdir}"/*.postcfg-build ; do \
(cd "$$$${pkgbdir}"; "$$$${pfile}") \
done;) && \
touch stamps/stamp-$(1)-02-configure
stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch stamps/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
cd "$$$${pkgmkdir_inst}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
rm -f "$$$${pkgidir}/share/info/dir"; \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch stamps/stamp-$(1)-04-install
stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-05-stow
stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
define SPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call SPKG_template_,$1))
endef
# Template for source packages using only make and no build
# directory.
define MPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-unpack
stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-01-patch
stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
cd "$$$${pkgsdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs})
touch stamps/stamp-$(1)-03-make
stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgsdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch stamps/stamp-$(1)-04-install
stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-05-stow
stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}")
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
define MPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call MPKG_template_,$1))
endef
# Template for binary packages.
define BPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
pkg_files += $(call GETVAR,gpg4win_pkg_$(1)_dev)
stamps/stamp-$(1)-00-install: stamps/stamp-directories $(call GETDEPS,$(1))
($(call SETVARS,$(1)); \
$(MKDIR) "$$$${pkgidir}"; \
cd $$$${pkgidir}; \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-install
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
stamps/stamp-$(1)-01-install-dev: stamps/stamp-$(1)-00-install
($(call SETVARS,$(1)); \
$(MKDIR) "$$$${pkgidir_dev}"; \
(cd $$$${pkgidir_dev}; \
$(call DEFLATE_macro,$$$${pkg_dev})); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch stamps/stamp-$(1)-01-install-dev
stamps/stamp-$(1)-02-stow: stamps/stamp-$(1)-01-install-dev
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-02-stow
stamps/stamp-$(1)-03-stow-dev: stamps/stamp-$(1)-02-stow
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version_dev}")
touch stamps/stamp-$(1)-03-stow-dev
stamps/stamp-final-$(1): stamps/stamp-$(1)-03-stow-dev
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
$(STOW) -D "$$$${pkg_version_dev}"; \
rm -fR "$$$${pkg_version}" "$$$${pkg_version_dev}"))
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
define BPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call BPKG_template_,$1))
endef
# Template for qt packages.
define QTPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-unpack
stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-01-patch
stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
$$$${pkgcfg}) && \
touch stamps/stamp-$(1)-02-configure
stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch stamps/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch stamps/stamp-$(1)-04-install
stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-05-stow
stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
define QTPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call QTPKG_template_,$1))
endef
# Template for internal packages.
define IPKG_template
stamps/stamp-final-$(1): stamps/stamp-directories $(call GETDEPS,$(1))
touch stamps/stamp-final-$(1)
endef
# Template for README files
# (The final awk command converts the file endings).
define README_template
README.$(1).txt : versioninfo.txt NEWS.tmp $(top_srcdir)/doc/README.$(1).txt \
COMPONENTS-list.tmp $(top_srcdir)/doc/beta-warning.txt
sed -e '/^;.*/d;/!VERSIONINFO!/{r versioninfo.txt' -e 'd;}' \
-e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \
-e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \
-e '/!COMPONENTS!/{r COMPONENTS-list.tmp' -e 'd;}' \
-e '/!PKG-COPYRIGHT!/{r $(top_srcdir)/doc/pkg-copyright.txt' -e 'd;}' \
-e 's,!VERSION!,$(VERSION),g' \
-e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \
< $(top_srcdir)/doc/README.$(1).txt \
| (if echo "$(VERSION)" | egrep 'svn|rc|beta|git' >/dev/null; then \
sed -e '/!BETA-WARNING!/{r $(top_srcdir)/doc/beta-warning.txt' \
-e 'd;}'; else sed -e 's,!BETA-WARNING!,,g'; fi) \
| awk '{printf "%s\r\n", $$$$0}' >README.$(1).txt
endef
define HOWTO_template
HOWTO-$(1).$(2).txt : $(top_srcdir)/doc/HOWTO-$(1).$(2).txt
sed -e '/^;.*/d' \
-e 's,!VERSION!,$(VERSION),g' \
-e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \
< $(top_srcdir)/doc/HOWTO-$(1).$(2).txt \
| awk '{printf "%s\r\n", $$$$0}' > HOWTO-$(1).$(2).txt
endef
# Special Template for boost.
define BOOST_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-unpack
stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-01-patch
stamps/stamp-$(1)-02-build: stamps/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
cd $$$${pkgsdir}/tools/build/; \
./bootstrap.sh; \
cd $$$${pkgsdir}; \
echo "using gcc : mxe : $(host)-g++ : $(host)-windres $(host)-ar $(host)-ranlib ;" > "user-config.jam"; \
./tools/build/b2 \
-a \
-q \
'$(GPG4WIN_PARALLEL)' \
--ignore-site-config \
--user-config=user-config.jam \
abi=ms \
address-model=32 \
architecture=x86 \
binary-format=pe \
link=shared \
target-os=windows \
threadapi=win32 \
threading=multi \
variant=release \
toolset=gcc-mxe \
cxxflags=-std=gnu++98 \
--layout=tagged \
--disable-icu \
--without-mpi \
--without-python \
--prefix=$$$${pkgidir} \
--exec-prefix=$$$${pkgidir}/bin \
--libdir=$$$${pkgidir}/lib \
--includedir=$$$${pkgidir}/include \
-sEXPAT_INCLUDE='$(idir)/include' \
-sEXPAT_LIBPATH='$(idir)/lib' \
-sBZIP2_INCLUDE='$(idir)/include' \
-sBZIP2_LIBPATH='$(idir)/lib' \
install) && \
touch stamps/stamp-$(1)-02-build
stamps/stamp-$(1)-03-stow: stamps/stamp-$(1)-02-build
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-03-stow
stamps/stamp-final-$(1): stamps/stamp-$(1)-03-stow
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
# Template for source packages of KDE software
define KDEPKG_template_
pkg_files += $(call GETVAR,gpg4win_pkg_$(1))
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1))
(cd $(bdir); \
$(call SETVARS,$(1)); \
$(call DEFLATE_macro,$$$${pkg}))
touch stamps/stamp-$(1)-00-unpack
stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack
(shopt -s nullglob; \
$(call SETVARS,$(1)); \
+ cd "$$$${pkgsdir}"; \
+ sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.30.0")/' CMakeLists.txt; \
+ sed -i 's/set(KMIME_VERSION.*)/set(KMIME_VERSION "5.2.40")/' CMakeLists.txt; \
+ sed -i 's/set(LIBKLEO_VERSION.*)/set(LIBKLEO_VERSION "5.4.40")/' CMakeLists.txt; \
+ sed -i 's/set(QT_REQUIRED_VERSION.*)/set(QT_REQUIRED_VERSION "5.7.0")/' CMakeLists.txt; \
+ sed -i 's/set(GPGME_REQUIRED_VERSION.*)/set(GPGME_REQUIRED_VERSION "1.8.0")/' CMakeLists.txt; \
for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \
(cd "$$$${pkgsdir}"; "$$$${pfile}") \
done)
touch stamps/stamp-$(1)-01-patch
stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch
($(call SETVARS,$(1)); \
mkdir "$$$${pkgbdir}"; \
cd "$$$${pkgbdir}"; \
cmake \
-DCMAKE_INSTALL_PREFIX="$$$${pkgidir}" \
-DCMAKE_PREFIX_PATH="$$$${pkgidir}" \
-DCMAKE_TOOLCHAIN_FILE=$(abs_top_srcdir)/src/toolchain.cmake \
-DKDE_INSTALL_DATADIR="$$$${pkgidir}/share" \
-DBUILD_TESTING=False \
$$$${pkgcfg} $$$${pkgextracflags} "../$$$${pkg_version}") && \
touch stamps/stamp-$(1)-02-configure
stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \
$(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs})
touch stamps/stamp-$(1)-03-make
# Note that post_install must come last because it may be empty and
# "; ;" is a syntax error.
stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make
($(call SETVARS,$(1)); \
cd "$$$${pkgbdir}"; \
cd "$$$${pkgmkdir_inst}"; \
$(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \
$(call STRIP_macro,"$$$${pkgidir}"); \
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
touch stamps/stamp-$(1)-04-install
stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install
($(call SETVARS,$(1)); \
cd $(ipdir); \
$(STOW) "$$$${pkg_version}")
touch stamps/stamp-$(1)-05-stow
stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow
touch stamps/stamp-final-$(1)
.PHONY : clean-$(1)
clean-$(1):
($(call SETVARS,$(1)); \
(cd $(ipdir) && \
($(STOW) -D "$$$${pkg_version}"; \
rm -fR "$$$${pkg_version}")); \
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
endef
define KDEPKG_template
$(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))),
$(call KDEPKG_template_,$1))
endef
# Insert the template for each source package.
$(foreach spkg, $(gpg4win_spkgs), $(eval $(call SPKG_template,$(spkg))))
# Insert the template for each gpgEx architecture package.
$(foreach expkg, $(gpg4win_expkgs), $(eval $(call EXPKG_template,$(expkg))))
# Insert the template for each make only source package.
$(foreach mpkg, $(gpg4win_mpkgs), $(eval $(call MPKG_template,$(mpkg))))
# Insert the template for each binary package.
$(foreach bpkg, $(gpg4win_bpkgs), $(eval $(call BPKG_template,$(bpkg))))
# Insert the template for each internal package.
$(foreach ipkg, $(gpg4win_ipkgs), $(eval $(call IPKG_template,$(ipkg))))
# Insert the template for the README and HOWTO files.
$(foreach rll, $(gpg4win_readme_ll), $(eval $(call README_template,$(rll))))
# Insert the template for KDE packages.
$(foreach kdepkg, $(gpg4win_kdepkgs), $(eval $(call KDEPKG_template,$(kdepkg))))
# Insert the template for qt packages.
$(foreach qtpkg, $(gpg4win_qtpkgs), $(eval $(call QTPKG_template,$(qtpkg))))
$(foreach rll, $(gpg4win_howto_smime_ll), \
$(eval $(call HOWTO_template,SMIME,$(rll))))
$(eval $(call BOOST_template_,boost))
stamps/stamp-final: stamps/stamp-directories
stamps/stamp-final: $(addprefix stamps/stamp-final-,$(gpg4win_build_list)) \
$(addprefix stamps/stamp-final-ex-,$(gpg4win_build_ex_list))
touch stamps/stamp-final
$(bdir)/versioninfo.txt: stamps/stamp-final
touch $(bdir)/versioninfo.txt
all-gpg4win: stamps/stamp-final
# Just to check if we catched all stamps.
clean-stamps:
$(RM) -fR $(stamps)
clean-gpg4win:
$(RM) -fR playground stamps
.PHONY : all-gpg4win clean-stamps clean-gpg4win
# @emacs_local_vars_begin@
# @emacs_local_vars_read_only@
# @emacs_local_vars_end@