2
# --- FWEB MAKE FILE (v. 1.60) ---
4
# Unix users should first type ``./configure'' for compiling a new version.
5
# See the more detailed instructions below.
7
# PLEASE REPORT ANY DIFFICULTIES WITH USING THIS MAKE FILE OR WITH ANY
8
# OTHER ASPECT OF COMPILING OR RUNNING FWEB: krommes@princeton.edu.
10
# You should PREFACE ALL MAJOR OPERATIONS with
14
# This tells you what will happen without actually performing the operations.
17
# --- PRINCIPAL ENTRY POINTS ---
19
# The principal entry points to this make file can be determined by saying
20
# ``make help''. (See the help: target below.)
23
# BEFORE USING THIS MAKE FILE:
25
# (1) If you are a Unix user, do the following:
28
# ./configure [--prefix=path] [--exec-prefix=path]
29
# (This generates the following files appropriate to your system:
30
# defaults.mk from defaults.mk.in;
31
# config.h from config.h.in;
32
# custom.h from custom.h.in.)
38
# If you are not a Unix user, DO NOT PROCEED for v1.50 or above, as the
39
# following system-specific bootstrap procedures have not been tested and
40
# upgraded for this version.
42
# (2) Select a boot subdirectory (containing system-specific files) most
43
# relevant to your machine; call that $(BOOT_D). For example,
44
# BOOT_D = boot/unix/ansi.
46
# (3) Copy $(BOOT_D)/defaults.mk to the web subdirectory.
48
# (4) Verify the system-specific definitions in defaults.mk. An example
49
# of defaults.mk is provided in each bootstrap subdirectory. The possible
50
# things that you may put into defaults.mk are discussed in
51
# $(MANUAL)/INSTALL_FWEB.tex.
53
# (4) Copy $(BOOT_D)/custom.h to the web subdirectory. This file
54
# contains definitions of various machine- or operating-system-dependent
55
# flags. It will be included into the *.c files by the C compiler.
58
# --- INCLUDING FILES into the Makefile ---
60
# The file defaults.mk customizes the operation of Makefile for your
61
# compiler environment.
62
# NOTE: Not all makes include files in identical ways; you may need to
63
# modify the next line:
65
include defaults.mk # Unix
66
# ! include "defaults.mk" # Borland/Microsoft
69
# --------------------- DON'T TOUCH LINES BELOW HERE!!! --------------------
71
# Experts will note that this file sometimes doesn't use the full power of
72
# make (let alone gmake). This is because some of the makes on the personal
73
# computers didn't work correctly with some of the more sophisticated commands.
75
# Here we set up the command-line options for the FWEB processors. Those
76
# options are as follows:
78
# COMPILER --- Either CC or GCC. Presently only GCC is relevant, and then
80
# FILE --- Should more properly be called PATH. The directory
81
# specification for the output file.
82
# HOME_MACHINE --- The machine on which you're tangling. See custom.web or
83
# custom.h for a list of the possible macros to use here.
84
# MACHINE --- The machine for which you're generating C code.
86
# DEBUGGING --- Used by the developer.
87
# STAT --- Optional additional commands, e.g., the statistics option -s;
88
# sometimes used by the developer.
89
# UNDEF --- Used by the developer.
91
# You can override macros such as MACHINE and FILE from the command line,
93
# make MACHINE=SGI FILE="$HOME/fweb/v1.1/unix/sgi"
100
# the -u option is used to cancel out a possible +m command in the .fweb
101
# ini file. For the use of CUSTOM_OPTIONS, see custom.web.
102
# To kill off line numbers, say ``STAT = -\#'' for many makes, or
103
# ``STAT = -^#'' for the Microsoft nmake.
105
OPTIONS = -u$(HOME_MACHINE) -m$(MACHINE) $(DEBUGGING)\
106
$(UNDEF) -m$(COMPILER) $(STAT) -=$(FILE)$(@)
108
# Other upper-case macros, such as OS_HWEB, are used to express hidden
109
# dependencies because of files that are @i'd or #included.
111
# For more discussion of the various files, please see INSTALL_FWEB.tex.
113
# Set up the directory macros. (top_srcdir and srcdir should be set in
114
# defaults.mk. If they are not, one must say `top_srcdir=..', `srcdir=.')
117
FWEB0 = $(top_srcdir)
119
# --- The bootstrap directory tree ---
122
# --- Where the demo programs are kept ---
123
DEMOS = $(FWEB0)/Demos
125
# --- Where the user manual and fwebmac.sty are kept ---
126
MANUAL = $(FWEB0)/Manual
128
# --- Where *.web, *.hweb, *.c, and *.h are kept ---
131
# If you just say ``make'' or ``make bootstrap'', the source files are
132
# touched first so they're sure to be newer than the web files. If you don't
133
# have a 'touch' facility, try saying ``make -t ...''
134
all bootstrap boot: tch_src both $(MANUAL)/fweb.info
137
$(TOUCH) $(WEB)/typedefs.hweb $(WEB)/*.h $(WEB)/*.c
139
# --- This entry makes both FWEB processors from the FWEB sources. ---
140
both: ftangle fweave idxmerge
142
# --- The ``make bootstrap'' command assumes that the WEB files are there.
143
# However, if you're just compiling you shouldn't need the WEB files. In the
144
# absence of a WEB file, the null .DEFAULT command ``rebuilds'' the WEB file.
145
# Then make will try to invoke ftangle. That shouldn't be there either,
146
# but if it is, it will try to tangle a non-existent file. The .IGNORE
147
# command tells make to continue anyway; then it will just compile.
148
# (Unfortunately, these commands don't work with all makes, so they're
154
# --- Remake things if the make commands themselves change ---
157
# --- CUSTOMIZATION FILE ---
158
$(WEB)/custom.h $(WEB)/custom.h.in: $(WEB)/custom.web
159
./ftangle $(WEB)/custom $(OPTIONS) $(CUSTOM_OPTIONS) -# -v
161
# --- EXTRA MACRO FILE ---
162
$(WEB)/strmac.h: $(WEB)/strmac.web $(WEB)/os.$(HWEB)
163
./ftangle $(WEB)/strmac $(OPTIONS)
166
INCLUDES_H = $(WEB)/os.h $(WEB)/config.h $(WEB)/custom.h $(WEB)/strmac.h
168
D_TYPE_H = $(WEB)/d_type.h $(INCLUDES_H)
169
Y_TYPE_H = $(WEB)/y_type.h $(INCLUDES_H)
170
C_TYPE_H = $(WEB)/c_type.h $(Y_TYPE_H) $(D_TYPE_H)
172
A_TYPE_H = $(WEB)/a_type.h $(INCLUDES_H)
173
S_TYPE_H = $(WEB)/s_type.h $(A_TYPE_H)
175
M_TYPE_H = $(WEB)/m_type.h $(INCLUDES_H)
176
E_TYPE_H = $(WEB)/e_type.h $(C_TYPE_H)
177
R_TYPE_H = $(WEB)/r_type.h $(C_TYPE_H)
178
T_TYPE_H = $(WEB)/t_type.h\
179
$(S_TYPE_H) $(R_TYPE_H) $(E_TYPE_H) $(M_TYPE_H)
181
P_TYPE_H = $(WEB)/p_type.h $(INCLUDES_H)
182
W_TYPE_H = $(WEB)/w_type.h\
183
$(P_TYPE_H) $(C_TYPE_H) $(S_TYPE_H) $(D_TYPE_H)
185
TYPEDEFS_H = $(WEB)/typedefs.h $(WEB)/os.h
186
MAP_H = $(WEB)/map.h $(C_TYPE_H) $(S_TYPE_H)
188
# --- PORTABILITY ISSUES are mostly localized here. ---
189
OS_HWEB = $(WEB)/os.$(HWEB) $(WEB)/sfile.$(HWEB)
190
INCLUDES_HWEB = $(WEB)/sfile.$(HWEB) $(WEB)/includes.$(HWEB)\
191
$(WEB)/proto.$(HWEB) $(WEB)/time.$(HWEB)
192
COMMON_HWEB = $(OS_HWEB) $(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
194
$(WEB)/os.h: $(WEB)/os.web $(INCLUDES_HWEB)
195
./ftangle $(WEB)/os $(OPTIONS) -#
197
# --- The fundamental macro packages: ---
198
$(WEB)/typedefs.hweb $(WEB)/typedefs.h: $(WEB)/typedefs.web
199
./ftangle $(WEB)/typedefs $(OPTIONS) --F -# -=$(FILE)typedefs.h
201
$(WEB)/map.h: $(WEB)/map.web
202
./ftangle $(WEB)/map $(OPTIONS)
204
# --- COMMON (Routines common to both ftangle and fweave) ---
205
COMMON = $(INCLUDES_HWEB) $(OS_HWEB)\
206
$(WEB)/typedefs.$(HWEB)\
207
$(WEB)/mem.$(HWEB) $(WEB)/trunc.$(HWEB)
208
COMMON_WEB = $(WEB)/common.web $(COMMON)
210
$(WEB)/common.c: $(COMMON_WEB)
211
./ftangle $(WEB)/common $(OPTIONS)
213
C_TYPE_WEB = $(WEB)/c_type.web $(OS_HWEB)
215
$(WEB)/c_type.h: $(C_TYPE_WEB)
216
./ftangle $(WEB)/c_type $(OPTIONS)
218
Y_TYPE_WEB = $(WEB)/y_type.web $(OS_HWEB)
220
$(WEB)/y_type.h: $(Y_TYPE_WEB)
221
./ftangle $(WEB)/y_type $(OPTIONS)
223
COMMON_C = $(WEB)/common.c $(TYPEDEFS_H) $(MAP_H)
225
COMMONS = common.$(O) $(COMMON2)
229
common.$(O): $(COMMON_C)
230
$(COMPILE) $(PART1) $(WEB)/common.c
232
common2.$(O): $(COMMON_C)
233
$(COMPILE) $(PART2) $(WEB)/common.c
236
# --- STYLE (Reading the style file; also needed for both ftangle and
238
S_TYPE_WEB = $(WEB)/s_type.web
240
$(WEB)/s_type.h: $(S_TYPE_WEB)
241
./ftangle $(WEB)/s_type $(OPTIONS)
243
STYLE = $(OS_HWEB) $(INCLUDES_HWEB)\
244
$(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
245
STYLE_WEB = $(WEB)/style.web $(STYLE)
247
$(WEB)/style.c: $(STYLE_WEB)
248
./ftangle $(WEB)/style $(OPTIONS)
250
style.$(O): $(WEB)/style.c $(TYPEDEFS_H) $(MAP_H)
251
$(COMPILE) $(WEB)/style.c
254
# --- TERMCAP (Dummy termcap routines) ---
255
A_TYPE_WEB = $(WEB)/a_type.web $(OS_HWEB)
257
$(WEB)/a_type.h: $(A_TYPE_WEB)
258
./ftangle $(WEB)/a_type $(OPTIONS)
260
TERMCAP0_WEB = $(WEB)/termcap0.web
262
$(WEB)/termcap0.c: $(TERMCAP0_WEB)
263
./ftangle $(WEB)/termcap0 $(OPTIONS)
265
termcap0.$(O): $(WEB)/termcap0.c $(A_TYPE_H)
266
$(COMPILE) $(WEB)/termcap0.c
269
# --- RESERVED WORDS ---
270
D_TYPE_WEB = $(WEB)/d_type.web $(OS_HWEB)
272
$(WEB)/d_type.h: $(D_TYPE_WEB)
273
./ftangle $(WEB)/d_type $(OPTIONS)
275
RESERVED_WEB = $(WEB)/reserved.web $(COMMON_HWEB)\
276
$(WEB)/ccodes.$(HWEB) $(WEB)/xrefs.$(HWEB)
278
$(WEB)/reserved.c: $(RESERVED_WEB)
279
./ftangle $(WEB)/reserved $(OPTIONS)
281
RESERVED_C = $(WEB)/reserved.c $(TYPEDEFS_H) $(C_TYPE_H)
283
RESERVES = reserved.$(O) $(RESERVED2)
285
reserves: $(RESERVES)
287
reserved.$(O): $(RESERVED_C)
288
$(COMPILE) $(PART1) $(WEB)/reserved.c
290
reservd2.$(O): $(RESERVED_C)
291
$(COMPILE) $(PART2) $(WEB)/reserved.c
294
# --- MACS (Macro processing for ftangle) ---
295
M_TYPE_WEB = $(WEB)/m_type.web $(OS_HWEB)
297
$(WEB)/m_type.h: $(M_TYPE_WEB)
298
./ftangle $(WEB)/m_type $(OPTIONS)
300
MACS = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
301
$(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
302
$(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
303
MACS_WEB = $(WEB)/macs.web $(MACS)
305
$(WEB)/macs.c: $(MACS_WEB)
306
./ftangle $(WEB)/macs $(OPTIONS)
308
macs.$(O): $(WEB)/macs.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
309
$(COMPILE) $(WEB)/macs.c
312
# --- RATFOR (Implementing the Ratfor language for ftangle) ---
313
RATFOR = $(COMMON_HWEB) $(WEB)/t_codes.$(HWEB) $(WEB)/texts.$(HWEB)\
314
$(WEB)/stacks.$(HWEB) $(WEB)/val.$(HWEB)\
317
RATFOR_WEB = $(WEB)/ratfor.web $(RATFOR)
319
$(WEB)/ratfor.c: $(RATFOR_WEB)
320
./ftangle $(WEB)/ratfor $(OPTIONS)
322
R_TYPE_WEB = $(WEB)/r_type.web $(OS_HWEB)
324
$(WEB)/r_type.h: $(R_TYPE_WEB)
325
./ftangle $(WEB)/r_type $(OPTIONS)
327
RATFOR_C = $(WEB)/ratfor.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
329
RATFORS = ratfor$(LOAD_RATFOR).$(O) $(RATFOR2)
333
ratfor.$(O): $(RATFOR_C)
334
$(COMPILE) $(PART1) $(WEB)/ratfor.c
336
ratfor2.$(O): $(RATFOR_C)
337
$(COMPILE) $(PART2) $(WEB)/ratfor.c
339
RATFOR0_WEB = $(WEB)/ratfor0.web $(RATFOR)
341
$(WEB)/ratfor0.c: $(RATFOR0_WEB)
342
./ftangle $(WEB)/ratfor0 $(OPTIONS)
344
ratfor0.$(O): $(WEB)/ratfor0.c $(T_TYPE_H)
345
$(COMPILE) $(WEB)/ratfor0.c
348
# --- EVAL (Expression evaluation) ---
349
EVAL = $(COMMON_HWEB) $(WEB)/val.$(HWEB) $(WEB)/os.$(HWEB)\
350
$(WEB)/t_codes.$(HWEB)
351
EVAL_WEB = $(WEB)/eval.web $(EVAL)
353
$(WEB)/eval.c: $(EVAL_WEB)
354
./ftangle $(WEB)/eval $(OPTIONS)
356
E_TYPE_WEB = $(WEB)/e_type.web $(OS_HWEB)
358
$(WEB)/e_type.h: $(E_TYPE_WEB)
359
./ftangle $(WEB)/e_type $(OPTIONS)
361
eval.$(O): $(WEB)/eval.c $(E_TYPE_H) $(TYPEDEFS_H)
362
$(COMPILE) $(WEB)/eval.c
365
# --- FTANGLE (The ftangle processor) ---
366
FTANGLE = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
367
$(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
368
$(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
369
FTANGLE_WEB = $(WEB)/ftangle.web $(FTANGLE)
371
$(WEB)/ftangle.c: $(FTANGLE_WEB)
372
./ftangle $(WEB)/ftangle $(OPTIONS)
374
T_TYPE_WEB = $(WEB)/t_type.web $(OS_HWEB)
376
$(WEB)/t_type.h: $(T_TYPE_WEB)
377
./ftangle $(WEB)/t_type $(OPTIONS)
379
FTANGLE_C = $(WEB)/ftangle.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
381
FTANGLES = ftangle.$(O) $(FTANGLE2) $(FTANGLE3)
383
ftangles: $(FTANGLES)
385
ftangle.$(O): $(FTANGLE_C)
386
$(COMPILE) $(PART1) $(WEB)/ftangle.c
388
ftangle2.$(O): $(FTANGLE_C)
389
$(COMPILE) $(PART2) $(WEB)/ftangle.c
391
ftangle3.$(O): $(FTANGLE_C)
392
$(COMPILE) $(PART3) $(WEB)/ftangle.c
394
# In the following, ftangle0 is used when making with LOAD_RATFOR=0.
395
ftangle ftangle0 ftangle.exe: $(FTANGLES)\
396
$(COMMONS) $(RATFORS) $(RESERVES) \
397
eval.$(O) macs.$(O) style.$(O) $(TERMCAP0)
398
$(LINK) ftangle$(OBJ) $(FTANGLE2) $(FTANGLE3)\
399
common$(OBJ) $(COMMON2)\
400
reserved$(OBJ) $(RESERVED2)\
401
ratfor$(LOAD_RATFOR)$(OBJ) $(RATFOR2)\
402
eval$(OBJ) macs$(OBJ) style$(OBJ) $(TERMCAP0)\
405
# --- PROD (The ``productions'' for fweave) ---
406
P_TYPE_WEB = $(WEB)/p_type.web $(OS_HWEB)
408
$(WEB)/p_type.h: $(P_TYPE_WEB)
409
./ftangle $(WEB)/p_type $(OPTIONS)
411
PROD = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
412
$(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
413
$(WEB)/scraps.$(HWEB)
415
PROD_WEB = $(WEB)/prod.web $(PROD)
417
$(WEB)/prod.c: $(PROD_WEB)
418
./ftangle $(WEB)/prod $(OPTIONS)
420
PROD_C = $(WEB)/prod.c $(P_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
422
PRODS = prod.$(O) $(PROD2)
427
$(COMPILE) $(PART1) $(WEB)/prod.c
429
prod2.$(O): $(PROD_C)
430
$(COMPILE) $(PART2) $(WEB)/prod.c
433
# --- FWEAVE (The fweave processor) ---
434
W_TYPE_WEB = $(WEB)/w_type.web $(OS_HWEB)
436
$(WEB)/w_type.h: $(W_TYPE_WEB)
437
./ftangle $(WEB)/w_type $(OPTIONS)
439
FWEAVE = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
440
$(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
441
$(WEB)/scraps.$(HWEB)
443
FWEAVE_WEB = $(WEB)/fweave.web $(FWEAVE)
445
$(WEB)/fweave.c: $(FWEAVE_WEB)
446
./ftangle $(WEB)/fweave $(OPTIONS)
448
FWEAVE_C = $(WEB)/fweave.c $(W_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
450
FWEAVES = fweave.$(O) $(FWEAVE2) $(FWEAVE3)
454
fweave.$(O): $(FWEAVE_C)
455
$(COMPILE) $(PART1) $(WEB)/fweave.c
457
fweave2.$(O): $(FWEAVE_C)
458
$(COMPILE) $(PART2) $(WEB)/fweave.c
460
fweave3.$(O): $(FWEAVE_C)
461
$(COMPILE) $(PART3) $(WEB)/fweave.c
463
fweave fweave.exe: $(FWEAVES)\
464
$(COMMONS) $(PRODS) ratfor0.$(O) $(RESERVES) style.$(O)\
466
$(LINK) fweave$(OBJ) $(FWEAVE2) $(FWEAVE3)\
467
common$(OBJ) $(COMMON2)\
469
reserved$(OBJ) $(RESERVED2)\
470
style$(OBJ) ratfor0$(OBJ) $(TERMCAP0)\
473
# --- IDXMERGE (utility for merging several indexes) ---
474
$(WEB)/idxmerge.c: $(WEB)/idxmerge.web
475
./ftangle $(WEB)/idxmerge $(OPTIONS)
477
idxmerge.$(O): $(WEB)/idxmerge.c
478
$(COMPILE) $(WEB)/idxmerge.c
480
idxmerge idxmerge.exe: idxmerge.$(O)
481
$(LINK) idxmerge$(OBJ)
483
#------------------------------------------------------------------------------
485
# --- DOCUMENTATION ---
486
FWEB_TEX = $(FWEB0)fweb.tex # This file is included for all documentation.
488
# --- We can handle all the dvi files with a generalized suffix rule. ---
490
# If your make (e.g., Borland) doesn't like the following line, try just
498
# In the following, note the occasional use of the -i command-line option
499
# to fweave. This prevents repeated printing of the header files that are
502
fwebmac.tex: $(MANUAL)/fwebmac.web
503
./fweave $(MANUAL)/fwebmac
505
custom.tex: $(WEB)/custom.web $(WEB)/formats.$(HWEB)
506
./fweave $(WEB)/custom
508
strmac.tex: $(WEB)/strmac.web $(OS_HWEB) $(WEB)/formats.$(HWEB)
509
./fweave $(WEB)/strmac -i
511
y_type.tex: $(Y_TYPE_WEB) $(WEB)/formats.$(HWEB)
512
./fweave $(WEB)/y_type -i
514
c_type.tex: $(C_TYPE_WEB) $(WEB)/formats.$(HWEB)
515
./fweave $(WEB)/c_type -i
517
common.tex: $(COMMON_WEB)
518
./fweave $(WEB)/common
520
e_type.tex: $(E_TYPE_WEB) $(WEB)/formats.$(HWEB)
521
./fweave $(WEB)/e_type -i
523
eval.tex: $(EVAL_WEB)
524
./fweave $(WEB)/eval -i
526
m_type.tex: $(M_TYPE_WEB) $(WEB)/formats.$(HWEB)
527
./fweave $(WEB)/m_type -i
529
macs.tex: $(MACS_WEB)
530
./fweave $(WEB)/macs -i
532
p_type.tex: $(P_TYPE_WEB) $(WEB)/formats.$(HWEB)
533
./fweave $(WEB)/p_type -i
535
prod.tex: $(PROD_WEB)
536
./fweave $(WEB)/prod -i
538
r_type.tex: $(R_TYPE_WEB) $(WEB)/formats.$(HWEB)
539
./fweave $(WEB)/r_type -i
541
ratfor.tex: $(RATFOR_WEB)
542
./fweave $(WEB)/ratfor -i
544
ratfor0.tex: $(RATFOR0_WEB)
545
./fweave $(WEB)/ratfor0 -i
547
d_type.tex: $(D_TYPE_WEB) $(WEB)/formats.$(HWEB)
548
./fweave $(WEB)/d_type -i
550
reserved.tex: $(RESERVED_WEB)
551
./fweave $(WEB)/reserved -i -ykw750
553
t_type.tex: $(T_TYPE_WEB) $(WEB)/formats.$(HWEB)
554
./fweave $(WEB)/t_type -i
556
ftangle.tex: $(FTANGLE_WEB)
557
./fweave $(WEB)/ftangle -i
559
s_type.tex: $(S_TYPE_WEB) $(WEB)/formats.$(HWEB)
560
./fweave $(WEB)/s_type -i
562
style.tex: $(STYLE_WEB)
563
./fweave $(WEB)/style -i
565
a_type.tex: $(A_TYPE_WEB) $(WEB)/formats.$(HWEB)
566
./fweave $(WEB)/a_type -i
568
termcap0.tex: $(TERMCAP0_WEB)
569
./fweave $(WEB)/termcap0 -i
571
w_type.tex: $(W_TYPE_WEB) $(WEB)/formats.$(HWEB)
572
./fweave $(WEB)/w_type -i
574
fweave.tex: $(FWEAVE_WEB)
575
./fweave $(WEB)/fweave -i
577
#------------------------------------------------------------------------------
579
# --- INSTALLATION of the processors ---
581
install: both idxmerge $(MANUAL)/fweb.info
583
@echo "If any changes need to be made to the default directories,"
584
@echo "please use --prefix and/or --exec-prefix options to configure,"
585
@echo " or edit ./defaults.mk.in, then rerun ./configure."
587
$(INSTALL_PROGRAM) ftangle $(bindir)/ftangle
588
$(INSTALL_PROGRAM) fweave $(bindir)/fweave
589
$(INSTALL_PROGRAM) idxmerge $(bindir)/idxmerge
590
test -d $(texdir) || mkdir -p $(texdir)
591
$(INSTALL_DATA) $(MANUAL)/fwebmac.sty $(texdir)/fwebmac.sty
592
$(INSTALL_DATA) $(MANUAL)/fweb.tex $(texdir)/fweb.tex
593
$(INSTALL_DATA) $(MANUAL)/fweb.1 $(mandir)/fweb.$(manext)
594
$(INSTALL_DATA) $(MANUAL)/fweb.info $(infodir)/fweb.info
595
$(INSTALL_DATA) $(MANUAL)/fweb.info-1 $(infodir)/fweb.info-1
596
$(INSTALL_DATA) $(MANUAL)/fweb.info-2 $(infodir)/fweb.info-2
597
$(INSTALL_DATA) $(MANUAL)/fweb.info-3 $(infodir)/fweb.info-3
598
$(INSTALL_DATA) $(MANUAL)/fweb.info-4 $(infodir)/fweb.info-4
599
$(INSTALL_DATA) $(MANUAL)/fweb.info-5 $(infodir)/fweb.info-5
600
$(INSTALL_DATA) $(MANUAL)/fweb.info-6 $(infodir)/fweb.info-6
601
$(INSTALL_DATA) $(MANUAL)/fweb.info-7 $(infodir)/fweb.info-7
602
$(INSTALL_DATA) $(MANUAL)/fweb.info-8 $(infodir)/fweb.info-8
603
$(INSTALL_DATA) $(MANUAL)/fweb.info-9 $(infodir)/fweb.info-9
604
$(INSTALL_DATA) $(MANUAL)/fweb.texi $(texinfodir)/fweb.texi
606
@echo "DON'T FORGET TO RECORD THE PRESENCE OF fweb.info BY EDITING $(infodir)/dir."
609
@echo "Sorry, uninstall is not implemented yet!"
611
$(MANUAL)/fweb.info: $(MANUAL)/fweb.texi
612
cd $(MANUAL) && makeinfo --fill-column=70 fweb.texi
615
all_clean very_clean: clean clean_man clean_install
617
# --- Clean up the OBJECT FILES ---
619
$(RM) -f ftangle fweave *.o core
624
$(RM) -f defaults.mk config.cache config.log config.status
631
@echo "Important targets for this Makefile:"
633
@echo " all --- Touch *.c and *.h, then compile and link"
634
@echo " ftangle and fweave."
635
@echo " both --- Tangle, compile, and link ftangle and"
636
@echo " fweave from the FWEB sources."
637
@echo " clean --- Removes the FWEB processors and object files."
638
@echo " distclean --- Like clean, but also deletes defaults.mk,"
639
@echo " config.cache, config.log, and config.status."
640
@echo " ftangle --- Tangle, compile, and link ftangle."
641
@echo " fweave --- Tangle, compile, and link fweave."
642
@echo " help --- Obtain help about this Makefile."
643
@echo " install --- Install the processors (you must be root)."
644
@echo " *.tex --- Woven documentation for FWEB source code."
645
@echo " *.dvi --- Document AND PRINT FWEB source code."
646
@echo " (To prevent a dvi file from being printed"
647
@echo " automatically, uncomment the #ECHO = line in"
648
@echo " defaults.mk.in.)"