summaryrefslogtreecommitdiff
path: root/libraries/Makefile
diff options
context:
space:
mode:
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>2009-02-24 11:20:37 +0000
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>2009-02-24 11:20:37 +0000
commit714c5ba52f8ec62f6f78219358bef59219e2125c (patch)
tree2956f3f36af7bb3501f024816c5fa39b40e29e0e /libraries/Makefile
parent8f0034600a8a5fa507994646f96e63e2933a5330 (diff)
downloadhaskell-714c5ba52f8ec62f6f78219358bef59219e2125c.tar.gz
Add targets clean.library.dph and remake.library.dph
- Package dph ist a meta package that contains a number of subpackages inside. - This patch adds two targets to clean and remake all subpackages with a single command.
Diffstat (limited to 'libraries/Makefile')
-rw-r--r--libraries/Makefile41
1 files changed, 38 insertions, 3 deletions
diff --git a/libraries/Makefile b/libraries/Makefile
index 8ccba2c19a..6ca6284b03 100644
--- a/libraries/Makefile
+++ b/libraries/Makefile
@@ -196,6 +196,22 @@ rebuild.library.%: clean.library.% build.library.%
$(foreach SUBDIR,$(SUBDIRS),remake.library.$(SUBDIR)):\
remake.library.%: clean.library.% make.library.%
+# The meta package dph is a special case
+ifeq "$(stage)" "1"
+remake.library.dph:
+ @echo "*** Package dph needs to be made in stage=2"
+endif
+ifeq "$(stage)" "2"
+# NB. we're depending on make chasing dependencies from left to right here.
+# This bit goes wrong with 'make -j'.
+remake.library.dph: remake.library.dph/dph-base \
+ remake.library.dph/dph-prim-interface \
+ remake.library.dph/dph-prim-seq \
+ remake.library.dph/dph-prim-par \
+ remake.library.dph/dph-seq \
+ remake.library.dph/dph-par
+endif
+
# NB. we're depending on make chasing dependencies from left to right here.
# This bit goes wrong with 'make -j'.
build: $(foreach SUBDIR,$(SUBDIRS),make.library.$(SUBDIR))
@@ -256,6 +272,11 @@ make.library.%: stamp/configure.library.build$(CONFIGURE_STAMP_EXTRAS).% \
$(CABAL) register --inplace; \
fi
+# Special case for meta package dph: we can only remake it as we don't have
+# any dependency info between the sub-packages
+make.library.dph:
+ @echo "*** Please use the target 'remake.library.dph' instead"
+
MAKEFILE_LOCAL = $(FPTOOLS_TOP_ABS)/libraries/Makefile.local
# Build the library using 'setup build' (not the default)
@@ -305,7 +326,11 @@ endif
maintainer-clean: clean
distclean: clean
+ifeq "$(wildcard dph)" ""
clean: $(foreach SUBDIR,$(SUBDIRS),clean.library.$(SUBDIR))
+else
+clean: $(foreach SUBDIR,$(SUBDIRS),clean.library.$(SUBDIR)) clean.library.dph
+endif
-cd extensible-exceptions && $(CABAL) clean --distpref=dist-bootstrapping
-cd filepath && $(CABAL) clean --distpref=dist-bootstrapping
-cd Cabal && $(CABAL) clean --distpref=dist-bootstrapping
@@ -318,9 +343,6 @@ clean: $(foreach SUBDIR,$(SUBDIRS),clean.library.$(SUBDIR))
$(RM) -f libraries.txt index.html doc-index.html doc-index*.html
$(RM) -f haddock* *.gif
$(RM) -rf stamp/*
-ifneq "$(wildcard dph)" ""
- $(MAKE) -C dph clean
-endif
maintainer-clean distclean:
$(RM) $(foreach lib, $(SUBDIRS), $(lib)/.depend $(lib)/.depend.bak)
@@ -333,6 +355,19 @@ clean.library.%:
$(RM) $*/GNUmakefile $*/Makefile.local
endif
+# Extra target to clean all the sub-packages of dph
+ifeq "$(stage)" "1"
+clean.library.dph:
+ @echo "*** Package dph needs to be made in stage=2"
+endif
+ifeq "$(stage)" "2"
+clean.library.dph: clean.library.dph/dph-prim-par \
+ clean.library.dph/dph-prim-seq \
+ clean.library.dph/dph-prim-interface \
+ clean.library.dph/dph-base
+ $(MAKE) -C dph clean
+endif
+
# -----------------------------------------------------------------------------
.PHONY: install install-docs install.library.%