# Modified version of makefile for gdf, a modified version of makefile
# for lexyacc example in Moscow ML distribution.  Probably doesn't
# work very well

CAMELOT = ../Camelot/src
ASDL = $(CAMELOT)/asdl

ifeq ($(OSTYPE),NetBSD)
MOSMLTOOLS=camlrunm /usr/pkg/libexec/moscow_ml/
else
MOSMLHOME=/usr/mosml
# this may be wrong 
MOSMLTOOLS=camlrunm $(MOSMLHOME)/tools
endif
MOSMLC=mosmlc -I $(CAMELOT) -I $(ASDL) -c 
MOSMLL=mosmlc -I $(CAMELOT) -I $(ASDL)
MOSMLLEX=mosmllex
MOSMLYACC=mosmlyac

# probably you need to be root to install to these dirs
#BINDIR=/usr/local/bin
#INSTALLDIR=/usr/local/camelot
BINDIR=$(HOME)/bin
INSTALLDIR=$(HOME)/local/camelot

.SUFFIXES : .sml .sig .ui .uo .mlp .lex .c .o

.sig.ui:
	$(MOSMLC) -liberal $<
# -liberal to suppress compliance warning for Parser.sig

.sml.uo:
	$(MOSMLC) $<


UOS = Util.uo DT2Pred.uo Assn2Thm.uo Main.uo

all: do-camelot $(UOS) mkTheory

mkTheory: $(UOS)
	$(MOSMLL) -o $@ Main.sml

do-camelot:
	cd $(ASDL); $(MAKE) all
	cd $(CAMELOT); $(MAKE) Absyn.uo

depend:
	rm -f Makefile.bak
	mv Makefile Makefile.bak
	$(MOSMLTOOLS)/cutdeps < Makefile.bak > Makefile
	$(MOSMLTOOLS)/mosmldep >> Makefile

clean:
	rm -f *.ui *.uo
	rm -f *~
	rm -f mkTheory


### DO NOT DELETE THIS LINE
Assn2Thm.uo: Util.uo 
DT2Pred-along-accross.uo: Util.uo 
Main.uo: Util.uo DT2Pred.uo Assn2Thm.uo 
DT2Pred.uo: Util.uo 
