aboutsummaryrefslogtreecommitdiff
path: root/reproduce/src/make/Top-Makefile
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2018-11-25 22:57:29 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2018-11-25 22:57:29 +0000
commit22ac6cccba99109f23f5571f70ec660f6f37c76f (patch)
treeecced876206cfadd71c5c14064bb26da9d308694 /reproduce/src/make/Top-Makefile
parenta60db913794a7e0563a5c3443311a955a98559f5 (diff)
Rule of tex/pipeline.tex now defined in paper.mk not top Makefile
To avoid redundant steps in the the top-level Makefile and make it simpler and easier to follow, we now define the base names of all the Makefiles in the `makesrc' variable of the top-level Makefile. `makesrc' is then used to define the Makefiles to include and the necessary TeX macros at the same time. This is much more clear and obvious than the previous case were we had to list the Makefiles and TeX macro files separately in the top level Makefile.
Diffstat (limited to 'reproduce/src/make/Top-Makefile')
-rw-r--r--reproduce/src/make/Top-Makefile122
1 files changed, 0 insertions, 122 deletions
diff --git a/reproduce/src/make/Top-Makefile b/reproduce/src/make/Top-Makefile
deleted file mode 100644
index 4c547be..0000000
--- a/reproduce/src/make/Top-Makefile
+++ /dev/null
@@ -1,122 +0,0 @@
-# A ONE-LINE DESCRIPTION OF THE WHOLE PIPELINE
-#
-# Original author:
-# Mohammad Akhlaghi <mohammad@akhlaghi.org>
-# Contributing author(s):
-# Your name <your@email.address>
-# Copyright (C) 2018, Your Name.
-#
-# 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/>.
-
-
-
-
-
-# Ultimate target of this pipeline
-# --------------------------------
-#
-# The final paper (in PDF format) is the main target of this whole
-# reproduction pipeline. So as defined in the Make paradigm, we are
-# defining it here.
-#
-# Note that if you don't have LaTeX to build the PDF, or generally are just
-# interested in the processing, you can skip create the final PDF creation
-# with `pdf-build-final' of `reproduce/config/pipeline/pdf-build.mk'.
-all: paper.pdf
-
-
-
-
-
-# Include specific Makefiles
-# --------------------------
-#
-# To keep things clean, managable and readable, each set of operations is
-# (and must be) classified (modularized) by context into separate
-# Makefiles: the more the better. They are included in this top-level
-# Makefile through the command below.
-#
-# To further help in readability, it is best to avoid including Makefiles
-# within any other Makefile. So in short, it is best that the `foreach'
-# loop below contains all the `reproduce/src/make/*.mk' files.
-#
-# IMPORTANT NOTE: order matters in the inclusion of the processing
-# Makefiles. As the pipeline grows, some Makefiles will probably define
-# variables/dependencies that others need. Therefore unlike the
-# `reproduce/config/pipeline/*.mk' Makefiles which only define low-level
-# variables (not dependent on other variables and contain no rules), the
-# high-level processing Makefiles are included through the `foreach' loop
-# below by explicitly requesting them in a specific order here.
-include reproduce/config/pipeline/*.mk
-include $(foreach f, initialize \
- download \
- delete-me \
- paper \
- , reproduce/src/make/$(f).mk)
-
-
-
-
-
-# LaTeX macros for paper
-# ----------------------
-#
-# The final report's PDF (final target of this reproduction pipeline) takes
-# variable strings from the pipeline. Those variables are defined as LaTeX
-# macros in `tex/pipeline.tex'. This file is thus the interface between the
-# pipeline scripts and the final PDF.
-#
-# Each of the pipeline steps will save their macros into their own `.tex'
-# file in the `$(mtexdir)' directory. Those individual macros are the
-# pre-requisite to `tex/pipeline.txt'. `tex/pipeline.tex' is thus a
-# high-level output and is defined in this top-most Makefile (and not
-# `reproduce/src/make/paper.mk'). This enables a clear demonstration of the
-# top-level dependencies clearly.
-#
-# Note that if you don't want the final PDF and just want the processing
-# and file outputs, you can remove the value of the `pdf-build-final'
-# variable in `reproduce/config/pdf-build.mk'.
-tex/pipeline.tex: $(foreach f, initialize \
- download \
- delete-me \
- , $(mtexdir)/$(f).tex)
-
- # If no PDF is requested, or if LaTeX isn't available, don't
- # continue to building the final PDF. Otherwise, merge all the TeX
- # macros into one for building the PDF.
- @if [ -f .local/bin/pdflatex ] && [ x"$(pdf-build-final)" != x ]; then
- cat $(mtexdir)/*.tex > $@
- else
- echo
- echo "-----"
- echo "The processing has COMPLETED SUCCESSFULLY! But the final "
- echo "LaTeX-built PDF paper will not be built."
- echo
- if [ x$(more-on-building-pdf) = x1 ]; then
- echo "To do so, make sure you have LaTeX within the pipeline (you"
- echo "can check by running './.local/bin/latex --version'), _AND_"
- echo "make sure that the 'pdf-build-final' variable has a value."
- echo "'pdf-build-final' is defined in: "
- echo "'reproduce/config/pipeline/pdf-build.mk'."
- echo
- echo "If you don't have LaTeX within the pipeline, please re-run"
- echo "'./configure' when you have internet access. To speed it up,"
- echo "you can keep the previous configuration files (answer 'n'"
- echo "when it asks about re-writing previous configuration files)."
- else
- echo "For more, run './.local/bin/make more-on-building-pdf=1'"
- fi
- echo
- echo "" > $@
- fi