aboutsummaryrefslogtreecommitdiff
path: root/testcase
diff options
context:
space:
mode:
authorDan Willemsen <dwillemsen@google.com>2018-02-27 00:25:01 -0800
committerDan Willemsen <dwillemsen@google.com>2018-02-27 03:14:23 -0800
commitc3f6a9791d9b747a49dfd02602bb5662ba6e2783 (patch)
treee78b0345bfc5a080fb757ba5406cfd0cded2a600 /testcase
parent575ebd04c5a3c305233b6ad8d8952a6295160f25 (diff)
downloadkati-c3f6a9791d9b747a49dfd02602bb5662ba6e2783.tar.gz
Add KATI_(deprecate|obsolete)_export
Allow makefiles to mark the `export` and `unexport` keywords as deprecated or obsolete. In large builds like Android, we've got our own ways to set global environment variables, it's very unlikely that individual makefiles need to set an environment variable for every single rule. We expect to eventually add environment variables to the list of inputs that ninja checks to see if a command needs to run again (currently it just checks the timestamps and commandline). Reducing the ability for makefiles to export global variables per-configuration means that we're more likely to share compile steps between configurations. Change-Id: I8df0630ef264e39fd077b08dcac57e571ebe214f
Diffstat (limited to 'testcase')
-rw-r--r--testcase/deprecated_export.mk21
-rw-r--r--testcase/err_obsolete_export.mk7
2 files changed, 28 insertions, 0 deletions
diff --git a/testcase/deprecated_export.mk b/testcase/deprecated_export.mk
new file mode 100644
index 0000000..3744f70
--- /dev/null
+++ b/testcase/deprecated_export.mk
@@ -0,0 +1,21 @@
+# TODO(go): not implemented
+
+A := 1
+B := 2
+export A B
+
+$(KATI_deprecate_export Message)
+
+export C := ok
+unexport B
+
+ifndef KATI
+$(info Makefile:9: C: export has been deprecated. Message.)
+$(info Makefile:10: B: unexport has been deprecated. Message.)
+endif
+
+test:
+ echo $$(A)
+ echo $$(B)
+ echo $$(C)
+ echo Done
diff --git a/testcase/err_obsolete_export.mk b/testcase/err_obsolete_export.mk
new file mode 100644
index 0000000..bf78dc3
--- /dev/null
+++ b/testcase/err_obsolete_export.mk
@@ -0,0 +1,7 @@
+# TODO(go): not implemented
+
+export A := ok
+
+$(KATI_obsolete_export Message)
+
+export B := fail $(or $(KATI),$(error B: export is obsolete. Message))