X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=blackboard-dns.git;a=blobdiff_plain;f=cabal-package.mk;h=ca291ff93111587ba2f4d30245a97c94713e84a3;hp=a37d18e3972d214a5d6f1e7084a2279d76f4d961;hb=31a86ac8d9ddfd53832bf219a8f4b8eb18f14582;hpb=f46e263327d20c700179b2d3a5896be82d3b4aca diff --git a/cabal-package.mk b/cabal-package.mk index a37d18e..ca291ff 100644 --- a/cabal-package.mk +++ b/cabal-package.mk @@ -8,19 +8,40 @@ # RUN_COMMAND :: command to be run for "make run" # -GHC ?= ghc -FIND ?= find -RM_RF ?= rm -rf -SUDO ?= sudo +GHC ?= ghc +FIND ?= find +RM_RF ?= rm -rf +SUDO ?= sudo +AUTOCONF ?= autoconf -SETUP_FILE ?= $(wildcard Setup.*hs) -CABAL_FILE ?= $(wildcard *.cabal) +CONFIGURE_ARGS ?= --disable-optimization -CONFIGURE_ARGS := --disable-optimization +SETUP_FILE := $(wildcard Setup.*hs) +CABAL_FILE := $(wildcard *.cabal) -build: dist/setup-config Setup +ifeq ($(shell ls configure.ac 2>/dev/null),configure.ac) + AUTOCONF_AC_FILE := configure.ac + AUTOCONF_FILE := configure +else + ifeq ($(shell ls configure.in 2>/dev/null),configure.in) + AUTOCONF_AC_FILE := configure.in + AUTOCONF_FILE := configure + else + AUTOCONF_AC_FILE := + AUTOCONF_FILE := + endif +endif + +BUILDINFO_IN_FILE := $(wildcard *.buildinfo.in) +BUILDINFO_FILE := $(BUILDINFO_IN_FILE:.in=) + +all: build + +build: setup-config build-hook ./Setup build +build-hook: + ifeq ($(RUN_COMMAND),) run: @echo "cabal-package.mk: No command to run." @@ -31,26 +52,38 @@ run: build $(RUN_COMMAND) endif -dist/setup-config: $(CABAL_FILE) Setup +setup-config: dist/setup-config setup-config-hook $(BUILDINFO_FILE) + +setup-config-hook: + +dist/setup-config: $(CABAL_FILE) Setup $(AUTOCONF_FILE) + ./Setup configure $(CONFIGURE_ARGS) + +$(AUTOCONF_FILE): $(AUTOCONF_AC_FILE) + $(AUTOCONF) + +$(BUILDINFO_FILE): $(BUILDINFO_IN_FILE) configure ./Setup configure $(CONFIGURE_ARGS) Setup: $(SETUP_FILE) $(GHC) --make Setup -clean: +clean: clean-hook $(RM_RF) dist Setup *.o *.hi .setup-config *.buildinfo $(FIND) . -name '*~' -exec rm -f {} \; -doc: dist/setup-config Setup +clean-hook: + +doc: setup-config ./Setup haddock install: build $(SUDO) ./Setup install -sdist: Setup +sdist: setup-config ./Setup sdist test: build ./Setup test -.PHONY: build run clean install doc sdist test +.PHONY: build build-hook setup-config setup-config-hook run clean clean-hook install doc sdist test