From 6763d10d661f388d4029a3631c2bccdadc667915 Mon Sep 17 00:00:00 2001 From: PHO Date: Wed, 16 Nov 2011 15:24:47 +0900 Subject: [PATCH] better options for haddock and hlint; new target 'reconfigure'; ditz is now optional --- cabal-package.mk | 54 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/cabal-package.mk b/cabal-package.mk index cc534f4..bec1d14 100644 --- a/cabal-package.mk +++ b/cabal-package.mk @@ -18,7 +18,11 @@ HPC ?= hpc DITZ ?= ditz CONFIGURE_ARGS ?= --disable-optimization -HLINT_OPTS ?= --cross --report=dist/report.html +HADDOCK_OPTS ?= --hyperlink-source +HLINT_OPTS ?= \ + --hint=Default --hint=Dollar --hint=Generalise \ + --cross \ + --report=dist/report.html SETUP_FILE := $(wildcard Setup.*hs) CABAL_FILE := $(wildcard *.cabal) @@ -74,6 +78,10 @@ $(BUILDINFO_FILE): $(BUILDINFO_IN_FILE) configure Setup: $(SETUP_FILE) $(GHC) --make Setup +reconfigure: + rm -f dist/setup-config + $(MAKE) setup-config + clean: clean-hook $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo *.tix .hpc $(FIND) . -name '*~' -exec rm -f {} \; @@ -81,7 +89,7 @@ clean: clean-hook clean-hook: doc: setup-config - ./Setup haddock + ./Setup haddock $(HADDOCK_OPTS) install: build $(SUDO) ./Setup install @@ -97,16 +105,7 @@ test: build $(HPC) markup --destdir="dist/hpc" --fun-entry-count "merged.tix"; \ fi -ditz: - $(DITZ) html dist/ditz - -ChangeLog: - rm -f $@ - $(DITZ) releases | awk '{print $$1}' | sort --reverse | while read i; do \ - $(DITZ) changelog $$i >> $@; \ - done - head $@ - +# -- Find FIXME Tags ---------------------------------------------------------- fixme: @$(FIND) . \ \( -name 'dist' -or -name '.git' -or -name '_darcs' \) -prune \ @@ -115,11 +114,29 @@ fixme: -name '*.hs' -or -name '*.lhs' -or \ -name '*.hsc' -or -name '*.cabal' \) \ -exec egrep 'FIXME|THINKME|TODO' {} \+ \ - || echo 'No FIXME or THINKME found.' + || echo 'No FIXME, THINKME, nor TODO found.' +# -- HLint -------------------------------------------------------------------- +HLINT_TARGETS ?= $$(find -E . -type d -name dist -prune -o -regex '.*\.(hsc?|lhs)' -print) lint: - $(HLINT) . $(HLINT_OPTS) + $(HLINT) $(HLINT_TARGETS) $(HLINT_OPTS) + +# -- Ditz the Distributed Issue Tracker --------------------------------------- +ifeq (,$(wildcard .ditz-config)) +ditz: +else +ditz: + $(DITZ) html dist/ditz +ChangeLog: + rm -f $@ + $(DITZ) releases | awk '{print $$1}' | sort --reverse | while read i; do \ + $(DITZ) changelog $$i >> $@; \ + done + head $@ +endif + +# -- Pushing to remote hosts -------------------------------------------------- push: push-repo push-ditz push-doc push-repo: @@ -130,9 +147,11 @@ push-repo: fi push-ditz: ditz - rsync -av --delete \ - dist/ditz/ \ - www@nem.cielonegro.org:static.cielonegro.org/htdocs/ditz/$(PKG_NAME) + if [ -d "dist/ditz" ]; then \ + rsync -av --delete \ + dist/ditz/ \ + www@nem.cielonegro.org:static.cielonegro.org/htdocs/ditz/$(PKG_NAME); \ + fi push-doc: doc if [ -d "dist/doc" ]; then \ @@ -141,6 +160,7 @@ push-doc: doc www@nem.cielonegro.org:static.cielonegro.org/htdocs/doc/$(PKG_NAME); \ fi +# -- Phony Targets ------------------------------------------------------------ .PHONY: build build-hook setup-config setup-config-hook run clean clean-hook \ install doc sdist test lint push push-repo push-ditz push-doc \ ChangeLog -- 2.40.0