# Makefile for the DVI utility programs.

SHELL = rx
srcdir = .
VPATH = .

# The missing `configure' mechanism requires this to be introduced 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 = dvicopy dvitype

CC = sc
CFLAGS = math=ieee data=far code=far 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: dvitype

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

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

c-sources: dvicopy.c dvitype.c
.PHONY: c-sources

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

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

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.\#? advi\#?
	- delete $(program)
