home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 22 gnu / 22-gnu.zip / fweb140x.zip / Makefile < prev    next >
Makefile  |  1996-02-26  |  18KB  |  593 lines

  1. SHELL = /bin/os2/sh.exe
  2. # --- FWEB MAKE FILE (v. 1.30) ---
  3.  
  4. # NOTE:  The procedures for using this make file have changed with v1.30.
  5. # Unix users should first type ``./configure'' for compiling a new version.
  6. # See the more detailed instructions below.
  7.  
  8. # PLEASE REPORT ANY DIFFICULTIES WITH USING THIS MAKE FILE OR WITH ANY
  9. # OTHER ASPECT OF COMPILING OR RUNNING FWEB:  krommes@princeton.edu.
  10.  
  11. # You should PREFACE ALL MAJOR OPERATIONS with
  12.  
  13. #    make -n ...
  14.  
  15. # This tells you what will happen without actually performing the operations.
  16.  
  17.  
  18. # --- PRINCIPAL ENTRY POINTS ---
  19.  
  20. # The principal entry points to this make file can be determined by saying
  21. # ``make help''.  (See the help: target below.)
  22.  
  23.  
  24. # BEFORE USING THIS MAKE FILE: 
  25.  
  26. #    (1) If you are a Unix user, type the following:
  27.  
  28. #        ./configure
  29. # (This generates an appropriate defaults.mk from defaults.mk.in and custom
  30. # from custom.h.in, as well as the Makefile for the manual.)
  31. #        make bootstrap
  32. # (log on as root)        
  33. #        make install
  34.  
  35. # If you are not a Unix user:
  36.  
  37. #    (2) Select a boot subdirectory (containing system-specific files) most
  38. # relevant to your machine; call that $(BOOT_D).  For example, 
  39. # BOOT_D = boot/unix/ansi.
  40.  
  41. #    (3) Copy $(BOOT_D)/defaults.mk to your top-level FWEB directory.
  42.  
  43. #    (4) Verify the system-specific definitions in defaults.mk.  An example
  44. # of defaults.mk is provided in each bootstrap subdirectory.  The possible
  45. # things that you may put into defaults.mk are discussed in 
  46. # $(MANUAL)/INSTALL_FWEB.tex.
  47.  
  48. #    (4) Copy $(BOOT_D)/custom.h to the $(WEB_D) subdirectory as defined in
  49. # setup.mk.  This file contains definitions of various machine- or
  50. # operating-system-dependent flags.  It will be included into the *.c files
  51. # by the C compiler.
  52.  
  53.  
  54. # --- INCLUDING FILES into the Makefile ---
  55.  
  56. # The file defaults.mk customizes the operation of Makefile for your
  57. # compiler environment.
  58. # NOTE: Not all makes include files in identical ways; you may need to
  59. # modify the next line:
  60.  
  61. include defaults.mk # Unix
  62. # ! include "defaults.mk" # Borland/Microsoft
  63.  
  64.  
  65. # --------------------- DON'T TOUCH LINES BELOW HERE!!! --------------------
  66.  
  67. # Experts will note that this file sometimes doesn't use the full power of
  68. # make. This is because some of the makes on the personal computers didn't work
  69. # correctly with some of the more sophisticated commands.
  70.  
  71. # Here we set up the command-line options for the FWEB processors.  Those
  72. # options are as follows:
  73.  
  74. # COMPILER --- Either CC or GCC.  Presently only GCC is relevant, and then
  75. #            only for the Sun.
  76. # FILE --- Should more properly be called PATH.  The directory
  77. #            specification for the output file.
  78. # HOME_MACHINE --- The machine on which you're tangling.  See custom.web or
  79. #             custom.h for a list of the possible macros to use here.
  80. # MACHINE --- The machine for which you're generating C code.
  81.  
  82. # DEBUGGING --- Used by the developer.
  83. # STAT --- Optional additional commands, e.g., the statistics option -s;
  84. #        sometimes used by the developer.
  85. # UNDEF --- Used by the developer.
  86. #
  87. # You can override  macros such as MACHINE and FILE from the command line,
  88. # in the form, e.g.,
  89. #    make MACHINE=SGI FILE="$HOME/fweb/v1.1/unix/sgi"
  90.  
  91. UNDEF =
  92. DEBUGGING =
  93. STAT =
  94.  
  95. # In $(OPTIONS), 
  96. # the -u option is used to cancel out a possible +m command in the .fweb
  97. # ini file. For the use of CUSTOM_OPTIONS, see custom.web. 
  98. # To kill off line numbers, say ``STAT = -\#'' for many makes, or 
  99. # ``STAT = -^#'' for the Microsoft nmake.
  100.  
  101. OPTIONS = -u$(HOME_MACHINE) -m$(MACHINE) $(DEBUGGING)\
  102.      $(UNDEF) -m$(COMPILER) $(STAT) -=$(FILE)$(@)
  103.  
  104. # Other upper-case macros, such as OS_HWEB, are used to express hidden
  105. # dependencies because of files that are @i'd or #included.
  106.  
  107. # For more discussion of the various files, please see INSTALL_FWEB.tex.
  108.  
  109. # Set up the directory macros:
  110.  
  111. # --- Top-level--- 
  112. FWEB0 = ..
  113. # --- The bootstrap directory tree ---
  114. BOOT = $(FWEB0)/boot
  115. # --- Where the demo programs are kept ---
  116. DEMOS = $(FWEB0)/demos
  117. # --- Where the user manual and fwebmac.sty are kept ---
  118. MANUAL = $(FWEB0)/manual
  119. # --- Where *.web, *.hweb, *.c, and *.h are kept ---
  120. WEB = .
  121.  
  122. # --- The first entry makes both FWEB processors ---
  123. all: ftangle fweave
  124.  
  125. # --- If you say ``make bootstrap'', the source files are touched first so
  126. # they're sure to be newer than the web files. If you don't have a 'touch'
  127. # facility, try saying ``make -t ...''.
  128. # bootstrap boot: tch_src all  (just for now)
  129. bootstrap boot: all
  130.  
  131. tch_src:
  132.     $(TOUCH) $(WEB)/typedefs.hweb $(WEB)/*.h $(WEB)/*.c 
  133.  
  134. # --- The ``make bootstrap'' command assumes that the WEB files are there.
  135. # However, if you're just compiling you shouldn't need the WEB files.  In the
  136. # absence of a WEB file, the null .DEFAULT command ``rebuilds'' the WEB file.
  137. # Then make will try to invoke ftangle.  That shouldn't be there either,
  138. # but if it is, it will try to tangle a non-existent file.  The .IGNORE
  139. # command tells make to continue anyway; then it will just compile.  
  140. # (Unfortunately, these commands don't work with all makes, so they're
  141. # commented out.)
  142. #.DEFAULT:
  143.  
  144. #.IGNORE:
  145.  
  146. # --- Remake things if the make commands themselves change ---
  147. # .KEEP_STATE:
  148.  
  149. # --- CUSTOMIZATION FILE ---
  150. $(WEB)/custom.h $(WEB)/custom.h.in: $(WEB)/custom.web
  151.     ftangle $(WEB)/custom $(OPTIONS) $(CUSTOM_OPTIONS) -#
  152.  
  153. # --- EXTRA MACRO FILE ---
  154. $(WEB)/strmac.h: $(WEB)/strmac.web $(WEB)/os.$(HWEB)
  155.     ftangle $(WEB)/strmac $(OPTIONS)
  156.  
  157. # --- #INCLUDEs ---
  158. INCLUDES_H = $(WEB)/os.h $(WEB)/custom.h $(WEB)/strmac.h
  159.  
  160. D_TYPE_H = $(WEB)/d_type.h $(INCLUDES_H)
  161. Y_TYPE_H = $(WEB)/y_type.h $(INCLUDES_H)
  162. C_TYPE_H = $(WEB)/c_type.h $(Y_TYPE_H) $(D_TYPE_H)
  163.  
  164. A_TYPE_H = $(WEB)/a_type.h $(INCLUDES_H)
  165. S_TYPE_H = $(WEB)/s_type.h $(A_TYPE_H)
  166.  
  167. M_TYPE_H = $(WEB)/m_type.h $(INCLUDES_H)
  168. E_TYPE_H = $(WEB)/e_type.h $(C_TYPE_H)
  169. R_TYPE_H = $(WEB)/r_type.h $(C_TYPE_H)
  170. T_TYPE_H = $(WEB)/t_type.h\
  171.          $(S_TYPE_H) $(R_TYPE_H) $(E_TYPE_H) $(M_TYPE_H)
  172.  
  173. P_TYPE_H = $(WEB)/p_type.h $(INCLUDES_H)
  174. W_TYPE_H = $(WEB)/w_type.h\
  175.          $(P_TYPE_H) $(C_TYPE_H) $(S_TYPE_H) $(D_TYPE_H)
  176.  
  177. TYPEDEFS_H = $(WEB)/typedefs.h $(WEB)/os.h
  178. MAP_H = $(WEB)/map.h $(C_TYPE_H) $(S_TYPE_H)
  179.  
  180. # --- PORTABILITY ISSUES are mostly localized here. ---
  181. OS_HWEB = $(WEB)/os.$(HWEB) $(WEB)/sfile.$(HWEB) 
  182. INCLUDES_HWEB = $(WEB)/sfile.$(HWEB) $(WEB)/includes.$(HWEB)\
  183.          $(WEB)/proto.$(HWEB) $(WEB)/time.$(HWEB)
  184. COMMON_HWEB = $(OS_HWEB) $(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
  185.  
  186. $(WEB)/os.h: $(WEB)/os.web $(INCLUDES_HWEB)
  187.     ftangle $(WEB)/os $(OPTIONS) -#
  188.  
  189. # --- The fundamental macro packages: ---
  190. $(WEB)/typedefs.hweb $(WEB)/typedefs.h: $(WEB)/typedefs.web
  191.     ftangle $(WEB)/typedefs $(OPTIONS) --F -# -=$(FILE)typedefs.h
  192.  
  193. $(WEB)/map.h: $(WEB)/map.web
  194.     ftangle $(WEB)/map $(OPTIONS)
  195.  
  196. # --- COMMON (Routines common to both ftangle and fweave) ---
  197. COMMON = $(INCLUDES_HWEB) $(OS_HWEB)\
  198.         $(WEB)/typedefs.$(HWEB)\
  199.         $(WEB)/mem.$(HWEB) $(WEB)/trunc.$(HWEB) 
  200. COMMON_WEB = $(WEB)/common.web $(COMMON) 
  201.  
  202. $(WEB)/common.c: $(COMMON_WEB)
  203.     ftangle $(WEB)/common $(OPTIONS)
  204.  
  205. C_TYPE_WEB = $(WEB)/c_type.web $(OS_HWEB) 
  206.  
  207. $(WEB)/c_type.h: $(C_TYPE_WEB)
  208.     ftangle $(WEB)/c_type $(OPTIONS)
  209.  
  210. Y_TYPE_WEB = $(WEB)/y_type.web $(OS_HWEB)
  211.  
  212. $(WEB)/y_type.h: $(Y_TYPE_WEB)
  213.     ftangle $(WEB)/y_type $(OPTIONS)
  214.  
  215. common.$(O): $(WEB)/common.c $(TYPEDEFS_H) $(MAP_H)
  216.     $(COMPILE) $(WEB)/common.c        
  217.  
  218.  
  219. # --- STYLE (Reading the style file; also needed for both ftangle and
  220. # fweave) --- 
  221. S_TYPE_WEB = $(WEB)/s_type.web
  222.  
  223. $(WEB)/s_type.h: $(S_TYPE_WEB)
  224.     ftangle $(WEB)/s_type $(OPTIONS)
  225.  
  226. STYLE =  $(OS_HWEB) $(INCLUDES_HWEB)\
  227.          $(WEB)/typedefs.$(HWEB) $(WEB)/mem.$(HWEB)
  228. STYLE_WEB = $(WEB)/style.web $(STYLE)
  229.  
  230. $(WEB)/style.c: $(STYLE_WEB)
  231.     ftangle $(WEB)/style $(OPTIONS)
  232.  
  233. style.$(O): $(WEB)/style.c $(TYPEDEFS_H) $(MAP_H)
  234.     $(COMPILE) $(WEB)/style.c        
  235.  
  236.  
  237. # --- TERMCAP (Dummy termcap routines) ---
  238. A_TYPE_WEB = $(WEB)/a_type.web $(OS_HWEB)
  239.  
  240. $(WEB)/a_type.h: $(A_TYPE_WEB)
  241.     ftangle $(WEB)/a_type $(OPTIONS)
  242.  
  243. TERMCAP0_WEB = $(WEB)/termcap0.web 
  244.  
  245. $(WEB)/termcap0.c: $(TERMCAP0_WEB)
  246.     ftangle $(WEB)/termcap0 $(OPTIONS)
  247.  
  248. termcap0.$(O): $(WEB)/termcap0.c $(A_TYPE_H)
  249.     $(COMPILE) $(WEB)/termcap0.c
  250.  
  251.  
  252. # --- RESERVED WORDS ---
  253. D_TYPE_WEB = $(WEB)/d_type.web $(OS_HWEB)
  254.  
  255. $(WEB)/d_type.h: $(D_TYPE_WEB)
  256.     ftangle $(WEB)/d_type $(OPTIONS)
  257.  
  258. RESERVED_WEB = $(WEB)/reserved.web $(COMMON_HWEB)
  259.  
  260. $(WEB)/reserved.c: $(RESERVED_WEB)
  261.     ftangle $(WEB)/reserved $(OPTIONS)
  262.  
  263. RESERVED_C = $(WEB)/reserved.c $(TYPEDEFS_H) $(C_TYPE_H)
  264.  
  265. RESERVES = reserved.$(O) $(RESERVED2)
  266.  
  267. reserves: $(RESERVES)
  268.  
  269. reserved.$(O): $(RESERVED_C)
  270.     $(COMPILE) $(PART1) $(WEB)/reserved.c
  271.  
  272. reservd2.$(O): $(RESERVED_C)
  273.     $(COMPILE) $(PART2) $(WEB)/reserved.c
  274.  
  275.  
  276. # --- FTANGLE (The ftangle processor) ---
  277. FTANGLE = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
  278.         $(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
  279.         $(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
  280. FTANGLE_WEB = $(WEB)/ftangle.web $(FTANGLE)  
  281.  
  282. $(WEB)/ftangle.c: $(FTANGLE_WEB)
  283.     ftangle $(WEB)/ftangle $(OPTIONS)
  284.  
  285. T_TYPE_WEB = $(WEB)/t_type.web $(OS_HWEB) 
  286.  
  287. $(WEB)/t_type.h: $(T_TYPE_WEB)
  288.     ftangle $(WEB)/t_type $(OPTIONS)
  289.  
  290. FTANGLE_C = $(WEB)/ftangle.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  291.  
  292. FTANGLES = ftangle.$(O) $(FTANGLE2) $(FTANGLE3)
  293.  
  294. ftangles: $(FTANGLES)
  295.  
  296. ftangle.$(O): $(FTANGLE_C)
  297.     $(COMPILE) $(PART1) $(WEB)/ftangle.c    
  298.  
  299. ftangle2.$(O): $(FTANGLE_C)
  300.     $(COMPILE) $(PART2) $(WEB)/ftangle.c     
  301.  
  302. ftangle3.$(O): $(FTANGLE_C)
  303.     $(COMPILE) $(PART3) $(WEB)/ftangle.c
  304.  
  305. ftangle ftangle.exe: $(FTANGLES)\
  306.         common.$(O) eval.$(O) macs.$(O)    ratfor$(LOAD_RATFOR).$(O)\
  307.         $(RESERVES) style.$(O) $(TERMCAP0)
  308.     $(LINK) ftangle$(OBJ) $(FTANGLE2) $(FTANGLE3)\
  309.         common$(OBJ) eval$(OBJ) macs$(OBJ) ratfor$(LOAD_RATFOR)$(OBJ)\
  310.         reserved$(OBJ) $(RESERVED2) style$(OBJ) $(TERMCAP0)\
  311.         $(LIBS)
  312.  
  313. # --- MACS (Macro processing for ftangle) ---
  314. M_TYPE_WEB = $(WEB)/m_type.web $(OS_HWEB)  
  315.  
  316. $(WEB)/m_type.h: $(M_TYPE_WEB)
  317.     ftangle $(WEB)/m_type $(OPTIONS)
  318.  
  319. MACS = $(COMMON_HWEB) $(WEB)/macs.$(HWEB) $(WEB)/t_codes.$(HWEB)\
  320.         $(WEB)/texts.$(HWEB) $(WEB)/stacks.$(HWEB)\
  321.         $(WEB)/val.$(HWEB) $(WEB)/trunc.$(HWEB)
  322. MACS_WEB = $(WEB)/macs.web $(MACS)  
  323.  
  324. $(WEB)/macs.c: $(MACS_WEB)
  325.     ftangle $(WEB)/macs $(OPTIONS)    
  326.  
  327. macs.$(O): $(WEB)/macs.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  328.     $(COMPILE) $(WEB)/macs.c        
  329.  
  330.  
  331. # --- RATFOR (Implementing the Ratfor language for ftangle) ---
  332. RATFOR = $(COMMON_HWEB) $(WEB)/t_codes.$(HWEB) $(WEB)/texts.$(HWEB)\
  333.         $(WEB)/stacks.$(HWEB) $(WEB)/val.$(HWEB)\
  334.         $(WEB)/macs.$(HWEB)\
  335.         $(WEB)/trunc.$(HWEB)
  336. RATFOR_WEB = $(WEB)/ratfor.web $(RATFOR)  
  337.  
  338. $(WEB)/ratfor.c: $(RATFOR_WEB)
  339.     ftangle $(WEB)/ratfor $(OPTIONS)
  340.  
  341. R_TYPE_WEB = $(WEB)/r_type.web $(OS_HWEB)  
  342.  
  343. $(WEB)/r_type.h: $(R_TYPE_WEB)
  344.     ftangle $(WEB)/r_type $(OPTIONS)
  345.  
  346. ratfor.$(O): $(WEB)/ratfor.c $(T_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  347.     $(COMPILE) $(WEB)/ratfor.c        
  348.  
  349. RATFOR0_WEB = $(WEB)/ratfor0.web $(RATFOR)
  350.  
  351. $(WEB)/ratfor0.c: $(RATFOR0_WEB)
  352.     ftangle $(WEB)/ratfor0 $(OPTIONS)
  353.  
  354. ratfor0.$(O): $(WEB)/ratfor0.c $(T_TYPE_H)
  355.     $(COMPILE) $(WEB)/ratfor0.c
  356.  
  357.  
  358. # --- EVAL (Expression evaluation) ---
  359. EVAL = $(COMMON_HWEB) $(WEB)/val.$(HWEB) $(WEB)/os.$(HWEB)\
  360.         $(WEB)/t_codes.$(HWEB)
  361. EVAL_WEB = $(WEB)/eval.web $(EVAL)  
  362.  
  363. $(WEB)/eval.c: $(EVAL_WEB)
  364.     ftangle $(WEB)/eval $(OPTIONS)    
  365.  
  366. E_TYPE_WEB = $(WEB)/e_type.web $(OS_HWEB) 
  367.  
  368. $(WEB)/e_type.h: $(E_TYPE_WEB)
  369.     ftangle $(WEB)/e_type $(OPTIONS)
  370.  
  371. eval.$(O): $(WEB)/eval.c $(E_TYPE_H) $(TYPEDEFS_H)
  372.     $(COMPILE) $(WEB)/eval.c        
  373.  
  374.  
  375. # --- FWEAVE (The fweave processor) ---
  376. W_TYPE_WEB = $(WEB)/w_type.web $(OS_HWEB)  
  377.  
  378. $(WEB)/w_type.h: $(W_TYPE_WEB)
  379.     ftangle $(WEB)/w_type $(OPTIONS)
  380.  
  381. FWEAVE = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
  382.         $(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
  383.         $(WEB)/scraps.$(HWEB)
  384.  
  385. FWEAVE_WEB = $(WEB)/fweave.web $(FWEAVE)  
  386.  
  387. $(WEB)/fweave.c: $(FWEAVE_WEB)
  388.     ftangle $(WEB)/fweave $(OPTIONS)
  389.  
  390. FWEAVE_C = $(WEB)/fweave.c $(W_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  391.  
  392. FWEAVES = fweave.$(O) $(FWEAVE2) $(FWEAVE3)
  393.  
  394. fweaves: $(FWEAVES)
  395.  
  396. fweave.$(O): $(FWEAVE_C)
  397.     $(COMPILE) $(PART1) $(WEB)/fweave.c        
  398.  
  399. fweave2.$(O): $(FWEAVE_C)
  400.     $(COMPILE) $(PART2) $(WEB)/fweave.c        
  401.  
  402. fweave3.$(O): $(FWEAVE_C)
  403.     $(COMPILE) $(PART3) $(WEB)/fweave.c
  404.  
  405. fweave fweave.exe: $(FWEAVES)\
  406.         common.$(O) prod.$(O) ratfor0.$(O) $(RESERVES) style.$(O)\
  407.         $(TERMCAP0)    
  408.     $(LINK) fweave$(OBJ) $(FWEAVE2) $(FWEAVE3)\
  409.         common$(OBJ) prod$(OBJ) ratfor0$(OBJ)\
  410.         reserved$(OBJ) $(RESERVED2) style$(OBJ) $(TERMCAP0)\
  411.         $(LIBS)
  412.  
  413.  
  414. # --- PROD (The ``productions'' for fweave) ---
  415. P_TYPE_WEB = $(WEB)/p_type.web $(OS_HWEB)  
  416.  
  417. $(WEB)/p_type.h: $(P_TYPE_WEB)
  418.     ftangle $(WEB)/p_type $(OPTIONS)
  419.  
  420. PROD = $(COMMON_HWEB) $(WEB)/xrefs.$(HWEB) $(WEB)/tokens.$(HWEB)\
  421.         $(WEB)/ccodes.$(HWEB) $(WEB)/output.$(HWEB)\
  422.         $(WEB)/scraps.$(HWEB)
  423.  
  424. PROD_WEB = $(WEB)/prod.web $(PROD)  
  425.  
  426. $(WEB)/prod.c: $(PROD_WEB)
  427.     ftangle $(WEB)/prod $(OPTIONS)    
  428.  
  429. prod.$(O): $(WEB)/prod.c $(P_TYPE_H) $(TYPEDEFS_H) $(MAP_H)
  430.     $(COMPILE) $(WEB)/prod.c        
  431.  
  432. #------------------------------------------------------------------------------
  433.  
  434. # --- DOCUMENTATION ---
  435. FWEB_TEX = $(FWEB0)fweb.tex # This file is included for all documentation.
  436.  
  437. # --- We can handle all the dvi files with a generalized suffix rule. ---
  438.  
  439. # If your make (e.g., Borland) doesn't like the following line, try just
  440. # commenting it out. 
  441. .SUFFIXES: .tex .dvi 
  442.  
  443. .tex.dvi: 
  444.     tex $*            
  445.     $(PRINT_DVI) $(@)
  446.  
  447. # In the following, note the occasional use of the -i command-line option
  448. # to fweave. This prevents repeated printing of the header files that are
  449. # included via @I.
  450.  
  451. fwebmac.tex: $(MANUAL)/fwebmac.web
  452.     fweave $(MANUAL)/fwebmac
  453.  
  454. custom.tex: $(WEB)/custom.web $(WEB)/formats.$(HWEB)
  455.     fweave $(WEB)/custom
  456.  
  457. strmac.tex: $(WEB)/strmac.web $(OS_HWEB) $(WEB)/formats.$(HWEB)
  458.     fweave $(WEB)/strmac -i
  459.  
  460. y_type.tex: $(Y_TYPE_WEB) $(WEB)/formats.$(HWEB)
  461.     fweave $(WEB)/y_type -i
  462.  
  463. c_type.tex: $(C_TYPE_WEB) $(WEB)/formats.$(HWEB)
  464.     fweave $(WEB)/c_type -i    
  465.  
  466. common.tex: $(COMMON_WEB)
  467.     fweave $(WEB)/common
  468.  
  469. e_type.tex: $(E_TYPE_WEB) $(WEB)/formats.$(HWEB)
  470.     fweave $(WEB)/e_type -i    
  471.  
  472. eval.tex: $(EVAL_WEB)
  473.     fweave $(WEB)/eval -i        
  474.  
  475. m_type.tex: $(M_TYPE_WEB) $(WEB)/formats.$(HWEB)
  476.     fweave $(WEB)/m_type -i    
  477.  
  478. macs.tex: $(MACS_WEB)
  479.     fweave $(WEB)/macs -i        
  480.  
  481. p_type.tex: $(P_TYPE_WEB) $(WEB)/formats.$(HWEB)
  482.     fweave $(WEB)/p_type -i    
  483.  
  484. prod.tex: $(PROD_WEB)
  485.     fweave $(WEB)/prod -i        
  486.  
  487. r_type.tex: $(R_TYPE_WEB) $(WEB)/formats.$(HWEB)
  488.     fweave $(WEB)/r_type -i    
  489.  
  490. ratfor.tex: $(RATFOR_WEB)
  491.     fweave $(WEB)/ratfor -i    
  492.  
  493. ratfor0.tex: $(RATFOR0_WEB)
  494.     fweave $(WEB)/ratfor0 -i
  495.  
  496. d_type.tex: $(D_TYPE_WEB) $(WEB)/formats.$(HWEB)
  497.     fweave $(WEB)/d_type -i
  498.  
  499. reserved.tex: $(RESERVED_WEB)
  500.     fweave $(WEB)/reserved -i -ykw750
  501.  
  502. t_type.tex: $(T_TYPE_WEB) $(WEB)/formats.$(HWEB)
  503.     fweave $(WEB)/t_type -i    
  504.  
  505. ftangle.tex: $(FTANGLE_WEB)
  506.     fweave $(WEB)/ftangle -i
  507.  
  508. s_type.tex: $(S_TYPE_WEB) $(WEB)/formats.$(HWEB)
  509.     fweave $(WEB)/s_type -i    
  510.  
  511. style.tex: $(STYLE_WEB)
  512.     fweave $(WEB)/style -i        
  513.  
  514. a_type.tex: $(A_TYPE_WEB) $(WEB)/formats.$(HWEB)
  515.     fweave $(WEB)/a_type -i
  516.  
  517. termcap0.tex: $(TERMCAP0_WEB)
  518.     fweave $(WEB)/termcap0 -i
  519.  
  520. w_type.tex: $(W_TYPE_WEB) $(WEB)/formats.$(HWEB)
  521.     fweave $(WEB)/w_type -i    
  522.  
  523. fweave.tex: $(FWEAVE_WEB)
  524.     fweave $(WEB)/fweave -i
  525.  
  526. #------------------------------------------------------------------------------
  527.  
  528. # --- INSTALLATION of the processors ---
  529.  
  530. install: all $(MANUAL)/fweb.1 $(MANUAL)/fweb.info
  531.     @echo ""
  532.     @echo "If any changes need to be made to the default directories,"
  533.     @echo "please edit ./defaults.mk.in, then rerun ../configure."
  534.     @echo ""
  535.     $(INSTALL_PROGRAM) ftangle $(bindir)/ftangle
  536.     $(INSTALL_PROGRAM) fweave $(bindir)/fweave
  537.     $(INSTALL_DATA) $(MANUAL)/fweb.1 $(mandir)/fweb.$(manext)
  538.     $(INSTALL_DATA) $(MANUAL)/fweb.texinfo $(texinfodir)/fweb.texinfo
  539.     $(INSTALL_DATA) $(MANUAL)/fweb.info $(infodir)/fweb.info
  540.     $(INSTALL_DATA) $(MANUAL)/fweb.info-1 $(infodir)/fweb.info-1
  541.     $(INSTALL_DATA) $(MANUAL)/fweb.info-2 $(infodir)/fweb.info-2
  542.     $(INSTALL_DATA) $(MANUAL)/fweb.info-3 $(infodir)/fweb.info-3
  543.     $(INSTALL_DATA) $(MANUAL)/fweb.info-4 $(infodir)/fweb.info-4
  544.     $(INSTALL_DATA) $(MANUAL)/fwebmac.sty $(texdir)/fwebmac.sty
  545.     $(INSTALL_DATA) $(MANUAL)/fwebmacL.sty $(texdir)/fwebmacL.sty
  546.     $(INSTALL_DATA) $(MANUAL)/fweb.tex $(texdir)/fweb.tex
  547.     @echo ""
  548.     @echo "Don't forget to record the presence of fweb.info by editing $(infodir)/dir."
  549.     @echo ""
  550.     @echo "To install the FWEB user manual and reference guide, please type"
  551.     @echo ""
  552.     @echo "      cd ../manual"
  553.     @echo "      make install"
  554.     @echo ""
  555.  
  556. uninstall:
  557.     @echo "Uninstall not implemented yet!"
  558.  
  559. # --- CLEANUP ---
  560. all_clean very_clean: clean clean_man clean_install
  561.  
  562. # --- Clean up the OBJECT FILES ---
  563. clean:
  564.     $(RM) -f ftangle fweave *.o core
  565.  
  566. mostlyclean: clean
  567.  
  568. distclean: clean
  569.     $(RM) -f defaults.mk config.status
  570.  
  571. realclean: distclean
  572.  
  573.  
  574. # --- HELP ---
  575. help:
  576.     @echo "Important targets for this Makefile:"
  577.     @echo ""
  578.     @echo " all       --- Compile and link everything."
  579.     @echo " bootstrap --- Touch *.c and *.h, then compile and link everything."
  580.     @echo " clean     --- Removes the FWEB processors and object files."
  581.     @echo " distclean --- Like clean, but also deletes defaults.mk."
  582.     @echo " ftangle   --- Compile and link ftangle."
  583.     @echo " fweave    --- Compile and link fweave."
  584.     @echo " help      --- Obtain help about this Makefile."
  585.     @echo " install   --- Install the processors."
  586.     @echo " *.tex     --- Woven documentation for FWEB source code."
  587.     @echo " *.dvi     --- Document AND PRINT FWEB source code."
  588.     @echo "               (To prevent a dvi file from being printed"
  589.     @echo "               automatically, uncomment the #ECHO = line in"
  590.     @echo "               defaults.mk.in.)"
  591.  
  592.  
  593.