# The following file and directory specifications may need changing at
# your site:
#
# BINAREA and DVI2LIB are relative to PREFIX
PREFIX=${DESTDIR}/usr/local
# where dvi2ps is installed
BINAREA=${PREFIX}/bin
#
# directory for dvi2ps: where the auxiliary files are installed
DVI2LIB=${PREFIX}/lib/dvi2ps
#
# directory for man and doc
MANAREA=${PREFIX}/man
JMANAREA=${PREFIX}/man/ja
DOCAREA=${PREFIX}/doc/dvi2ps
#
# name of default fontdesc file in your site
FONTDESC=fontdesc
#
DVI2PATH=.
#
# default paper type.
# (Letter, Legal, Tabloid, B4, B5, A5, A4, A3)
PAPERTYPE=A4
#
# default print area.
# If your printer does not have enough memory, change this variable to FALSE.
# (e.g. LaserWriter Plus)
LARGEAREA=TRUE
#
# default page order.
# If your printer's output is face up, change this variable to TRUE.
# (e.g. LaserWriter Plus)
PAGEREVERSE=FALSE
#
# resolution and mode of the printer (dpi)
RESOLUTION=600
MFMODE=canonex
#
# top margin and left margin (unit 1/72 inch)
TOPMARGIN=72
LEFTMARGIN=72
#
# optional font formats: FreeType and VFlib
FONTF = -DFREETYPE -DVFLIB
# FREETYPE -- FTLIB, FTINC
# VFLIB    -- FTLIB, FTINC, VFLIB, VFLIBINC
FTLIB = -L${PREFIX}/lib -lttf
FTINC = -I${PREFIX}/include/freetype
VFLIB = -L${PREFIX}/lib -lVFlib2
VFLIBINC = -I${PREFIX}/include

# kpathsea
KPSELIB = -L${PREFIX}/lib -lkpathsea
KPSEINC = -I${PREFIX}/include -DKPATHSEA

#
CC=gcc
#
CCFLAGS = -g -O -DPOSIX
#CCFLAGS = -O		# SUNOS 4.X etc ...
#CCFLAGS = -O -DPOSIX	# NetBSD FreeBSD (gcc 2.X), Linux
#CCFLAGS = -O -DMSDOS -DPOSIX	# DJGCC (gcc 2.X)
#CCFLAGS = -O -DANSI -DPOSIX -DSYSV -DSYSVIO	# Solaris 2.X (SUNWpro/bin/cc)
#CCFLAGS = -O -DSYSVIO		# Solaris 2.X (/usr/ucb/cc -- not recommended)
#CCFLAGS = -O -DPOSIX -DSYSV	# UXP/DS
#CCFLAGS = -O -DSYSV -DSYSVIO	# SysV systems
#CCFLAGS = -O -bsd	# NeXT
#CCFLAGS = -O -traditional -DPOSIX	# 386bsd (gcc 1.X)

# BSD-type install assumed
INSTALL=install

# You don't have to change the definition variables in the folllowing.
#
FONTLIB = ${VFLIB} ${FTLIB}
CFLAGS = ${CCFLAGS} ${FONTF} ${KPSEINC}
CNFCFLAGS = ${CFLAGS} -DDVI2PATH=\"${DVI2PATH}\" \
	    -DDVI2LIB=\"${DVI2LIB}\" -DFONTDESC=\"//${FONTDESC}\" \
	    -DRESOLUTION=${RESOLUTION} -DMFMODE=\"${MFMODE}\" \
	    -DPAGEREVERSE=${PAGEREVERSE}
DEVCFLAGS = ${CFLAGS} -DPAPERTYPE=${PAPERTYPE} -DLARGEAREA=${LARGEAREA}

FILES = README COPYRIGHT man doc Makefile \
	dvi2.psdoc special.psdoc psifont.psdoc color.psdoc lib-dist tools \
	defs.h xxstdio.h global.h commands.h set.h dconv.h \
	virfont.h pkfont.h gffont.h rastfont.h \
	bifont.h funcfont.h \
	jsub.h emit.h \
	ps.h \
	cscommands.h \
	dvi2.c dviconv.c dfdcom.c fontcom.c set.c rfset.c vfset.c \
	dconv.c run.c mag.c fontdesc.c scanfont.c \
	virfont.c vfdcom.c \
	pkfont.c gffont.c rastfont.c \
	bifont.c type1font.c wlfont.c ftfont.c vflfont.c mmfont.c \
	compfont.c decompfont.c execfont.c \
	funcfont.c \
	kpse.c kanji.c open.c io.c util.c \
	xxstdio.c \
	version.c \
	ps.c psrast.c \
	psbi.c pstfm.c pstype1.c pswl.c psft.c psftt1.c psvfl.c \
	pst1form.c \
	psspecial.c pscolor.c psifont.c psio.c

DVI2OBJS = dvi2.o dviconv.o dfdcom.o fontcom.o set.o rfset.o vfset.o \
	dconv.o run.o mag.o fontdesc.o scanfont.o \
	virfont.o vfdcom.o \
	pkfont.o gffont.o rastfont.o \
	bifont.o type1font.o wlfont.o ftfont.o vflfont.o mmfont.o \
	compfont.o decompfont.o execfont.o \
	funcfont.o \
	kpse.o kanji.o open.o io.o util.o \
	xxstdio.o \
	version.o
PSOBJS = ps.o psrast.o \
	psbi.o pstfm.o pstype1.o pswl.o psft.o psftt1.o psvfl.o \
	pst1form.o \
	psspecial.o pscolor.o psifont.o psio.o

DVI2HEADERS = ${DVI2LIB}/headers
HDR = lib/headers
PSHEADERS = ${HDR}/dvi2.ps ${HDR}/special.ps ${HDR}/psifont.ps ${HDR}/color.ps

all: dvi2ps ${PSHEADERS}

dvi2ps: ${DVI2OBJS} ${PSOBJS}
	${CC} -o $@ ${DVI2OBJS} ${PSOBJS} ${FONTLIB} ${KPSELIB} -lm
dvi2.o: Makefile
	${CC} ${CNFCFLAGS} -c dvi2.c
ps.o: Makefile
	${CC} ${DEVCFLAGS} -c ps.c
# files that depend on ${FONTF}
ftfont.o: Makefile
	${CC} ${CFLAGS} ${FTINC} -c ftfont.c
psft.o: Makefile
	${CC} ${CFLAGS} ${FTINC} -c psft.c
psftt1.o: Makefile
	${CC} ${CFLAGS} ${FTINC} -c psftt1.c
vflfont.o: Makefile
psvfl.o: Makefile
	${CC} ${CFLAGS} ${VFLIBINC} -c psvfl.c

newlib: ${PSHEADERS} lib/dvi2.ps
	cp -pr lib-dist/* lib

install: install-dvi2ps install-header

install-dvi2ps: dvi2ps
	${INSTALL} -c -s -m 755 dvi2ps ${BINAREA}/dvi2ps

install-header: ${PSHEADERS} lib/dvi2.ps
	-mkdir ${DVI2LIB}
	-mkdir ${DVI2HEADERS}
	cp -p ${PSHEADERS} ${DVI2HEADERS}
	cp -p lib/dvi2.ps ${DVI2LIB}
	chmod -R a+r ${DVI2HEADERS} ${DVI2LIB}/dvi2.ps

install-lib: ${PSHEADERS}
	-mkdir ${DVI2LIB}
	cp -pr lib/* ${DVI2LIB}
	chmod -R a+r ${DVI2LIB}

lib/dvi2.ps: ${HDR}/dvi2.ps ${HDR}/special.ps
	cat ${HDR}/dvi2.ps ${HDR}/special.ps > lib/dvi2.ps
${HDR}/dvi2.ps: dvi2.psdoc
	-mkdir lib ${HDR}
	./tools/psstrip < dvi2.psdoc | \
	sed -e s/'##XCOORD##'/${LEFTMARGIN}/ -e s/'##YCOORD##'/${TOPMARGIN}/ \
		> ${HDR}/dvi2.ps
${HDR}/special.ps: special.psdoc
	-mkdir lib ${HDR}
	./tools/psstrip < special.psdoc > ${HDR}/special.ps
${HDR}/psifont.ps: psifont.psdoc
	-mkdir lib ${HDR}
	./tools/psstrip < psifont.psdoc > ${HDR}/psifont.ps
${HDR}/color.ps: color.psdoc
	-mkdir lib ${HDR}
	./tools/psstrip < color.psdoc > ${HDR}/color.ps

install-man:
	${INSTALL} -c -m 444 man/div2ps.1 ${MANAREA}/cat1/dvi2ps.1
	${INSTALL} -c -m 444 man/div2ps.man ${MANAREA}/man1/dvi2ps.1
	${INSTALL} -c -m 444 man/div2ps.1j ${JMANAREA}/cat1/dvi2ps.1
	${INSTALL} -c -m 444 man/div2ps.jman ${JMANAREA}/man1/dvi2ps.1

install-doc:
	-mkdir ${DOCAREA}
	${INSTALL} -c -m 444 doc/* ${DOCAREA}

install-MakePK:
	${INSTALL} -c -m 755 tools/MakePK ${BINAREA}/MakePK

lprdvi:
	sed -e s,'%%BINAREA%%',${BINAREA}, \
	    -e s,'%%FONTDESC%%',${FONTDESC}, \
	    -e s,'%%LEFTMARGIN%%',${LEFTMARGIN}, \
	    -e s,'%%TOPMARGIN%%',${TOPMARGIN}, \
		tools/lprdvi.templ > lprdvi

install-lprdvi: lprdvi
	${INSTALL} -c -m 755 lprdvi ${BINAREA}/lprdvi

clean:
	rm -rf lib
	rm -f dvi2ps lprdvi *.o *.orig core

lint:
	lint *.c

dist:
	tar cf - ${FILES} | gzip > dvi2ps.tar.gz


dvi2.o: dconv.h defs.h
dviconv.o: dconv.h defs.h set.h
dfdcom.o: dconv.h defs.h
fontcom.o: defs.h set.h
set.o: defs.h set.h
rfset.o: defs.h set.h
vfset.o: defs.h set.h
dconv.o : dconv.h
run.o: defs.h
mag.o: defs.h
fontdesc.o: defs.h
scanfont.o: dconv.h defs.h set.h
virfont.o: defs.h set.h virfont.h
vfdcom.o: dconv.h defs.h
pkfont.o: defs.h rastfont.h pkfont.h
gffont.o: defs.h rastfont.h gffont.h
rastfont.o: defs.h rastfont.h
bifont.o: defs.h bifont.h jsub.h
type1font.o: defs.h bifont.h
ftfont.o: defs.h bifont.h
wlfont.o: defs.h bifont.h
vflfont.o: defs.h bifont.h Makefile
mmfont.o: defs.h bifont.h
compfont.o: defs.h set.h funcfont.h jsub.h
decompfont.o: defs.h set.h funcfont.h jsub.h
execfont.o: defs.h
funcfont.o: defs.h funcfont.h
kpse.o: defs.h
kanji.o: defs.h jsub.h
open.o: defs.h
io.o: defs.h
#util.o: defs.h
xxstdio.o: defs.h xxstdio.h

ps.o: defs.h emit.h ps.h
psspecial.o: defs.h emit.h
psrast.o: defs.h emit.h rastfont.h ps.h
psbi.o: defs.h emit.h bifont.h ps.h
pstfm.o: defs.h emit.h bifont.h ps.h
pstype1.o: defs.h
pswl.o: defs.h emit.h bifont.h ps.h
psft.o: defs.h emit.h bifont.h ps.h
psftt1.o: defs.h emit.h
psvfl.o: defs.h emit.h bifont.h ps.h
pst1form.o: defs.h emit.h
psifont.o: defs.h emit.h ps.h
psio.o: defs.h emit.h ps.h
