HC      = ghc
HC_OPTS =  -package data -package util -fglasgow-exts -fwarn-incomplete-patterns
HC_LD_OPTS =  -package data -package util
SH = sh
ifeq ($(OSTYPE),NetBSD)
HC_LD_OPTS += -L/usr/lib
SH = /usr/pkg/emul/linux/bin/sh
endif

SRCS = $(wildcard *.hs)

# Must have SexpLex.hs SexpPkl.hs StdPkl.hs StdPrims.hs StdPrimsUtil.hs in current dir
# These are all copied from src;  the Makefile should do this if they don't exist,
# but this'll mess up the wildcard stuff


OBJS = $(subst .hs,.o,$(SRCS))
ASDLFILES = SexpLex.hs SexpPkl.hs StdPkl.hs StdPrims.hs StdPrimsUtil.hs


.SUFFIXES : .o .hs .hi .lhs .hc .s

all: runasdl $(ASDLFILES) $(OBJS)


runasdl: src
	cd src; $(MAKE) 

src: ../../Camelot/src/asdl/src
	ln -s $< $@

%ASDLUtil.hs: src/%ASDLUtil.hs
	cp $< $@

%ASDL.hs: src/%ASDL.hs
	cp $< $@

$(ASDLFILES): %.hs: src/%.hs
	cp $< $@

clean:
	rm -rf *.o *.hi *.bak *~ $(EXECT)


# Standard suffix rules
.o.hi:
	@:

.lhs.o:
	$(HC) -c $< $(HC_OPTS)

.hs.o:
	$(HC) -c $< $(HC_OPTS)

depend :
	ghc -M $(HC_OPTS) $(SRCS)

# DO NOT DELETE: Beginning of Haskell dependencies
Assertions_ASDL.o : Assertions_ASDL.hs
Assertions_ASDL.o : ./StdPrims.hi
Assertions_ASDL.o : ./StdPkl.hi
Assertions_ASDL.o : ./SexpPkl.hi
Assertions_ASDLUtil.o : Assertions_ASDLUtil.hs
Assertions_ASDLUtil.o : ./StdPrimsUtil.hi
Assertions_ASDLUtil.o : ./StdPrims.hi
Assertions_ASDLUtil.o : ./Assertions_ASDL.hi
Assertions_ASDLUtil.o : ./StdPkl.hi
Assertions_ASDLUtil.o : ./SexpPkl.hi
Camelot_absyn_ASDL.o : Camelot_absyn_ASDL.hs
Camelot_absyn_ASDL.o : ./Assertions_ASDL.hi
Camelot_absyn_ASDL.o : ./StdPrims.hi
Camelot_absyn_ASDL.o : ./StdPkl.hi
Camelot_absyn_ASDL.o : ./SexpPkl.hi
Camelot_absyn_ASDLUtil.o : Camelot_absyn_ASDLUtil.hs
Camelot_absyn_ASDLUtil.o : ./Assertions_ASDLUtil.hi
Camelot_absyn_ASDLUtil.o : ./StdPrimsUtil.hi
Camelot_absyn_ASDLUtil.o : ./Assertions_ASDL.hi
Camelot_absyn_ASDLUtil.o : ./StdPrims.hi
Camelot_absyn_ASDLUtil.o : ./Camelot_absyn_ASDL.hi
Camelot_absyn_ASDLUtil.o : ./StdPkl.hi
Camelot_absyn_ASDLUtil.o : ./SexpPkl.hi
SexpLex.o : SexpLex.hs
SexpPkl.o : SexpPkl.hs
SexpPkl.o : ./SexpLex.hi
StdPkl.o : StdPkl.hs
StdPrims.o : StdPrims.hs
StdPrimsUtil.o : StdPrimsUtil.hs
StdPrimsUtil.o : ./SexpLex.hi
StdPrimsUtil.o : ./SexpPkl.hi
StdPrimsUtil.o : ./StdPkl.hi
StdPrimsUtil.o : ./StdPrims.hi
StdTypes.o : StdTypes.hs
StdTypes.o : ./StdPrims.hi
StdTypes.o : ./StdPkl.hi
StdTypes.o : ./SexpPkl.hi
t.o : t.hs
# DO NOT DELETE: End of Haskell dependencies
