DITZ ?= ditz
CONFIGURE_ARGS ?= --disable-optimization
+HLINT_OPTS ?= --cross --report=dist/report.html
SETUP_FILE := $(wildcard Setup.*hs)
CABAL_FILE := $(wildcard *.cabal)
+PKG_NAME := $(CABAL_FILE:.cabal=)
ifeq ($(shell ls configure.ac 2>/dev/null),configure.ac)
AUTOCONF_AC_FILE := configure.ac
ditz:
$(DITZ) html dist/ditz
+ChangeLog:
+ rm -f $@
+ $(DITZ) releases | awk '{print $$1}' | sort --reverse | while read i; do \
+ $(DITZ) changelog $$i >> $@; \
+ done
+ head $@
+
fixme:
@$(FIND) . \
\( -name 'dist' -or -name '.git' -or -name '_darcs' \) -prune \
\( -name '*.c' -or -name '*.h' -or \
-name '*.hs' -or -name '*.lhs' -or \
-name '*.hsc' -or -name '*.cabal' \) \
- -exec egrep -i '(fixme|thinkme)' {} \+ \
+ -exec egrep 'FIXME|THINKME|TODO' {} \+ \
|| echo 'No FIXME or THINKME found.'
lint:
- $(HLINT) . --report
-# $(HLINT) . --report \
-# --ignore="Use string literal" \
-# --ignore="Use concatMap"
+ $(HLINT) . $(HLINT_OPTS)
+
+push: push-repo push-ditz push-doc
+
+push-repo:
+ if [ -d "_darcs" ]; then \
+ darcs push; \
+ elif [ -d ".git" ]; then \
+ git push --all && git push --tags; \
+ fi
+
+push-ditz: ditz
+ rsync -av --delete \
+ dist/ditz/ \
+ www@nem.cielonegro.org:static.cielonegro.org/htdocs/ditz/$(PKG_NAME)
+
+push-doc: doc
+ if [ -d "dist/doc" ]; then \
+ rsync -av --delete \
+ dist/doc/html/$(PKG_NAME)/ \
+ www@nem.cielonegro.org:static.cielonegro.org/htdocs/doc/$(PKG_NAME); \
+ fi
-.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test lint
+.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