home *** CD-ROM | disk | FTP | other *** search
Makefile | 1994-08-12 | 7.5 KB | 261 lines |
- # This file, makefile.unix, is part of CWEB.
- # It is distributed WITHOUT ANY WARRANTY, express or implied.
-
- # Modified for the CC compiler under HP-UX on a HP Apollo 400 at Bayreuth
- # University by Andreas Scherer (sorry, no e-mail; Abt-Wolf-Straße 17,
- # 96215 Lichtenfels, Federal Republic of Germany), August 12, 1994.
- # Other UNIX compilers like c89 or gcc can work with this file as well.
-
- # Copyright (C) 1987,1990,1993 Silvio Levy and Donald E. Knuth
- # 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 given a different name and 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, ccwebmac.tex, or gcwebmac.tex go here)
- MACROSDIR= /usr/local/lib/tex/inputs
-
- # directory for CWEB inputs in @i files
- CWEBINPUTS=/usr/local/lib/cweb
-
- # extension for manual pages ("l" distinguishes local from system stuff)
- MANEXT= l
- #MANEXT= 1
-
- # directory for manual pages (cweb.1 goes here)
- MANDIR= /usr/man/man$(MANEXT)
-
- # destination directory for executables; must end in /
- DESTDIR= /usr/local/bin/
-
- # directory for GNU EMACS Lisp code (cweb.el goes here)
- EMACSDIR= /usr/local/emacs/lisp
-
- # 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=common.ch
-
- # Set TCHANGES to ctang-foo.ch if you need changes to ctangle.w
- TCHANGES=ctangle.ch
-
- # Set WCHANGES to cweav-foo.ch if you need changes to cweave.w
- WCHANGES=cweave.ch
-
- # Set MCHANGES to wmerge-foo.ch if you need changes to wmerge.w
- MCHANGES=wmerge.ch
-
- # We keep debugging info around, for fun, but most users don't need it.
- # These lists of arguments are specific for CC. Change, add or delete
- # things here to suit your personal conditions.
- # The following set of options work for CC 8.00 on HP-UX 8.00.
- # The script cpp.sh is a local workaround for HP-UX 8.00 to unprotorize
- # the patched source code, i.e., to remove all ANSI-prototypes.
- # If you encounter any problems with the prototypes, look for it at
- # ftp.th-darmstadt.de:/pub/programming/languages/c/unproto-1.2.tar.Z
- # If your version of HP-UX 8.00 acknowledges the `-Aa' option, delete
- # the reference to cpp.sh.
- CFLAGS = -g -tp,/usr/local/bin/cpp.sh -I$(CATINCLUDE) \
- -DCWEBINPUTS=\"$(CWEBINPUTS)\"
-
- # The following set of options work for CC 9.30 on HP-UX 9.01.
- #CFLAGS = -g -Aa -I$(CATINCLUDE) -DCWEBINPUTS=\"$(CWEBINPUTS)\"
-
- # The following set of options work for CC and GCC on SunOS 4 and SGI's
- # IRIX 4.0.5. They are standard for many other UNIX-C compilers.
- #CFLAGS = -g -I$(CATINCLUDE) -DCWEBINPUTS=\"$(CWEBINPUTS)\"
-
- # All linkers tested worked fine with this option.
- LINKFLAGS = -g
- #LINKFLAGS = -s # for smaller (stripped) executables on many UNIX systems
-
- # What C compiler are you using?
- CC = cc
- MAKE = make
-
- # RM and CP are used below in case rm and cp are aliased
- RM= /bin/rm
- CP= /bin/cp
-
- ########## You shouldn't have to change anything after this point #######
-
- CWEAVE = ./cweave
- CTANGLE = ./ctangle
- WMERGE=./wmerge
- SOURCES = cweave.w common.w ctangle.w
- ALMOSTALL = common.w ctangle.w wmerge.w makefile readme \
- common.c common.h ctangle.c wmerge.c \
- cwebman.tex cwebmang.ch cweb.1 cweb.man cweb.el prod.w \
- $(CCHANGES) $(CHCHANGES) $(TCHANGES) $(WCHANGES) $(PCHANGES) \
- comm-vms.ch ctang-vms.ch cweav-vms.ch \
- comm-man.ch ctang-man.ch cweav-man.ch \
- makefile.amiga makefile.pc makefile.unix \
- $(MACROSDIR)cwebmac.tex $(MACROSDIR)ccwebmac.tex $(MACROSDIR)gcwebmac.tex \
- $(CATINCLUDE)cweb.h examples
- ALL = $(ALMOSTALL) cweave.w
-
- .SUFFIXES: .dvi .tex .w
-
- .w.tex:
- $(CWEAVE) $(WFLAGS) $* $*
-
- .tex.dvi:
- tex $<
-
- .w.dvi:
- $(MAKE) $*.tex
- $(MAKE) $*.dvi
-
- .c.o:
- $(CC) $(CFLAGS) -c $*.c
-
- .w.c:
- $(CTANGLE) $* $*
-
- .w.o:
- $(MAKE) $*.c
- $(MAKE) $*.o
-
- # When you say `make' without any arguments, `make' will jump to this item
- default: ctangle cweave
-
- # The complete set of files contains the two programs `ctangle' and
- # `cweave' plus the program `wmerge', the manuals `cwebman' and `cwebmang'
- # and the source documentations.
- all: progs docs
-
- # The objects of desire
- progs: ctangle cweave wmerge
-
- cautiously: ctangle
- $(CP) common.c SAVEcommon.c
- $(CTANGLE) common $(CCHANGES)
- diff common.c SAVEcommon.c
- $(RM) SAVEcommon.c
- $(CP) ctangle.c SAVEctangle.c
- $(CTANGLE) ctangle $(TCHANGES)
- diff ctangle.c SAVEctangle.c
- $(RM) SAVEctangle.c
-
- SAVEctangle.c:
- $(CP) ctangle.c SAVEctangle.c
-
- SAVEcommon.c:
- $(CP) common.c SAVEcommon.c
-
- common.c: common.w $(CCHANGES)
- $(CTANGLE) common $(CCHANGES)
-
- common.o: common.c $(CATINCLUDE)cweb.h
-
- ctangle: ctangle.o common.o
- $(CC) $(LINKFLAGS) -o ctangle ctangle.o common.o
-
- ctangle.c: ctangle.w $(TCHANGES) common.h
- $(CTANGLE) ctangle $(TCHANGES)
-
- ctangle.o: ctangle.c $(CATINCLUDE)cweb.h common.h
-
- cweave: cweave.o common.o
- $(CC) $(LINKFLAGS) -o cweave cweave.o common.o
-
- cweave.c: cweave.w $(WCHANGES) common.h
- $(CTANGLE) cweave $(WCHANGES)
-
- cweave.o: cweave.c $(CATINCLUDE)cweb.h common.h
-
- wmerge: wmerge.c
- $(CC) $(CFLAGS) -o wmerge wmerge.c $(LINKFLAGS)
-
- wmerge.c: wmerge.w $(MCHANGES)
- $(CTANGLE) wmerge $(MCHANGES)
-
- # Take a good lecture for bedtime reading
- doc: $(SOURCES:.w=.dvi)
-
- docs: cwebman.dvi cwebmang.dvi common.dvi ctangle.dvi cweave.dvi wmerge.dvi
-
- cwebman.dvi: cwebman.tex
- cwebmang.dvi: cwebmang.tex
- common.dvi: common.tex
- ctangle.dvi: ctangle.tex
- cweave.dvi: cweave.tex
- wmerge.dvi: wmerge.tex
-
- usermanual: cwebmang.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
-
- cwebmang.tex: cwebman.tex cwebmang.ch
- $(WMERGE) cwebman.tex cwebmang.ch cwebmang.tex
-
- # for making the documentation we will have to include the change files
- ctangle.tex: ctangle.w common.h $(TCHANGES)
- $(CWEAVE) $(WFLAGS) ctangle $(TCHANGES)
-
- cweave.tex: cweave.w common.h $(WCHANGES)
- $(CWEAVE) $(WFLAGS) cweave $(WCHANGES)
-
- common.tex: common.w $(CCHANGES)
- $(CWEAVE) $(WFLAGS) common $(CCHANGES)
-
- wmerge.tex: wmerge.w $(MCHANGES)
- $(CWEAVE) $(WFLAGS) wmerge $(MCHANGES)
-
- # be sure to leave ctangle.c and common.c and common.h for bootstrapping
- clean:
- $(RM) -f -r *~ *.o common.tex cweave.tex cweave.c ctangle.tex \
- *.log *.dvi *.toc *.idx *.scn core cweave.w.[12] cweave ctangle \
- cwebmang.tex wmerge.tex wmerge
-
- # Install the new program versions where they can be found
- install: all
- $(CP) cweave $(DESTDIR)$(DESTPREF)weave
- chmod 755 $(DESTDIR)$(DESTPREF)weave
- $(CP) ctangle $(DESTDIR)$(DESTPREF)tangle
- chmod 755 $(DESTDIR)$(DESTPREF)tangle
- $(CP) cweb.1 $(MANDIR)/cweb.$(MANEXT)
- chmod 644 $(MANDIR)/cweb.$(MANEXT)
- $(CP) cwebmac.tex $(MACROSDIR)
- chmod 644 $(MACROSDIR)/cwebmac.tex
- $(CP) cweb.el $(EMACSDIR)
- chmod 644 $(EMACSDIR)/cweb.el
-
- bundle: $(ALL)
- sed -n '1,2200 p' cweave.w > cweave.w.1
- sed -n '2201,$$ p' cweave.w > cweave.w.2
- /usr/local/bin/shar -m100000 -c -v -f cweb $(ALMOSTALL) cweave.w.[12]
-
- tags: $(ALL)
- etags -z $(ALL)
-
- cweb.tar: $(ALL)
- tar cvhf cweb.tar $(ALL)
-
- floppy: $(ALL)
- bar cvhf /dev/rfd0 $(ALL)
- bar tvf /dev/rfd0
- eject
-