HC = ghc
HC_OPTS = -O2 -fvia-C -optc-O2 -package network -package util -package data -fglasgow-exts

PROGRAM = runme

SRCS = Console.hs Game.hs Geometry.hs Graph.hs Knapsack.hs Main.hs Parse.hs Protocol.hs Statistics.hs Utility.hs
OBJS = $(SRCS:.hs=.o)

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

all: $(PROGRAM)

tkp.tar.gz: README $(PROGRAM) buildme Makefile $(SRCS)
	rm -rf source
	mkdir source
	cp Makefile $(SRCS) source
	tar cvfz $@ README $(PROGRAM) buildme source

$(PROGRAM): $(OBJS)
	rm -f $@
	$(HC) -o $@ $(HC_OPTS) $(OBJS)

buildme:
	cp /dev/null $@

install: $(PROGRAM)
	install -d $(DESTDIR)/usr/bin
	install -c -m755 $(PROGRAM) $(DESTDIR)/usr/bin

clean:
	rm -f $(PROGRAM) $(OBJS)

.o.hi:
	@:

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

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

Makefile depend: $(SRCS)
	$(HC) -M $(HC_OPTS) $(SRCS)
	rm -f Makefile.bak

# DO NOT DELETE: Beginning of Haskell dependencies
Console.o : Console.hs
Console.o : Game.hi
Game.o : Game.hs
Game.o : Utility.hi
Geometry.o : Geometry.hs
Geometry.o : Utility.hi
Geometry.o : Graph.hi
Geometry.o : Game.hi
Graph.o : Graph.hs
Knapsack.o : Knapsack.hs
Knapsack.o : Utility.hi
Knapsack.o : Statistics.hi
Knapsack.o : Game.hi
Main.o : Main.hs
Main.o : Geometry.hi
Main.o : Parse.hi
Main.o : Utility.hi
Main.o : Console.hi
Main.o : Protocol.hi
Main.o : Knapsack.hi
Main.o : Game.hi
Parse.o : Parse.hs
Protocol.o : Protocol.hs
Protocol.o : Parse.hi
Protocol.o : Game.hi
Statistics.o : Statistics.hs
Statistics.o : Game.hi
Utility.o : Utility.hs
# DO NOT DELETE: End of Haskell dependencies
