aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile33
-rw-r--r--reproduce/src/make/initialize.mk45
2 files changed, 32 insertions, 46 deletions
diff --git a/Makefile b/Makefile
index 051332b..8f118f7 100644
--- a/Makefile
+++ b/Makefile
@@ -27,12 +27,14 @@
#
# 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 as the first target.
+# defining it here. But since we also want easy access to the build
+# directory during processing (before the PDF is build), that is placed as
+# the first prerequisite.
#
# Note that if you don't have LaTeX to build the PDF or generally are just
-# interested in the processing, you can avoid the skip to create the final
-# PDF, see `reproduce/config/pipeline/pdf.mk'.
-all: paper.pdf
+# interested in the processing, you can skip create the final PDF creation
+# with `BUILD-FINAL-PDF' of `reproduce/config/pipeline/LOCAL.mk'.
+all: reproduce/build paper.pdf
@@ -79,33 +81,20 @@ include $(foreach f, initialize download paper, reproduce/src/make/$(f).mk)
# `reproduce/src/make/paper.mk'). This enables a clear demonstration of the
# top-level dependencies clearly.
#
-# The symbolic link to the build directory (`bdirsym') is also placed here
-# as a dependency if the pipeline is to be created. It is very important
-# that it be an "order-only prerequisite" (after a `|', otherwise, it will
-# try to be remade on every call and `ln' will complain and abort).
-#
# 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 `BUILD-FINAL-PDF'
# variable in `reproduce/config/LOCAL.mk'.
-tex/pipeline.tex: $(foreach f, initialize download, $(mtexdir)/$(f).tex) \
- | $(bdirsym)
+tex/pipeline.tex: $(foreach f, initialize download, $(mtexdir)/$(f).tex)
# If no PDF is requested, then just exit here.
ifeq ($(BUILD-FINAL-PDF),)
- @echo;
+ @echo
@echo "Everything is OK until this point, but not building PDF."
@echo "To do so, give a value to the 'BUILD-FINAL-PDF' variable."
@echo "It is defined in 'reproduce/config/pipeline/LOCAL.mk'."
- @echo;
+ @echo
@exit 1
endif
- # Read all the separate files and put them into the final TeX
- # macros file. Since `bdirsym' maybe empty, we can't use the
- # `filter-out' function generically. We'll have to check `bdirsym'
- # first.
-ifeq ($(bdirsym),)
- cat $^ > $@
-else
- cat $(filter-out $(bdirsym),$^) > $@
-endif
+ # Merge all the TeX macros that are prepared for building the PDF.
+ @cat $(mtexdir)/*.tex > $@
diff --git a/reproduce/src/make/initialize.mk b/reproduce/src/make/initialize.mk
index 927c292..7c272d5 100644
--- a/reproduce/src/make/initialize.mk
+++ b/reproduce/src/make/initialize.mk
@@ -36,7 +36,6 @@
texdir = $(BDIR)/tex
srcdir = reproduce/src
lockdir = $(BDIR)/locks
-bdirsym = reproduce/build
mtexdir = $(texdir)/macros
gconfdir = reproduce/config/gnuastro
pconfdir = reproduce/config/pipeline
@@ -100,6 +99,26 @@ $(texdir) $(lockdir): | $(BDIR); mkdir $@
+# Symbolic link to build directory
+# --------------------------------
+#
+# Besides $(BDIR), we are also making a symbolic link to it for easy
+# access. Recall that it is recommended that the actual build directory be
+# in a completely separate part of the file system (a place that may easily
+# be completely deleted).
+#
+# Note that $(BDIR) might not be an absolute path and this will complicate
+# the symbolic link creation. To be generic, we'll first call `readlink' to
+# make sure we have an absolute address, then we'll make a symbolic link to
+# that.
+reproduce/build: | $(BDIR)
+ absbdir=$$(readlink -f $(BDIR)); \
+ ln -s $$absbdir $@
+
+
+
+
+
# High-level Makefile management
# ------------------------------
#
@@ -115,7 +134,7 @@ clean:
ifeq ($(configure-run),yes)
rm -rf $(BDIR)
endif
- rm -f $(bdirsym) $(gconfdir)/mmap* *.pdf *.log *.out *.aux *.auxlock
+ rm -f reproduce/build $(gconfdir)/mmap* *.pdf *.log *.out *.aux *.auxlock
@@ -140,25 +159,3 @@ $(mtexdir)/initialize.tex: | $(mtexdir)
# Location of the build directory (for LaTeX inputs).
@echo "\newcommand{\bdir}{$(BDIR)}" >> $@
-
-
-
-
-
-# Symbolic link to build directory
-# --------------------------------
-#
-# Besides $(BDIR), we are also making a symbolic link to it if $(bdirsym)
-# is not empty. In case this symbolic link is not needed, simply remove its
-# value from the definitions above. In that case, it will be read as a
-# blank (non-existant).
-#
-# Note that $(BDIR) might not be an absolute path and this will complicate
-# the symbolic link creation. To be generic, we'll first call `readlink' to
-# make sure we have an absolute address, then we'll make a symbolic link to
-# that.
-ifneq ($(bdirsym),)
-$(bdirsym): | $(BDIR)
- absbdir=$$(readlink -f $(BDIR)); \
- ln -s $$absbdir $(bdirsym)
-endif