chiark / gitweb /
Note in tg2quilt.mk's header the need to soft-include the file
[topgit.git] / debian / tg2quilt.mk
index d079e75a34636304a29bd520234aa29807f7f32e..a0f8d587bf2531461dcd308f7e3795494bec23a8 100644 (file)
@@ -5,10 +5,15 @@
 # a quilt series.
 #
 # It is intended to be included from debian/rules files of TopGit-using
-# packages, like so:
+# packages after including the quilt rules, like so:
 #
+#   include /usr/share/quilt/quilt.make
 #   -include /usr/share/topgit/tg2quilt.mk
 #
+# The leading dash is necessary for make not to die when the file is not
+# installed. TopGit is not a build dependency (and does not need to be), and
+# if the package is not installed, debian/rules can still be used normally.
+#
 # The snippet exports the following targets. These targets only perform the
 # describe behaviour when invoked from a TopGit repository (`tg summary -t`
 # returns a non-empty set); used outside, they simply output informational
@@ -33,6 +38,9 @@
 #                  removed. This means that edits to the series file are
 #                  likely to vanish.
 #
+#  tg-cleanexport: recreates the debian/patches directory from scratch, using
+#                  tg-rmdir and tg-export.
+#
 #   tg-forceclean: cleans the source tree, just like the debian/rules clean
 #                  target, and forcefully removes the debian/patches
 #                  directory in doing so. Yes, *force*-fully. WHAM!
 # The PATCHES_DIR variable can be set before including the file to override
 # the default debian/patches location.
 #
-# Copyright © 2008 martin f. krafft <madduck@debian.org>
-# Released under terms of the the Artistic Licence 2.0.
+# More information, particularly for people working on TopGit-using packages,
+# can be found in /usr/share/doc/topgit/HOWTO-tg2quilt.gz .
+#
+# Copyright © 2008 martin f. krafft <madduck@debian.org> Released under terms
+# of the the Artistic Licence 2.0.
 #
 
-ifeq ($(shell tg summary -t)),)
+ifeq ($(shell tg summary -t),)
   # This is not a TopGit branch, so just blubber a bit.
 
-  tg-export tg-clean tg-forceclean tg-rmdir:
+  tg-export tg-clean tg-forceclean tg-rmdir tg-cleanexport:
        @echo "E: The $@ target only works from a TopGit repository." >&2
 else
 
 # We are in a TopGit branch, so let the fun begin.
 
-PATCHES_DIR ?= debian/patches
+PATCHES_DIR ?= $(QUILT_PATCH_DIR)
 
 # Hook tg-export into quilt's make(1) snippet such that it gets executed
 # before quilt patches or unpatches.
-debian/stamp-patched: tg-export
+$(QUILT_STAMPFN): tg-export
 unpatch: __tg-temp-export
 __tg-temp-export:
        @echo "Exporting TopGit branches to series so that quilt can clean up..." >&2
-       $(MAKE) $(MAKEFLAGS) -f debian/rules tg-export
+       $(MAKE) --no-print-directory -f debian/rules tg-export
+.PHONY: __tg-temp-export
 
 # Set some tg-export-specific variables, e.g. default TG_BRANCHES to all
 # TopGit branches
@@ -116,13 +128,17 @@ endif
 
 # Make sure that we try to clean up the patches directory last
 tg-clean: clean
-       $(MAKE) $(MAKEFLAGS) -f debian/rules tg-rmdir
+       $(MAKE) --no-print-directory -f debian/rules tg-rmdir
 
 tg-forceclean: clean
-       test -d debian/patches && rm -r $(PATCHES_DIR) || :
+       test -d $(PATCHES_DIR) && rm -r $(PATCHES_DIR) || :
+
+tg-cleanexport: tg-rmdir
+       $(MAKE) --no-print-directory -f debian/rules tg-export
 
 endif
 
 .PHONY: tg-clean tg-export tg-forceclean tg-rmdir
 
 # vim:ft=make:ts=8:noet
+# -*- Makefile -*-, you silly Emacs! (shamelessly stolen from quilt)