~vm/vm/vmpc-prompt

« back to all changes in this revision

Viewing changes to Makefile

  • Committer: Robert Widhopf-Fenk
  • Date: 2007-01-12 01:50:26 UTC
  • Revision ID: hack@robf.de-20070112015026-pvfvgthu2e6lx7ik
Reorganized the VM source tree and added a configure script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
########### all user servicable parts are in Makefile.User ##################
2
 
include Makefile.User
3
 
 
4
 
############## no user servicable parts beyond this point ###################
5
 
 
6
 
# VM version
7
 
VMV =   $(shell sed -n -e 's/^.defconst vm-version "\([0-9]*\.[0-9]*\).*/\1/p' vm-version.el)
8
 
 
9
 
# no csh please
10
 
SHELL = /bin/sh
11
 
 
12
 
# byte compiler options
13
 
BYTEOPTS = ./vm-byteopts.el
14
 
 
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  
19
 
 
20
 
# compile with noninteractive and relatively clean environment
21
 
BATCHFLAGS = -batch -q -no-site-file -eval '(setq buffer-file-coding-system nil)'
22
 
 
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
29
 
 
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)
34
 
 
35
 
UTILS = qp-decode qp-encode base64-decode base64-encode
36
 
 
37
 
.el.elc:
38
 
        $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $<
39
 
 
40
 
all: vm.elc $(OBJECTS) $(UTILS) vm.info vm-pcrisis.info
41
 
 
42
 
recompile:
43
 
        $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-recompile-directory .
44
 
 
45
 
noautoload:     $(OBJECTS) tapestry.elc
46
 
        @echo "building vm.elc (with all modules included)..."
47
 
        cat $(OBJECTS) tapestry.elc > vm.elc
48
 
 
49
 
debug:  $(SOURCES) tapestry.el
50
 
        @echo "building vm.elc (uncompiled, no autoloads)..."
51
 
        cat $(SOURCES) tapestry.el > vm.elc
52
 
 
53
 
install: all
54
 
        mkdirhier $(INFODIR) $(LISPDIR) $(PIXMAPDIR) $(BINDIR)
55
 
        cp vm.info vm.info-* vm-pcrisis.info $(INFODIR)
56
 
        cp *.elc $(LISPDIR)
57
 
        cp pixmaps/*.xpm $(PIXMAPDIR)
58
 
        cp $(UTILS) $(BINDIR)
59
 
 
60
 
vm.info: vm.texinfo
61
 
        @echo "making vm.info..."
62
 
        $(EMACS) $(BATCHFLAGS) -insert vm.texinfo -l texinfmt -f texinfo-format-buffer -f save-buffer
63
 
 
64
 
vm-pcrisis.info: vm-pcrisis.texi
65
 
        @echo "making $@..."
66
 
        $(EMACS) $(BATCHFLAGS) -insert vm-pcrisis.texi -l texinfmt -f texinfo-format-buffer -f save-buffer
67
 
 
68
 
clean:
69
 
        rm -f vm-autoload.el vm.el *.elc \
70
 
        base64-decode base64-encode qp-decode qp-encode
71
 
 
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
81
 
 
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
87
 
 
88
 
utils: $(UTILS)
89
 
 
90
 
qp-encode: qp-encode.c
91
 
qp-decode: qp-decode.c
92
 
base64-encode: base64-encode.c
93
 
base64-decode: base64-decode.c
94
 
 
95
 
##############################################################################
96
 
snapshot: push patch ball single-files
97
 
 
98
 
VMPATCH=vm-$(VMV).patch
99
 
ELISPDIR=$(HOME)/html-data/www.robf.de/Hacking/elisp
100
 
 
101
 
push:
102
 
        bzr push
103
 
 
104
 
patch:
105
 
        -rm -f *.orig *.rej
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 ...
111
 
        gzip -f $(VMPATCH)
112
 
        cp $(VMPATCH).gz $(ELISPDIR)
113
 
        touch $(ELISPDIR)/index.rml
114
 
 
115
 
ball:
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
120
 
 
121
 
vm-pcrisis.tgz: vm-pcrisis.info
122
 
        dest="vm-pcrisis-"`grep vmpc-version vm-pcrisis.el | cut -d '"' -f 2`; \
123
 
        rm -rf $$dest; \
124
 
        mkdir $$dest; \
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
131
 
 
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
144
 
 
145
 
$(ELISPDIR)/%: %
146
 
        @echo Updating $<
147
 
        @updateWithId $< $@ 
148
 
        @touch $(ELISPDIR)/index.rml
149
 
 
150
 
##############################################################################
151
 
update:
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*; \
159
 
            echo building ...; \
160
 
            make; \
161
 
        fi;
162
 
 
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
169