aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/gpg-w32-dev/GNUmakefile
blob: 10ba92f62a1a7dabc94b9ead396bd41433cc14a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# Makefile - Makefile for speedo
# Copyright (C) 2008 g10 Code GmbH
# 
# This file is part of speedo.
# 
# speedo 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.
# 
# speedo 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/>.

# speedo builds gnupg-related packages from SVN and installs them in a
# user directory, thereby providing a non-obstrusive test environment.
# The build system is similar to that of gpg4win.  The following commands
# are supported:
#
# make all  or  make
#
# Builds all packages and installs them under playground/install.
# At the end, speedo prints commands that can be executed in the local shell
# to make use of the installed packages.
#
# make clean  or  make clean-PACKAGE
#
# Removes all packages or the package PACKAGE from the installation
# and build tree.  A subsequent make will rebuild these (and only
# these) packages.
#
# make report  or make report-PACKAGE
#
# Lists packages and versions.
#
# make dist
# 
# Create a development ZIP archive.


# --------

# The packages that should be built.  The order is also the build order.
speedo_spkgs = libgpg-error libgcrypt libassuan libksba gpgme

# For each package, the following variables can be defined:
#
# speedo_pkg_PACKAGE_svn: The SVN repository that should be built.
# Branches or specific revisions can also be specified.
#
# speedo_pkg_PACKAGE_tar: URL to the tar file that should be built.
# 
# Exactly one of the above variables is required.  Note that this
# version of speedo does not cache repositories or tar files, and does
# not test the integrity of the downloaded software.  If you care
# about this, you can also specify filenames to locally verified files.
# Filenames are differentiated from URLs by starting with a slash '/'.
#
# speedo_pkg_PACKAGE_configure: Extra arguments to configure.
#
# speedo_pkg_PACKAGE_make_args: Extra arguments to make.
#
# speedo_pkg_PACKAGE_make_args_inst: Extra arguments to make install.
#
# Note that you can override the defaults in this file in a local file
# "config.mk"

# Set this to "svn" or "release".
WHAT=release

ifeq ($(WHAT),svn)
  svnrep = svn://cvs.gnupg.org/
  speedo_pkg_libgpg_error_svn = $(svnrep)/libgpg-error/trunk
  speedo_pkg_libassuan_svn = $(svnrep)/libassuan/trunk
  speedo_pkg_libgcrypt_svn = $(svnrep)/libgcrypt/trunk
  speedo_pkg_libksba_svn = $(svnrep)/libksba/trunk
  speedo_pkg_gpgme_svn = $(svnrep)/gpgme/trunk
else
  pkgrep = ftp://ftp.gnupg.org/gcrypt
  speedo_pkg_libgpg_error_tar = $(pkgrep)/libgpg-error/libgpg-error-1.8.tar.bz2
  speedo_pkg_libassuan_tar = $(pkgrep)/libassuan/libassuan-2.0.0.tar.bz2
  speedo_pkg_libgcrypt_tar = $(pkgrep)/libgcrypt/libgcrypt-1.4.6.tar.bz2
  speedo_pkg_libksba_tar = $(pkgrep)/libksba/libksba-1.0.7.tar.bz2
  speedo_pkg_gpgme_tar = $(pkgrep)/gpgme/gpgme-1.3.0.tar.bz2
endif

speedo_pkg_gnupg_configure = --with-pinentry-pgm=$(idir)/bin/pinentry \
  --with-dirmngr-pgm=$(idir)/bin/dirmngr

speedo_pkg_dirmngr_configure = --localstatedir=/var --sysconfdir=/etc \
  --with-libgcrypt-prefix=$(idir) --with-gpg-error-prefix=$(idir) \
  --with-libassuan-prefix=$(idir) --with-libksba-prefix=$(idir)

speedo_pkg_gpgme_configure = --with-gpg=$(idir)/bin/gpg2	\
	--with-gpgsm=$(idir)/bin/gpgsm				\
	--with-gpgconf=$(idir)/bin/gpgconf

speedo_pkg_pinentry_configure = --disable-pinentry-qt4

speedo_pkg_libgcrypt_configure = --disable-static

speedo_pkg_libksba_configure = --disable-static


# ---------

all: all-speedo
	@echo export PATH=\"$(idir)/bin\":\$$PATH
	@echo export LD_LIBRARY_PATH=\"$(idir)/lib\":\$$LD_LIBRARY_PATH
	@echo hash -r

report: report-speedo

clean: clean-speedo


dist: all
	set -e; date=$$(date -u +%Y%m%d); pkgname=gpg-w32-dev-$$date; \
	rm -rf $$pkgname $${pkgname}.zip || true; \
	cp -rL playground/install $${pkgname}; \
	rm -r $${pkgname}/share/info || true; \
	mkdir -p $${pkgname}/share/doc/gpg-w32-dev ;\
	echo "Included versions:" > $${pkgname}/README.txt ; \
	echo ""                   >> $${pkgname}/README.txt ; \
	$(MAKE) --no-print-directory report \
              | awk '{print $$2}' >> $${pkgname}/README.txt ; \
	cp GNUmakefile speedo.mk $${pkgname}/README.txt \
                  $${pkgname}/share/doc/gpg-w32-dev/ ; \
	i586-mingw32msvc-strip $${pkgname}/bin/*.dll ; \
	zip -r9 $${pkgname}.zip $${pkgname} >/dev/null ; \
	rm -rf $$pkgname; \
	echo "$$pkgname.zip ready for distribution" >&2


speedo_build_list = $(speedo_spkgs)

-include config.mk
include speedo.mk