diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /dviware/crudetype/version3/makefile |
Initial commit
Diffstat (limited to 'dviware/crudetype/version3/makefile')
-rw-r--r-- | dviware/crudetype/version3/makefile | 238 |
1 files changed, 238 insertions, 0 deletions
diff --git a/dviware/crudetype/version3/makefile b/dviware/crudetype/version3/makefile new file mode 100644 index 0000000000..45e6206802 --- /dev/null +++ b/dviware/crudetype/version3/makefile @@ -0,0 +1,238 @@ +# Makefile for Unix version of CRUDETYPE. +# +# {{ Originally written by P.King, much altered by RMD}} + +# +# COPYRIGHT ( C ) P. King, Heriot-Watt University, 1988. +# +# Permission is given to any person to make and distribute copies of this +# software, subject to the following conditions: +# +# 1. All copies of the software must carry an exact copy of this notice. +# +# 2. This software is distributed free of charge, "AS IS" with absolutely no +# guarantee of performance. Any persons receiving or using this software must do +# so entirely at their own risk. Neither the authors nor their institutions +# accept any liability for any defects of this software, or for any consequential +# loss or damage however caused. +# +# 3. Any person who changes this software must clearly mark it as modified and +# add a note describing the changes made. +# +# +# They depend on the Berkeley implementation of Pascal, and have only been tried +# on BSD4.2 UNIX. +# +# +# +# +# +# Makefile: +# -------------------------------- +# +# Adapted from: +# Makefile for TeX82 distribution, subdirectory `=TeXware' +# version for 4.2 bsd +# +# This file makes CRUDETYPE from its WEB source. +# +# Note: The -J option on the 'pc' commands below is the only way to +# 'pc' to use the -J option to the assembler (which makes it +# do the sensible thing with branches). This flag is not +# documented, which is correct, since 'pc' should really be +# using it all of the time... (Grrr..) +# +# Note: several parts of this Makefile are unsatisfactory; I could +# not get them to work. +# +# +# Before using this makefile, change these macros to conform to +# local practice: + +################################################################ +# Which image(s) do you want to build? See README for some names +################################################################ + +all: $(IMAGES) + +POSSIBLE_IMAGES= crudetype crude-p noscheme-p noscheme-c hpgf + +IMAGES = + +################################################################ +# Where does the S-ware live? In TEX version3 there are files: +# site.h and defaults.h in the top level directory of TEX that +# describe your machine. +################################################################ + +SITEDIR= /tex/ver3 +SITE_H=$(SITEDIR)/site.h +DEFT_H=$(SITEDIR)/defaults.h + +# I had to rewrite common.defines + +COMMONDIR= . +COMM_DEFS=$(COMMONDIR)/w2c.defines + +# Where to install things + +BINDIR=/tex +MANDIR=/usr/man/manl + +################################################################ +# Compiler options +################################################################ + +OPT= -O +CFLAGS=$(OPT) -I$(SITEDIR) +PFLAGS= -J -g -C +LDFLAGS= $(OPT) +INSTALL = cp -m 555 + +################################################################ +# Names of compilers etc +################################################################ + +CC = cc +PC = pc +TANGLE=-tangle +RM=/bin/rm +YACC=yacc # You can substitute "bison -y" for "yacc" if you like +LEX=lex # Note: If you're going to use flex, compile web2cl.c with "-DFLEX" + + +.c.o: + $(CC) $(CFLAGS) -c $*.c + +.p.o: + $(PC) $(PFLAGS) -c $*.p + + +################################################################ +# This is what I regard as the 'normal' version of Crudetype, using +# my modified web2c. +################################################################ + +CRUDE_C_OBJS= crude-c.o w2c-ext.o w2c-main.o + +crudetype: $(CRUDE_C_OBJS) + cc $(LDFLAGS) -o $@ $(CRUDE_C_OBJS) + +$(CRUDE_C_OBJS): $(SITE_H) $(DEFT_H) + +crude-c.c: crude-c.p w2c $(COMM_DEFS) + w2c -d$(COMM_DEFS) <crude-c.p >crude-c.c + +crude-c.p: crudetype.web unix-c.ch + $(TANGLE) crudetype unix-c + mv crudetype.p crude-c.p + + +################################################################ +#Compile w2c itself +################################################################ + +WC_OBJS= w2cy.o w2cl.o w2c.o + + +w2c: $(WC_OBJS) + $(CC) $(LDFLAGS) -o w2c $(WC_OBJS) -ll + +$(WC_OBJS): w2c-symtab.h w2cy.h w2c.h + +w2cl.c: w2c.lex $(SITE_H) $(DEFT_H) + $(LEX) w2c.lex + mv -f lex.yy.c w2cl.c + +w2cy.c: w2c.yacc $(SITE_H) $(DEFT_H) + $(YACC) -d w2c.yacc + mv -f y.tab.c w2cy.c + -cmp y.tab.h w2cy.h || cp y.tab.h w2cy.h + +################################################################ +# Version using pc is called crude-p +################################################################ + + +crude-p: crude-p.o unixext.o + $(PC) $(PFLAGS) -o $@ crude-p.o unixext.o $(PCLIB) + +crude-p.p: crudetype.web unix-pas.ch + $(TANGLE) crudetype unix-pas + mv crudetype.p crude-p.p + + +################################################################ +# YEUCHY mess for no coding schemes +################################################################ + +noscheme-p: noscheme-p.o unixext.o + $(PC) $(PFLAGS) -o $@ noscheme-p.o unixext.o $(PCLIB) + +noscheme-p.p: noscheme.web unix-pas.ch + $(TANGLE) noscheme unix-pas + mv noscheme.p noscheme-p.p + +noscheme.web: crudetype.web noscheme.add + cat crudetype.web noscheme.add > $@ + +################################################################ +# More mess. Noscheme compiled with W2C +# +################################################################ + +NOSC_OBJS= noscheme-c.o w2c-ext.o w2c-main.o + +noscheme-c: $(NOSC_OBJS) + cc $(LDFLAGS) -o $@ $(NOSC_OBJS) + +$(NOSC_OBJS): $(SITE_H) $(DEFT_H) + +noscheme-c.c: noscheme-c.p w2c $(COMM_DEFS) + w2c -d$(COMM_DEFS) <noscheme-c.p >noscheme-c.c + +noscheme-c.p: noscheme.web unix-c.ch + $(TANGLE) noscheme unix-c + mv noscheme.p noscheme-c.p + + +################################################################ +# Typical example of a printer changefile +################################################################ + + +hpgf: hpgf.o unixext.o + $(PC) $(PFLAGS) -o hpgf hpgf.o unixext.o $(PCLIB) + +hpgf.p: crudetype.web unixhp.ch + $(TANGLE) crudetype unixhp + mv crudetype.p hpgf.p + +unixhp.ch: unix-pas.ch hpgf.ch + cat unix-pas.ch hpgf.ch > $@ + + +################################################################ +# Install etc. You probably want to alter the installed names. +################################################################ + +install: $(IMAGES) + for i in $(POSSIBLE_IMAGES) ; do\ + if -i $$i \ + $(INSTALL) $$i $(BINDIR); \ + fi \ + done + $(INSTALL) unixcru.man $(MANDIR)crudetype.l + + +veryclean: clean + $(RM) -f crude-c.c noscheme-c.c + +clean: + $(RM) -f *.p *.o $(POSSIBLE_IMAGES) \ + y.* lex.* w2c w2cy.c w2cy.h w2cl.c coerce.h \ + noscheme.web unixhp.ch \ + answers.tex index.tex \ + *.dvi *.lpr *.log *~ *# + + |