~ubuntu-branches/ubuntu/karmic/x11-xserver-utils/karmic

« back to all changes in this revision

Viewing changes to debian/xsfbs/xsfbs-autoreconf.mk

  • Committer: Bazaar Package Importer
  • Author(s): Brice Goglin, Julien Cristau, Brice Goglin
  • Date: 2007-08-17 09:58:34 UTC
  • Revision ID: james.westby@ubuntu.com-20070817095834-ywge2nyzj1s3rqnd
Tags: 7.3+1
[ Julien Cristau ]
* iceauth 1.0.2.
  + removes blank line in the manpage (closes: #25285).
* xmodmap 1.0.3.
  + manpage updated to state that -pm is the default (closes: #236198)
* xgamma 1.0.2.
  + the manpage now explains how to print the gamma value more clearly
    (closes: #296021).
* xsetroot 1.0.2.
* xrdb 1.0.4.
  + fixes manpage typo (closes: #276286).
* Add upstream URL to debian/copyright, and update it from xgamma's COPYING
  file.

[ Brice Goglin ]
* Add menu entries for xrefresh and xvidtune.
* sessreg 1.0.3.
* xset 1.0.3.
* Add myself to Uploaders, and remove Branden with his permission.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/make -f
 
2
# $Id$
 
3
 
 
4
# Automagical conversion of autoreconf results into quilt patches.
 
5
 
 
6
# Copyright 2006 Eugene Konev
 
7
#
 
8
# Licensed under the GNU General Public License, version 2.  See the file
 
9
# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
 
10
 
 
11
# The idea behind this is storing changes produced by autoreconf as a 
 
12
# separate patch on quilt stack (on top of stack actually).
 
13
# The only usable target here is 'autoreconf`. Other targets are not
 
14
# supposed to be called directly. DO NOT invoke them, unless you know what
 
15
# you are doing.
 
16
# The autoreconf target will check if files with names in $(RECONF_CHECKFILES)
 
17
# were changed during patching (from upstream version or from previously
 
18
# autoreconfed version) and call actual autoreconfing if they were.
 
19
# The actual autoreconfing target (doautoreconf) WILL FAIL after 
 
20
# calling autoreconf and pushing changes into quilt stack by design. It
 
21
# should never be invoked by automatic build process.
 
22
# The proposed use is adding autoreconf into clean's prerequisites before
 
23
# xsfclean like:
 
24
# - clean: xsfclean
 
25
# + clean: autoreconf xsfclean
 
26
# This will ensure it is called when you build package with dpkg-buildpackage.
 
27
 
 
28
# This dir will be used for producing diff of autoreconfed tree
 
29
RECONF_DIR := xsfautoreconf
 
30
 
 
31
# This files will be checked for changes
 
32
RECONF_CHECKFILES += configure.ac Makefile.am
 
33
 
 
34
# This files will not be hardlinked but copied
 
35
RECONF_NOLINKFILES += aclocal.m4
 
36
 
 
37
# This files/dirs will be pruned after autoreconf run
 
38
RECONF_PRUNEFILES += autom4te.cache config.h.in~ aclocal.m4~
 
39
 
 
40
# Internal target. Never invoke directly.
 
41
stampdir_target+=check.md5sum
 
42
$(STAMP_DIR)/check.md5sum:
 
43
        dh_testdir
 
44
        $(MAKE) -f debian/rules prepare
 
45
        for F in $(RECONF_CHECKFILES); do \
 
46
          find . -wholename ./$(STAMP_DIR) -prune -o -name $$F -print | \
 
47
            LC_ALL=C sort | xargs --no-run-if-empty md5sum >>$@; \
 
48
        done
 
49
 
 
50
# Internal target. Never invoke directly.
 
51
$(STAMP_DIR)/clean.md5sum:
 
52
        dh_testdir
 
53
        $(MAKE) -f debian/rules unpatch
 
54
        rm -f $(STAMP_DIR)/check.md5sum
 
55
        $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum
 
56
        mv $(STAMP_DIR)/check.md5sum $@
 
57
 
 
58
# Internal target. Never invoke directly.
 
59
debian/patches/patched.md5sum:
 
60
        dh_testdir
 
61
        [ -f $(STAMP_DIR)/clean.md5sum ] || \
 
62
          $(MAKE) -f debian/rules $(STAMP_DIR)/clean.md5sum
 
63
 
 
64
        $(MAKE) -f debian/rules patch
 
65
        rm -f $(STAMP_DIR)/check.md5sum
 
66
        $(MAKE) -f debian/rules $(STAMP_DIR)/check.md5sum
 
67
        if ! diff $(STAMP_DIR)/clean.md5sum \
 
68
                  $(STAMP_DIR)/check.md5sum > /dev/null; then \
 
69
          $(MAKE) -f debian/rules doautoreconf; \
 
70
        else \
 
71
          mv $(STAMP_DIR)/check.md5sum $@; \
 
72
        fi
 
73
 
 
74
# Internal target. Never invoke directly.
 
75
,PHONY: doautoreconf
 
76
doautoreconf: patch
 
77
        quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1 || true
 
78
        if quilt applied | grep ^autoreconf.diff$$ > /dev/null; then \
 
79
          quilt pop -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \
 
80
          quilt rename -p autoreconf.diff autoreconf-old.diff \
 
81
               >>$(STAMP_DIR)/log/autoreconf 2>&1; \
 
82
          quilt delete autoreconf-old.diff >>$(STAMP_DIR)/log/autoreconf 2>&1; \
 
83
          quilt push -a >>$(STAMP_DIR)/log/autoreconf 2>&1; \
 
84
        fi
 
85
 
 
86
        if [ -e $(RECONF_DIR) ]; then \
 
87
          echo "ERROR: $(RECONF_DIR) already exists. Cleanup by hand"; \
 
88
          exit 1; \
 
89
        fi
 
90
 
 
91
        mkdir -p $(RECONF_DIR)/before
 
92
        find . -maxdepth 1 -mindepth 1 ! -wholename ./$(RECONF_DIR) \
 
93
             -a ! -wholename ./debian -a ! -wholename ./patches \
 
94
             -a ! -wholename ./.pc -a ! -wholename ./$(STAMP_DIR) | \
 
95
          xargs -i{} cp -al {} $(RECONF_DIR)/before/
 
96
 
 
97
        for F in $(RECONF_PRUNEFILES); do \
 
98
          find $(RECONF_DIR)/before -name $$F -print | \
 
99
            xargs --no-run-if-empty rm -r; \
 
100
        done
 
101
 
 
102
        cp -al $(RECONF_DIR)/before $(RECONF_DIR)/after
 
103
 
 
104
        for F in $(RECONF_NOLINKFILES); do \
 
105
          find . -wholename ./$(RECONF_DIR) -prune -o -wholename ./debian \
 
106
               -prune -o -wholename ./$(STAMP_DIR) -prune -o -name $$F \
 
107
               -print | \
 
108
            xargs --no-run-if-empty -i{} cp --remove-destination {} \
 
109
              $(RECONF_DIR)/after/{}; \
 
110
        done
 
111
 
 
112
        cd $(RECONF_DIR)/after && autoreconf -v --install && \
 
113
          for F in $(RECONF_PRUNEFILES); do \
 
114
            find . -name $$F -print | \
 
115
              xargs --no-run-if-empty rm -r; \
 
116
          done
 
117
 
 
118
        cd $(RECONF_DIR) && diff -Nru before after > autoreconf.diff || true
 
119
 
 
120
        quilt import $(RECONF_DIR)/autoreconf.diff \
 
121
              >>$(STAMP_DIR)/log/autoreconf 2>&1
 
122
 
 
123
        mv $(STAMP_DIR)/check.md5sum debian/patches/patched.md5sum
 
124
 
 
125
        rm -r $(RECONF_DIR) && rm -f patches/autoreconf-old.diff
 
126
 
 
127
        @echo 
 
128
        @echo "****************************************************************"
 
129
        @echo "  This target is made to fail INTENTIONALLY. It should NEVER    "
 
130
        @echo "  be invoked during automatic builds.                           "
 
131
        @echo 
 
132
        @echo "  This target was invoked because you added/removed/changed     "
 
133
        @echo "  patches which modify either configure.ac or Makefile.am and,  "
 
134
        @echo "  thus, require autoreconf run. And all autoreconfing should    "
 
135
        @echo "  happen before uploading.                                      "
 
136
        @echo 
 
137
        @echo "  (See also debian/xsfbs/xsfbs-autoreconf.mk)                   "
 
138
        @echo 
 
139
        @echo "  If you see this message, autoreconfing actually SUCCEEDED,    "
 
140
        @echo "  and your build should finish successfully, when rerun.        "
 
141
        @echo "****************************************************************"
 
142
        @echo 
 
143
        exit 1;
 
144
 
 
145
.PHONY: autoreconf
 
146
autoreconf: debian/patches/patched.md5sum patch $(STAMP_DIR)/check.md5sum
 
147
        if ! diff $(STAMP_DIR)/check.md5sum \
 
148
                  debian/patches/patched.md5sum > /dev/null; then \
 
149
          $(MAKE) -f debian/rules doautoreconf; \
 
150
        fi