.SUFFIXES: .o .c .pfb .hex .chr .ps .mf

XE = # .ttp
PROGS = ps2mf${XE} pfb2pfa${XE} pfa2chr${XE} chr2ps${XE}

default: ${PROGS}

# Choose your C compiler
CC = gcc
# Choose the flags for compilation
# -O optimizes. Do not use if your optimizer is broken.
# Choose -DHAVE_NO_ALLOCA if your C compiler doesn't know about "alloca".
# Choose -DHAVE_NO_STRSTR if your C compiler doesn't know about "strstr".
# If you're on a USG system, choose -DUSG.
CFLAGS = -DUSG -O2
LDFLAGS = -s
# Add your libs. On UN*X "libm.a" is needed. On Atari with GCC this is "pml".
LIBS = -lm

.c.o: $< $*.h ps2mf.h defines.h
	${CC} ${CFLAGS} -c $<

ALLOCOBJS = alloca.o xmalloc.o
STRSTROBJ = strstr.o
# Choose EXTRAOBJS according to HAVE_NO_{ALLOCA|STRSTR}
# e.g. EXTRAOBJS = ${ALLOCOBJS}
EXTRAOBJS =
POSTOBJS = getopt.o ps2mf.o psparse.o ps2mfutl.o afmparse.o mymalloc.o myopen.o
EXTRAPREOBJS = mymalloc.o myopen.o myerror.o

ps2mf${XE}: ${POSTOBJS} ${EXTRAOBJS} defines.h
	${CC} ${LDFLAGS} -o ps2mf${XE} ${POSTOBJS} ${EXTRAOBJS} ${LIBS}

pfb2pfa${XE}: pfb2pfa.o ${EXTRAPREOBJS} defines.h
	${CC} ${LDFLAGS} -o pfb2pfa${XE} pfb2pfa.o ${EXTRAPREOBJS}

pfa2chr${XE}: pfa2chr.o ${EXTRAPREOBJS} defines.h
	${CC} ${LDFLAGS} -o pfa2chr${XE} pfa2chr.o ${EXTRAPREOBJS}

chr2ps${XE}: chr2ps.o ${EXTRAPREOBJS} defines.h
	${CC} ${LDFLAGS} -o chr2ps${XE} chr2ps.o ${EXTRAPREOBJS}

.pfb.mf: $*.pfb $*.afm
	pfb2pfa $*.pfb $*.pfa
	pfa2chr $*.pfa $*.chr
	chr2ps $*.chr $*.ps
	ps2mf $* -c cm

clean:
	touch dummy.o; rm -f *.o %* core 
  
DISTLIST = afmparse.[ch] cm.cfg dc.cfg mac.cfg Makefile psparse.[ch] \
	getopt.[ch] ps2mf.[ch] ps2mfutl.[ch] README ps2mfbas.mf \
	myerror.[ch] mymalloc.[ch] myopen.[ch] Contents \
	pfb2pfa.[ch] pfa2chr.[ch] chr2ps.[ch] defines.h \
	alloca.c alloca.h xmalloc.c strstr.c COPYING TODO \
	garmnd.pfb garmnd.afm baskvl.pfb baskvl.afm typeprot.tex

dist.zip: ${DISTLIST}
	rm -f /tmp/dist.zip
	zip /tmp/dist ${DISTLIST}
	mv /tmp/dist.zip .

dist.zoo: ${DISTLIST}
	rm -f /tmp/dist.zoo
	zoo -a /tmp/dist ${DISTLIST}
	mv /tmp/dist.zoo .

dist.tar.gz: ${DISTLIST}
	rm -f /tmp/dist.tar.gz
	tar -vcf -  ${DISTLIST} | gzip > /tmp/dist.tar.gz
	mv /tmp/dist.tar.gz .
