]> gitweb @ CieloNegro.org - cabal-shared-makefile.git/commitdiff
New configuration variable: USE_CABAL_COMMAND master
authorPHO <pho@cielonegro.org>
Fri, 7 Aug 2015 07:38:15 +0000 (16:38 +0900)
committerPHO <pho@cielonegro.org>
Fri, 7 Aug 2015 07:38:15 +0000 (16:38 +0900)
cabal-package.mk

index 6c96697f39f307a8c537c9e1f208a2e4a98e96d3..65404dc96eb9d0fc6a689a1bb08db8edbf60a9df 100644 (file)
@@ -2,6 +2,10 @@
 #
 # Variables:
 #
+#   USE_CABAL_COMMAND :: whether to use the cabal(1) command instead
+#   of ./Setup
+#     default: "YES" if it's in the PATH, "NO" otherwise.
+#
 #   CONFIGURE_ARGS :: arguments to be passed to ./Setup configure
 #     default: --disable-optimization
 #
@@ -9,6 +13,7 @@
 #
 
 AUTOCONF ?= autoconf
+CABAL    ?= cabal
 DARCS    ?= darcs
 DITZ     ?= ditz
 FIND     ?= find
@@ -21,6 +26,20 @@ RM_RF    ?= rm -rf
 RSYNC    ?= rsync
 SUDO     ?= sudo
 
+ifndef USE_CABAL_COMMAND
+ifeq ($(shell which $(CABAL) >/dev/null 2>&1; echo $$?),0)
+USE_CABAL_COMMAND := YES
+else
+USE_CABAL_COMMAND := NO
+endif
+endif
+
+ifeq ($(strip $(USE_CABAL_COMMAND)),YES)
+SETUP_CMD := $(shell which $(CABAL))
+else
+SETUP_CMD := ./Setup
+endif
+
 CONFIGURE_ARGS ?= --disable-optimization
 HADDOCK_OPTS   ?= --hyperlink-source
 HLINT_OPTS     ?= \
@@ -52,7 +71,7 @@ BUILDINFO_FILE    := $(BUILDINFO_IN_FILE:.in=)
 all: build
 
 build: setup-config build-hook
-       ./Setup build
+       $(SETUP_CMD) build
        $(RM_RF) *.tix
 
 build-hook:
@@ -71,14 +90,14 @@ 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)
+dist/setup-config: $(CABAL_FILE) $(SETUP_CMD) $(AUTOCONF_FILE)
+       $(SETUP_CMD) configure $(CONFIGURE_ARGS)
 
 $(AUTOCONF_FILE): $(AUTOCONF_AC_FILE)
        $(AUTOCONF)
 
 $(BUILDINFO_FILE): $(BUILDINFO_IN_FILE) configure
-       ./Setup configure $(CONFIGURE_ARGS)
+       $(SETUP_CMD) configure $(CONFIGURE_ARGS)
 
 Setup: $(SETUP_FILE)
        $(GHC) --make Setup
@@ -94,17 +113,17 @@ clean: clean-hook
 clean-hook:
 
 doc: setup-config
-       ./Setup haddock $(HADDOCK_OPTS)
+       $(SETUP_CMD) haddock $(HADDOCK_OPTS)
 
 install: build
-       $(SUDO) ./Setup install
+       $(SUDO) $(SETUP_CMD) install
 
 sdist: setup-config
-       ./Setup sdist
+       $(SETUP_CMD) sdist
 
 test: build
        $(RM_RF) dist/test
-       ./Setup test
+       $(SETUP_CMD) test
        if ls *.tix >/dev/null 2>&1; then \
                $(HPC) sum --output="merged.tix" --union --exclude=Main *.tix; \
                $(HPC) markup --destdir="dist/hpc" --fun-entry-count "merged.tix"; \