# ----------------------------------------------------------------------
# $Id: Makefile,v 1.14 2000/01/23 03:30:15 satnam Exp $
# ---------------------------------------------------------------------- 

# Makefile for Lava.

#DESIGN=addtr
DESIGN=adder_tree2
#DESIGN=adder8
#DESIGN=delayskew
#DESIGN=silly
#DESIGN=igloo



default:	motkcm

instkcm:	lava
		cp lava ${HOME}/apache/htdocs/kcm/${architecture}/motkcm

proof:		
		argus -v -seq -clock c -latency  3 kcm_2047u_12u -latency 3 kcm_behav           

proof2:		
		argus -v -seq -clock c -latency  1 kcm_2047u_4u -latency 1 kcm_2047u_4u_behav

proof3:		
		argus -v -seq -clock c -latency  2 kcm_2047u_6u -latency 2 kcm_2047u_6u_behav

comb:		
		argus -v -comb kcm_2047u_12u_comb kcm_behav_comb           

SRCS =	AdderTree.hs \
	BitOps.hs \
	BitVec.hs \
	Combinators.hs \
	EDIF.hs \
	Gates.hs \
	HexUtils.hs \
	KCMUtils.hs \
	Lava.hs \
	LavaClasses.hs \
	LUTROM.hs \
	LUTs.hs \
	MotorolaKCM.hs \
	Netlist.hs \
	Registers.hs \
	RegressionTests.hs \
	RippleAdder.hs \
	RPM.hs \
	Simulation.hs \
	SimulationTests.hs \
	SplitMultiplier.hs \
	Symbolic.hs \
	TreeLayoutExperiments.hs \
	Testing.hs \
	TestSplitMultiplier.hs \
	Tile.hs \
	TypeExpr.hs \
	Utils.hs \
	Verilog.hs \
	VHDL.hs \
	Virtex.hs \
	VirtexGates.hs \
	VirtexLib.hs \
	VirtexNetlist.hs



OBJS = ${SRCS:.hs=.o}

	
HC      = ghc $(PROF) -H30M
HC_OPTS =

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



lava :	$(OBJS)
	$(HC) -fglasgow-exts -o $@ $(HC_OPTS) $(OBJS)

motkcm:	$(OBJS) MotKCMMain.o
	$(HC) -fglasgow-exts -o $@ $(HC_OPTS) $(OBJS) MotKCMMain.o


kcm:	$(OBJS) KCMMain.o
	$(HC) -fglasgow-exts -o $@ $(HC_OPTS) $(OBJS) KCMMain.o

synproj:	SynProj.hs
		ghc -o synproj SynProj.hs

# Standard suffix rules
.o.hi:
	@:

.hs.o:
	$(HC) -fglasgow-exts -c $< $(HC_OPTS)
                
depend:
	ghc -fglasgow-exts -M $(SRCS)
	

ghc:	
	mv GlaExts.hs DoNotUseGlaExts.hs
	make lava

# DO NOT DELETE: Beginning of Haskell dependencies
AdderTree.o : AdderTree.hs
AdderTree.o : ./Lava.hi
AdderTree.o : ./Virtex.hi
AdderTree.o : ./RippleAdder.hi
AdderTree.o : ./Registers.hi
BitOps.o : BitOps.hs
BitOps.o : ./Utils.hi
BitVec.o : BitVec.hs
Combinators.o : Combinators.hs
Combinators.o : ./LavaClasses.hi
Combinators.o : ./Tile.hi
EDIF.o : EDIF.hs
EDIF.o : ./Lava.hi
EDIF.o : ./VirtexNetlist.hi
EDIF.o : ./HexUtils.hi
EDIF.o : ./RPM.hi
Gates.o : Gates.hs
Gates.o : ./TypeExpr.hi
HexUtils.o : HexUtils.hs
HexUtils.o : ./BitOps.hi
HexUtils.o : ./Utils.hi
KCMUtils.o : KCMUtils.hs
KCMUtils.o : ./Lava.hi
KCMUtils.o : ./Virtex.hi
KCMUtils.o : ./VirtexLib.hi
Lava.o : Lava.hs
Lava.o : ./LavaClasses.hi
Lava.o : ./Combinators.hi
Lava.o : ./Netlist.hi
Lava.o : ./TypeExpr.hi
Lava.o : ./Gates.hi
Lava.o : ./Tile.hi
Lava.o : ./VirtexNetlist.hi
Lava.o : ./Symbolic.hi
Lava.o : ./BitOps.hi
Lava.o : ./Utils.hi
Lava.o : ./Testing.hi
Lava.o : ./Tile.hi
LavaClasses.o : LavaClasses.hs
LavaClasses.o : ./Tile.hi
LavaClasses.o : ./BitOps.hi
LUTROM.o : LUTROM.hs
LUTROM.o : ./Lava.hi
LUTROM.o : ./Virtex.hi
LUTROM.o : ./BitOps.hi
LUTs.o : LUTs.hs
MotorolaKCM.o : MotorolaKCM.hs
MotorolaKCM.o : ./Lava.hi
MotorolaKCM.o : ./Virtex.hi
MotorolaKCM.o : ./VirtexLib.hi
MotorolaKCM.o : ./LUTROM.hi
MotorolaKCM.o : ./KCMUtils.hi
MotorolaKCM.o : ./SplitMultiplier.hi
Netlist.o : Netlist.hs
Netlist.o : ./Gates.hi
Netlist.o : ./TypeExpr.hi
Netlist.o : ./Tile.hi
Netlist.o : ./Utils.hi
Registers.o : Registers.hs
Registers.o : ./Lava.hi
Registers.o : ./Virtex.hi
RegressionTests.o : RegressionTests.hs
RegressionTests.o : ./Lava.hi
RegressionTests.o : ./LUTROM.hi
RegressionTests.o : ./TestSplitMultiplier.hi
RippleAdder.o : RippleAdder.hs
RippleAdder.o : ./Lava.hi
RippleAdder.o : ./Virtex.hi
RippleAdder.o : ./Registers.hi
RippleAdder.o : ./Lava.hi
RPM.o : RPM.hs
Simulation.o : Simulation.hs
Simulation.o : ./Lava.hi
Simulation.o : ./VirtexGates.hi
SimulationTests.o : SimulationTests.hs
SimulationTests.o : ./Lava.hi
SimulationTests.o : ./Virtex.hi
SimulationTests.o : ./VirtexLib.hi
SplitMultiplier.o : SplitMultiplier.hs
SplitMultiplier.o : ./Lava.hi
SplitMultiplier.o : ./Virtex.hi
SplitMultiplier.o : ./VirtexLib.hi
SplitMultiplier.o : ./KCMUtils.hi
Symbolic.o : Symbolic.hs
Symbolic.o : ./LUTs.hi
Symbolic.o : ./LavaClasses.hi
Symbolic.o : ./BitVec.hi
TreeLayoutExperiments.o : TreeLayoutExperiments.hs
TreeLayoutExperiments.o : ./Lava.hi
TreeLayoutExperiments.o : ./Virtex.hi
TreeLayoutExperiments.o : ./VirtexLib.hi
TreeLayoutExperiments.o : ./AdderTree.hi
Testing.o : Testing.hs
TestSplitMultiplier.o : TestSplitMultiplier.hs
TestSplitMultiplier.o : ./Lava.hi
TestSplitMultiplier.o : ./Virtex.hi
TestSplitMultiplier.o : ./VirtexLib.hi
TestSplitMultiplier.o : ./SplitMultiplier.hi
TestSplitMultiplier.o : ./MotorolaKCM.hi
TestSplitMultiplier.o : ./KCMUtils.hi
TestSplitMultiplier.o : ./Testing.hi
Tile.o : Tile.hs
Tile.o : ./Gates.hi
Tile.o : ./TypeExpr.hi
Tile.o : ./Utils.hi
Tile.o : ./Utils.hi
TypeExpr.o : TypeExpr.hs
Utils.o : Utils.hs
Verilog.o : Verilog.hs
Verilog.o : ./Lava.hi
Verilog.o : ./VirtexNetlist.hi
VHDL.o : VHDL.hs
VHDL.o : ./Lava.hi
VHDL.o : ./VirtexNetlist.hi
VHDL.o : ./EDIF.hi
VHDL.o : ./Verilog.hi
Virtex.o : Virtex.hs
Virtex.o : ./Lava.hi
Virtex.o : ./VirtexGates.hi
Virtex.o : ./VirtexNetlist.hi
Virtex.o : ./Simulation.hi
Virtex.o : ./VHDL.hi
Virtex.o : ./Verilog.hi
VirtexGates.o : VirtexGates.hs
VirtexGates.o : ./Lava.hi
VirtexLib.o : VirtexLib.hs
VirtexLib.o : ./Lava.hi
VirtexLib.o : ./Virtex.hi
VirtexLib.o : ./RippleAdder.hi
VirtexLib.o : ./AdderTree.hi
VirtexLib.o : ./LUTROM.hi
VirtexLib.o : ./Registers.hi
VirtexNetlist.o : VirtexNetlist.hs
VirtexNetlist.o : ./Netlist.hi
VirtexNetlist.o : ./Gates.hi
VirtexNetlist.o : ./TypeExpr.hi
VirtexNetlist.o : ./Tile.hi
VirtexNetlist.o : ./LUTs.hi
VirtexNetlist.o : ./LavaClasses.hi
VirtexNetlist.o : ./Utils.hi
VirtexNetlist.o : ./BitVec.hi
# DO NOT DELETE: End of Haskell dependencies
