# Makefile for the font utility programs.

SHELL = rx
srcdir = .
VPATH = .

# The missing `configure' mechanism requires this to be done by hand.
bindir = TeXMF:bin/web2c61

# 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.lib

# Routines used everywhere.
commondefines = $(srcdir)/../lib/common.defines
commonh = $(srcdir)/../lib/config.h $(kpathsea_dir)/paths.h
commono = ../lib/lib.lib $(kpathsea)

program = gftodvi gftopk mft pktogf pktype vftovp vptovf gftype pltotf tftopl

CC = sc
CFLAGS = data=far code=far math=IEEE noicons optimize
CPPFLAGS = idir=$(srcdir)/../lib idir=../..

CCLD = $(CC)
LDFLAGS = $(CFLAGS) $(XLDFLAGS)
LIBS = $(extralibs)
libs = $(commono) $(LIBS)

WMERGE = wmerge

INSTALL = copy
INSTALL_PROGRAM = copy

.SUFFIXES:
.SUFFIXES: .o .c .p .ch
.p.c:
	$(SHELL) $(srcdir)/../lib/convert.rexx $*.p $*.c
.ch.p:
	../web/tangle $*.web $*.ch
.c.o:
	$(CC) $(CPPFLAGS) $(CFLAGS) $*.c

default: all
all: $(program)
triptrap: gftype pltotf tftopl

gftodvi: gftodvi.o $(commono)
	$(CCLD) link to gftodvi $(LDFLAGS) gftodvi.o $(libs)
gftodvi.o: gftodvi.c $(commonh) gftodmem.h
gftodvi.c: gftodvi.p $(commondefines)
gftodvi.p: gftodvi.web amigagftodvi.ch
	../web/tangle gftodvi.web amigagftodvi.ch
amigagftodvi.ch: gftodvi.ch gftodvi.chch
	$(WMERGE) gftodvi.ch gftodvi.chch amigagftodvi.ch

gftopk: gftopk.o $(commono)
	$(CCLD) link to gftopk $(LDFLAGS) gftopk.o $(libs)
gftopk.o: gftopk.c $(commonh)
gftopk.c: gftopk.p $(commondefines)
gftopk.p: gftopk.web amigagftopk.ch
	../web/tangle gftopk.web amigagftopk.ch
amigagftopk.ch: gftopk.ch gftopk.chch
	$(WMERGE) gftopk.ch gftopk.chch amigagftopk.ch

gftype: gftype.o $(commono)
	$(CCLD) link to gftype $(LDFLAGS) gftype.o $(libs) 
gftype.o: gftype.c $(commonh)
gftype.c: gftype.p $(commondefines)
gftype.p: gftype.web amigagftype.ch
	../web/tangle gftype.web amigagftype.ch
amigagftype.ch: gftype.ch gftype.chch
	$(WMERGE) gftype.ch gftype.chch amigagftype.ch

mft: mft.o $(commono)
	$(CCLD) link to mft $(LDFLAGS) mft.o $(libs)
mft.o: mft.c $(commonh)
mft.c: mft.p $(commondefines)
mft.p: mft.web amigamft.ch
	../web/tangle mft.web amigamft.ch
amigamft.ch: mft.ch mft.chch
	$(WMERGE) mft.ch mft.chch amigamft.ch

pktogf: pktogf.o $(commono)
	$(CCLD) link to pktogf $(LDFLAGS) pktogf.o $(libs)
pktogf.o: pktogf.c $(commonh)
pktogf.c: pktogf.p $(commondefines)
pktogf.p: pktogf.web amigapktogf.ch
	../web/tangle pktogf.web amigapktogf.ch
amigapktogf.ch: pktogf.ch pktogf.chch
	$(WMERGE) pktogf.ch pktogf.chch amigapktogf.ch

pktype: pktype.o $(commono)
	$(CCLD) link to pktype $(LDFLAGS) pktype.o $(libs)
pktype.o: pktype.c $(commonh)
pktype.c: pktype.p $(commondefines)
pktype.p: pktype.web amigapktype.ch
	../web/tangle pktype.web amigapktype.ch
amigapktype.ch: pktype.ch pktype.chch
	$(WMERGE) pktype.ch pktype.chch amigapktype.ch

pltotf: pltotf.o $(commono)
	$(CCLD) link to pltotf $(LDFLAGS) pltotf.o $(libs)
pltotf.o: pltotf.c $(commonh)
pltotf.c: pltotf.p $(commondefines)
pltotf.p: pltotf.web amigapltotf.ch
	../web/tangle pltotf.web amigapltotf.ch
amigapltotf.ch: pltotf.ch pltotf.chch
	$(WMERGE) pltotf.ch pltotf.chch amigapltotf.ch

tftopl: tftopl.o $(commono)
	$(CCLD) link to tftopl $(LDFLAGS) tftopl.o $(libs)
tftopl.o: tftopl.c $(commonh)
tftopl.c: tftopl.p $(commondefines)
tftopl.p: tftopl.web amigatftopl.ch
	../web/tangle tftopl.web amigatftopl.ch
amigatftopl.ch: tftopl.ch tftopl.chch
	$(WMERGE) tftopl.ch tftopl.chch amigatftopl.ch

vftovp: vftovp.o $(commono)
	$(CCLD) link to vftovp $(LDFLAGS) vftovp.o $(libs)
vftovp.o: vftovp.c $(commonh)
vftovp.c: vftovp.p $(commondefines)
vftovp.p: vftovp.web amigavftovp.ch
	../web/tangle vftovp.web amigavftovp.ch
amigavftovp.ch: vftovp.ch vftovp.chch
	$(WMERGE) vftovp.ch vftovp.chch amigavftovp.ch

vptovf: vptovf.o $(commono)
	$(CCLD) link to vptovf $(LDFLAGS) vptovf.o $(libs)
vptovf.o: vptovf.c $(commonh)
vptovf.c: vptovf.p $(commondefines)
vptovf.p: vptovf.web amigavptovf.ch
	../web/tangle vptovf.web amigavptovf.ch
amigavptovf.ch: vptovf.ch vptovf.chch
	$(WMERGE) vptovf.ch vptovf.chch amigavptovf.ch

c-sources: gftodvi.c gftype.c gftopk.c mft.c pktogf.c pktype.c vftovp.c \
vptovf.c 
.PHONY: c-sources

install install-exec: all
	$(INSTALL_PROGRAM) $(program) $(bindir)
install-data:

clean:
	- delete \#?.(dvi|pool|p|c) amiga\#?

veryclean: clean
	-delete \#?.(lnk|o)

extraclean: veryclean
	- delete \#?.(aux|bak|bbl|blg|dvi|log|orig|pl|rej)
	- delete \#?.(i|s|tfm|vf|vpl) \#?.\#?(gf|pk)
	- delete CONTENTS.tex mfput.\#? patch\#? texput.\#?
	- delete $(program)
	- delete gftodvi.h gftype.h gftopk.h mft.h pktogf.h pktype.h
	- delete pltotf.h tftopl.h vftovp.h vptovf.h
