mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
Improve the speedo make script.
* scripts/gpg-w32-dev/README: Remove * scripts/gpg-w32-dev/GNUmakefile, scripts/gpg-w32-dev/speedo.mk: Merge into .. * scripts/speedo.mk: this. -- Speedo may now be used to build from GIT or tarballs and has a couple of other improvements as well. For best results the autogen.sh files of all source package should be updated to the one used in gnupg. Signed-off-by: Werner Koch <wk@gnupg.org>
This commit is contained in:
parent
5be8454480
commit
a55ffb9da9
@ -26,7 +26,8 @@ GITLOG_TO_CHANGELOG=gitlog-to-changelog
|
|||||||
EXTRA_DIST = scripts/config.rpath scripts/potomo autogen.sh README.GIT \
|
EXTRA_DIST = scripts/config.rpath scripts/potomo autogen.sh README.GIT \
|
||||||
ChangeLog-2011 po/ChangeLog-2011 scripts/ChangeLog-2011 \
|
ChangeLog-2011 po/ChangeLog-2011 scripts/ChangeLog-2011 \
|
||||||
scripts/gitlog-to-changelog \
|
scripts/gitlog-to-changelog \
|
||||||
scripts/git-log-fix scripts/git-log-footer
|
scripts/git-log-fix scripts/git-log-footer \
|
||||||
|
scripts/speedo.mk
|
||||||
DISTCLEANFILES = g10defs.h
|
DISTCLEANFILES = g10defs.h
|
||||||
|
|
||||||
if BUILD_GPGSM
|
if BUILD_GPGSM
|
||||||
|
@ -1,142 +0,0 @@
|
|||||||
# 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
|
|
@ -1,6 +0,0 @@
|
|||||||
These makefiles are used to build a simple development package of
|
|
||||||
GnuPG related libraries for Windoze. The ZIP archive includes only
|
|
||||||
the binaries, import libraries and header files. On a file server you
|
|
||||||
should keep the original source tarballs close to the archive file and
|
|
||||||
explain where to find the sources. GNU make is required.
|
|
||||||
|
|
@ -1,168 +0,0 @@
|
|||||||
# speedo.mk - Speedo rebuilds speedily.
|
|
||||||
# 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/>.
|
|
||||||
|
|
||||||
MKDIR=mkdir
|
|
||||||
STOW=stow
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# The playground area is our scratch area, where we unpack, build and
|
|
||||||
# install the packages.
|
|
||||||
stamps/stamp-directories:
|
|
||||||
$(MKDIR) stamps
|
|
||||||
$(MKDIR) playground
|
|
||||||
$(MKDIR) $(bdir)
|
|
||||||
$(MKDIR) $(idir)
|
|
||||||
#$(MKDIR) $(ipdir)
|
|
||||||
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
|
|
||||||
pkg="$(1)"; \
|
|
||||||
svn="$(call GETVAR,speedo_pkg_$(1)_svn)"; \
|
|
||||||
tar="$(call GETVAR,speedo_pkg_$(1)_tar)"; \
|
|
||||||
pkgsdir="$(bdir)/$(1)"; \
|
|
||||||
pkgbdir="$(bdir)/$(1)-build"; \
|
|
||||||
pkgidir="$(ipdir)/$(1)"; \
|
|
||||||
pkgcfg="$(call GETVAR,speedo_pkg_$(1)_configure)"; \
|
|
||||||
pkgmkargs="$(call GETVAR,speedo_pkg_$(1)_make_args)"; \
|
|
||||||
pkgmkargs_inst="$(call GETVAR,speedo_pkg_$(1)_make_args_inst)"; \
|
|
||||||
export PATH="$(idir)/bin:$${PATH}"; \
|
|
||||||
export LD_LIBRARY_PATH="$(idir)/lib:$${LD_LIBRARY_PATH}"
|
|
||||||
endef
|
|
||||||
|
|
||||||
|
|
||||||
# Template for source packages.
|
|
||||||
|
|
||||||
define SPKG_template
|
|
||||||
|
|
||||||
stamps/stamp-$(1)-00-unpack: stamps/stamp-directories
|
|
||||||
(cd $(bdir); \
|
|
||||||
$(call SETVARS,$(1)); \
|
|
||||||
if [ -n "$$$${svn}" ]; then \
|
|
||||||
svn checkout "$$$${svn}" "$$$${pkg}"; \
|
|
||||||
cd "$$$${pkg}"; \
|
|
||||||
./autogen.sh; \
|
|
||||||
elif [ -n "$$$${tar}" ]; then \
|
|
||||||
case "$$$${tar}" in \
|
|
||||||
(*.gz) opt=z ;; \
|
|
||||||
(*.bz2) opt=j ;; \
|
|
||||||
(*) opt= ;; \
|
|
||||||
esac; \
|
|
||||||
case "$$$${tar}" in \
|
|
||||||
(/*) cmd=cat ;; \
|
|
||||||
(*) cmd="wget -q -O -" ;; \
|
|
||||||
esac; \
|
|
||||||
$$$${cmd} "$$$${tar}" | tar x$$$${opt}f - ; \
|
|
||||||
base=`echo "$$$${tar}" | sed -e 's,^.*/,,' \
|
|
||||||
| sed -e 's,\.tar.*$$$$,,'`; \
|
|
||||||
mv $$$${base} $(1); \
|
|
||||||
fi)
|
|
||||||
touch stamps/stamp-$(1)-00-unpack
|
|
||||||
|
|
||||||
stamps/stamp-$(1)-01-configure: stamps/stamp-$(1)-00-unpack
|
|
||||||
($(call SETVARS,$(1)); \
|
|
||||||
mkdir "$$$${pkgbdir}"; \
|
|
||||||
cd "$$$${pkgbdir}"; \
|
|
||||||
eval "../$$$${pkg}/configure" \
|
|
||||||
--enable-maintainer-mode \
|
|
||||||
--prefix="$(idir)" \
|
|
||||||
--host=i586-mingw32msvc \
|
|
||||||
$$$${pkgcfg})
|
|
||||||
touch stamps/stamp-$(1)-01-configure
|
|
||||||
|
|
||||||
stamps/stamp-$(1)-02-make: stamps/stamp-$(1)-01-configure
|
|
||||||
($(call SETVARS,$(1)); \
|
|
||||||
cd "$$$${pkgbdir}"; \
|
|
||||||
$(MAKE) $$$${pkgmkargs})
|
|
||||||
touch stamps/stamp-$(1)-02-make
|
|
||||||
|
|
||||||
# Note that post_install must come last because it may be empty and
|
|
||||||
# "; ;" is a syntax error.
|
|
||||||
stamps/stamp-$(1)-03-install: stamps/stamp-$(1)-02-make
|
|
||||||
($(call SETVARS,$(1)); \
|
|
||||||
cd "$$$${pkgbdir}"; \
|
|
||||||
$(MAKE) $$$${pkgmkargs_inst} install-strip ; \
|
|
||||||
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
|
|
||||||
touch stamps/stamp-$(1)-03-install
|
|
||||||
|
|
||||||
stamps/stamp-final-$(1): stamps/stamp-$(1)-03-install
|
|
||||||
touch stamps/stamp-final-$(1)
|
|
||||||
|
|
||||||
.PHONY : clean-$(1)
|
|
||||||
clean-$(1):
|
|
||||||
($(call SETVARS,$(1)); \
|
|
||||||
(cd $(ipdir) && \
|
|
||||||
($(STOW) -D "$$$${pkg}"; \
|
|
||||||
rm -fR "$$$${pkg}")); \
|
|
||||||
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
|
|
||||||
rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-*
|
|
||||||
|
|
||||||
.PHONY : report-$(1)
|
|
||||||
report-$(1):
|
|
||||||
@($(call SETVARS,$(1)); \
|
|
||||||
echo -n $(1):\ ; \
|
|
||||||
if [ -n "$$$${svn}" ]; then \
|
|
||||||
if [ -e .svn ]; then \
|
|
||||||
cd $(bdir)/$(1) && \
|
|
||||||
svn info | grep Repository ; \
|
|
||||||
else \
|
|
||||||
echo missing; \
|
|
||||||
fi \
|
|
||||||
elif [ -n "$$$${tar}" ]; then \
|
|
||||||
base=`echo "$$$${tar}" | sed -e 's,^.*/,,' \
|
|
||||||
| sed -e 's,\.tar.*$$$$,,'`; \
|
|
||||||
echo $$$${base} ; \
|
|
||||||
fi)
|
|
||||||
|
|
||||||
endef
|
|
||||||
|
|
||||||
|
|
||||||
# Insert the template for each source package.
|
|
||||||
$(foreach spkg, $(speedo_spkgs), $(eval $(call SPKG_template,$(spkg))))
|
|
||||||
|
|
||||||
stamps/stamp-final: stamps/stamp-directories
|
|
||||||
stamps/stamp-final: $(addprefix stamps/stamp-final-,$(speedo_build_list))
|
|
||||||
touch stamps/stamp-final
|
|
||||||
|
|
||||||
all-speedo: stamps/stamp-final
|
|
||||||
|
|
||||||
report-speedo: $(addprefix report-,$(speedo_build_list))
|
|
||||||
|
|
||||||
# Just to check if we catched all stamps.
|
|
||||||
clean-stamps:
|
|
||||||
$(RM) -fR $(stamps)
|
|
||||||
|
|
||||||
clean-speedo:
|
|
||||||
$(RM) -fR playground stamps
|
|
||||||
|
|
||||||
.PHONY : all-speedo report-speedo clean-stamps clean-speedo
|
|
364
scripts/speedo.mk
Normal file
364
scripts/speedo.mk
Normal file
@ -0,0 +1,364 @@
|
|||||||
|
# speedo.mk - Speedo rebuilds speedily.
|
||||||
|
# Copyright (C) 2008, 2014 g10 Code GmbH
|
||||||
|
#
|
||||||
|
# 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 GIT and installs them in a
|
||||||
|
# user directory, thereby providing a non-obstrusive test environment.
|
||||||
|
# speedo does only work with GNU make. The build system is similar to
|
||||||
|
# that of gpg4win. The following commands are supported:
|
||||||
|
#
|
||||||
|
# make -f speedo.mk all
|
||||||
|
# or
|
||||||
|
# make -f speedo.mk
|
||||||
|
#
|
||||||
|
# Builds all packages and installs them under play/inst. At the end,
|
||||||
|
# speedo prints commands that can be executed in the local shell to
|
||||||
|
# make use of the installed packages.
|
||||||
|
#
|
||||||
|
# make -f speedo.mk clean
|
||||||
|
# or
|
||||||
|
# make -f speedo.mk 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 -f speedo.mk report
|
||||||
|
# or
|
||||||
|
# make -f speedo.mk report-PACKAGE
|
||||||
|
#
|
||||||
|
# Lists packages and versions.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# --------
|
||||||
|
|
||||||
|
# The packages that should be built. The order is also the build order.
|
||||||
|
speedo_spkgs = libgpg-error npth libgcrypt libassuan libksba gnupg gpgme gpa
|
||||||
|
|
||||||
|
# version numbers of the released packages
|
||||||
|
# Fixme: Take the version numbers from gnupg-doc/web/swdb.mac
|
||||||
|
libgpg_error_ver = 1.12
|
||||||
|
npth_ver = 0.91
|
||||||
|
libgcrypt_ver = 1.6.0
|
||||||
|
libassuan_ver = 2.1.1
|
||||||
|
libksba_ver = 1.3.0
|
||||||
|
gnupg_ver = 2.0.22
|
||||||
|
gpgme_ver = 1.5.0
|
||||||
|
gpa_ver = 0.9.5
|
||||||
|
|
||||||
|
# The GIT repository. Using a local repo is much faster.
|
||||||
|
#gitrep = git://git.gnupg.org
|
||||||
|
gitrep = ${HOME}/s
|
||||||
|
|
||||||
|
|
||||||
|
# For each package, the following variables can be defined:
|
||||||
|
#
|
||||||
|
# speedo_pkg_PACKAGE_git: The GIT repository that should be built.
|
||||||
|
# speedo_pkg_PACKAGE_gitref: The GIT revision to checkout
|
||||||
|
#
|
||||||
|
# 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 "git" or "release".
|
||||||
|
WHAT=release
|
||||||
|
|
||||||
|
# Set target to "native" or "w32"
|
||||||
|
TARGETOS=native
|
||||||
|
|
||||||
|
# Number of parallel make jobs
|
||||||
|
MAKE_J=3
|
||||||
|
|
||||||
|
ifeq ($(WHAT),git)
|
||||||
|
speedo_pkg_libgpg_error_git = $(gitrep)/libgpg-error
|
||||||
|
speedo_pkg_libgpg_error_gitref = master
|
||||||
|
speedo_pkg_npth_git = $(gitrep)/npth
|
||||||
|
speedo_pkg_npth_gitref = master
|
||||||
|
speedo_pkg_libassuan_git = $(gitrep)/libassuan
|
||||||
|
speedo_pkg_libassuan_gitref = master
|
||||||
|
speedo_pkg_libgcrypt_git = $(gitrep)/libgcrypt
|
||||||
|
speedo_pkg_libgcrypt_gitref = master
|
||||||
|
speedo_pkg_libksba_git = $(gitrep)/libksba
|
||||||
|
speedo_pkg_libksba_gitref = master
|
||||||
|
speedo_pkg_gnupg_git = $(gitrep)/gnupg
|
||||||
|
speedo_pkg_gnupg_gitref = master
|
||||||
|
speedo_pkg_gpgme_git = $(gitrep)/gpgme
|
||||||
|
speedo_pkg_gpgme_gitref = master
|
||||||
|
speedo_pkg_gpa_git = $(gitrep)/gpa
|
||||||
|
speedo_pkg_gpa_gitref = master
|
||||||
|
else
|
||||||
|
pkgrep = ftp://ftp.gnupg.org/gcrypt
|
||||||
|
speedo_pkg_libgpg_error_tar = \
|
||||||
|
$(pkgrep)/libgpg-error/libgpg-error-$(libgpg_error_ver).tar.bz2
|
||||||
|
speedo_pkg_npth_tar = \
|
||||||
|
$(pkgrep)/npth/npth-$(npth_ver).tar.bz2
|
||||||
|
speedo_pkg_libassuan_tar = \
|
||||||
|
$(pkgrep)/libassuan/libassuan-$(libassuan_ver).tar.bz2
|
||||||
|
speedo_pkg_libgcrypt_tar = \
|
||||||
|
$(pkgrep)/libgcrypt/libgcrypt-$(libgcrypt_ver).tar.bz2
|
||||||
|
speedo_pkg_libksba_tar = \
|
||||||
|
$(pkgrep)/libksba/libksba-$(libksba_ver).tar.bz2
|
||||||
|
speedo_pkg_gnupg_tar = \
|
||||||
|
$(pkgrep)/gnupg/gnupg-$(gnupg_ver).tar.bz2
|
||||||
|
speedo_pkg_gpgme_tar = \
|
||||||
|
$(pkgrep)/gpgme/gpgme-$(gpgme_ver).tar.bz2
|
||||||
|
speedo_pkg_gpa_tar = \
|
||||||
|
$(pkgrep)/gpa/gpa-$(gpa_ver).tar.bz2
|
||||||
|
endif
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
# Fixme: The dist target does not work anymore.
|
||||||
|
STRIP = i686-w64-mingw32-strip
|
||||||
|
|
||||||
|
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/ ; \
|
||||||
|
$(STRIP) $${pkgname}/bin/*.dll ; \
|
||||||
|
zip -r9 $${pkgname}.zip $${pkgname} >/dev/null ; \
|
||||||
|
rm -rf $$pkgname; \
|
||||||
|
echo "$$pkgname.zip ready for distribution" >&2
|
||||||
|
|
||||||
|
|
||||||
|
-include config.mk
|
||||||
|
|
||||||
|
#
|
||||||
|
# The generic speedo code
|
||||||
|
#
|
||||||
|
|
||||||
|
MKDIR=mkdir
|
||||||
|
|
||||||
|
|
||||||
|
# These paths must be absolute, as we switch directories pretty often.
|
||||||
|
root := $(shell pwd)/play
|
||||||
|
stampdir := $(root)/stamps
|
||||||
|
sdir := $(root)/src
|
||||||
|
bdir := $(root)/build
|
||||||
|
idir := $(root)/inst
|
||||||
|
|
||||||
|
speedo_build_list = $(speedo_spkgs)
|
||||||
|
|
||||||
|
ifeq ($(TARGETOS),w32)
|
||||||
|
speedo_autogen_buildopt="--build-w32"
|
||||||
|
else
|
||||||
|
speedo_autogen_buildopt=
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifeq ($(MAKE_J),)
|
||||||
|
speedo_makeopt=
|
||||||
|
else
|
||||||
|
speedo_makeopt=-j$(MAKE_J)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
# The playground area is our scratch area, where we unpack, build and
|
||||||
|
# install the packages.
|
||||||
|
$(stampdir)/stamp-directories:
|
||||||
|
$(MKDIR) $(root)
|
||||||
|
$(MKDIR) $(stampdir)
|
||||||
|
$(MKDIR) $(sdir)
|
||||||
|
$(MKDIR) $(bdir)
|
||||||
|
$(MKDIR) $(idir)
|
||||||
|
touch $(stampdir)/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
|
||||||
|
pkg="$(1)"; \
|
||||||
|
git="$(call GETVAR,speedo_pkg_$(1)_git)"; \
|
||||||
|
gitref="$(call GETVAR,speedo_pkg_$(1)_gitref)"; \
|
||||||
|
tar="$(call GETVAR,speedo_pkg_$(1)_tar)"; \
|
||||||
|
pkgsdir="$(sdir)/$(1)"; \
|
||||||
|
pkgbdir="$(bdir)/$(1)"; \
|
||||||
|
pkgcfg="$(call GETVAR,speedo_pkg_$(1)_configure)"; \
|
||||||
|
pkgmkargs="$(call GETVAR,speedo_pkg_$(1)_make_args)"; \
|
||||||
|
pkgmkargs_inst="$(call GETVAR,speedo_pkg_$(1)_make_args_inst)"; \
|
||||||
|
export PATH="$(idir)/bin:$${PATH}"; \
|
||||||
|
export LD_LIBRARY_PATH="$(idir)/lib:$${LD_LIBRARY_PATH}"
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
# Template for source packages.
|
||||||
|
|
||||||
|
define SPKG_template
|
||||||
|
|
||||||
|
$(stampdir)/stamp-$(1)-00-unpack: $(stampdir)/stamp-directories
|
||||||
|
@echo "speedo: /*"
|
||||||
|
@echo "speedo: * $(1)"
|
||||||
|
@echo "speedo: */"
|
||||||
|
@(cd $(sdir); \
|
||||||
|
$(call SETVARS,$(1)); \
|
||||||
|
if [ -n "$$$${git}" ]; then \
|
||||||
|
echo "speedo: unpacking $(1) from $$$${git}:$$$${gitref}"; \
|
||||||
|
git clone -q -b "$$$${gitref}" "$$$${git}" "$$$${pkg}"; \
|
||||||
|
cd "$$$${pkg}" && \
|
||||||
|
AUTOGEN_SH_SILENT=1 ./autogen.sh; \
|
||||||
|
elif [ -n "$$$${tar}" ]; then \
|
||||||
|
echo "speedo: unpacking $(1) from $$$${tar}"; \
|
||||||
|
case "$$$${tar}" in \
|
||||||
|
*.gz) opt=z ;; \
|
||||||
|
*.bz2) opt=j ;; \
|
||||||
|
*) opt= ;; \
|
||||||
|
esac; \
|
||||||
|
case "$$$${tar}" in \
|
||||||
|
/*) cmd=cat ;; \
|
||||||
|
*) cmd="wget -q -O -" ;; \
|
||||||
|
esac; \
|
||||||
|
$$$${cmd} "$$$${tar}" | tar x$$$${opt}f - ; \
|
||||||
|
base=`echo "$$$${tar}" | sed -e 's,^.*/,,' \
|
||||||
|
| sed -e 's,\.tar.*$$$$,,'`; \
|
||||||
|
mv $$$${base} $(1); \
|
||||||
|
else \
|
||||||
|
echo "speedo: unpacking $(1) from UNKNOWN"; \
|
||||||
|
fi)
|
||||||
|
@touch $(stampdir)/stamp-$(1)-00-unpack
|
||||||
|
|
||||||
|
$(stampdir)/stamp-$(1)-01-configure: $(stampdir)/stamp-$(1)-00-unpack
|
||||||
|
@echo "speedo: configuring $(1)"
|
||||||
|
@($(call SETVARS,$(1)); \
|
||||||
|
mkdir "$$$${pkgbdir}"; \
|
||||||
|
cd "$$$${pkgbdir}"; \
|
||||||
|
if [ -n "$(speedo_autogen_buildopt)" ]; then \
|
||||||
|
eval AUTOGEN_SH_SILENT=1 w32root="$(idir)" \
|
||||||
|
"$$$${pkgsdir}/autogen.sh" \
|
||||||
|
$(speedo_autogen_buildopt) --silent \
|
||||||
|
$$$${pkgcfg}; \
|
||||||
|
else \
|
||||||
|
eval "$$$${pkgsdir}/configure" \
|
||||||
|
--silent \
|
||||||
|
--enable-maintainer-mode \
|
||||||
|
--prefix="$(idir)" \
|
||||||
|
$$$${pkgcfg}; \
|
||||||
|
fi)
|
||||||
|
@touch $(stampdir)/stamp-$(1)-01-configure
|
||||||
|
|
||||||
|
$(stampdir)/stamp-$(1)-02-make: $(stampdir)/stamp-$(1)-01-configure
|
||||||
|
@echo "speedo: making $(1)"
|
||||||
|
@($(call SETVARS,$(1)); \
|
||||||
|
cd "$$$${pkgbdir}"; \
|
||||||
|
$(MAKE) --no-print-directory $(speedo_makeopt) $$$${pkgmkargs} V=0)
|
||||||
|
@touch $(stampdir)/stamp-$(1)-02-make
|
||||||
|
|
||||||
|
# Note that post_install must come last because it may be empty and
|
||||||
|
# "; ;" is a syntax error.
|
||||||
|
$(stampdir)/stamp-$(1)-03-install: $(stampdir)/stamp-$(1)-02-make
|
||||||
|
@echo "speedo: installing $(1)"
|
||||||
|
@($(call SETVARS,$(1)); \
|
||||||
|
cd "$$$${pkgbdir}"; \
|
||||||
|
$(MAKE) --no-print-directory $$$${pkgmkargs_inst} install-strip V=0;\
|
||||||
|
$(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install))
|
||||||
|
@touch $(stampdir)/stamp-$(1)-03-install
|
||||||
|
|
||||||
|
$(stampdir)/stamp-final-$(1): $(stampdir)/stamp-$(1)-03-install
|
||||||
|
@touch $(stampdir)/stamp-final-$(1)
|
||||||
|
|
||||||
|
.PHONY : clean-$(1)
|
||||||
|
clean-$(1):
|
||||||
|
@echo "speedo: uninstalling $(1)"
|
||||||
|
@($(call SETVARS,$(1)); \
|
||||||
|
(cd "$$$${pkgbdir}"; \
|
||||||
|
$(MAKE) --no-print-directory $$$${pkgmkargs_inst} uninstall V=0); \
|
||||||
|
rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}")
|
||||||
|
@rm -f $(stampdir)/stamp-final-$(1) $(stampdir)/stamp-$(1)-*
|
||||||
|
|
||||||
|
.PHONY : report-$(1)
|
||||||
|
report-$(1):
|
||||||
|
@($(call SETVARS,$(1)); \
|
||||||
|
echo -n $(1):\ ; \
|
||||||
|
if [ -n "$$$${git}" ]; then \
|
||||||
|
if [ -e "$$$${pkgsdir}/.git" ]; then \
|
||||||
|
cd "$$$${pkgsdir}" && \
|
||||||
|
git describe ; \
|
||||||
|
else \
|
||||||
|
echo missing; \
|
||||||
|
fi \
|
||||||
|
elif [ -n "$$$${tar}" ]; then \
|
||||||
|
base=`echo "$$$${tar}" | sed -e 's,^.*/,,' \
|
||||||
|
| sed -e 's,\.tar.*$$$$,,'`; \
|
||||||
|
echo $$$${base} ; \
|
||||||
|
fi)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
|
||||||
|
# Insert the template for each source package.
|
||||||
|
$(foreach spkg, $(speedo_spkgs), $(eval $(call SPKG_template,$(spkg))))
|
||||||
|
|
||||||
|
$(stampdir)/stamp-final: $(stampdir)/stamp-directories
|
||||||
|
$(stampdir)/stamp-final: $(addprefix $(stampdir)/stamp-final-,$(speedo_build_list))
|
||||||
|
touch $(stampdir)/stamp-final
|
||||||
|
|
||||||
|
all-speedo: $(stampdir)/stamp-final
|
||||||
|
|
||||||
|
report-speedo: $(addprefix report-,$(speedo_build_list))
|
||||||
|
|
||||||
|
# Just to check if we catched all stamps.
|
||||||
|
clean-stamps:
|
||||||
|
$(RM) -fR $(stampdir)
|
||||||
|
|
||||||
|
clean-speedo:
|
||||||
|
$(RM) -fR play
|
||||||
|
|
||||||
|
.PHONY : all-speedo report-speedo clean-stamps clean-speedo
|
Loading…
x
Reference in New Issue
Block a user