Mercurial > hg > xemacs-beta
comparison lisp/hyperbole/Makefile @ 0:376386a54a3c r19-14
Import from CVS: tag r19-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:45:50 +0200 |
parents | |
children | 4103f0995bd7 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:376386a54a3c |
---|---|
1 # | |
2 # SUMMARY: Build Hyperbole directories and distributions. | |
3 # | |
4 # AUTHOR: Bob Weiner | |
5 # | |
6 # ORIG-DATE: 15-Jun-94 at 03:42:38 | |
7 # LAST-MOD: 3-Nov-95 at 23:57:26 by Bob Weiner | |
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 | |
99 HYPB_VERSION = 4.01 | |
100 | |
101 MAN_DIR = ../../man | |
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 | |
158 cd $(MAN_DIR); $(INSTALL) hypb-mouse.txt $(datadir); \ | |
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) \ | |
175 -f batch-byte-compile `cat $(ELISP_TO_COMPILE)`) | |
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 | |
203 dvi: $(MAN_DIR)/hyperbole.dvi | |
204 | |
205 info: $(infodir)/hyperbole.info | |
206 | |
207 ps: $(MAN_DIR)/hyperbole.ps | |
208 | |
209 $(MAN_DIR)/hyperbole.dvi: info | |
210 cd $(MAN_DIR); tex hyperbole.texi; \ | |
211 texindex hyperbole.??; tex hyperbole.texi | |
212 | |
213 $(infodir)/hyperbole.info: $(MAN_DIR)/hyperbole.texi | |
214 cd $(MAN_DIR); $(MAKEINFO) hyperbole.texi | |
215 | |
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 | |
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* | |
227 -cd $(MAN_DIR); $(RM) core .*~ *~ *\# *.orig *.rej .place* .nfs* | |
228 | |
229 version: | |
230 fgrep $(HYPB_VERSION) Makefile README hversion.el \ | |
231 $(MAN_DIR)/hyperbole.texi; echo "" | |
232 | |
233 # Don't use this target. | |
234 bw-install: | |
235 cd /usr/local/infodock/lisp/; \ | |
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 | |
248 cd $(DIST_DIR); $(TAR) xf h.tar; $(MV) hman hyperbole/man | |
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 | |
257 -$(RM) TAGS hsite.el* kotl/TO-DO* $(MAN_DIR)/hyperbole.dvi \ | |
258 $(MAN_DIR)/hyperbole.?? |