diff --git a/Makefile.am b/Makefile.am index c9a7b507d..08b5d3205 100644 --- a/Makefile.am +++ b/Makefile.am @@ -26,7 +26,8 @@ GITLOG_TO_CHANGELOG=gitlog-to-changelog EXTRA_DIST = scripts/config.rpath scripts/potomo autogen.sh README.GIT \ ChangeLog-2011 po/ChangeLog-2011 scripts/ChangeLog-2011 \ 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 if BUILD_GPGSM diff --git a/scripts/gpg-w32-dev/GNUmakefile b/scripts/gpg-w32-dev/GNUmakefile deleted file mode 100644 index 10ba92f62..000000000 --- a/scripts/gpg-w32-dev/GNUmakefile +++ /dev/null @@ -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 . - -# 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 diff --git a/scripts/gpg-w32-dev/README b/scripts/gpg-w32-dev/README deleted file mode 100644 index ac2ffeba8..000000000 --- a/scripts/gpg-w32-dev/README +++ /dev/null @@ -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. - diff --git a/scripts/gpg-w32-dev/speedo.mk b/scripts/gpg-w32-dev/speedo.mk deleted file mode 100644 index 4e0e63a9f..000000000 --- a/scripts/gpg-w32-dev/speedo.mk +++ /dev/null @@ -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 . - -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 diff --git a/scripts/speedo.mk b/scripts/speedo.mk new file mode 100644 index 000000000..414800235 --- /dev/null +++ b/scripts/speedo.mk @@ -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 . + +# 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