#----------------------------------------------------------------------------- # Robot Analysis and Visualization Toolkit # Makefile # Tom Moertel # CVS $Id: Makefile,v 1.6 2002/09/06 03:10:04 thor Exp $ #----------------------------------------------------------------------------- VERSION = 0.4 TARGETS = RobotProxy ReadGameLog MergeGames VisualizeGameASCII DOCDIR = docs DISTDIR = ravt-$(VERSION) TARBALL = $(DISTDIR).tar.gz HASKELL := $(wildcard *.hs) GHC_PACKAGE = -package network GHC_OPTS = $(GHC_PACKAGE) GHC = ghc $(GHC_OPTS) STRIP = strip DIST_MANIFEST := README LICENSE Makefile $(HASKELL) #----------------------------------------------------------------------------- # top level targets: all docs dist #----------------------------------------------------------------------------- all : $(TARGETS) dist : $(DISTDIR) $(DISTDIR) : $(DIST_MANIFEST) rsync -avC $(DIST_MANIFEST) $(DISTDIR)/ echo $(DIST_MANIFEST) | tr ' ' \\012 > $(DISTDIR)/MANIFEST touch $(DISTDIR) rm -f $(TARBALL) && tar zcf $(TARBALL) $(DISTDIR) $(DOCDIR) : $(HASKELL) @[ -d $@ ] || mkdir $@ haddock --html -o $(DOCDIR) $(HASKELL) && touch $@ #----------------------------------------------------------------------------- # helpers #----------------------------------------------------------------------------- # build rules for Haskell %.o : %.hs $(GHC) -c $< % : %.o $(GHC) -o $@ --make $@.hs $(STRIP) $@ # maintenance rules clean : rm -f *.o *.hi *.bak $(TARGETS) rm -rf $(DOCDIR) cleandeps : rm -f *.d TAGS : $(HASKELL) hasktags $(HASKELL) .PHONY : all cleandeps clean dist # the following magic rules take care of automatic Haskell dependencies include $(HASKELL:.hs=.d) %.hi : %.o @: %.d : %.hs $(GHC) -M -optdep-f -optdep$@ $^ \ && perl -i -lpe'if (/\.hi$$/) { print; s/\.o :/ :/; s/\.hi$$/.o/ }' $@ # build README.html for Apache indexing README.html : README weblog-filter.pl $^ > $@