#
# Make new .tfm files for PostScript fonts, and appropriate
# virtual font files
#
# Sebastian Rahtz January 1992, March 1992, May 1992, October 1992,
# December 1992, March 1993, May 1993, July 1993

# new suffixes
.SUFFIXES: .pfb .metrics .afm .ntfm .ctfm .otfm .dcntfm .dcctfm .dcotfm .stfm .cmq

STANDARD= avantgarde.metrics bookman.metrics courier.metrics \
	helvetica.metrics times.metrics palatino.metrics ncs.metrics \
	symbol.metrics 	chancery.metrics dingbat.metrics

OTHER= 	utopia.metrics \
	mtimes.metrics \
	perpetua.metrics \
	imprint.metrics \
	lucidabright.metrics \
	univers.metrics \
	garamond.metrics \
	lucida.metrics \
	lucsans.metrics \
	bembo.metrics \
	bemboexpert.metrics \
	gill.metrics \
	basker.metrics \
	optima.metrics \
	plantin.metrics 

# for a bsd-like unix
CHMOD=-chmod 644 *.vf *.tfm
LIBS=-lm
CC=gcc
CFLAGS=
OBJSUFFIX=.o
EXESUFFIX=
RM=rm
VFDIR=/usr/local/tex/lib/fonts/vf
TFMDIR=/usr/local/tex/lib/fonts/tfm/ps

# for MSDOS (assumes MSDOS already defined by compiler)
#CC=cl
#LIBS=
#CFLAGS=-AL -DSYSV
#OBJSUFFIX=.obj
#EXESUFFIX=.exe
#CHMOD=
#RM=rm
# where are the VF files to go?
#VFDIR=d:\emtex\vf
# and the TFM files?
#TFMDIR=d:\emtex\tfm

MAP=psfonts.new
AF=afm2tfm
SUPPORT=vpltovpl
VF=vptovf

ST=stfm

# for DC-encoding (T1)
NT=dcntfm # normal
OT=dcotfm # slanted
CT=dcctfm # smallcaps


# for old-style encoding (OT1)
#NT=ntfm
#OT=otfm
#CT=ctfm

# --------------- rules --------------------
# No encoding at all
.afm.stfm:
	$(AF) $*.afm $*.tfm  >>$(MAP)

#
# these three rules generate old virtual fonts.
#

# normal file
.afm.ntfm:
	$(AF) $(AFMPATH)$*.afm -v $*.vpl r$*.tfm 
	vptovf $*.vpl $*.vf $*.tfm

# small caps
.afm.ctfm:
	$(AF) $(AFMPATH)$*.afm -V $*c.vpl r$*.tfm 
	vptovf $*c.vpl $*c.vf $*c.tfm

# slanted
.afm.otfm:
	$(AF) $(AFMPATH)$*.afm -s .167 -v $*o.vpl r$*o.tfm 
	vptovf $*o.vpl $*o.vf $*o.tfm
#---------------------------------------------------------
# these three rules generate DC-style virtual fonts. 
#
.afm.dcntfm:
# normal dc
	$(AF) $(AFMPATH)$*.afm -T ec.enc -v $*q.vpl $*0.tfm >>$(MAP)
	-vpltovpl $*q.vpl $(AFMPATH)$*.afm
	vptovf $*q.vpl $*q.vf $*q.tfm

# small caps dc
.afm.dcctfm:
	$(AF) $(AFMPATH)$*.afm -T ec.enc -V $*cq.vpl $*0.tfm 
	-vpltovpl $*cq.vpl $(AFMPATH)$*.afm
	vptovf $*cq.vpl $*cq.vf $*cq.tfm

# slanted dc
.afm.dcotfm:
	$(AF) $(AFMPATH)$*.afm -T ec.enc -s .167 -v $*oq.vpl $*o0.tfm >>$(MAP) 
	-vpltovpl $*oq.vpl $(AFMPATH)$*.afm
	vptovf $*oq.vpl $*oq.vf $*oq.tfm

#
#----------------------------
# special case of CM Type 1 fonts to DC
.afm.cmq:
	afm2tfm $*.afm -T ec.enc -v $*.vpl $*0.tfm >>psfonts.map
	-vpltovpl $*.vpl $*.afm
	sed -e s/THISFONT/$*/ < missing.tex \
	| sed -e "s/SIZE/`echo $* \
	| sed 's/[A-z]*\([0-9]\)/\1/'` pt/" > extras.tex
#
# we need to run qdtexvpl etc twice, as font doesn't exist on the first run
#
	tex extras
	-qdtexvpl -d.01 extras.dvi extras.vpl
	tex extras
	-qdtexvpl -d.01 extras.dvi extras.vpl
	cat extras.vpl >> $*.vpl
	vptovf $*.vpl $*.vf $*.tfm

#----------------------------

vpltovpl:	vpltovpl.c 
	$(CC) $(CFLAGS) vpltovpl.c -o vpltovpl$(EXE) $(LIBS)

support: $(SUPPORT)


#-------------
# interesting targets
standard: $(STANDARD)

other: $(OTHER)

avantgarde.metrics: \
	 pagko.$(NT) pagd.$(NT) pagdo.$(NT) pagk.$(OT) pagk.$(CT) pagk.$(NT) 

bookman.metrics: \
	 pbkdi.$(NT) pbkl.$(NT) pbkli.$(NT) pbkl.$(OT) pbkl.$(CT) pbkd.$(NT) 

courier.metrics: \
	 pcrb.$(NT) pcrbo.$(NT) pcrro.$(NT) pcrr.$(NT) pcrr.$(CT)

helvetica.metrics: \
	 phvb.$(NT) phvbo.$(NT) phvro.$(NT) phvr.$(CT) phvr.$(NT) 

ncs.metrics: \
	 pncbi.$(NT) pncri.$(NT) pncr.$(NT) pncr.$(CT) pncr.$(OT) pncb.$(NT) 

palatino.metrics: \
	 pplbi.$(NT) pplri.$(NT) pplr.$(NT) pplr.$(OT) pplr.$(CT) pplb.$(NT)

symbol.metrics: \
	 psyr.$(ST) 

times.metrics: \
	 ptmbi.$(NT) ptmri.$(NT) ptmr.$(NT) ptmrc.$(NT) ptmr.$(OT) ptmb.$(NT)

chancery.metrics: \
	 pzcmi.$(NT) 

dingbat.metrics: \
	 pzdr.$(ST) 

garamond.metrics: \
	 pgmbi.$(NT) pgml.$(NT) pgmli.$(NT) pgml.$(CT) pgml.$(OT) pgmb.$(NT)

lucida.metrics: \
	 plcb.$(NT) plcbi.$(NT) plcri.$(NT) plcr.$(CT) plcr.$(OT) plcr.$(NT) 

lucsans.metrics: \
	 plcbs.$(NT) plcbsi.$(NT) plcrsi.$(NT) plcrs.$(CT) plcrs.$(OT) plcrs.$(NT) 

bembo.metrics: \
	 pbeb.$(NT) pbebi.$(NT) pberi.$(NT) pber.$(OT) pber.$(CT) pber.$(NT) 

bemboexpert.metrics: \
	 pbebx.$(ST) pbebix.$(ST) pberix.$(ST) pberx.$(ST)

gill.metrics: \
	 pgsb.$(NT) pgsbi.$(NT) pgsri.$(NT) pgsr.$(OT) pgsr.$(CT) pgsr.$(NT) 

basker.metrics: \
	 pnbbi.$(NT) pnbri.$(NT) pnbr.$(NT) pnbr.$(OT) pnbr.$(CT) pnbb.$(NT)

optima.metrics: \
	 popb.$(NT) popbo.$(NT) popro.$(NT) popr.$(CT) popr.$(OT) popr.$(NT)

utopia.metrics: \
	 putb.$(NT) putbi.$(NT) putri.$(NT) putr.$(CT) putr.$(OT) putr.$(NT)

charter.metrics: 
	bchb.$(NT) bchbi.$(NT) bchr.$(OT) bchr.$(CT) bchri.$(NT) bchr.$(NT)

plantin.metrics: \
	mpir.$(NT) mpiri.$(NT) mpib.$(NT) mpibi.$(NT) mpir.$(CT)

perpetua.metrics: \
	 mppr.$(NT) mppri.$(NT) mppb.$(NT) mppbi.$(NT) mppr.$(CT)

goudy.metrics: \
	 mgyr.$(NT) mgyri.$(NT) mgyb.$(NT) mgyrx.$(ST) mgyr.$(CT)

bodoni.metrics: \
	 mbmr.$(NT) mbmri.$(NT) mbmb.$(NT) mbmbi.$(NT) mbmr.$(CT)

imprint.metrics: \
	 mimr.$(NT) mimri.$(NT) mimb.$(NT) mimbi.$(NT) mimr.$(CT)

mtimes.metrics: \
	mntr.$(NT) mntri.$(NT) mntb.$(NT) mntbi.$(NT) mntrx.$(ST) mntr.$(OT) 

univers.metrics: \
	punr.$(NT) punro.$(NT) punb.$(NT) punbo.$(NT) punr.$(CT) 

lucidabright.metrics:	hlcbst.$(NT) \
	hlcbsto.$(NT) \
	hlcd4.$(NT) \
	hlcdb.$(NT) \
	hlcdb.$(CT) \
	hlcdbi.$(NT) \
	hlcdi4.$(NT) \
	hlcds.$(NT) \
	hlcdsi.$(NT) \
	hlcr4.$(NT) \
	hlcrb.$(NT) \
	hlcrb.$(CT) \
	hlcrbi.$(NT) \
	hlcrbo.$(NT) \
	hlcrf.$(NT) \
	hlcrh.$(NT) \
	hlcri4.$(NT) \
	hlcriw.$(NT) \
	hlcrs.$(CT) \
	hlcrs.$(NT) \
	hlcrs.$(OT) \
	hlcrsi.$(NT) \
	hlcrst.$(NT) \
	hlcrst.$(OT) 

lucidamaths.metrics:	hlcrba.$(NT) \
	hlcrbi.$(NT) \
	hlcrbm.$(NT) \
	hlcrbma.$(NT) \
	hlcrbv.$(NT) \
	hlcrby.$(NT) 

install: 
	$(CHMOD)
	-cp *.vf $(VFDIR)
	-cp *.tfm $(TFMDIR)



clean: 
	-$(RM) *.vpl
	-$(RM) *.vf
	-$(RM) *.tfm
	-$(RM) *.dvi
	-$(RM) *.aux
	-$(RM) *.log
