diff options
author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2022-05-10 01:46:37 +0200 |
---|---|---|
committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2022-05-10 01:46:37 +0200 |
commit | 4f376e9f27209fb5a69addcc56a37abe8fb8ef01 (patch) | |
tree | cf1a9e7a70d4d0c2bfede0ac02e27533e82855cc /reproduce/analysis/make | |
parent | f51b5e2e500dd6450a5a3425e85df78245fc5c5c (diff) |
initialize.mk: Git call in variable works with LD_LIBRARY_PATH
Until now, the '$(project-commit-hash)' Make variable of 'initialize.mk'
simply called 'git' to find the commit hash. However, due to one of the
recent software updates, we noticed that this command is no longer working
(and the project commit hash wasn't getting printed in the PDF)! The
problem was that Maneage's Git, couldn't find the 'libiconv' library that
it was built with.
With this commit, the '$(shell' command that calls Git, first exports
'LD_LIBRARY_PATH' to Maneage's software build directory. As a result, the
Git command can work and will report the commit as a LaTeX macro to be used
in the paper. To avoid relying on PATH outside of Make recipes, we now also
directly call the Git executable with Maneage.
Some other minor issues have been found and fixed in this commit:
- README-hacking.md: some minor edits and typo corrections.
- initialize.mk: the '$(curdir)' variable is now used in several places
that we were calling 'pwd'.
- versions.conf: 'xlsxio-version' now included with other programs. Until
now it was commented because GCC 11.1.0 had issues with it. However, GCC
11.2.0 doesn't have a problem any more, so it has been returned to the
list of all high-level programs.
- xorg.mk: used same format to comment recipe lines as the other Makefiles
(a '#' followed by a TAB).
- preamble-pgfplots.tex: lines to comment for building an EPS figure with
PGFPlots have been re-formatted to be more human-readable.
Diffstat (limited to 'reproduce/analysis/make')
-rw-r--r-- | reproduce/analysis/make/initialize.mk | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk index 7e9e938..4e8ee68 100644 --- a/reproduce/analysis/make/initialize.mk +++ b/reproduce/analysis/make/initialize.mk @@ -165,7 +165,9 @@ export OMPI_MCA_plm_rsh_agent=/bin/false # Recipe startup script. export PROJECT_STATUS := make -export BASH_ENV := $(shell pwd)/reproduce/software/shell/bashrc.sh +export BASH_ENV := $(curdir)/reproduce/software/shell/bashrc.sh + + @@ -209,9 +211,18 @@ $(lockdir): | $(bsdir); mkdir $@ -# Version and distribution tarball definitions -project-commit-hash := $(shell if [ -d .git ]; then \ - echo $$(git describe --dirty --always --long); else echo NOGIT; fi) +# Version and distribution tarball definitions. +# +# We need to export 'LD_LIBRARY_PATH' before calling 'git' because we the +# default export of 'LD_LIBRARY_PATH' doesn't take effect at this point +# (only within the recipes). Its also safe to directly use the 'git' +# executable using its absolute location (and not rely on 'PATH' at this +# stage). +project-commit-hash := $(shell \ + if [ -d .git ]; then \ + export LD_LIBRARY_PATH="$(installdir)/lib"; \ + echo $$($(installdir)/bin/git describe --dirty --always --long); \ + else echo NOGIT; fi) project-package-name := maneaged-$(project-commit-hash) project-package-contents = $(texdir)/$(project-package-name) @@ -385,7 +396,6 @@ $(project-package-contents): paper.pdf | $(texdir) # Package into '.tar.gz' or '.tar.lz'. dist dist-lzip: $(project-package-contents) - curdir=$$(pwd) cd $(texdir) tar -cf $(project-package-name).tar $(project-package-name) if [ $@ = dist ]; then @@ -396,21 +406,19 @@ dist dist-lzip: $(project-package-contents) lzip -f --best $(project-package-name).tar fi rm -rf $(project-package-name) - cd $$curdir + cd $(curdir) mv $(texdir)/$(project-package-name).tar.$$suffix ./ # Package into '.zip'. dist-zip: $(project-package-contents) - curdir=$$(pwd) cd $(texdir) zip -q -r $(project-package-name).zip $(project-package-name) rm -rf $(project-package-name) - cd $$curdir + cd $(curdir) mv $(texdir)/$(project-package-name).zip ./ # Package the software tarballs. dist-software: - curdir=$$(pwd) dirname=software-$(project-commit-hash) cd $(bsdir) if [ -d $$dirname ]; then rm -rf $$dirname; fi @@ -419,7 +427,7 @@ dist-software: tar -cf $$dirname.tar $$dirname gzip -f --best $$dirname.tar rm -rf $$dirname - cd $$curdir + cd $(curdir) mv $(bsdir)/$$dirname.tar.gz ./ |