0
|
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
|
70
|
7 # LAST-MOD: 1-Nov-95 at 22:22:45 by Bob Weiner
|
0
|
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.
|
70
|
69 infodir = ../info
|
0
|
70 # Where to install the Texinfo version of the OO-Browser manual
|
|
71 # along with its im/ directory of images.
|
70
|
72 texidir = ../man
|
0
|
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
|
70
|
121 OOBR_VERSION = 2.9.11
|
|
122
|
|
123 MAN_DIR = man
|
0
|
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 \
|
70
|
161 br-objc.el br-python.elc br-python-ft.elc \
|
|
162 br-site.el br-vers.el \
|
0
|
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 \
|
70
|
174 br-site.elc br-vers.elc \
|
0
|
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
|
70
|
197 cd $(MAN_DIR); $(INSTALL) oo-browser.info* $(infodir); \
|
0
|
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
|
70
|
232 dvi: $(MAN_DIR)/oo-browser.dvi
|
0
|
233
|
70
|
234 info: $(MAN_DIR)/oo-browser.info
|
0
|
235
|
70
|
236 ps: $(MAN_DIR)/oo-browser.ps
|
0
|
237
|
70
|
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
|
0
|
240
|
70
|
241 $(MAN_DIR)/oo-browser.info: $(MAN_DIR)/oo-browser.texi
|
|
242 cd $(MAN_DIR); $(MAKEINFO) oo-browser.texi
|
0
|
243
|
70
|
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
|
0
|
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:
|
70
|
259 fgrep $(OOBR_VERSION) BR-RELEASE br-vers.el man/oo-browser.texi
|
0
|
260 echo ""
|
|
261
|
|
262 # Don't use this target.
|
|
263 bw-install:
|
70
|
264 cd /usr/local/infodock/lisp/; \
|
0
|
265 tar zxvf /tmp/oo-browser-$(OOBR_VERSION).tar.gz; \
|
|
266 cd oobr/; mv man/*.info* ../../info/; mv man/*.texi ../../man/; \
|
70
|
267 rm -rf man
|
0
|
268
|
|
269 dist: version elc info
|
70
|
270 echo "Ensure version # in br-vers.el and man/oo-browser.texi is up to date."
|
0
|
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; \
|
70
|
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
|
0
|
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; \
|
70
|
281 $(TAR) --gzip -clf oo-browser-$(OOBR_VERSION).tar.gz oobr
|
0
|
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*
|
70
|
287 -cd $(MAN_DIR); $(RM) oo-browser.?? oo-browser.dvi .*~ *~ *\# *.orig *.rej .nfs*
|