# Makefile for gf

# Edit MOSMLHOME to suit your installation; it should specify the
# absolute path to the directory in which Moscow ML is installed:
#MOSMLHOME=/usr/local/mosml

include ../../../Makefile.setup
MOSMLHOME ?= $(mosmldir)

# ---------- You shouldn't need to edit below this line ------------

SMLJVMDIR=../../../sml-jvm
GDFDIR=../../gdf/src


MOSMLRUN=$(MOSMLHOME)/bin/camlrunm
MOSMLTOOLS=$(MOSMLHOME)/tools
MOSMLCUT=$(MOSMLRUN) $(MOSMLTOOLS)/cutdeps 
MOSMLDEP=$(MOSMLRUN) $(MOSMLTOOLS)/mosmldep
MOSMLL=$(MOSMLHOME)/bin/mosmlc -I . -I $(SMLJVMDIR)
MOSMLC=$(MOSMLL) -c
SHELL=/bin/sh

# Source files from gdf directory
gdfsrcs= GrailUtils.sml GrailAbsyn.sml ToyGrailAbsyn.sml Metadata.sml ToyClassTable.sml Stardate.sml
gdfuos  = $(gdfsrcs:%.sml%.uo)

uos = gf.uo $(gdfuos)

.PHONY :  all depend clean standalone

gf :  smljvm gf.sml $(uos)
	$(MOSMLL) -o gf gf.sml

standalone : smljvm $(uos) 
	 $(MOSMLL) -o gf gf.sml

smljvm:
	cd $(SMLJVMDIR); $(MAKE)

%.ui :  %.sig
	$(MOSMLC) $(COMPFLAGS) $<

%.uo :  %.sml
	$(MOSMLC) $(COMPFLAGS) $<

$(gdfsrcs): %: $(GDFDIR)/%
	ln -s $< $@

depend: $(gdfsrcs)
	/bin/rm -f Makefile.bak
	mv Makefile Makefile.bak
	$(MOSMLCUT) < Makefile.bak > Makefile
	$(MOSMLDEP) >> Makefile

clean:
	/bin/rm -f Makefile.bak gf $(wildcard *.ui *.uo) $(gdfsrcs)

### DO NOT DELETE THIS LINE
ToyGrailAbsyn.uo: GrailUtils.uo Stardate.uo GrailAbsyn.uo ToyClassTable.uo 
CertGenC.uo: ToyGrailAbsyn.uo
gf.uo: GrailAbsyn.uo ToyGrailAbsyn.uo Metadata.uo CertGenC.uo 
