
all: relalg

LHS_SRC = RelAlg.lhs Properties.lhs Iterations.lhs \
          Product.lhs Matrix.lhs Atomset.lhs SubAlg.lhs \
          Draw.lhs \
          RATH.lhs RATHexamples.lhs \
          A2.lhs A4.lhs A9.lhs \
          AtomsetExamples.lhs P012.lhs P0123.lhs \
          McKenzie.lhs Maddux.lhs \
          MereoN1.lhs MereoC1.lhs MereoG.lhs Interval.lhs \
          NonUniform.lhs LRNnoc.lhs Compass.lhs Compass3.lhs \
          FiniteMaps.lhs Sets.lhs ExtPrel.lhs \
	  MadduxOrig.lhs \
          Main.lhs

HUGS_LHS_SRC = RelAlgClasses.lhs RelAlgInstances.lhs RATHclasses.lhs \
               HugsMain.lhs

HS_SRC =

SRC = $(LHS_SRC) $(HS_SRC)

PICS = Maddux-mors.eps \
       McKenzieBOT.eps McKenzie-non-concrete.eps \
       Compass3-numbers.eps \
       Antimorph1.eps mat2.eps mat2a.eps \
       Compass_atComp.eps Compass3_atComp.eps \
       mono_not_inj.eps

DOCFILES = $(SRC) RelAlgTools.ltx TechReport-head.eps RelAlgTools.bbl \
              $(PICS) $(HUGS_LHS_SRC) \
              udpstg.tex tgv.sty qednot.sty rmthm.sty

PS = RelAlgTools.ps RelAlgTools-2up.ps

FILES = $(DOCFILES) Makefile README

Kahl-Schmidt-2000a%: RelAlgTools%
	cp $< $@

RelAlgTools.ps: RelAlgTools.dvi
	dvips -o $@ $<

RelAlgTools-2up.ps: RelAlgTools.ps
	psnup -2up $< > $@

RelAlgTools-4up.ps: RelAlgTools.ps
	psnup -4up $< > $@

%.ps.gz: %.ps
	gzip -c -9 $< > $@

%.pdf.gz: %.pdf
	gzip -c -9 $< > $@

%.pdf.zip: %.pdf
	@-rm -f $@
	zip $@ $<

RelAlgTools.pdf: RelAlgTools.ps
	ps2pdf $<

DOCS = Kahl-Schmidt-2000a.ps.gz Kahl-Schmidt-2000a-2up.ps.gz Kahl-Schmidt-2000a.pdf.gz Kahl-Schmidt-2000a.pdf.zip

pushdocs: $(DOCS)
	scp $(DOCS) heraklit:/home/www2/Publications/TR/2000-02

RelAlgTools.dvi: $(DOCFILES) RelAlgTools.bbl
	latex RelAlgTools.ltx

VERSION=1.0

DISTR=RATH-$(VERSION)

$(DISTR).tar.gz: $(FILES)
	@-rm -rf $(DISTR) $(DISTR).tar.gz
	mkdir $(DISTR)
	cp $(FILES) $(DISTR)
	tar cf $(DISTR).tar $(DISTR)
	gzip -9 $(DISTR).tar

push: $(DISTR).tar.gz
	scp $(DISTR).tar.gz heraklit:/home/www2/relmics/tools/RATH

# Standard defs:
OBJS = $(LHS_SRC:.lhs=.o) $(HS_SRC:.hs=.o)
GHC  = ghc-4.08
CC   = gcc
RM   = rm -f

BASEFLAGS = -Wall -fno-warn-missing-signatures -ddump-minimal-imports

COMPFLAGS = -O $(BASEFLAGS)

LINKFLAGS = $(BASEFLAGS)

### Boilerplate GHC stuff


.PHONY: depend

depend :: $(SRC)
	@rm -f .depend
	@touch .depend
	$(GHC) -M -optdep-f -optdep.depend $(COMPFLAGS) $(SRC)
# No dependencies? Remove .depend!
	@if [ -e .depend -a ! -s .depend ] ; then $(RM) .depend ; fi

-include .depend

clean ::
	$(RM) *.o *.hi *.exe

%.hi: %.o
	@:

%.o: %.lhs
	$(RM) $@
	$(GHC) $(COMPFLAGS) -c $<

%.o: %.hs
	$(RM) $@
	$(GHC) $(COMPFLAGS) -c $<

relalg: $(OBJS)
	$(GHC) $(LINKFLAGS) -o $@ $(OBJS)
