diff options
Diffstat (limited to 'reproduce/analysis/make/prepare.mk')
-rw-r--r-- | reproduce/analysis/make/prepare.mk | 61 |
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" > $@ |