1
########### all user servicable parts are in Makefile.User ##################
4
############## no user servicable parts beyond this point ###################
7
VMV = $(shell sed -n -e 's/^.defconst vm-version "\([0-9]*\.[0-9]*\).*/\1/p' vm-version.el)
12
# byte compiler options
13
BYTEOPTS = ./vm-byteopts.el
15
# have to preload the files that contain macro definitions or the
16
# byte compiler will compile everything that references them
17
# incorrectly. also preload a file that sets byte compiler options.
18
PRELOADS = -l $(BYTEOPTS) -l ./vm-version.el -l ./vm-message.el -l ./vm-macro.el -l ./vm-vars.el
20
# compile with noninteractive and relatively clean environment
21
BATCHFLAGS = -batch -q -no-site-file -eval '(setq buffer-file-coding-system nil)'
23
# files that contain key macro definitions. almost everything
24
# depends on them because the byte-compiler inlines macro
25
# expansions. everything also depends on the byte compiler
26
# options file since this might do odd things like turn off
27
# certain compiler optimizations.
28
CORE = vm-message.el vm-macro.el vm-byteopts.el
30
# vm-version.elc needs to be first in this list, because load time
31
# code needs the Emacs/XEmacs MULE/no-MULE feature stuff.
32
SOURCES = vm-version.el $(wildcard *.el)
33
OBJECTS = $(SOURCES:.el=.elc)
35
UTILS = qp-decode qp-encode base64-decode base64-encode
38
$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $<
40
all: vm.elc $(OBJECTS) $(UTILS) vm.info vm-pcrisis.info
43
$(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-recompile-directory .
45
noautoload: $(OBJECTS) tapestry.elc
46
@echo "building vm.elc (with all modules included)..."
47
cat $(OBJECTS) tapestry.elc > vm.elc
49
debug: $(SOURCES) tapestry.el
50
@echo "building vm.elc (uncompiled, no autoloads)..."
51
cat $(SOURCES) tapestry.el > vm.elc
54
mkdirhier $(INFODIR) $(LISPDIR) $(PIXMAPDIR) $(BINDIR)
55
cp vm.info vm.info-* vm-pcrisis.info $(INFODIR)
57
cp pixmaps/*.xpm $(PIXMAPDIR)
61
@echo "making vm.info..."
62
$(EMACS) $(BATCHFLAGS) -insert vm.texinfo -l texinfmt -f texinfo-format-buffer -f save-buffer
64
vm-pcrisis.info: vm-pcrisis.texi
66
$(EMACS) $(BATCHFLAGS) -insert vm-pcrisis.texi -l texinfmt -f texinfo-format-buffer -f save-buffer
69
rm -f vm-autoload.el vm.el *.elc \
70
base64-decode base64-encode qp-decode qp-encode
72
vm.el: vm-autoload.elc tapestry.elc
73
@echo "building $@ (with all modules set to autoload)..."
74
@echo "(defun vm-its-such-a-cruel-world ()" > vm.el
75
@echo " (require 'vm-version)" >> vm.el
76
@echo " (require 'vm-startup)" >> vm.el
77
@echo " (require 'vm-vars)" >> vm.el
78
@echo " (require 'vm-autoload))" >> vm.el
79
@echo "(vm-its-such-a-cruel-world)" >> vm.el
80
@echo "(fmakunbound 'vm-its-such-a-cruel-world)" >> vm.el
82
noautoloads=vm.el vm-autoload.el
83
vm-autoload.el: $(filter-out $(noautoloads),$(SOURCES))
84
@echo scanning sources to build autoload definitions...
85
@echo "(provide 'vm-autoload)" > vm-autoload.el
86
$(EMACS) $(BATCHFLAGS) -l ./make-autoloads -f print-autoloads $(filter-out $(noautoloads),$(SOURCES)) >> vm-autoload.el
90
qp-encode: qp-encode.c
91
qp-decode: qp-decode.c
92
base64-encode: base64-encode.c
93
base64-decode: base64-decode.c
95
##############################################################################
96
snapshot: push patch ball single-files
98
VMPATCH=vm-$(VMV).patch
99
ELISPDIR=$(HOME)/html-data/www.robf.de/Hacking/elisp
106
bzr log --verbose > ChangeLog
107
echo 'Version: $$Id: '`bzr nick`-`bzr revno`'$$' > $(VMPATCH)
108
echo "" >> $(VMPATCH)
109
echo '*******************************************************************************' >> $(VMPATCH)
110
cat patchdoc.txt >> $(VMPATCH); diff --ignore-all-space -u -P -x qp-encode -x qp-decode -x patchdoc.txt -x vm-autoload.el -x vm.el -x '*.elc' -x '#*' -x '*.gz' -x '*.patch' -x '*info*' -x ',*' $(HOME)/.hacking/vm-$(VMV) . | grep -v '^Only in' | grep -v '^Binary files' >> $(VMPATCH); echo patch $(VMPATCH) written ...
112
cp $(VMPATCH).gz $(ELISPDIR)
113
touch $(ELISPDIR)/index.rml
116
echo 'Version: $$Id: '`bzr nick`-`bzr revno`'$$' > ,id
117
tar chfvz vmrf.tgz ,id *.c *.texi* *ChangeLog patchdoc.txt Makefile* make-autoloads *.el
118
cp vmrf.tgz $(ELISPDIR)
119
touch $(ELISPDIR)/index.rml
121
vm-pcrisis.tgz: vm-pcrisis.info
122
dest="vm-pcrisis-"`grep vmpc-version vm-pcrisis.el | cut -d '"' -f 2`; \
125
updateWithId vm-pcrisis.el $$dest/vm-pcrisis.el; \
126
updateWithId vm-pcrisis.texi $$dest/vm-pcrisis.texi; \
127
cp vm-pcrisis.info $$dest/vm-pcrisis.info; \
128
tar chfvz $$dest.tgz $$dest; \
129
cp $$dest.tgz $(ELISPDIR); \
130
touch $(ELISPDIR)/index.rml
132
# As long as I am maintaining tla and CVS at the same time
133
single-files: $(ELISPDIR)/vm-mime.el \
134
$(ELISPDIR)/vm-serial.el \
135
$(ELISPDIR)/vm-summary-faces.el \
136
$(ELISPDIR)/vm-avirtual.el \
137
$(ELISPDIR)/vm-biff.el \
138
$(ELISPDIR)/vm-grepmail.el \
139
$(ELISPDIR)/vm-pine.el \
140
$(ELISPDIR)/vm-ps-print.el \
141
$(ELISPDIR)/vm-rfaddons.el \
142
$(ELISPDIR)/vm-mail \
143
$(ELISPDIR)/vm-pgg.el
148
@touch $(ELISPDIR)/index.rml
150
##############################################################################
152
if test -e '.bzr'; then echo ERROR: No updates in checkouts; exit -1; fi;
153
c=`ls -l vmrf.tgz`; \
154
wget -N http://www.robf.de/Hacking/elisp/vmrf.tgz; \
155
if test "$$c" != "`ls -l vmrf.tgz`"; then \
156
echo extracting vmrf.tgz; \
157
tar --exclude=Makefile.User -x -z -f vmrf.tgz; \
158
rm -f vm-autoload.el*; \
163
get-other-extensions:
164
wget -N http://www.splode.com/~friedman/software/emacs-lisp/src/vcard.el
165
wget -N http://www.splode.com/~friedman/software/emacs-lisp/src/vm-vcard.el
166
wget -N http://de.geocities.com/ulf_jasper/lisp/u-vm-color.el
167
wget -N http://www.cis.upenn.edu/~bjornk/bogofilter/vm-bogofilter.el
168
wget -N http://groups-beta.google.com/group/gnu.emacs.vm.info/attach/f37a5e0ce73a4687/vm-message-history.el.%7E1.2%7E?part=2&hl=en