Update copyright headers and other housekeeping for 3.42 release.
[planner-el.git] / Makefile
blob94c898ced2e0431d6ce8174119619835421186bd
1 .PHONY: all autoloads lisp doc clean realclean distclean fullclean install
2 .PHONY: test dist release debclean debprepare debbuild debinstall deb upload
3 .PHONY: elpa info-only
4 .PRECIOUS: %.elc
6 DEFS = $(shell test -f Makefile.defs && echo Makefile.defs \
7 || echo Makefile.defs.default)
9 include $(DEFS)
11 EL = $(filter-out $(PROJECT)-autoloads.el,$(wildcard *.el))
12 ELC = $(patsubst %.el,%.elc,$(EL))
14 all: autoloads lisp $(MANUAL).info
16 lisp: $(ELC)
18 $(PROJECT)-build.elc: ./scripts/$(PROJECT)-build.el
19 @echo $(PROJECT)-build.el is not byte-compiled
21 autoloads: $(PROJECT)-autoloads.el
23 $(PROJECT)-autoloads.el: $(EL)
24 @$(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
25 -f $(PROJECT)-generate-autoloads . contrib
27 %.elc: %.el
28 @$(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
29 -f batch-byte-compile $< || :
31 %.info: %.texi
32 makeinfo $<
34 %.html: %.texi
35 makeinfo --html --no-split $<
37 info-only: $(MANUAL).info
39 doc: $(MANUAL).info $(MANUAL).html
41 clean:
42 -rm -f *.elc *~
44 realclean fullclean: clean
45 -rm -f $(MANUAL).info $(MANUAL).html $(PROJECT)-autoloads.el
47 install: autoloads lisp $(MANUAL).info
48 install -d $(ELISPDIR)
49 install -m 0644 $(PROJECT)-autoloads.el $(EL) $(wildcard *.elc) \
50 $(ELISPDIR)
51 [ -d $(INFODIR) ] || install -d $(INFODIR)
52 install -m 0644 $(MANUAL).info $(INFODIR)/$(MANUAL)
53 $(call install_info,$(MANUAL))
55 test: $(ELC)
56 $(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
57 -f $(PROJECT)-elint-files $(EL)
59 distclean:
60 -rm -f $(MANUAL).info $(MANUAL).html debian/dirs debian/files
61 -rm -fr ../$(PROJECT)-$(VERSION)
63 dist: autoloads distclean
64 git archive --format=tar --prefix=$(PROJECT)-$(VERSION)/ HEAD | \
65 (cd .. && tar xf -)
66 rm -f ../$(PROJECT)-$(VERSION)/.gitignore
67 rm -fr ../$(PROJECT)-$(VERSION)/test
68 cp $(PROJECT)-autoloads.el ../$(PROJECT)-$(VERSION)/lisp
70 release: dist
71 (cd .. && tar -czf $(PROJECT)-$(VERSION).tar.gz \
72 $(PROJECT)-$(VERSION) && \
73 zip -r $(PROJECT)-$(VERSION).zip $(PROJECT)-$(VERSION) && \
74 gpg --detach $(PROJECT)-$(VERSION).tar.gz && \
75 gpg --detach $(PROJECT)-$(VERSION).zip)
77 debclean:
78 -rm -f ../../dist/$(DISTRIBUTOR)/$(DEBNAME)_*
79 -rm -fr ../$(DEBNAME)_$(VERSION)*
81 debprepare:
82 -rm -rf ../$(DEBNAME)-$(VERSION)
83 (cd .. && tar -xzf $(PROJECT)-$(VERSION).tar.gz)
84 mv ../$(PROJECT)-$(VERSION) ../$(DEBNAME)-$(VERSION)
85 (cd .. && tar -czf $(DEBNAME)_$(VERSION).orig.tar.gz \
86 $(DEBNAME)-$(VERSION))
87 (cd debian && git archive --format=tar \
88 --prefix=$(DEBNAME)-$(VERSION)/debian/ HEAD | \
89 (cd ../.. && tar xf -))
91 debbuild:
92 (cd ../$(DEBNAME)-$(VERSION) && \
93 dpkg-buildpackage -v$(LASTUPLOAD) $(BUILDOPTS) \
94 -us -uc -rfakeroot && \
95 echo "Running lintian ..." && \
96 lintian -i ../$(DEBNAME)_$(VERSION)*.deb || : && \
97 echo "Done running lintian." && \
98 echo "Running linda ..." && \
99 linda -i ../$(DEBNAME)_$(VERSION)*.deb || : && \
100 echo "Done running linda." && \
101 debsign)
103 debinstall:
104 cp ../$(DEBNAME)_$(VERSION)* ../../dist/$(DISTRIBUTOR)
106 deb: debclean debprepare debbuild debinstall
108 upload: release
109 (cd .. && \
110 scp $(PROJECT)-$(VERSION).zip* $(PROJECT)-$(VERSION).tar.gz* \
111 mwolson@download.gna.org:/upload/planner-el)
113 elpa: realclean info-only
114 rm -fR $(ELPADIR)/$(PROJECT)-$(VERSION)
115 rm -f $(ELPADIR)/$(PROJECT)-$(VERSION).tar
116 mkdir -p $(ELPADIR)/$(PROJECT)-$(VERSION)
117 cp *.el $(ELPADIR)/$(PROJECT)-$(VERSION)
118 cp contrib/*.el $(ELPADIR)/$(PROJECT)-$(VERSION)
119 echo '(define-package "$(PROJECT)" "$(VERSION)"' > \
120 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(PROJECT)-pkg.el
121 echo ' "$(ELPADESC)")' >> \
122 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(PROJECT)-pkg.el
123 cp texi/$(MANUAL).info $(ELPADIR)/$(PROJECT)-$(VERSION)
124 cp texi/dir-template $(ELPADIR)/$(PROJECT)-$(VERSION)/dir
125 install-info --section "Emacs" "Emacs" \
126 --info-dir=$(ELPADIR)/$(PROJECT)-$(VERSION) \
127 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(MANUAL).info
128 rm -f $(ELPADIR)/$(PROJECT)-$(VERSION)/dir.old
129 (cd $(ELPADIR) && tar cf $(PROJECT)-$(VERSION).tar \
130 $(PROJECT)-$(VERSION))