aboutsummaryrefslogtreecommitdiff
path: root/reproduce/config
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-18 20:36:11 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-01-18 21:17:01 +0000
commit42d3cef11bd9a84d11eb48a4ff9686d2e0ce5436 (patch)
tree83e6252e0de115d16bcf4423ca410bd0abacd4a2 /reproduce/config
parent6a5dcc37ffd7dcc05dd786d84125366da073c43d (diff)
Sanity check to run the Make with proper group permissions
If the `./for-group' script is not used properly, it can lead to the whole pipeline being re-run. Therefore it is important to do a sanity check immediately at the start of Make's processing and inform the user if there is a problem. With this commit, `./for-group' exports the `reproducible_paper_for_group' variable which is used by both the initial `./configure' script, and later in each call to Make. The `./configure' script will use it to write a value in `reproduce/config/pipeline/LOCAL.mk' and Make will use it to compare with the value in `reproduce/config/pipeline/LOCAL.mk'. If there is an inconsistency, Make will not even attempt to build anything and will just print a message and abort.
Diffstat (limited to 'reproduce/config')
-rw-r--r--reproduce/config/pipeline/LOCAL.mk.in24
1 files changed, 24 insertions, 0 deletions
diff --git a/reproduce/config/pipeline/LOCAL.mk.in b/reproduce/config/pipeline/LOCAL.mk.in
index 89e3e23..846a5b8 100644
--- a/reproduce/config/pipeline/LOCAL.mk.in
+++ b/reproduce/config/pipeline/LOCAL.mk.in
@@ -6,3 +6,27 @@ BDIR = @bdir@
INDIR = @indir@
DEPENDENCIES-DIR = @ddir@
DOWNLOADER = @downloader@
+FOR-GROUP = @forgroup@
+
+
+
+
+
+# In the top Makefile (which is created after running `./configure' and is
+# actually a symbolic link to `reproduce/src/make/top.mk'), we need to
+# start by checking if there is no conflict with the running and configured
+# group configuration of the pipeline.
+good-group-configuration := $(shell \
+ if [ "x$(FOR-GROUP)" = xyes ]; then \
+ if [ "x$(reproducible_paper_for_group)" = xyes ]; then \
+ echo "yes"; \
+ else \
+ echo "no"; \
+ fi; \
+ else \
+ if [ "x$(reproducible_paper_for_group)" = xyes ]; then \
+ echo "no"; \
+ else \
+ echo "yes"; \
+ fi; \
+ fi)