Merge branch 'master' of ssh://repo.or.cz/srv/git/planner-el
[planner-el.git] / Makefile
blob42c03da27ba65945d197b9079a14b869ce9a01cf
1 .PHONY: all autoloads lisp doc clean realclean distclean fullclean install
2 .PHONY: test dist release upload elpa info-only
3 .PRECIOUS: %.elc
5 DEFS = $(shell test -f Makefile.defs && echo Makefile.defs \
6 || echo Makefile.defs.default)
8 include $(DEFS)
10 EL = $(filter-out $(PROJECT)-autoloads.el,$(wildcard *.el))
11 ELC = $(patsubst %.el,%.elc,$(EL))
13 all: autoloads lisp $(MANUAL).info
15 lisp: $(ELC)
17 $(PROJECT)-build.elc: ./scripts/$(PROJECT)-build.el
18 @echo $(PROJECT)-build.el is not byte-compiled
20 autoloads: $(PROJECT)-autoloads.el
22 $(PROJECT)-autoloads.el: $(EL)
23 @$(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
24 -f $(PROJECT)-generate-autoloads . contrib
26 %.elc: %.el
27 @$(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
28 -f batch-byte-compile $< || :
30 %.info: %.texi
31 makeinfo $<
33 %.html: %.texi
34 makeinfo --html --no-split $<
36 info-only: $(MANUAL).info
38 doc: $(MANUAL).info $(MANUAL).html
40 clean:
41 -rm -f *.elc *~
43 realclean fullclean: clean
44 -rm -f $(MANUAL).info $(MANUAL).html $(PROJECT)-autoloads.el
46 install: autoloads lisp $(MANUAL).info
47 install -d $(ELISPDIR)
48 install -m 0644 $(PROJECT)-autoloads.el $(EL) $(wildcard *.elc) \
49 $(ELISPDIR)
50 [ -d $(INFODIR) ] || install -d $(INFODIR)
51 install -m 0644 $(MANUAL).info $(INFODIR)/$(MANUAL)
52 $(call install_info,$(MANUAL))
54 test: $(ELC)
55 $(EMACS) -q $(SITEFLAG) -batch -l ./scripts/$(PROJECT)-build.el \
56 -f $(PROJECT)-elint-files $(EL)
58 distclean:
59 -rm -f $(MANUAL).info $(MANUAL).html
60 -rm -fr ../$(PROJECT)-$(VERSION)
62 dist: autoloads distclean
63 git archive --format=tar --prefix=$(PROJECT)-$(VERSION)/ HEAD | \
64 (cd .. && tar xf -)
65 rm -f ../$(PROJECT)-$(VERSION)/.gitignore
66 rm -fr ../$(PROJECT)-$(VERSION)/test
67 cp $(PROJECT)-autoloads.el ../$(PROJECT)-$(VERSION)/lisp
69 release: dist
70 (cd .. && tar -czf $(PROJECT)-$(VERSION).tar.gz \
71 $(PROJECT)-$(VERSION) && \
72 zip -r $(PROJECT)-$(VERSION).zip $(PROJECT)-$(VERSION) && \
73 gpg --detach $(PROJECT)-$(VERSION).tar.gz && \
74 gpg --detach $(PROJECT)-$(VERSION).zip)
76 upload: release
77 (cd .. && \
78 scp $(PROJECT)-$(VERSION).zip* $(PROJECT)-$(VERSION).tar.gz* \
79 mwolson@download.gna.org:/upload/planner-el)
81 elpa: realclean info-only
82 rm -fR $(ELPADIR)/$(PROJECT)-$(VERSION)
83 rm -f $(ELPADIR)/$(PROJECT)-$(VERSION).tar
84 mkdir -p $(ELPADIR)/$(PROJECT)-$(VERSION)
85 cp *.el $(ELPADIR)/$(PROJECT)-$(VERSION)
86 cp contrib/*.el $(ELPADIR)/$(PROJECT)-$(VERSION)
87 echo '(define-package "$(PROJECT)" "$(VERSION)"' > \
88 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(PROJECT)-pkg.el
89 echo ' "$(ELPADESC)")' >> \
90 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(PROJECT)-pkg.el
91 cp texi/$(MANUAL).info $(ELPADIR)/$(PROJECT)-$(VERSION)
92 cp texi/dir-template $(ELPADIR)/$(PROJECT)-$(VERSION)/dir
93 install-info --section "Emacs" "Emacs" \
94 --info-dir=$(ELPADIR)/$(PROJECT)-$(VERSION) \
95 $(ELPADIR)/$(PROJECT)-$(VERSION)/$(MANUAL).info
96 rm -f $(ELPADIR)/$(PROJECT)-$(VERSION)/dir.old
97 (cd $(ELPADIR) && tar cf $(PROJECT)-$(VERSION).tar \
98 $(PROJECT)-$(VERSION))