From 87103e1fccd88e0fc8a64d774ddb620deeb90678 Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 27 May 2010 10:00:03 -0700 Subject: [PATCH] Add dist-hook to ensure that every file gets distributed. It's easy to add a file to the repository and forget to make sure that it is distributed. This commit adds a hook target to the main Makefile that causes "make dist" to fail if the tree is being built from a Git repository and some files are not distributed. --- Makefile.am | 28 ++++++++++++++++++++++++++++ debian/automake.mk | 5 +++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 58b79a4a..37d98f60 100644 --- a/Makefile.am +++ b/Makefile.am @@ -45,6 +45,7 @@ EXTRA_DIST = \ bin_PROGRAMS = sbin_PROGRAMS = bin_SCRIPTS = +DIST_HOOKS = dist_man_MANS = dist_pkgdata_DATA = dist_pkgdata_SCRIPTS = @@ -86,6 +87,32 @@ SUFFIXES += .in fi mv $@.tmp $@ +# If we're checked out from a Git repository, make sure that every +# file that is in Git is distributed. +dist-hook-git: + if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1; then \ + rc=0; \ + for d in `cd $(srcdir) && git ls-files`; do \ + if test ! -e $(distdir)/$$d; then \ + case $$d in # ( \ + .gitignore|*/.gitignore) ;; # ( \ + *) \ + if test $$rc = 0; then \ + echo "The distribution is missing the following files:"; \ + rc=1; \ + fi; \ + echo "$$d"; \ + ;; \ + esac; \ + fi \ + done; \ + exit $$rc; \ + fi +DIST_HOOKS += dist-hook-git + +dist-hook: $(DIST_HOOKS) +.PHONY: $(DIST_HOOKS) + include lib/automake.mk include ofproto/automake.mk include utilities/automake.mk @@ -97,3 +124,4 @@ include vswitchd/automake.mk include ovsdb/automake.mk include xenserver/automake.mk include extras/ezio/automake.mk + diff --git a/debian/automake.mk b/debian/automake.mk index 2658e392..ad347df7 100644 --- a/debian/automake.mk +++ b/debian/automake.mk @@ -62,6 +62,7 @@ EXTRA_DIST += \ debian/rules \ debian/rules.modules -dist-hook: +dist-hook-debian-changelog: $(srcdir)/build-aux/update-debian-changelog '$(distdir)/debian/changelog' '$(VERSION)' -EXTRA_DIST += build-aux/check-structs +DIST_HOOKS += dist-hook-debian-changelog +EXTRA_DIST += build-aux/update-debian-changelog -- 2.30.2