1 .PHONY
: all autoloads lisp doc
clean realclean distclean fullclean
install
2 .PHONY
: test dist release upload elpa info-only
5 DEFS
= $(shell test -f Makefile.defs
&& echo Makefile.defs \
6 || echo Makefile.defs.default
)
10 EL
= $(filter-out $(PROJECT
)-autoloads.el
,$(wildcard *.el
))
11 ELC
= $(patsubst %.el
,%.elc
,$(EL
))
13 all: autoloads lisp
$(MANUAL
).
info
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
27 @
$(EMACS
) -q
$(SITEFLAG
) -batch
-l .
/scripts
/$(PROJECT
)-build.el \
28 -f batch-byte-compile
$< ||
:
34 makeinfo --html
--no-split
$<
36 info-only
: $(MANUAL
).
info
38 doc
: $(MANUAL
).
info $(MANUAL
).html
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
) \
50 [ -d
$(INFODIR
) ] ||
install -d
$(INFODIR
)
51 install -m
0644 $(MANUAL
).
info $(INFODIR
)/$(MANUAL
)
52 $(call install_info
,$(MANUAL
))
55 $(EMACS
) -q
$(SITEFLAG
) -batch
-l .
/scripts
/$(PROJECT
)-build.el \
56 -f
$(PROJECT
)-elint-files
$(EL
)
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 | \
65 rm -f ..
/$(PROJECT
)-$(VERSION
)/.gitignore
66 rm -fr ..
/$(PROJECT
)-$(VERSION
)/test
67 cp
$(PROJECT
)-autoloads.el ..
/$(PROJECT
)-$(VERSION
)/lisp
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
)
78 scp
$(PROJECT
)-$(VERSION
).zip
* $(PROJECT
)-$(VERSION
).
tar.gz
* \
79 johnsu01@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
))