#----------------------------------------------------------------------- # Top Library #----------------------------------------------------------------------- .PHONY: clean cobalt default: topsolver all: topsolver cobalt #----------------------------------------------------------------------- # Compilers and Tools #----------------------------------------------------------------------- AG = ag HC = ghc HADDOCK = haddock HC_OPTS = -static -fglasgow-exts -Wall DOC_DIR = ../doc BIN_DIR = ../bin #----------------------------------------------------------------------- # General targets #----------------------------------------------------------------------- doc: # make haddock documentation $(HADDOCK) --title="The Top Library" --prologue=$(DOC_DIR)/prologue --html -o $(DOC_DIR) \ Top/*.hs Top/*/*.hs Top/*/*/*.hs ignore: svn propset -R svn:ignore -F ../svn-ignore .. clean: #remove .hi and .o files and documentation $(RM) `find . -name "*.o" -print` $(RM) `find . -name "*.hi" -print` $(RM) $(DOC_DIR)/*.html $(RM) $(DOC_DIR)/*.css $(RM) $(DOC_DIR)/*.gif $(RM) $(BIN_DIR)/topsolver #----------------------------------------------------------------------- # Constraint Solver #----------------------------------------------------------------------- topsolver: # build the Top constraint solver $(HC) $(HC_OPTS) --make -o $(BIN_DIR)/topsolver TopSolver.hs topsolver-prof: # build the Top constraint solver with profiling $(HC) $(HC_OPTS) --make -package text -prof -auto-all -o $(BIN_DIR)/topsolver TopSolver.hs #----------------------------------------------------------------------- # Cobalt #----------------------------------------------------------------------- # Cobalt's AG sources COBALT_AG = \ Top/Cobalt/AGSyntax.hs Top/Cobalt/Syntax.hs Top/Cobalt/Generator.hs Top/Cobalt/AGSyntax.hs : \ Top/Cobalt/AGSyntax.ag #ag AGSyntax cd Top/Cobalt; $(AG) -dm --module=Top.Cobalt.AGSyntax AGSyntax.ag; cd ../.. Top/Cobalt/Syntax.hs : \ Top/Cobalt/Syntax.ag Top/Cobalt/AGSyntax.hs Top/Cobalt/ShowAG.hs #ag Syntax cd Top/Cobalt; $(AG) -dm --module=Top.Cobalt.Syntax Syntax.ag; cd ../.. Top/Cobalt/Generator.hs : \ Top/Cobalt/Generator.ag \ Top/Cobalt/AGSyntax.ag Top/Cobalt/Syntax.ag Top/Cobalt/Analyze.ag \ Top/Cobalt/InferTypes.ag Top/Cobalt/CodeGen.ag Top/Cobalt/Escape.hs \ Top/Cobalt/ParseRules.hs Top/Cobalt/ShowAG.hs Top/Cobalt/AGSyntax.hs \ Top/Cobalt/Syntax.hs Top/Types.hs #ag Generator cd Top/Cobalt; $(AG) -cfs --self --module=Top.Cobalt.Generator Generator.ag; cd ../.. cobalt: $(COBALT_AG) ag : $(COBALT_AG)