aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.file-metadatabin6250 -> 6321 bytes
-rwxr-xr-xproject31
-rw-r--r--reproduce/analysis/make/initialize.mk33
3 files changed, 45 insertions, 19 deletions
diff --git a/.file-metadata b/.file-metadata
index 118f363..8ef6ee5 100644
--- a/.file-metadata
+++ b/.file-metadata
Binary files differ
diff --git a/project b/project
index c60bba1..e7f44a8 100755
--- a/project
+++ b/project
@@ -72,23 +72,32 @@ RECOMMENDATION: If this is the first time you are configuring this
template, please don't use the options and let the script explain each
parameter in full detail by simply running './project configure'.
-With the options below you can modify the default behavior.
+Project 'make' special features.
+ ./project make Build the project on one thread
+ ./project make -jN Built the project in parallel on N threads.
+ ./project make clean Clean all files generated by 'make' (not software).
+ ./project make distclean Clean everything (including compiled software).
+ ./project make dist Produce a LaTeX-ready-to-build distribution tarball
+ ('tar.gz') of the project. This is ready to be
+ uploaded to servers like 'arXiv.org'.
+ ./project make dist-zip Similar to 'dist', but compress with '.zip'.
+With the options below you can modify the default behavior.
Configure options:
- -b, --build-dir=STR Top directory to build the project in.
- -e, --existing-conf Use (possibly existing) local configuration.
- --host-cc Use host system's C compiler, don't build GCC.
- -i, --input-dir=STR Directory containing input datasets (optional).
- -m, --minmapsize=INT [Gnuastro] Minimum number of bytes to use RAM.
- -s, --software-dir=STR Directory containing necessary software tarballs.
+ -b, --build-dir=STR Top directory to build the project in.
+ -e, --existing-conf Use (possibly existing) local configuration.
+ --host-cc Use host system's C compiler, don't build GCC.
+ -i, --input-dir=STR Directory containing input datasets (optional).
+ -m, --minmapsize=INT [Gnuastro] Minimum number of bytes to use RAM.
+ -s, --software-dir=STR Directory containing necessary software tarballs.
Configure and Make options:
- -g, --group=STR Build and run with write permissions for a group.
- -j, --jobs=INT Number of threads to build/run the software.
- -?, --help Print this help list.
+ -g, --group=STR Build and run with write permissions for a group.
+ -j, --jobs=INT Number of threads to build/run the software.
+ -?, --help Print this help list.
Make options:
- -d, --debug=FLAGS Print various types of debugging information.
+ -d, --debug=FLAGS Print various types of debugging information.
Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.
diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk
index 644efe4..94008f2 100644
--- a/reproduce/analysis/make/initialize.mk
+++ b/reproduce/analysis/make/initialize.mk
@@ -228,7 +228,7 @@ distclean: clean
# that is ready for building the final PDF with LaTeX. This is useful for
# collaborators who only want to contribute to the text of your project,
# without having to worry about the technicalities of the analysis.
-$(packagecontents): | $(texdir)
+$(packagecontents): paper.pdf | $(texdir)
# Set up the output directory, delete it if it exists and remake it
# to fill with new contents.
@@ -250,7 +250,7 @@ $(packagecontents): | $(texdir)
printf "\trm -f *.blg *.log *.out *.run.xml\n" >> $$m
# Copy the top-level contents into it.
- cp configure COPYING for-group README.md README-hacking.md $$dir/
+ cp COPYING project README.md README-hacking.md $$dir/
# Build the top-level directories.
mkdir $$dir/reproduce $$dir/tex $$dir/tex/tikz $$dir/tex/build
@@ -259,7 +259,7 @@ $(packagecontents): | $(texdir)
shopt -s extglob
cp -r tex/src $$dir/tex/src
cp tex/tikz/*.pdf $$dir/tex/tikz
- cp -r reproduce/ $$dir/reproduce
+ cp -r reproduce/* $$dir/reproduce
cp -r tex/build/!($(packagebasename)) $$dir/tex/build
# Clean up un-necessary/local files: 1) the $(texdir)/build*
@@ -272,18 +272,35 @@ $(packagecontents): | $(texdir)
rm $$dir/reproduce/software/config/installation/LOCAL.mk
rm $$dir/reproduce/software/config/gnuastro/gnuastro-local.conf
- # PROJECT SPECIFIC: under this comment, copy any other file for
- # packaging, or remove any of the copied files above to suite your
- # project.
+ # When submitting to places like arXiv, they will just run LaTeX
+ # once and won't run `biber'. So we need to also keep the `.bbl'
+ # file into the distributing tarball. However, BibLaTeX is
+ # particularly sensitive to versioning (a `.bbl' file has to be
+ # read by the same BibLaTeX version that created it). This is hard
+ # to do with non-up-to-date places like arXiv. Therefore, we thus
+ # just copy the whole of BibLaTeX's source (the version we are
+ # using) into the top tarball directory. In this way, arXiv's LaTeX
+ # engine will use the same BibLaTeX version to interpret the `.bbl'
+ # file. TIP: you can use the same strategy for other LaTeX packages
+ # that may cause problems on the arXiv server.
+ cp tex/build/build/paper.bbl $$dir/
+ tltopdir=.local/texlive/2019/texmf-dist/tex/latex
+ find $$tltopdir/biblatex/ -maxdepth 1 -type f -print0 \
+ | xargs -0 cp -t $$dir
+
+ # PROJECT SPECIFIC
+ # ----------------
+ # Put any project specific distribution steps here.
+ # ----------------
# Since the packaging is mainly intended for high-level building of
# the PDF with LaTeX, we'll comment the `makepdf' LaTeX macro in
- # the paper.
+ # the paper. This will disable usage of TiKZ.
sed -e's|\\newcommand{\\makepdf}{}|%\\newcommand{\\makepdf}{}|' \
paper.tex > $$dir/paper.tex
# Just in case the package users want to rebuild some of the
- # figures (manually un-comments the `makepdf' command we commented
+ # figures (manually un-comment the `makepdf' command we commented
# above), correct the TikZ external directory, so the figures can
# be rebuilt.
pgfsettings="$$dir/tex/src/preamble-pgfplots.tex"