Author: dato-guest
Date: 2004-11-05 14:00:44 -0700 (Fri, 05 Nov 2004)
New Revision: 184

Modified:
   people/dato/kde-common/rules.mk
   people/dato/kde-common/vars.mk
Log:
- Standardize the use of double-colon rules. Extra rules should be
  written after the include debian/common/rules.mk line, to ensure the
  corresponding *-stamp rule has been run.

- Nuke build-{arch,indep}. One build target seems to suffice.
  BUILD_{ARCH,INDEP_MAKE_TARGETS becomes BUILD_MAKE_TARGETS.

- Install now works like this: there is the make-install target, that
  installs files into debian/tmp. Manipulation on debian/tmp/* files can
  happen in the make-install:: double-colon rule.

  The install rule now calls all dh_install* scripts (moved from
  binary-common). dh_install is called with --list-missing (which now
  works properly since there are no separate install-{arch,indep}
  rules).

- Added binary-% rule that permits building of individual packages.

- The binary rule, instead of depending on binary-{arch,indep}, does
  call debian/rules binary-common with no DH_OPTIONS.

- Use touch $@ statements, that is, without using the name of the stamp.

- use += for DH_COMPRESS_ARGS, allowing the common set of extensions to
  be centralized.


Modified: people/dato/kde-common/rules.mk
===================================================================
--- people/dato/kde-common/rules.mk     2004-11-05 15:46:26 UTC (rev 183)
+++ people/dato/kde-common/rules.mk     2004-11-05 21:00:44 UTC (rev 184)
@@ -7,7 +7,10 @@
 debian/debiandirs: admin/debianrules
        perl -w admin/debianrules echodirs > debian/debiandirs
 
-configure: configure-stamp
+###########################################################
+### CONFIGURE
+###########################################################
+configure:: configure-stamp
 configure-stamp:
        dh_testdir
 
@@ -29,100 +32,48 @@
        cd $(objdir) && \
        ../configure $(configkde) $(CONFIGURE_FLAGS) 
--disable-dependency-tracking
 
-       touch configure-stamp
+       touch $@
 
-# Build targets
-build: build-arch build-indep
-
-build-arch: build-arch-stamp
-build-arch-stamp: configure-stamp
+###########################################################
+### BUILD
+###########################################################
+build:: build-stamp
+build-stamp: configure-stamp
        dh_testdir
 
-       cd $(objdir) && $(MAKE) $(BUILD_ARCH_MAKE_TARGETS)
+       cd $(objdir) && $(MAKE) $(BUILD_MAKE_TARGETS)
 
        # Generate manpages from sgml (if present)
        for man in $$(find debian/man -name '*.sgml'); do \
            docbook-to-man $$man > `dirname $$man`/`basename $$man .sgml`.1; \
        done
 
-       touch build-arch-stamp
+       touch $@
 
-build-indep: build-indep-stamp
-build-indep-stamp: configure-stamp
+###########################################################
+### INSTALL
+###########################################################
+make-install:: make-install-stamp
+make-install-stamp: build-stamp
        dh_testdir
-
-       cd $(objdir) && $(MAKE) $(BUILD_INDEP_MAKE_TARGETS)
-
-       touch build-indep-stamp
-
-# Clean targets
-debian-clean:
-       dh_testdir
        dh_testroot
-
-       dh_clean
-       rm -f install-stamp
-
-clean::
-       dh_testdir
-       dh_testroot
-       rm -f build-arch-stamp build-indep-stamp configure-stamp install-stamp \
-               debian/debiandirs debian/substvars
-
-       # Remove manpages *iff* they were generated from sgml
-       for man in $$(find debian/man -name '*.sgml'); do \
-           rm -f `dirname $$man`/`basename $$man .sgml`.1; \
-       done
-
-       # Remove Debian specific patches
-       sh debian/common/patches.sh unapply
-
-       # Remove build tree
-       rm -rf $(objdir)
-
-       # if Makefile exists run distclean
-       if test -f Makefile; then \
-           $(MAKE) distclean; \
-       fi
-
-       if test -d CVS; then \
-           $(MAKE) -f admin/Makefile.common cvs-clean ;\
-       fi
-
-       dh_clean
-
-# Install targets
-install:: install-stamp
-install-stamp:
-       dh_testdir
-       dh_testroot
        dh_clean -k
        dh_installdirs
+       dh_link
        
        cd $(objdir) && \
        $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
        
-       touch install-stamp
+       touch $@
 
-install-arch: install
-       dh_install -s
-
-install-indep: install
-       if grep -qE '^Architecture: +all *$$' debian/control; then \
-           dh_install -i; \
-       fi
-
-# Binary targets
-
-# Must not depend on anything. This is to be called by
-# binary-arch/binary-indep in another 'make' thread.
-binary-common:
+install:: install-stamp
+install-stamp: make-install-stamp
        dh_testdir
        dh_testroot
        dh_installxfonts
        dh_installchangelogs
        dh_installdocs
-#      dh_installexamples
+       dh_installexamples
        dh_installmenu
        dh_installdebconf
        dh_installlogrotate
@@ -133,7 +84,15 @@
 #      dh_installcron
 #      dh_installinfo
        dh_installman
-       dh_link
+       dh_install --list-missing
+       touch $@
+
+###########################################################
+### BINARY
+###########################################################
+# binary-common must not depend on anything. it is to be called by
+# binary-whatever in another 'make' thread.
+binary-common:
        dh_strip
        dh_compress $(DH_COMPRESS_ARGS)
        dh_fixperms $(DH_FIXPERMS_ARGS)
@@ -149,23 +108,58 @@
        dh_md5sums
        dh_builddeb
 
-# Build architecture independant packages using the common target.
-binary-indep: build-indep install-indep
-       if grep -qE '^Architecture: +all *$$' debian/control; then \
-           $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common; \
-       fi
+# Build all packages using the common target.
+binary: install
+       $(MAKE) -f debian/rules binary-common
 
 # Build architecture dependant packages using the common target.
-binary-arch: build-arch install-arch
+binary-arch: install
        $(MAKE) -f debian/rules DH_OPTIONS=-s binary-common
 
-binary: binary-arch binary-indep
-       @echo; echo; echo "Checking for not installed files..."
-       @if ! test -f debian/not-installed.known; then \
-           dh_install --no-act --list-missing;  \
-       else \
-           dh_install --no-act --list-missing 2>&1 | sort | \
-           comm -3 - debian/not-installed.known || true; \
+# Build architecture independant packages using the common target.
+binary-indep: install
+       $(MAKE) -f debian/rules DH_OPTIONS=-i binary-common
+
+# Any other binary targets build just one binary package at a time.
+binary-%: install
+       $(MAKE) -f debian/rules DH_OPTIONS=-p$* binary-common
+
+###########################################################
+### CLEAN
+###########################################################
+debian-clean:
+       dh_testdir
+       dh_testroot
+
+       dh_clean
+       rm -f make-install-stamp install-stamp
+
+clean::
+       dh_testdir
+       dh_testroot
+       rm -f configure-stamp build-stamp make-install-stamp install-stamp \
+               debian/debiandirs debian/substvars
+
+       # Remove manpages *iff* they were generated from sgml
+       for man in $$(find debian/man -name '*.sgml'); do \
+           rm -f `dirname $$man`/`basename $$man .sgml`.1; \
+       done
+
+       # Remove Debian specific patches
+       sh debian/common/patches.sh unapply
+
+       # Remove build tree
+       rm -rf $(objdir)
+
+       # if Makefile exists run distclean
+       if test -f Makefile; then \
+           $(MAKE) distclean; \
        fi
 
-.PHONY: build clean binary-indep binary-arch binary install install-indep 
install-arch configure
+       if test -d CVS; then \
+           $(MAKE) -f admin/Makefile.common cvs-clean ;\
+       fi
+
+       dh_clean
+
+.PHONY: configure build make-install install clean binary-indep binary-arch 
binary

Modified: people/dato/kde-common/vars.mk
===================================================================
--- people/dato/kde-common/vars.mk      2004-11-05 15:46:26 UTC (rev 183)
+++ people/dato/kde-common/vars.mk      2004-11-05 21:00:44 UTC (rev 184)
@@ -24,5 +24,5 @@
 objdir = $(CURDIR)/obj-$(DEB_BUILD_GNU_TYPE)
 
 # dh_* default arguments
-DH_COMPRESS_ARGS   ?= -X.bz2 -X.css -X.dcl -X.docbook -X-license -X.tag
+DH_COMPRESS_ARGS   += -X.bz2 -X.css -X.dcl -X.docbook -X-license -X.tag
 DH_MAKESHLIBS_ARGS ?= -V

Reply via email to