Add makefiles to build a w32 development package.
[gnupg.git] / scripts / gpg-w32-dev / GNUmakefile
1 # Makefile - Makefile for speedo
2 # Copyright (C) 2008 g10 Code GmbH
3
4 # This file is part of speedo.
5
6 # speedo is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
10
11 # speedo is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
15
16 # You should have received a copy of the GNU General Public License
17 # along with this program; if not, see <http://www.gnu.org/licenses/>.
18
19 # speedo builds gnupg-related packages from SVN and installs them in a
20 # user directory, thereby providing a non-obstrusive test environment.
21 # The build system is similar to that of gpg4win.  The following commands
22 # are supported:
23 #
24 # make all  or  make
25 #
26 # Builds all packages and installs them under playground/install.
27 # At the end, speedo prints commands that can be executed in the local shell
28 # to make use of the installed packages.
29 #
30 # make clean  or  make clean-PACKAGE
31 #
32 # Removes all packages or the package PACKAGE from the installation
33 # and build tree.  A subsequent make will rebuild these (and only
34 # these) packages.
35 #
36 # make report  or make report-PACKAGE
37 #
38 # Lists packages and versions.
39 #
40 # make dist
41
42 # Create a development ZIP archive.
43
44
45 # --------
46
47 # The packages that should be built.  The order is also the build order.
48 speedo_spkgs = libgpg-error libgcrypt libassuan libksba gpgme
49
50 # For each package, the following variables can be defined:
51 #
52 # speedo_pkg_PACKAGE_svn: The SVN repository that should be built.
53 # Branches or specific revisions can also be specified.
54 #
55 # speedo_pkg_PACKAGE_tar: URL to the tar file that should be built.
56
57 # Exactly one of the above variables is required.  Note that this
58 # version of speedo does not cache repositories or tar files, and does
59 # not test the integrity of the downloaded software.  If you care
60 # about this, you can also specify filenames to locally verified files.
61 # Filenames are differentiated from URLs by starting with a slash '/'.
62 #
63 # speedo_pkg_PACKAGE_configure: Extra arguments to configure.
64 #
65 # speedo_pkg_PACKAGE_make_args: Extra arguments to make.
66 #
67 # speedo_pkg_PACKAGE_make_args_inst: Extra arguments to make install.
68 #
69 # Note that you can override the defaults in this file in a local file
70 # "config.mk"
71
72 # Set this to "svn" or "release".
73 WHAT=release
74
75 ifeq ($(WHAT),svn)
76   svnrep = svn://cvs.gnupg.org/
77   speedo_pkg_libgpg_error_svn = $(svnrep)/libgpg-error/trunk
78   speedo_pkg_libassuan_svn = $(svnrep)/libassuan/trunk
79   speedo_pkg_libgcrypt_svn = $(svnrep)/libgcrypt/trunk
80   speedo_pkg_libksba_svn = $(svnrep)/libksba/trunk
81   speedo_pkg_gpgme_svn = $(svnrep)/gpgme/trunk
82 else
83   pkgrep = ftp://ftp.gnupg.org/gcrypt
84   speedo_pkg_libgpg_error_tar = $(pkgrep)/libgpg-error/libgpg-error-1.8.tar.bz2
85   speedo_pkg_libassuan_tar = $(pkgrep)/libassuan/libassuan-2.0.0.tar.bz2
86   speedo_pkg_libgcrypt_tar = $(pkgrep)/libgcrypt/libgcrypt-1.4.5.tar.bz2
87   speedo_pkg_libksba_tar = $(pkgrep)/libksba/libksba-1.0.7.tar.bz2
88   speedo_pkg_gpgme_tar = $(pkgrep)/gpgme/gpgme-1.3.0.tar.bz2
89 endif
90
91 speedo_pkg_gnupg_configure = --with-pinentry-pgm=$(idir)/bin/pinentry \
92   --with-dirmngr-pgm=$(idir)/bin/dirmngr
93
94 speedo_pkg_dirmngr_configure = --localstatedir=/var --sysconfdir=/etc \
95   --with-libgcrypt-prefix=$(idir) --with-gpg-error-prefix=$(idir) \
96   --with-libassuan-prefix=$(idir) --with-libksba-prefix=$(idir)
97
98 speedo_pkg_gpgme_configure = --with-gpg=$(idir)/bin/gpg2        \
99         --with-gpgsm=$(idir)/bin/gpgsm                          \
100         --with-gpgconf=$(idir)/bin/gpgconf
101
102 speedo_pkg_pinentry_configure = --disable-pinentry-qt4
103
104 speedo_pkg_libgcrypt_configure = --disable-static
105
106 speedo_pkg_libksba_configure = --disable-static
107
108
109 # ---------
110
111 all: all-speedo
112         @echo export PATH=\"$(idir)/bin\":\$$PATH
113         @echo export LD_LIBRARY_PATH=\"$(idir)/lib\":\$$LD_LIBRARY_PATH
114         @echo hash -r
115
116 report: report-speedo
117
118 clean: clean-speedo
119
120
121 dist: all
122         set -e; date=$$(date -u +%Y%m%d); pkgname=gpg-w32-dev-$$date; \
123         rm -rf $$pkgname $${pkgname}.zip || true; \
124         cp -rL playground/install $${pkgname}; \
125         rm -r $${pkgname}/share/info || true; \
126         mkdir -p $${pkgname}/share/doc/gpg-w32-dev ;\
127         echo "Included versions:" > $${pkgname}/README.txt ; \
128         echo ""                   >> $${pkgname}/README.txt ; \
129         $(MAKE) --no-print-directory report \
130               | awk '{print $$2}' >> $${pkgname}/README.txt ; \
131         cp GNUmakefile speedo.mk $${pkgname}/README.txt \
132                   $${pkgname}/share/doc/gpg-w32-dev/ ; \
133         i586-mingw32msvc-strip $${pkgname}/bin/*.dll ; \
134         zip -r9 $${pkgname}.zip $${pkgname} >/dev/null ; \
135         rm -rf $$pkgname; \
136         echo "$$pkgname.zip ready for distribution" >&2
137
138
139 speedo_build_list = $(speedo_spkgs)
140
141 -include config.mk
142 include speedo.mk