# $Header: Makefile,v 0.0 88/06/22 05:21:37 on Rel $
# Edit the four lines below to suit your system conventions
#BIN = /home/kaarne-a/jau/bin
BIN = /usr/local/bin
#BIN = /csc/ukkonen/bin
#
#LIB = /home/kaarne-a/jau/lib
LIB = /usr/local/lib/pps
#LIB = /csc/ukkonen/lib/pps
#
CHAP = 1
#MAN = /home/kaarne-a/jau/text/man
MAN = /usr/local/man/man$(CHAP)
#MAN = /csc/ukkonen/man
#
LANG = Ada ada ansic awk c c++ csh disco elisp euclid lisp mail modula2 occam pascal ps scheme sh text scand
AUX = prc
PRO = *.pro
FRONT = pps slide
MANS = pps.$(CHAP) slide.$(CHAP)
SOURCES = READ_ME *.man Makefile *.h *.c *.l *.sh *.pro fonts
AR = shar
ARFLG = -a

#CC	= cc
#CFLAGS	= -g -pcc

CC	= gcc
CFLAGS	= -g -O -fpcc-struct-return -funsigned-char
LEX	= flex
LFLAGS	= -8
LEXLIB	= -lfl

.SUFFIXES: .$(CHAP) .man

.man.$(CHAP):
	echo .ds lb $(LIB) > $@
	echo $(LANG) | sed 's/ /,/g;s/^/.ds lg /' >> $@ 
	cat $*.man >> $@


all: $(LANG) $(AUX) $(FRONT) $(MANS)


Ada: Ada.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

ada: ada.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

ansic: ansic.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

awk: awk.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

c: c.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

c++: c++.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

csh: csh.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

disco: disco.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

elisp: elisp.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

euclid: euclid.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

lisp: lisp.o lind.o
	@echo warning: $@ has no built-ins -- see comment.
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

mail: mail.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

modula2: modula2.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

pascal:	pascal.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

ps: ps.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

occam: occam.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

scheme: scheme.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

sh: sh.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

text: text.o lind.o
	$(CC) $(CFLAGS) -o $@ $@.o lind.o $(LEXLIB)
	echo strip $@

scand: text.o scand.o
	$(CC) $(CFLAGS) -o $@ text.o scand.o $(LEXLIB)
	echo strip $@

ada.o ansic.o awk.o c++.o c.o csh.o disco.o elisp.o euclid.o lisp.o mail.o modula2.o occam.o pascal.o ps.o scheme.o sh.o: pps.h


pps: pps.sh
	sed 's|^lib=.*|lib=$(LIB)|' pps.sh > $@
	chmod 755 $@

slide: slide.sh
	sed 's|^lib=.*|lib=$(LIB)|' slide.sh > $@
	chmod 755 $@


prc: prc.c
	$(CC) $(CFLAGS) -o $@ prc.c


install: $(LIB) $(BIN) $(MAN)

$(LIB): $(LANG) $(AUX) $(PRO) fonts
	-(cd $@; rm -f $(PRO) fonts) || mkdir $@
	cp $(LANG) $(AUX) $(PRO) fonts $@

$(BIN): $(FRONT)
	cp $(FRONT) $@

$(MAN): $(MANS)
	cp $(MANS) $@
	man pps > /dev/null
	man slide > /dev/null


pps.$(AR): $(SOURCES)
	$(AR) $(ARFLG) $(SOURCES) > $@

clean:
	rm -f $(FRONT) $(LANG) $(AUX) $(MANS) *.o pps.$(AR)

