aboutsummaryrefslogtreecommitdiff
path: root/reproduce/analysis/make/prepare.mk
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/analysis/make/prepare.mk')
-rw-r--r--reproduce/analysis/make/prepare.mk61
1 files changed, 36 insertions, 25 deletions
diff --git a/reproduce/analysis/make/prepare.mk b/reproduce/analysis/make/prepare.mk
index d0b61d9..36f5294 100644
--- a/reproduce/analysis/make/prepare.mk
+++ b/reproduce/analysis/make/prepare.mk
@@ -1,6 +1,6 @@
-# Basic preparations, called by `./project prepare'.
+# Basic preparations, called by './project make'.
#
-# Copyright (C) 2019-2021 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2019-2023 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
@@ -21,30 +21,41 @@
# Final-target
#
-# Without this file, `./project make' won't work.
-prepare-dep = $(subst prepare, ,$(makesrc))
+# Without this file, './project make' won't work.
+#
+# We need to remove the 'prepare' word from the list of 'makesrc'.
+prepare-dep = $(filter-out prepare, $(makesrc))
$(bsdir)/preparation-done.mk: \
$(foreach s, $(prepare-dep), $(mtexdir)/$(s).tex)
- # If you need to add preparations define targets above to do the
- # preparations, then set the value below to `yes'. Recall that just
- # like `./project make', before loading this file, `./project
- # prepare' loads loads `initialize.mk' and `download.mk', so you
- # can safely assume everything that is defined there in the
- # preparation phase also.
- #
- # TIP: the targets can actually be automatically generated
- # Makefiles that are used by `./project make'. They can include
- # variables, or automatically generated rules. Just make sure that
- # those Makefiles aren't written in the source directory. Even
- # though they are Makefiles, they are automatically built, so they
- # don't belong in the source. `$(prepdir)' has been defined for
- # this purpose (see `initialize.mk'), we recommend that you put all
- # automatically generated Makefiles under this directory. In the
- # `make' phase, `initialize.mk' will automatically load all the
- # `*.mk' files. If you need to load your generated
- # configuration-makefiles before automatically generated Makefiles
- # containing rules, you can use some naming convension like
- # `conf-*.mk' and `rule-*.mk', or you can put them in
- # subdirectories.
+# If you need to add preparations (mainly automatically generated
+# configuration files or Makefiles to simplify the './project make'
+# phase) take the following step:
+#
+# 1. Add prerequisites to this target ('preparation-done.mk'). Try
+# to avoid any kind of analysis in this (preparation) phase!
+# Preparation should ideally only involve automatic creation of
+# configuration files or Makefile that will be loaded into the
+# analysis phase (from 'top-make.mk').
+#
+# 2. Set the value of 'include-prepare-results' (defined below) to
+# 'yes'. If it is kept to the default 'no', then your
+# prepartion outputs will not be automatically
+# generated. Recall that just like 'top-make.mk',
+# 'top-prepare.mk' also loads 'initialize.mk' before everything
+# else. So you can safely assume everything that is defined in
+# 'initialize.mk' to be available in the preparation phase
+# also.
+#
+# TIP: the targets can actually be automatically generated Makefiles
+# that are used by './project make'. They can include variables, or
+# automatically generated rules. Just make sure that those Makefiles
+# aren't written in the source directory (only hand-written files
+# should be in your source). Even though they are Makefiles, they are
+# automatically built, so they don't belong in the
+# source. '$(prepdir)' has been defined for this purpose (see
+# 'initialize.mk'), we recommend that you put all automatically
+# generated configuration files or Makefiles under this directory. In
+# the 'make' phase, 'initialize.mk' will automatically load all the
+# '*.mk' files there.
@echo "include-prepare-results = no" > $@