comparison lisp/oobr/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 OO-Browser directories and distributions.
3 #
4 # AUTHOR: Bob Weiner
5 #
6 # ORIG-DATE: 6-Oct-94 at 03:42:38
7 # LAST-MOD: 1-Nov-95 at 22:22:45 by Bob Weiner
8 #
9 # Copyright (C) 1994-1995 Free Software Foundation, Inc.
10 # See the file BR-COPY for license information.
11 #
12 # This file is part of the OO-Browser.
13 #
14 # DESCRIPTION:
15 #
16 # USAGE: Before doing your first make, edit the CONFIGURABLE SECTION
17 # in the "Makefile". The only change you have to make is to
18 # set the EMACS variable to point to the Emacs executable that
19 # you want to use to byte-compile the OO-Browser Lisp files.
20 # Make this change now and save the file.
21 #
22 # If you are running Emacs V18 or Epoch, you must first rebuild
23 # all byte-compiled Lisp files. Use:
24 # make all-elc
25 #
26 # Then, whatever Emacs version you use, invoke:
27 # make
28 #
29 # Use these commands if you want to build graphical interfaces
30 # to the OO-Browser:
31 # Build the X OO-Browser: make xoobr
32 #
33 # If you want to rebuild the NEXTSTEP OO-Browser below the
34 # "tree-nx" directory, you must use NeXT's ProjectBuilder.
35 #
36 # Now the OO-Browser should be ready for use if you have
37 # followed the installation instructions in "BR-README".
38 #
39 # -----------------
40 #
41 # To force rebuilding of all .elc files, even ones that are not
42 # out of date:
43 # make all-elc
44 #
45 # To build the Info version of the OO-Browser:
46 # make info
47 #
48 # To build the Postscript version of the OO-Browser:
49 # make ps
50 #
51 # DESCRIP-END.
52
53 ##########################################################################
54 # CONFIGURABLE SECTION #
55 ##########################################################################
56
57 # Binaries for various versions of Emacs. Set 'EMACS' below to the one you
58 # want to use to byte-compile Lisp files.
59 EMACS19 = emacs19
60 EMACS18 = emacs
61 EPOCH = epoch
62 INFODOCK = infodock.bin
63 XEMACS = xemacs
64
65 # Emacs version used to byte-compile .el files into .elc's.
66 EMACS = $(XEMACS)
67
68 # Where to install the Info version of the OO-Browser manual.
69 infodir = ../info
70 # Where to install the Texinfo version of the OO-Browser manual
71 # along with its im/ directory of images.
72 texidir = ../man
73
74 # Site-specific Emacs Lisp libraries to load before byte-compiling any files
75 # from this package. Typically the only reason to set this is to get Emacs
76 # to include the directory of this package into its load-path variable, which
77 # determines where it will find Lisp library files to load.
78 #
79 # InfoDock and XEmacs 19.12 or higher include this package and automatically
80 # add its directory to load-path. Under Emacs 19, if you add this directory
81 # to load-path in your site-lisp/site-start.el file, then you need not change
82 # this setting since site-start is automatically loaded whenever Emacs starts
83 # up. If, however, you set load-path in your personal ~/.emacs file, you
84 # must add that to this setting.
85 #
86 # You must include the .el or .elc file suffix on each library name and each
87 # must be preceded by the `-l ' command-line flag. If the directory in which
88 # the library is stored will not be in your Emacs load-path when Emacs
89 # attempts to load the library, you must include the full pathname to the
90 # library. Here is an example setting.
91 #
92 # SITE_PRELOADS = -l ~/.emacs -l set-load-path.el
93 #
94 SITE_PRELOADS =
95
96 # Temp file to use to build .elc files.
97 ELISP_TO_COMPILE = /tmp/elc-${USER}
98
99 # Shell used to process this Makefile. Bourne shell syntax is required.
100 SHELL = /bin/sh
101
102 # UNIX commands you may want to change for your particular system.
103 CP = \cp -p
104 DVIPS = \dvips
105 ETAGS = etags
106 INSTALL = install -c
107 MAKE = make
108 MAKEINFO = \makeinfo --fill-column 74
109 MKDIR = mkdir
110 MV = \mv -f
111 RM = \rm -f
112 TAR = tar
113
114 # Directory in which to create new distributions of the OO-Browser.
115 DIST_DIR = /tmp
116
117 ##########################################################################
118 # NO CHANGES REQUIRED BELOW HERE #
119 ##########################################################################
120
121 OOBR_VERSION = 2.9.11
122
123 MAN_DIR = man
124
125 # Libraries that must be pre-loaded before trying to byte-compile anything.
126 PRELOADS = $(SITE_PRELOADS) -l ./br-start.el
127
128 # Compile in batch mode. Under Emacs 19 and XEmacs, load
129 # site-lisp/site-start.el, which may set load-path.
130 BATCHFLAGS = -batch
131
132 # Directories other than the current directory in which to find files.
133 # This doesn't seem to work in all versions of make, so we also add hypb/
134 # explicitly to those files which need it.
135 VPATH = hypb
136
137 HYPB_EL = hypb/h-skip-bytec.lsp hypb/hact.el hypb/hargs.el \
138 hypb/hhist.el hypb/hmail.el hypb/hmouse-drv.el \
139 hypb/hmouse-key.el hypb/hmous-info.el \
140 hypb/hmouse-reg.el hypb/hmouse-sh.el \
141 hypb/hpath.el hypb/hui-mouse.el \
142 hypb/hui-window.el hypb/hvar.el \
143 hypb/hversion.el hypb/hypb.el hypb/set.el
144
145 HYPB_ELC = hypb/hact.elc hypb/hargs.elc \
146 hypb/hhist.elc hypb/hmail.el hypb/hmouse-drv.elc \
147 hypb/hmouse-key.elc hypb/hmous-info.elc \
148 hypb/hmouse-reg.elc hypb/hmouse-sh.elc \
149 hypb/hpath.elc hypb/hui-mouse.elc \
150 hypb/hui-window.elc hypb/hvar.elc \
151 hypb/hversion.elc hypb/hypb.elc hypb/set.elc
152
153 # Files from Hyperbole necessary for OO-Browser mouse support.
154 HYPERBOLE = $(HYPB_EL) $(HYPB_ELC)
155
156 EL_COMPILE = br-c-ft.el br-c++-ft.el br-c++.el br-clos-ft.el \
157 br-clos.el br-compl.el \
158 br-eif-ft.el br-eif.el br-env.el br-ftr.el br-info.el \
159 br-init.el br-java.el br-java-ft.el \
160 br-lib.el br-menu.el br-objc-ft.el \
161 br-objc.el br-python.elc br-python-ft.elc \
162 br-site.el br-vers.el \
163 br-smt.el br-start.el br-tree.el br.el c++-browse.el \
164 clos-brows.el eif-browse.el eif-calls.el eif-ise-er.el \
165 hasht.el hmouse-br.el info-brows.el java-brows.el \
166 objc-brows.el python-browse.el smt-browse.el
167
168 ELC_COMPILE = br-c-ft.elc br-c++-ft.elc br-c++.elc br-clos-ft.elc \
169 br-clos.elc br-compl.elc \
170 br-eif-ft.elc br-eif.elc br-env.elc br-ftr.elc br-info.elc \
171 br-init.elc br-java.elc br-java-ft.elc \
172 br-lib.elc br-menu.elc br-objc-ft.elc \
173 br-objc.elc br-python.elc br-python-ft.elc \
174 br-site.elc br-vers.elc \
175 br-smt.elc br-start.elc br-tree.elc br.elc c++-browse.elc \
176 clos-brows.elc eif-browse.elc eif-calls.elc eif-ise-er.elc \
177 hasht.elc hmouse-br.elc info-brows.elc java-brows.elc \
178 objc-brows.elc python-browse.elc smt-browse.elc
179
180 EL_TAGS = $(EL_COMPILE)
181
182 .SUFFIXES: # Delete the default suffixes
183 .SUFFIXES: .el .elc # Define the list of file suffixes to match to rules
184
185 # Build the OO-Browser for use in current directory.
186 all: elc
187
188 doc: info ps
189
190 xoobr:
191 cd tree-x; make
192
193
194 install: xoobr
195 # Install the X OO-Browser in its executable directory.
196 cd tree-x; make install
197 cd $(MAN_DIR); $(INSTALL) oo-browser.info* $(infodir); \
198 $(INSTALL) oo-browser.texi $(texidir); \
199 $(INSTALL) im $(texidir)
200
201 # Record any .el files that need to be compiled.
202 .el.elc:
203 @ echo $< >> $(ELISP_TO_COMPILE)
204
205 # Compile all recorded .el files.
206 elc: elc-init $(ELC_COMPILE) $(HYPB_ELC)
207 @- \test ! -f $(ELISP_TO_COMPILE) \
208 || (echo "These files will be compiled: " \
209 && echo "`cat $(ELISP_TO_COMPILE)`" \
210 && $(EMACS) $(BATCHFLAGS) $(PRELOADS) \
211 -f batch-byte-compile `cat $(ELISP_TO_COMPILE)`)
212 @ $(RM) $(ELISP_TO_COMPILE)
213
214 elc-init:
215 @ $(RM) $(ELISP_TO_COMPILE)
216
217 # Remove and then rebuild all byte-compiled .elc files for V19 Emacs, even
218 # those .elc files which do not yet exist.
219 all-elc:
220 $(RM) *.elc
221 $(EMACS) $(BATCHFLAGS) $(PRELOADS) -f batch-byte-compile $(EL_COMPILE)
222
223 # This target is used for background building of OO-Browser Environments.
224 # Don't change the name of the target since it is used in "br-env.el".
225 # Don't try to use this target manually unless you first set the following 2
226 # environment variables:
227 # OOBR_DIR = full pathname of the directory where the OO-Browser lives
228 # OOBR_ENV = full pathname of the Environment specification to build
229 oobr-env:
230 cd $(OOBR_DIR); $(EMACS) $(BATCHFLAGS) $(PRELOADS) ${OOBR_ENV} -f br-env-batch-build
231
232 dvi: $(MAN_DIR)/oo-browser.dvi
233
234 info: $(MAN_DIR)/oo-browser.info
235
236 ps: $(MAN_DIR)/oo-browser.ps
237
238 $(MAN_DIR)/oo-browser.dvi: $(MAN_DIR)/oo-browser.info
239 cd $(MAN_DIR); tex oo-browser.texi; texindex oo-browser.??; tex oo-browser.texi
240
241 $(MAN_DIR)/oo-browser.info: $(MAN_DIR)/oo-browser.texi
242 cd $(MAN_DIR); $(MAKEINFO) oo-browser.texi
243
244 $(MAN_DIR)/oo-browser.ps: $(MAN_DIR)/oo-browser.texi
245 make $(MAN_DIR)/oo-browser.dvi
246 -$(RM) $(MAN_DIR)/oo-browser.ps
247 cd $(MAN_DIR); $(DVIPS) -o oo-browser.ps oo-browser.dvi
248
249 tags: $(EL_TAGS)
250 $(ETAGS) $(EL_TAGS) tree-x/*.[ch] tree-nx/*.[mh]
251
252 hypb-tags: $(EL_TAGS)
253 cd $(DIST_DIR)/oobr; $(ETAGS) $(EL_TAGS) $(HYPB_EL) tree-x/*.[ch] tree-nx/*.[mh]
254
255 clean: distclean
256 $(RM) *.elc
257
258 version:
259 fgrep $(OOBR_VERSION) BR-RELEASE br-vers.el man/oo-browser.texi
260 echo ""
261
262 # Don't use this target.
263 bw-install:
264 cd /usr/local/infodock/lisp/; \
265 tar zxvf /tmp/oo-browser-$(OOBR_VERSION).tar.gz; \
266 cd oobr/; mv man/*.info* ../../info/; mv man/*.texi ../../man/; \
267 rm -rf man
268
269 dist: version elc info
270 echo "Ensure version # in br-vers.el and man/oo-browser.texi is up to date."
271 $(RM) -r $(DIST_DIR)/oobr
272 cd ..; $(TAR) clf $(DIST_DIR)/br.tar oobr
273 cd $(DIST_DIR); $(TAR) xf br.tar
274 cd $(DIST_DIR)/oobr; $(RM) -r hypb man/im; make distclean; \
275 mkdir hypb man/im; chmod 755 hypb man/im; \
276 $(CP) /usr/local/infodock/info-local/im/oobr-* man/im
277 $(CP) $(HYPERBOLE) $(DIST_DIR)/oobr/hypb
278 # This ver setup won't work under SunOS for some reason.
279 # ver="`head -3 oobr/br-vers.el | tail -1 | sed -e 's/.*|//'`"
280 cd $(DIST_DIR); $(RM) br.tar; \
281 $(TAR) --gzip -clf oo-browser-$(OOBR_VERSION).tar.gz oobr
282
283 distclean:
284 -$(RM) TAGS core .place* .*~ *~ *\# *.orig *.rej .nfs*
285 -cd tree-x; $(RM) .*~ *~ *\# *.orig *.rej *.o xoobr .nfs*
286 -cd tree-nx; $(RM) -r .*~ *~ *\# *.orig *.rej obj* TreeView.app .nfs*
287 -cd $(MAN_DIR); $(RM) oo-browser.?? oo-browser.dvi .*~ *~ *\# *.orig *.rej .nfs*