summaryrefslogtreecommitdiff
path: root/rules/cxx-suffix-rules.mk
diff options
context:
space:
mode:
Diffstat (limited to 'rules/cxx-suffix-rules.mk')
-rw-r--r--rules/cxx-suffix-rules.mk44
1 files changed, 44 insertions, 0 deletions
diff --git a/rules/cxx-suffix-rules.mk b/rules/cxx-suffix-rules.mk
new file mode 100644
index 0000000000..25b3d5212c
--- /dev/null
+++ b/rules/cxx-suffix-rules.mk
@@ -0,0 +1,44 @@
+# -----------------------------------------------------------------------------
+#
+# (c) 2009 The University of Glasgow
+#
+# This file is part of the GHC build system.
+#
+# To understand how the build system works and how to modify it, see
+# https://gitlab.haskell.org/ghc/ghc/wikis/building/architecture
+# https://gitlab.haskell.org/ghc/ghc/wikis/building/modifying
+#
+# -----------------------------------------------------------------------------
+
+
+define cxx-suffix-rules
+# $1 = dir
+# $2 = distdir
+# $3 = way
+# $4 = use GHC (YES/NO)
+
+ifneq "$$(BINDIST)" "YES"
+
+ifeq "$4" "YES"
+
+$1/$2/build/%.$$($3_osuf) : $1/%.cpp $$(LAX_DEPS_FOLLOW) $$$$($1_$2_HC_DEP) | $$$$(dir $$$$@)/.
+ $$(call cmd,$1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
+
+$1/$2/build/%.$$($3_osuf) : $1/$2/build/%.cpp $$(LAX_DEPS_FOLLOW) $$$$($1_$2_HC_DEP)
+ $$(call cmd,$1_$2_HC) $$($1_$2_$3_GHC_CC_OPTS) -c $$< -o $$@
+
+
+else
+
+$1/$2/build/%.$$($3_osuf) : $1/%.cpp | $$$$(dir $$$$@)/.
+ $$(call cmd,$1_$2_CC) $$($1_$2_$3_ALL_CC_OPTS) -c $$< -o $$@
+
+$1/$2/build/%.$$($3_osuf) : $1/$2/build/%.cpp
+ $$(call cmd,$1_$2_CC) $$($1_$2_$3_ALL_CC_OPTS) -c $$< -o $$@
+
+endif
+
+endif
+
+endef
+