PKG = $(basename $(wildcard *.cabal)) HSCS := $(patsubst %.hsc,%.hs,$(shell find . -name '*.hsc' -print)) HSCCLEAN = $(patsubst %.hs,%_hsc.[ch],$(HSCS)) all: $(HSCS) .PHONY: all clean build dist doc browse install hsc GHC = ghc $(WALL) WALL = -Wall -Werror LIBS = -lz Setup: Setup.hs $(GHC) --make Setup.hs dist/setup-config: Setup $(PKG).cabal ./Setup configure --user build: dist/setup-config ./Setup build doc: dist/setup-config ./Setup haddock --hyperlink-source dist: dist/setup-config ./Setup sdist INDEXDOC = cd $(HOME)/.cabal/share/doc \ && find . -name '*.haddock' -print \ | sed -e 's/\.\/\(.*\)\/[^\/]*\.haddock/--read-interface=\1,&/' \ | xargs -t haddock --gen-contents --gen-index --odir=. install: build doc ./Setup install $(INDEXDOC) uninstall: dist/setup-config ./Setup unregister --user rm -rf $(HOME)/.cabal/lib/$(PKG)-[0-9]* rm -rf $(HOME)/.cabal/share/doc/$(PKG)-[0-9]* $(INDEXDOC) browse: doc xdg-open dist/doc/html/$(PKG)/index.html clean: rm -rf dist rm -f Setup $(HSCS) $(HSCCLEAN) find . \( -name '*~' -o -name '*.hi' -o -name '*.o' \) -print0 \ | xargs -0 rm -f --