summaryrefslogtreecommitdiff
path: root/lisp/Makefile
blob: cc1ddf9649ac5022a2175493eaf217fc67db5bdc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Makefile for the Insidious Big Brother Database.
# Original Author: Jamie Zawinski (jwz@netscape.com)
#
# $Id$

# this is lovely, isn't it?  Surprisingly enough, it seems to work...
VM	= -eval '(progn (if (not (string-match "$(VMDIR)" ""))            \
			    (setq load-path (cons "$(VMDIR)" load-path))) \
			(if (load "vm-version" t)                         \
			    (cond ((> (string-to-number vm-version) 5.31) \
                                   (load "vm"))                           \
                                  (t (load "vm-vars") (load "vm")))))'

GNUS	= -eval '(if (not (string-match "$(GNUSDIR)" ""))             \
		     (setq load-path (cons "$(GNUSDIR)" load-path)))'

MHE	= -eval '(progn (if (not (string-match "$(MHEDIR)" ""))            \
			    (setq load-path (cons "$(MHEDIR)" load-path))) \
			(load "mh-e"))'

# This is hideous and sick, but FSF 19.34 doesn't ship with split, and we
# can't load bbdb.el to get bbdb-split because we have to put OTHERDIR
# at the front of the load-path before loading bbdb.el.  This makes my
# head hurt.
PUSHPATH= -eval "`\
           dir=\". $(OTHERDIR)\"; \
	   echo \(setq load-path \(append \(list ; \
           for i in $$dir ; do \
              echo \\"$$i\\"\ ; \
	   done ;\
	   echo \) load-path\)\) ; \
           `"

#foo:
#	@echo $(PUSHPATH)
#	echo
#	$(EMACS) -batch -q $(PUSHPATH) -eval '(message (prin1-to-string load-path))'

#-eval '(setq load-path                                        \
#                     (append (bbdb-split (if (/= 0 (length "$(OTHERDIR)")) \
#                                              (concat ". " "$(OTHERDIR)")   \
#                                              ".") " ")                     \
#					       load-path))'

        EMACS = xemacs
     MAKEINFO = makeinfo

.SUFFIXES: .elc .el .tar .Z .gz .uu

DEPSRCS=	bbdb-com.el  bbdb-hooks.el  bbdb-gnus.el  bbdb-mhe.el \
		bbdb-rmail.el bbdb-vm.el bbdb-ftp.el bbdb-whois.el \
		bbdb-xemacs.el bbdb-print.el bbdb-srv.el bbdb-reportmail.el \
		bbdb-merge.el bbdb-migrate.el

DEPBINS=	${DEPSRCS:.el=.elc}
SRCS=		bbdb.el  $(DEPSRCS)
BINS=		bbdb.elc $(DEPBINS)

syntax:
	@echo "" ;\
	echo "*** Make should be run from the `cd ..;pwd` directory" ;\
	echo "" ;\

all:	rmail gnus vm mhe bbdb info autoloads

bbdb-autoloads.el: $(DEPSRCS)
	@rm -f $@;
	@echo "" > $@;
	$(EMACS) -batch -q -l autoload \
		--eval '(setq generated-autoload-file "'`pwd`'/$@")' \
		--eval "(if (featurep 'xemacs) (delete-file generated-autoload-file))" \
		--eval '(setq make-backup-files nil)' \
		--eval '(setq autoload-package-name "bbdb")' \
		-f batch-update-autoloads `pwd`

bbdb-autoloads.elc: bbdb-autoloads.el
	$(EMACS) -batch -q -f batch-byte-compile ./$^

bbdb.elc:            bbdb.el
bbdb-com.elc:        bbdb.elc bbdb-com.el
bbdb-ftp.elc:        bbdb.elc bbdb-ftp.el
bbdb-merge.elc:      bbdb-merge.el
bbdb-migrate.elc:    bbdb.elc bbdb-migrate.el
bbdb-print.elc:      bbdb.elc bbdb-print.el
bbdb-snarf.elc:      bbdb.elc bbdb-snarf.el
bbdb-whois.elc:      bbdb.elc bbdb-whois.el
bbdb-w3.elc:         bbdb.elc bbdb-w3.el
bbdb-xemacs.elc:     bbdb.elc bbdb-xemacs.el

.el.elc:
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -f batch-byte-compile $<

bbdb.elc:	bbdb.el
	$(EMACS) -batch -q -f batch-byte-compile ./bbdb.el

bbdb-gnus.elc:	bbdb.elc bbdb-gnus.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(GNUS)   \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-mhe.elc:	bbdb.elc bbdb-mhe.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(MHE)    \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-rmail.elc:	bbdb.elc bbdb-rmail.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(RMAIL)  \
		-f batch-byte-compile $(@:.elc=.el)
bbdb-vm.elc:	bbdb.elc bbdb-vm.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(VM)     \
		-f batch-byte-compile $(@:.elc=.el)

bbdb-srv.elc:   bbdb.elc bbdb-srv.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(or (fboundp (quote define-obsolete-variable-alias)) (if (locate-library "gnuserv-compat") (load-library "gnuserv-compat"))) (if (and (locate-library "gnuserv") (locate-library "itimer")) (byte-compile-file "bbdb-srv.el") (message "Optional package bbdb-srv skipped - gnuserv not found"))'

bbdb-reportmail.elc: bbdb.elc bbdb-reportmail.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(if (locate-library "reportmail") (byte-compile-file "bbdb-reportmail.el") (message "Optional package bbdb-reportmail skipped - reportmail not found"))'

bbdb-sc.elc: bbdb.elc bbdb-sc.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc -eval '(if (locate-library "supercite") (byte-compile-file "bbdb-sc.el") (message "Optional package bbdb-sc skipped - supercite not found"))'

# bbdb-hooks uses VM macros if it can find VM.  If you don't have VM,
# then the $(VM) makefile variable should be undefined or empty.
bbdb-hooks.elc:  bbdb.elc bbdb-hooks.el
	$(EMACS) -batch -q $(PUSHPATH) -l ./bbdb.elc $(VM) \
	-f batch-byte-compile $(@:.elc=.el)

autoloads: bbdb-autoloads.elc

extras: bbdb-print.elc bbdb-ftp.elc bbdb-whois.elc bbdb-xemacs.elc  \
	bbdb-srv.elc bbdb-reportmail.elc bbdb-snarf.elc bbdb-w3.elc \
	bbdb-sc.elc bbdb-merge.elc bbdb-migrate.elc
bbdb:	bbdb.elc bbdb-com.elc bbdb-hooks.elc autoloads extras
rmail:	bbdb bbdb-rmail.elc
vm:	bbdb bbdb-vm.elc
mhe:	bbdb bbdb-mhe.elc
gnus:	bbdb bbdb-gnus.elc
# aliases
mh:	mhe
mh-e:	mhe

deploy:
	@for fname in `cd RCS; ls |sed 's/,v$$//g'` ; do \
	  if [ -w "$$fname" ] ; then \
	    echo "File $$fname needs to be checked in" ; \
	    exit 1 ; \
	  fi ; \
	done ; \
	if [ -z "$(REVTAG)" ] ; then \
	  echo "REVTAG needs to be set" ; \
	  exit 1 ; \
	fi ; \
	rcs "-n$(REVTAG)": RCS/* ; \
	co -kv RCS/*


clean:
	$(RM) bbdb.elc bbdb-*.elc bbdb.info bbdb-autoloads.elc