home *** CD-ROM | disk | FTP | other *** search
Makefile | 1995-09-19 | 10.1 KB | 347 lines |
- # This file, makefile.bcc, is part of CWEBBIN (Version 3.4 [p13].
- # It is distributed WITHOUT ANY WARRANTY, express or implied.
- #
- # Modified for the Borland Turbo C/C++ 3.1 compiler under MS/DOS by
- # Andreas Scherer (scherer@genesis.informatik.rwth-aachen.de), July 1994
- # Last updated by Andreas Scherer, September 19, 1995
-
- # Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
- #
- # The following copyright notice extends to this PC Makefile only,
- # not to any part of the original CWEB distribution.
- #
- # Copyright (C) 1994 Andreas Scherer
-
- # Permission is granted to make and distribute verbatim copies of this
- # document provided that the copyright notice and this permission notice
- # are preserved on all copies.
-
- # Permission is granted to copy and distribute modified versions of this
- # document under the conditions for verbatim copying, provided that the
- # entire resulting derived work is distributed under the terms of a
- # permission notice identical to this one.
-
- #
- # Read the README file, then edit this file to reflect local conditions
- #
-
- # directory for TeX inputs (cwebmac.tex and (X|d|i)cwebmac.tex go here)
- MACROSDIR = ./texinputs/
-
- # directory for CWEB inputs in @i files
- CWEBINPUTS = ./cwebinputs/
-
- # extension for manual pages ("l" distinguishes local from system stuff)
- MANEXT = l
- #MANEXT = 1
-
- # directory for manual pages (cweb.1 goes here)
- MANDIR =
-
- # destination directory for executables; must end in /
- DESTDIR = ./bin/
-
- # directory for GNU EMACS Lips code (cweb.el goes here)
- EMACSDIR =
-
- # directory for the language header file "cweb.h"
- CATINCLUDE = ./bin/catalogs/
-
- # Set DESTPREF to null if you want to call the executables "tangle" and "weave"
- # (probably NOT a good idea; we recommend leaving DESTPREF = c)
- DESTPREF = c
-
- # Set CCHANGES to comm-foo.ch if you need changes to common.w
- CCHANGES = comm-p13.ch
-
- # Set HCHANGES to comm-foo.hch if you need changes to common.h
- HCHANGES = comm-p13.hch
-
- # Set HPATCH to comm-foo.h if you apply changes to common.h
- # default should be common.h
- HPATCH = comm-p13.h
-
- # Set TCHANGES to ctang-foo.ch if you need changes to ctangle.w
- TCHANGES = ctang-p13.ch
-
- # Set WCHANGES to cweav-foo.ch if you need changes to cweave.w
- WCHANGES = cweav-p13.ch
-
- # Set MCHANGES to wmerge-foo.ch if you need changes to wmerge.w
- MCHANGES = wmerg-p13.ch
-
- # Set EXTENSION to either `c' if you want to treat CWEB as a system
- # of ordinary ANSI-C programs, or to `cc', `cxx', `cpp' or similar
- # if you want to treat CWEB as a system of C++ programs. Your
- # compiler should be able to distinguish between the two forms
- # according to the source file extension. Even with ANSI-C programs
- # it is strongly recommended to use C++ compilers, because of the
- # much stricter checking of type conversions and module interfaces.
- # For highest portability, all of the extra features of C++ are
- # avoided in the CWEB system, thus using something like C--.
- EXTENSION = cxx
-
- # Compile with symbols. That way you'll be able to use the debugger if
- # you run into trouble. You can always use tdstrip later, to remove the
- # symbols.
- DEBUG = -v
-
- # Redundant Load Suppression (-Z) is turned off, because it seems to
- # break the code. Likewise for Copy Propagation (-Op). (These
- # optimizations don't seem to cause any problems in common.w, but
- # better safe than sorry--compile everything with them turned off.)
- OPT = -O2-p -Z- -mc -Ff=5000 -d -w-pro $(DEBUG)
-
- # These lists of arguments are specific for BCC.
- # Change, add or delete things here to suit your personal conditions.
- # Simulate these when setting up `projects'.
- CFLAGS = -I$(CATINCLUDE) $(OPT) \
- -DCWEBINPUTS="$(CWEBINPUTS)" -D_DEV_NULL="NUL" -DSEPARATORS=";\\:"
- LINKFLAGS = $(CFLAGS)
-
- # The `f' flag is turned off to save paper
- # The `lX' flag includes Xcwebmac.tex
- # The `s' flag displays some statistics
- WFLAGS = -f +lX +s
- TFLAGS = +s
-
- # What C compiler are you using?
- CC = bcc
- LINK = bcc
- MAKE = make
-
- # RM and CP are used below in case rm and cp are aliased
- RM = del
- RMDIR = deltree
- CP = copy
- INSTALL = copy
-
- ########## You shouldn't have to change anything after this point #######
-
- CWEAVE = ./cweave
- CTANGLE = ./ctangle
- WMERGE = ./wmerge
-
- # The following files come from the original CWEB distribution and
- # are left completely unmodified.
-
- SOURCES = common.w common.h ctangle.w cweave.w prod.w examples/wmerge.w
-
- ORIGINAL = $(SOURCES) comm-amiga.ch comm-bs.ch comm-man.ch comm-pc.ch \
- comm-vms.ch common.c ctang-bs.ch ctang-man.ch ctang-pc.ch \
- ctang-vms.ch ctangle.c cweav-bs.ch cweav-man.ch cweav-pc.ch \
- cweav-vms.ch cweb.1 cweb.el cwebmac.tex cwebman.tex Makefile \
- Makefile.bs README comm-os2.ch \
- examples/extex.w examples/kspell.el examples/Makefile \
- examples/oemacs.el examples/oemacs.w examples/README \
- examples/treeprint.w examples/wc.w examples/wc-dos.ch \
- examples/wmerg-pc.ch examples/wmerge.w~ examples/wordtest.w \
- examples/xlib_types.w examples/xview_types.w
-
- # The following files make the body of this patched distribution
- # of CWEB.
-
- PATCH = $(CCHANGES) $(HCHANGES) $(HPATCH) $(TCHANGES) $(WCHANGES) \
- $(MCHANGES) common.$(EXTENSION) ctangle.$(EXTENSION) \
- wmerge.$(EXTENSION) cwebmana.ch README.p13 \
- Makefile.bcc Makefile.sas Makefile.unix
-
- AREXX = arexx/*
-
- BIN = bin/*
-
- EXAMPLES = examples/cct.w examples/commonwords.w examples/extex.ch \
- examples/Makefile.sas examples/matrix.wxx examples/primes.ch \
- examples/primes.w examples/README.p11 examples/sample.w \
- examples/treeprint.ch examples/wc.ch examples/wordtest.ch
-
- INCLUDE = cwebinputs/*
-
- MACROS = texinputs/*
-
- ALL = $(ORIGINAL) $(PATCH) $(AREXX) $(BIN) $(EXAMPLES) $(INCLUDE) $(MACROS)
-
- .SUFFIXES: .dvi .tex .w
-
- .w.tex:
- $(CWEAVE) $(WFLAGS) $* $*
-
- .tex.dvi:
- tex $<
-
- .w.dvi:
- $(MAKE) $*.tex
- $(MAKE) $*.dvi
-
- .$(EXTENSION).obj:
- $(CC) $(CFLAGS) -c $*.$(EXTENSION)
-
- # When you say `make' without any arguments, `make' will jump to this item
- default: ctangle.exe cweave.exe
-
- # The complete set of files contains the two programs `ctangle' and
- # `cweave' plus the program `wmerge', the manuals `cwebman' and `cwebmana'
- # and the source documentations.
- all: progs docs
-
- # The objects of desire
- progs: ctangle.exe cweave.exe wmerge.exe
-
- cautiously: $(CTANGLE)
- $(CP) common.$(EXTENSION) SAVEcommon.$(EXTENSION)
- $(CTANGLE) $(TFLAGS) common $(CCHANGES) common.$(EXTENSION)
- diff common.$(EXTENSION) SAVEcommon.$(EXTENSION)
- $(RM) SAVEcommon.$(EXTENSION)
- $(CP) ctangle.$(EXTENSION) SAVEctangle.$(EXTENSION)
- $(CTANGLE) $(TFLAGS) ctangle $(TCHANGES) ctangle.$(EXTENSION)
- diff ctangle.$(EXTENSION) SAVEctangle.$(EXTENSION)
- $(RM) SAVEctangle.$(EXTENSION)
-
- SAVEctangle.$(EXTENSION):
- $(CP) ctangle.$(EXTENSION) SAVEctangle.$(EXTENSION)
-
- SAVEcommon.$(EXTENSION):
- $(CP) common.$(EXTENSION) SAVEcommon.$(EXTENSION)
-
- common.$(EXTENSION): common.w $(CCHANGES)
- $(CTANGLE) $(TFLAGS) common $(CCHANGES) common.$(EXTENSION)
-
- common.obj: common.$(EXTENSION) $(CATINCLUDE)cweb.h
-
- ctangle.exe: ctangle.obj common.obj
- $(LINK) $(LINKFLAGS) ctangle.obj common.obj
-
- ctangle.$(EXTENSION): ctangle.w $(TCHANGES) $(HPATCH)
- $(CTANGLE) $(TFLAGS) ctangle $(TCHANGES) ctangle.$(EXTENSION)
-
- ctangle.obj: ctangle.$(EXTENSION) $(CATINCLUDE)cweb.h $(HPATCH)
-
- cweave.exe: cweave.obj common.obj
- $(LINK) $(LINKFLAGS) cweave.obj common.obj
-
- cweave.$(EXTENSION): cweave.w $(WCHANGES) $(HPATCH)
- $(CTANGLE) $(TFLAGS) cweave $(WCHANGES) cweave.$(EXTENSION)
-
- cweave.obj: cweave.$(EXTENSION) $(CATINCLUDE)cweb.h $(HPATCH)
-
- wmerge.exe: wmerge.$(EXTENSION)
- $(CC) $(CFLAGS) wmerge.$(EXTENSION)
-
- wmerge.$(EXTENSION): examples/wmerge.w $(MCHANGES)
- $(CTANGLE) $(TFLAGS) examples/wmerge $(MCHANGES) wmerge.$(EXTENSION)
-
- # Take a good lecture for bedtime reading
- docs: cwebman.dvi cwebmana.dvi common.dvi ctangle.dvi cweave.dvi wmerge.dvi
-
- cwebman.dvi: cwebman.tex
- cwebmana.dvi: cwebmana.tex
- common.dvi: common.tex
- ctangle.dvi: ctangle.tex
- cweave.dvi: cweave.tex
- wmerge.dvi: wmerge.tex
-
- usermanual: cwebmana.dvi
-
- fullmanual: usermanual $(SOURCES) comm-man.ch ctang-man.ch cweav-man.ch
- $(MAKE) cweave
- $(CWEAVE) common.w comm-man.ch
- $(MAKE) common.dvi
- $(CWEAVE) ctangle.w ctang-man.ch
- $(MAKE) ctangle.dvi
- $(CWEAVE) cweave.w cweav-man.ch
- $(MAKE) cweave.dvi
-
- cwebmana.tex: cwebman.tex cwebmana.ch
- $(WMERGE) cwebman.tex cwebmana.ch cwebmana.tex
-
- # for making the documentation we will have to include the change files
- ctangle.tex: ctangle.w $(HPATCH) $(TCHANGES)
- $(CWEAVE) $(WFLAGS) ctangle $(TCHANGES)
-
- cweave.tex: cweave.w $(HPATCH) $(WCHANGES)
- $(CWEAVE) $(WFLAGS) cweave $(WCHANGES)
-
- common.tex: common.w $(CCHANGES)
- $(CWEAVE) $(WFLAGS) common $(CCHANGES)
-
- wmerge.tex: examples/wmerge.w $(MCHANGES)
- $(CWEAVE) $(WFLAGS) examples/wmerge $(MCHANGES)
-
- # be sure to leave ctangle.$(EXTENSION) and common.$(EXTENSION)
- # and $(HPATCH) for bootstrapping
- clean:
- $(RM) *.obj
- $(RM) *.bak
- $(RM) *.log
- $(RM) *.dvi
- $(RM) *.toc
- $(RM) *.idx
- $(RM) *.scn
- $(RM) common.tex
- $(RM) cweave.tex
- $(RM) cweave.$(EXTENSION)
- $(RM) ctangle.tex
- $(RM) ctangle.exe
- $(RM) cweave.exe
- $(RM) wmerge.exe
- $(RM) cwebmana.tex
- $(RM) wmerge.tex
-
- # Install the new program versions where they can be found
- install: progs
- $(INSTALL) cweave.exe $(DESTDIR)$(DESTPREF)weave.exe
- $(INSTALL) ctangle.exe $(DESTDIR)$(DESTPREF)tangle.exe
- $(INSTALL) wmerge.exe $(DESTDIR)wmerge.exe
-
- # Make a shipable archive
- cweb.lha:
- lha -x -r u $@ $(ALL)
- cwebpatch.lha:
- lha -x -r u $@ $(PATCH)
- lha -x -r u $@ $(AREXX)
- lha -x -r u $@ $(BIN)
- lha -x -r u $@ $(EXAMPLES)
- lha -x -r u $@ $(INCLUDE)
- lha -x -r u $@ $(MACROS)
- cweborig.lha:
- lha -x -r u $@ $(ORIGINAL)
-
- cweb.tar.gz:
- tar cvf cweb.tar $(ALL)
- gzip cweb.tar
-
- # Remove the patch completely
- remove: clean
- $(RM) $(CCHANGES)
- $(RM) $(HCHANGES)
- $(RM) $(HPATCH)
- $(RM) $(TCHANGES)
- $(RM) $(WCHANGES)
- $(RM) $(MCHANGES)
- $(RM) common.$(EXTENSION)
- $(RM) ctangle.$(EXTENSION)
- $(RM) wmerge.$(EXTENSION)
- $(RM) cwebmana.ch
- $(RM) README.p13
- $(RM) Makefile.bcc
- $(RM) Makefile.sas
- $(RM) Makefile.unix
- $(RMDIR) arexx
- $(RMDIR) bin
- $(RM) examples/cct.w
- $(RM) examples/commonwords.w
- $(RM) examples/extex.ch
- $(RM) examples/Makefile.sas
- $(RM) examples/matrix.wxx
- $(RM) examples/primes.ch
- $(RM) examples/primes.w
- $(RM) examples/README.p11
- $(RM) examples/sample.w
- $(RM) examples/treeprint.ch
- $(RM) examples/wc.ch
- $(RM) examples/wordtest.ch
- $(RMDIR) cwebinputs
- $(RMDIR) texinputs
-
- # End of Makefile.bcc
-