home *** CD-ROM | disk | FTP | other *** search
Makefile | 1996-09-28 | 4.0 KB | 158 lines |
- # Makefile for the WEB programs.
- # tangle is bootstrapped from the supplied C source.
-
- SHELL = /bin/sh
- srcdir = @srcdir@
- VPATH = @srcdir@
-
- # This is so kpathsea will get remade automatically if you change
- # something in it and recompile from the package directory.
- kpathsea_parent = ../..
- kpathsea_dir = $(kpathsea_parent)/kpathsea
- kpathsea = $(kpathsea_dir)/kpathsea.a
-
- # Routines used everywhere.
- commondefines = $(srcdir)/../lib/common.defines
- commonh = $(srcdir)/../lib/config.h $(kpathsea_dir)/paths.h
- commono = ../lib/lib.a $(kpathsea)
-
- program = tangle weave pooltype
-
- CC = @CC@
- CFLAGS =
- CPPFLAGS = -I../lib -I$(srcdir)/../lib -I../.. -I$(srcdir)/../..
-
- CCLD = $(CC)
- LDFLAGS = $(CFLAGS) $(XLDFLAGS)
- LIBS = @LIBS@ $(extralibs)
- libs = $(commono) $(LIBS)
-
- INSTALL = @INSTALL@
- INSTALL_PROGRAM = @INSTALL_PROGRAM@
-
-
- .SUFFIXES:
- .SUFFIXES: .o .c .p .ch
- .p.c:
- $(SHELL) $(srcdir)/../lib/convert $< $*.c $(srcdir)
- .ch.p:
- ./tangle $(srcdir)/$*.web $<
- cp $(srcdir)/$*.p $*.p
- rm -f $(srcdir)/$*.p
- .c.o:
- $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
-
-
- default: $(all)
- all: $(program)
- triptrap: tangle
-
-
- tangleboot: tangleboot.o $(commono)
- $(CCLD) -o tangleboot $(LDFLAGS) tangleboot.o $(libs)
-
- tangleboot.o: tangleboot.c tangleboot.h
-
- tangleboot.c tangleboot.h: tangleboot.p
- cd ../web2c; $(MAKE) all
- $(SHELL) $(srcdir)/../lib/convert tangleboot.p temp.c $(srcdir)
- sed s/tangle.h/tangleboot.h/ < temp.c > tangleboot.c
- rm -f temp.c
-
- # To make tangleboot.p, we must assume a working tangle.
- tangleboot.p: tangle.web tangle.ch
- tangle $(srcdir)/tangle.web $(srcdir)/tangle.ch
- mv tangle.p tangleboot.p
-
-
- tangle: tangle.o $(commono)
- $(CCLD) -o tangle $(LDFLAGS) tangle.o $(libs)
- tangle.o: tangle.c $(commonh)
- tangle.c: tangle.p $(commondefines)
-
- # Making tangle.p is a special case, since it is needed to compile
- # itself. We compile the (distributed) tangleboot.c to make a tangle
- # which we can use to make the other programs. (We don't bother to make
- # tangle again using itself.)
- tangle.p: tangleboot tangle.web tangle.ch
- ./tangleboot $(srcdir)/tangle.web $(srcdir)/tangle.ch
- cp $(srcdir)/tangle.p tangle.p
- rm -f $(srcdir)/tangle.p
-
- tangle.web:
- @echo "You seem to be missing tangle.web, perhaps because you"
- @echo "only retrieved web2c.tar.gz, and not web.tar.gz."
- @echo "You need both."
- @echo
- @echo "web.tar.gz should be available from the"
- @echo "same place that you got web2c.tar.gz."
- @echo "In any case, you can get it from ftp.cs.umb.edu:pub/tex."
- exit 1
-
- pooltype: pooltype.o $(commono)
- $(CCLD) -o pooltype $(LDFLAGS) pooltype.o $(libs)
- pooltype.o: pooltype.c $(commonh)
- pooltype.c: pooltype.p $(commondefines)
- pooltype.p: pooltype.web pooltype.ch
-
-
- weave: weave.o $(commono)
- $(CCLD) -o weave $(LDFLAGS) weave.o $(libs)
- weave.o: weave.c $(commonh)
- weave.c: weave.p $(commondefines)
- weave.p: weave.web weave.ch
-
-
- Makefile: Makefile.in ../config.status
- (cd ..; sh config.status)
-
- c-sources: pooltype.c tangle.c weave.c
- .PHONY: c-sources
-
- install install-exec: all
- for p in $(program); do $(INSTALL_PROGRAM) $$p $(bindir)/$$p; done
- install-data:
-
- TAGS: *.c *.h
- etags -t *.c *.h
-
-
- mostlyclean::
- rm -f *.o $(program) $(lib) $(programs)
-
- clean:: mostlyclean
- rm -f *.dvi *.pool
-
- distclean:: clean
- rm -f Makefile config.status c-auto.h
-
- # Although we can remake configure and c-auto.h.in, we don't remove
- # them, since many people may lack Autoconf. Use configclean for that.
- realclean:: distclean
- rm -f TAGS *.info*
-
- extraclean::
- rm -f *.aux *.bak *.bbl *.blg *.dvi *.log *.orig *.pl *.rej
- rm -f *.i *.s *.tfm *.vf *.vpl *\#* *gf *pk *~
- rm -f CONTENTS.tex a.out core mfput.* patch* texput.*
-
- configclean:
- rm -f configure c-auto.h.in c-auto.h
-
-
- # Prevent GNU make 3 from overflowing arg limit on system V.
- .NOEXPORT:
-
- mostlyclean::
- rm -f tangleboot
-
- # Can't remove *.p *.c *.h because of tangleboot.
- clean::
- rm -f pooltype.p pooltype.c pooltype.h
- rm -f tangle.p tangle.c tangle.h
- rm -f weave.p weave.c weave.h
-
- # Do not remove tangleboot.[chp] at realclean, even though there are
- # targets for them in this Makefile, because we need a working tangle to
- # use them, and we might not have one.
-