aboutsummaryrefslogtreecommitdiff
path: root/reproduce/analysis/make/top-prepare.mk
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/analysis/make/top-prepare.mk')
-rw-r--r--reproduce/analysis/make/top-prepare.mk91
1 files changed, 91 insertions, 0 deletions
diff --git a/reproduce/analysis/make/top-prepare.mk b/reproduce/analysis/make/top-prepare.mk
new file mode 100644
index 0000000..3353638
--- /dev/null
+++ b/reproduce/analysis/make/top-prepare.mk
@@ -0,0 +1,91 @@
+# Do basic preparations to optimize the project's running.
+#
+# NOTE: This file is very similar to `top-make.mk', so the large comments
+# are not included here. Please see that file for thorough comments on each
+# step.
+#
+# Copyright (C) 2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+#
+# This Makefile is free software: you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This Makefile is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+# Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# <http://www.gnu.org/licenses/>.
+
+
+
+
+
+# Load the local configuration (created after running
+# `./project configure').
+include reproduce/software/config/installation/LOCAL.mk
+
+
+
+
+
+# Ultimate target of this project
+# -------------------------------
+#
+# See `top-make.mk' for complete explanation.
+ifeq (x$(reproducible_paper_group_name),x$(GROUP-NAME))
+all: $(BDIR)/software/preparation-done.txt
+ @echo "";
+ echo "----------------"
+ echo "Project preparation has been completed without any errors."
+ echo ""
+ echo "Please run the following command to start building the project."
+ echo "(Replace '8' with the number of CPU threads on your system)"
+ echo ""
+ if [ "x$(GROUP-NAME)" = x ]; then
+ echo " $$ ./project make"
+ else
+ echo " $$ ./project make --group=$(GROUP-NAME) -j8"
+ fi
+ echo ""
+else
+all:
+ @if [ "x$(GROUP-NAME)" = x ]; then
+ echo "Project is NOT configured for groups, please run"
+ echo " $$ ./project prepare"
+ else
+ echo "Project is configured for groups, please run"
+ echo " $$ ./project prepare --group=$(GROUP-NAME) -j8"
+ fi
+endif
+
+
+
+
+
+# Define source Makefiles
+# -----------------------
+#
+# See `top-make.mk' for complete explanation.
+#
+# To ensure that `prepare' and `make' have the same basic definitions and
+# environment and that all `downloads' are managed in one place, both
+# `./project prepare' and `./project make' will first read `initialize.mk'
+# and `downloads.mk'.
+makesrc = initialize \
+ download \
+ prepare
+
+
+
+
+
+# Include all analysis Makefiles
+# ------------------------------
+#
+# See `top-make.mk' for complete explanation.
+include reproduce/analysis/config/*.mk
+include reproduce/software/config/installation/versions.mk
+include $(foreach s,$(makesrc), reproduce/analysis/make/$(s).mk)