0
|
1 #
|
|
2 # SUMMARY: Build Hyperbole directories and distributions.
|
|
3 #
|
|
4 # AUTHOR: Bob Weiner
|
|
5 #
|
|
6 # ORIG-DATE: 15-Jun-94 at 03:42:38
|
70
|
7 # LAST-MOD: 3-Nov-95 at 23:57:26 by Bob Weiner
|
0
|
8 #
|
|
9 # This file is part of Hyperbole.
|
|
10 # Available for use and distribution under the same terms as GNU Emacs.
|
|
11 #
|
|
12 # Copyright (C) 1994-1995, Free Software Foundation, Inc.
|
|
13 # Developed with support from Motorola Inc.
|
|
14 #
|
|
15 # DESCRIPTION:
|
|
16 #
|
|
17 # USAGE: Emacs V19, configure Hyperbole for use in current directory:
|
|
18 # make
|
|
19 # Rebuild out of date Emacs V19 Lisp .elc files:
|
|
20 # make
|
|
21 # If you really want to rebuild all .elc files under Emacs 19:
|
|
22 # make all-elc
|
|
23 # Emacs V18 and Epoch, rebuild Hyperbole in current directory:
|
|
24 # make all-elc-v18
|
|
25 # Build out of date Emacs V18 Lisp .elc files:
|
|
26 # make elc-v18
|
|
27 #
|
|
28 # DESCRIP-END.
|
|
29
|
|
30 ##########################################################################
|
|
31 # CONFIGURABLE SECTION #
|
|
32 ##########################################################################
|
|
33
|
|
34 # Executables for various versions of Emacs. Ensure that the name following
|
|
35 # the equals sign is correct for the version of emacs to which you set the
|
|
36 # EMACS variable.
|
|
37 EMACS19 = emacs19
|
|
38 EMACS18 = emacs
|
|
39 EPOCH = epoch
|
|
40 INFODOCK = infodock.bin
|
|
41 XEMACS = xemacs
|
|
42
|
|
43 # Emacs version used to byte-compile .el files into .elc's.
|
|
44 EMACS = $(XEMACS)
|
|
45
|
|
46 # Where to install the Hyperbole mouse key help file.
|
|
47 datadir = ../../etc
|
|
48 # Where to install the Info version of the Hyperbole manual.
|
|
49 infodir = ../../info
|
|
50 # Where to install the Texinfo version of the Hyperbole manual.
|
|
51 texidir = ../../man
|
|
52
|
|
53 # Site-specific Emacs Lisp libraries to load before byte-compiling any files
|
|
54 # from this package. Typically the only reason to set this is to get Emacs
|
|
55 # to include the directory of this package into its load-path variable, which
|
|
56 # determines where it will find Lisp library files to load.
|
|
57 #
|
|
58 # InfoDock and XEmacs 19.12 or higher include this package and automatically
|
|
59 # add its directory to load-path. Under Emacs 19, if you add this directory
|
|
60 # to load-path in your site-lisp/site-start.el file, then you need not change
|
|
61 # this setting since site-start is automatically loaded whenever Emacs starts
|
|
62 # up. If, however, you set load-path in your personal ~/.emacs file, you
|
|
63 # must add that to this setting.
|
|
64 #
|
|
65 # You must include the .el or .elc file suffix on each library name and each
|
|
66 # must be preceded by the `-l ' command-line flag. If the directory in which
|
|
67 # the library is stored will not be in your Emacs load-path when Emacs
|
|
68 # attempts to load the library, you must include the full pathname to the
|
|
69 # library. Here is an example setting.
|
|
70 #
|
|
71 # SITE_PRELOADS = -l ~/.emacs -l set-load-path.el
|
|
72 #
|
|
73 SITE_PRELOADS =
|
|
74
|
|
75 # Temp file to use to build .elc files.
|
|
76 ELISP_TO_COMPILE = /tmp/elc-${USER}
|
|
77
|
|
78 # Shell used to process this Makefile. Bourne shell syntax is required.
|
|
79 SHELL = /bin/sh
|
|
80
|
|
81 # UNIX commands you may want to change for your particular system.
|
|
82 CP = \cp -p
|
|
83 DVIPS = \dvips
|
|
84 ETAGS = etags
|
|
85 INSTALL = install -c
|
|
86 MAKE = make
|
|
87 MAKEINFO = \makeinfo --fill-column 74
|
|
88 MV = \mv -f
|
|
89 RM = \rm -f
|
|
90 TAR = tar
|
|
91
|
|
92 # Directory in which to create new distributions of Hyperbole.
|
|
93 DIST_DIR = /tmp
|
|
94
|
|
95 ##########################################################################
|
|
96 # NO CHANGES REQUIRED BELOW HERE. #
|
|
97 ##########################################################################
|
|
98
|
70
|
99 HYPB_VERSION = 4.01
|
|
100
|
|
101 MAN_DIR = ../../man
|
0
|
102
|
|
103 # Libraries that must be pre-loaded before trying to byte-compile anything.
|
|
104 PRELOADS = $(SITE_PRELOADS) -l ./hversion.el -l ./hyperbole.el -l ./hsite.el
|
|
105
|
|
106 # Compile in batch mode. Under Emacs 19 and XEmacs, load
|
|
107 # site-lisp/site-start.el, which may set load-path.
|
|
108 BATCHFLAGS = -batch
|
|
109
|
|
110 # Directories other than the current directory in which to find files.
|
|
111 # This doesn't seem to work in all versions of make, so we also add kotl/
|
|
112 # explicitly to those files which need it.
|
|
113 VPATH = kotl
|
|
114
|
|
115 EL_SRC = hsite.el hui-em19-b.el hui-ep-but.el hui-epV4-b.el hui-xe-but.el
|
|
116
|
|
117 EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el hbmap.el hbut.el \
|
|
118 hgnus.el hhist.el hib-doc-id.el hib-kbd.el hibtypes.el \
|
|
119 hinit.el hlvar.el hmail.el hmh.el hmoccur.el hmous-info.el \
|
|
120 hmouse-drv.el hmouse-key.el hmouse-mod.el hmouse-reg.el \
|
|
121 hmouse-sh.el hmouse-tag.el hpath.el hrmail.el hsmail.el \
|
|
122 hsys-hbase.el hsys-w3.el hsys-wais.el \
|
|
123 htz.el hui-menu.el hui-mini.el hui-mouse.el hui-window.el \
|
|
124 hui.el hvar.el hversion.el hvm.el hypb.el hyperbole.el \
|
|
125 set.el wconfig.el wrolo-logic.el wrolo-menu.el wrolo.el
|
|
126
|
|
127 EL_KOTL = kotl/kfile.el kotl/kfill.el kotl/kimport.el kotl/klabel.el \
|
|
128 kotl/klink.el kotl/kmenu.el kotl/knode.el kotl/kotl-mode.el \
|
|
129 kotl/kotl.el kotl/kproperty.el kotl/kprop-em.el \
|
|
130 kotl/kprop-xe.el kotl/kview.el kotl/kvspec.el
|
|
131
|
|
132 ELC_COMPILE = hactypes.elc hibtypes.elc hib-kbd.elc hib-doc-id.elc hact.elc \
|
|
133 hargs.elc hbdata.elc hbmap.elc hbut.elc hgnus.elc hhist.elc \
|
|
134 hinit.elc hlvar.elc hmail.elc hmh.elc hmoccur.elc hmous-info.elc \
|
|
135 hmouse-drv.elc hmouse-key.elc hmouse-mod.elc hmouse-reg.elc \
|
|
136 hmouse-sh.elc hmouse-tag.elc hpath.elc hrmail.elc hsmail.elc \
|
|
137 hsys-hbase.elc hsys-w3.elc hsys-wais.elc \
|
|
138 htz.elc hui-menu.elc hui-mini.elc hui-mouse.elc hui-window.elc \
|
|
139 hui.elc hvar.elc hversion.elc hvm.elc hypb.elc hyperbole.elc \
|
|
140 set.elc wconfig.elc wrolo-logic.elc wrolo-menu.elc wrolo.elc
|
|
141
|
|
142 ELC_KOTL = kotl/kfile.elc kotl/kfill.elc kotl/kimport.elc kotl/klabel.elc \
|
|
143 kotl/klink.elc kotl/kmenu.elc kotl/knode.elc kotl/kotl-mode.elc \
|
|
144 kotl/kotl.elc kotl/kproperty.elc \
|
|
145 kotl/kprop-xe.elc kotl/kview.el kotl/kvspec.elc
|
|
146
|
|
147 EL_TAGS = $(EL_SRC) $(EL_COMPILE) $(EL_KOTL)
|
|
148
|
|
149 .SUFFIXES: # Delete the default suffixes
|
|
150 .SUFFIXES: .el .elc # Define the list of file suffixes to match to rules
|
|
151
|
|
152 # Install Hyperbole for use in current directory under Emacs 19.
|
|
153 all: elc
|
|
154
|
|
155 doc: info ps
|
|
156
|
|
157 install: elc doc
|
70
|
158 cd $(MAN_DIR); $(INSTALL) hypb-mouse.txt $(datadir); \
|
0
|
159 $(INSTALL) hyperbole.info* $(infodir); \
|
|
160 $(INSTALL) hyperbole.texi $(texidir)
|
|
161
|
|
162 install-v18:
|
|
163 $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" install
|
|
164
|
|
165 # Record any .el files that need to be compiled.
|
|
166 .el.elc:
|
|
167 @ echo $< >> $(ELISP_TO_COMPILE)
|
|
168
|
|
169 # Compile all recorded .el files.
|
|
170 elc: elc-init hsite.el $(ELC_KOTL) $(ELC_COMPILE)
|
|
171 @- \test ! -f $(ELISP_TO_COMPILE) \
|
|
172 || (echo "These files will be compiled: " \
|
|
173 && echo "`cat $(ELISP_TO_COMPILE)`" \
|
|
174 && $(EMACS) $(BATCHFLAGS) $(PRELOADS) \
|
80
|
175 -l bytecomp -f batch-byte-compile `cat $(ELISP_TO_COMPILE)`)
|
0
|
176 @ $(RM) $(ELISP_TO_COMPILE)
|
|
177
|
|
178 elc-init:
|
|
179 @ $(RM) $(ELISP_TO_COMPILE)
|
|
180
|
|
181 elc-v18:
|
|
182 $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" elc
|
|
183
|
|
184 all-v19: all-elc install
|
|
185
|
|
186 all-v18: all-elc-v18 install-v18
|
|
187
|
|
188 # Remove and then rebuild all byte-compiled .elc files for V19 Emacs, even
|
|
189 # those .elc files which do not yet exist.
|
|
190 all-elc: hsite.el
|
|
191 $(RM) *.elc kotl/*.elc
|
|
192 $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $(EL_KOTL) $(EL_COMPILE)
|
|
193
|
|
194 # Remove and then rebuild all byte-compiled .elc files for V18 Emacs.
|
|
195 # The kotl/ files are not used under V18 so they are not rebuilt.
|
|
196 all-elc-v18:
|
|
197 $(MAKE) EMACS="$(EMACS18)" VPATH="" EL_KOTL="" ELC_KOTL="" all-elc
|
|
198
|
|
199 # This creates the site-specific hsite.el file from hsite-ex.el if necessary.
|
|
200 hsite.el: hsite-ex.el
|
|
201 \test -f hsite.el || $(CP) hsite-ex.el hsite.el
|
|
202
|
70
|
203 dvi: $(MAN_DIR)/hyperbole.dvi
|
0
|
204
|
|
205 info: $(infodir)/hyperbole.info
|
|
206
|
70
|
207 ps: $(MAN_DIR)/hyperbole.ps
|
0
|
208
|
70
|
209 $(MAN_DIR)/hyperbole.dvi: info
|
|
210 cd $(MAN_DIR); tex hyperbole.texi; \
|
0
|
211 texindex hyperbole.??; tex hyperbole.texi
|
|
212
|
70
|
213 $(infodir)/hyperbole.info: $(MAN_DIR)/hyperbole.texi
|
|
214 cd $(MAN_DIR); $(MAKEINFO) hyperbole.texi
|
0
|
215
|
70
|
216 $(MAN_DIR)/hyperbole.ps: $(MAN_DIR)/hyperbole.texi
|
|
217 make $(MAN_DIR)/hyperbole.dvi
|
|
218 -$(RM) $(MAN_DIR)/hyperbole.ps
|
|
219 cd $(MAN_DIR); $(DVIPS) -o hyperbole.ps hyperbole.dvi
|
0
|
220
|
|
221 tags: $(EL_TAGS)
|
|
222 $(ETAGS) $(EL_TAGS) h-skip-bytec.lsp
|
|
223
|
|
224 clean:
|
|
225 -$(RM) core .place* .*~ *~ *\# *.orig *.rej .nfs*
|
|
226 -cd kotl; $(RM) core .*~ *~ *\# *.orig *.rej .place* .nfs*
|
70
|
227 -cd $(MAN_DIR); $(RM) core .*~ *~ *\# *.orig *.rej .place* .nfs*
|
0
|
228
|
|
229 version:
|
|
230 fgrep $(HYPB_VERSION) Makefile README hversion.el \
|
70
|
231 $(MAN_DIR)/hyperbole.texi; echo ""
|
0
|
232
|
|
233 # Don't use this target.
|
|
234 bw-install:
|
70
|
235 cd /usr/local/infodock/lisp/; \
|
0
|
236 tar zxvf /tmp/hyperbole-$(HYPB_VERSION).tar.gz; \
|
|
237 cd hyperbole/; \
|
|
238 mv man/hyperbole.info* ../../info/; mv man/hyperbole.texi ../../man/; \
|
|
239 mv man/hypb-mouse.txt ../../etc/; rm -rf man
|
|
240
|
|
241 dist: version elc info
|
|
242 echo "Ensure version # in README, hversion.el, Makefile and man/hyperbole.texi is up to date."
|
|
243 cd ..; $(TAR) clf $(DIST_DIR)/h.tar hyperbole; \
|
|
244 $(RM) -r $(DIST_DIR)/hman; mkdir $(DIST_DIR)/hman; \
|
|
245 $(CP) ../man/hyperbole.texi ../info/hyperbole.info* \
|
|
246 ../etc/hypb-mouse.txt $(DIST_DIR)/hman
|
|
247 $(RM) -r $(DIST_DIR)/hyperbole
|
70
|
248 cd $(DIST_DIR); $(TAR) xf h.tar; $(MV) hman hyperbole/man
|
0
|
249 cd $(DIST_DIR)/hyperbole; make distclean
|
|
250 # This ver setup won't work under SunOS for some reason.
|
|
251 # ver="`head -3 hyperbole/hversion.el | tail -1 | sed -e 's/.*|//'`"
|
|
252 cd $(DIST_DIR); $(RM) h.tar ver; \
|
|
253 $(TAR) --gzip -clf hyperbole-$(HYPB_VERSION).tar.gz hyperbole
|
|
254
|
|
255 # Don't run this target manually. Use 'make dist' instead.
|
|
256 distclean: clean
|
70
|
257 -$(RM) TAGS hsite.el* kotl/TO-DO* $(MAN_DIR)/hyperbole.dvi \
|
|
258 $(MAN_DIR)/hyperbole.??
|