diff options
Diffstat (limited to 'reproduce/analysis/make')
-rw-r--r-- | reproduce/analysis/make/delete-me.mk | 60 | ||||
-rw-r--r-- | reproduce/analysis/make/initialize.mk | 76 | ||||
-rw-r--r-- | reproduce/analysis/make/paper.mk | 13 |
3 files changed, 62 insertions, 87 deletions
diff --git a/reproduce/analysis/make/delete-me.mk b/reproduce/analysis/make/delete-me.mk index 325280d..6db0bf9 100644 --- a/reproduce/analysis/make/delete-me.mk +++ b/reproduce/analysis/make/delete-me.mk @@ -19,48 +19,6 @@ -# Dummy dataset -# ------------- -# -# Just as a demonstration(!): we will use AWK to generate a table showing X -# and X^2 and draw its plot. -# -# Note that this dataset is directly read by LaTeX to generate a plot, so -# we need to put it in the $(tex-publish-dir) directory. -dm-squared = $(tex-publish-dir)/squared.txt -$(dm-squared): $(pconfdir)/delete-me-squared-num.conf | $(tex-publish-dir) - -# When the plotted values are re-made, it is necessary to also delete -# the TiKZ externalized files so the plot is also re-made by -# PGFPlots. - rm -f $(tikzdir)/delete-me-squared.pdf - -# Write the column metadata in a temporary file name (appending -# '.tmp' to the actual target name). Once all steps are done, it is -# renamed to the final target. We do this because if there is an -# error in the middle, Make will not consider the job to be complete -# and will stop here. - echo "# Data for demonstration plot of default Maneage (MANaging data linEAGE)." > $@.tmp - echo "# It is a simple plot, showing the power of two: y=x^2! " >> $@.tmp - echo "# " >> $@.tmp - echo "# Column 1: X [arbitrary, f32] The horizontal axis numbers." \ - >> $@.tmp - echo "# Column 2: X_POW2 [arbitrary, f32] The horizontal axis to the power of two." \ - >> $@.tmp - echo "# " >> $@.tmp - $(call print-general-metadata, $@.tmp) - -# Generate the table of random values. - awk 'BEGIN {for(i=1;i<=$(delete-me-squared-num);i+=0.5) \ - printf("%-8.1f%.2f\n", i, i*i); }' >> $@.tmp - -# Write it into the final target - mv $@.tmp $@ - - - - - # Demo image PDF # -------------- # @@ -140,28 +98,12 @@ $(dm-img-stats): $(dm-histdir)/%-stats.txt: $(indir)/%.fits \ # # NOTE: In LaTeX you cannot use any non-alphabetic character in a variable # name. -$(mtexdir)/delete-me.tex: $(dm-squared) $(dm-img-pdf) $(dm-img-histogram) \ +$(mtexdir)/delete-me.tex: $(dm-img-pdf) $(dm-img-histogram) \ $(dm-img-stats) # Write the number of random values used. echo "\newcommand{\deletemenum}{$(delete-me-squared-num)}" > $@ -# Note that since Make variables start with a '$(', if you want to -# use '$' within the shell (not Make), you have to quote any -# occurance of '$' with another '$'. That is why there are '$$' in -# the AWK command below. -# -# Here, we are first using AWK to find the minimum and maximum -# values, then using it again to read each separately to use in the -# macro definition. - mm=$$(awk 'BEGIN{min=99999; max=-min} - !/^#/{if($$2>max) max=$$2; if($$2<min) min=$$2;} - END{print min, max}' $(dm-squared)); - v=$$(echo "$$mm" | awk '{printf "%.3f", $$1}'); - echo "\newcommand{\deletememin}{$$v}" >> $@ - v=$$(echo "$$mm" | awk '{printf "%.3f", $$2}'); - echo "\newcommand{\deletememax}{$$v}" >> $@ - # Write the statistics of the demo image as a macro. mean=$$(awk '{printf("%.2f", $$1)}' $(dm-img-stats)) echo "\newcommand{\deletemewfpctwomean}{$$mean}" >> $@ diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk index 9e8db4a..bce828a 100644 --- a/reproduce/analysis/make/initialize.mk +++ b/reproduce/analysis/make/initialize.mk @@ -49,7 +49,9 @@ installdir = $(bsdir)/installed bashdir = reproduce/analysis/bash pconfdir = reproduce/analysis/config - +# Project-specific directories. +figdir = $(texdir)/figures +$(figdir):; mkdir $@ @@ -248,7 +250,8 @@ project-package-contents = $(texdir)/$(project-package-name) # the project version which may change between two separate runs, even when # no file actually differs. .PHONY: all clean dist dist-zip dist-lzip texclean distclean \ - $(project-package-contents) $(mtexdir)/initialize.tex + $(project-package-contents) $(mtexdir)/initialize.tex \ + dist-singledir-onlypaper texclean: rm -f *.pdf @@ -313,7 +316,8 @@ $(project-package-contents): paper.pdf | $(texdir) printf "\tpdflatex -shell-escape -halt-on-error paper\n" >> $$m echo "paper.bbl: tex/src/references.tex" >> $$m printf "\tpdflatex -shell-escape -halt-on-error paper\n" >> $$m - printf "\tbiber paper\n" >> $$m + printf "\tbibtex paper\n" >> $$m + printf "\tpdflatex -shell-escape -halt-on-error paper\n" >> $$m echo ".PHONY: clean" >> $$m echo "clean:" >> $$m printf "\trm -f *.aux *.auxlock *.bbl *.bcf\n" >> $$m @@ -367,21 +371,9 @@ $(project-package-contents): paper.pdf | $(texdir) cp tex/tikz/*.pdf $$dir/tex/tikz fi -# 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. +# The 'bbl' file is produced by BibTeX; and having it allows the user +# of the tarball to not have to re-create the bibliography. cp tex/build/build/paper.bbl $$dir/ - tltopdir=.local/texlive/maneage/texmf-dist/tex/latex - find $$tltopdir/biblatex/ -maxdepth 1 -type f -print0 \ - | xargs -0 cp -t $$dir # Just in case the package users want to rebuild some of the figures # (manually un-comment the 'makepdf' command we commented above), @@ -393,7 +385,7 @@ $(project-package-contents): paper.pdf | $(texdir) # PROJECT SPECIFIC # ---------------- # Put any project-specific distribution steps here. - + cp tex/src/aasjournal.bst tex/src/aastex631.cls $$dir/ # ---------------- # Clean temporary files that may have been created by text editors. @@ -437,6 +429,42 @@ dist-software: cd $(curdir) mv $(bsdir)/$$dirname.tar.gz ./ +# Build a distribution directory with all the files in a single directory. +dist-singledir-onlypaper: + +# Set the output directory and if it exists delete it (so we can +# start with a clean directory). + outdir=$(badir)/dist-single-directory + if [ -d $$outdir ]; then rm -r $$outdir; fi + mkdir $$outdir + +# Copy all the necessary files into the output directory. + cp paper.tex \ + tex/tikz/*.pdf \ + tex/src/aastex631.cls \ + tex/build/build/paper.bbl \ + tex/build/macros/project.tex \ + tex/src/preamble-maneage.tex \ + tex/src/preamble-project.tex \ + tex/src/preamble-pgfplots.tex \ + $$outdir/ + +# Copy all the macros from 'project.tex' into the output directory. + macros=$$(sed -e's|\\input{||' -e's|}||' \ + tex/build/macros/project.tex) + for m in $$macros; do cp $$m $$outdir/; done + +# Correct the contents of the files. + sed -i -e's|\\newcommand{\\makepdf}{}|%\\newcommand{\\makepdf}{}|' \ + -e's|tex/src/preamble-maneage.tex|preamble-maneage.tex|' \ + -e's|tex/src/preamble-project.tex|preamble-project.tex|' \ + -e's|tex/build/macros/project.tex|project.tex|' \ + $$outdir/paper.tex + sed -i -e's|tex/src/preamble-pgfplots.tex|preamble-pgfplots.tex|' \ + $$outdir/preamble-project.tex + sed -i -e's|tex/build/macros/||' $$outdir/project.tex + sed -i -e's|tex/tikz/||' $$outdir/preamble-pgfplots.tex + @@ -685,6 +713,10 @@ $(mtexdir)/initialize.tex: | $(mtexdir) echo "\newcommand{\projectgitrepo}{$(metadata-git-repository)}" >> $@ echo "\newcommand{\projectcopyrightowner}{$(metadata-copyright-owner)}" >> $@ +# Gnuastro's version + v=$$(asttable --version | awk 'NR==1{print $$NF}') + echo "\newcommand{\gnuastroversion}{$$v}" >> $@ + # Calculate the latest Maneage commit used to build this project: # - The project may not have the 'maneage' branch (for example # after cloning from a fork that didn't include it!). In this @@ -714,11 +746,3 @@ $(mtexdir)/initialize.tex: | $(mtexdir) fi echo "\newcommand{\maneagedate}{$$d}" >> $@ echo "\newcommand{\maneageversion}{$$v}" >> $@ - -# ----------------- delete the lines below this ------------------- -# These lines are only intended for the default template's output, to -# demonstrate that is it important to put links in the PDF (for -# showing where your input data came from). Remove these lines as -# part of the initial customization of Maneage for your project. - echo "\\newcommand{\\wfpctwourl}{$(INPUT-wfpc2.fits-url)}" >> $@ -# ----------------- delete the lines above this ------------------- diff --git a/reproduce/analysis/make/paper.mk b/reproduce/analysis/make/paper.mk index 791108b..d770d8c 100644 --- a/reproduce/analysis/make/paper.mk +++ b/reproduce/analysis/make/paper.mk @@ -122,6 +122,15 @@ $(texbdir)/paper.bbl: tex/src/references.tex $(mtexdir)/dependencies-bib.tex \ # will be built anyway once this rule is done. rm -f $@ +# Link the AASTeX LaTex and bibliography style here. + ln -sf $$p/tex/src/aastex631.cls ./ + ln -sf $$p/tex/src/aasjournal.bst ./ + +# Fill the 'references.bib' (in Maneage, the software dependencies +# are in 'tex/build/macros/dependencies-bib.tex' + cat $$p/tex/src/references.tex \ + $$p/tex/build/macros/dependencies-bib.tex > references.bib + # The pdflatex option '-shell-escape' is "normally disallowed for # security reasons" according to the 'info pdflatex' manual, but is # enabled here in order to allow the use of PGFPlots. If you do not @@ -129,8 +138,8 @@ $(texbdir)/paper.bbl: tex/src/references.tex $(mtexdir)/dependencies-bib.tex \ # for better security. See https://savannah.nongnu.org/task/?15694 # for details. pdflatex -shell-escape -halt-on-error "$$p"/paper.tex - biber paper - + bibtex paper + pdflatex -shell-escape -halt-on-error "$$p"/paper.tex fi |