diff options
-rw-r--r-- | .file-metadata | bin | 7813 -> 7874 bytes | |||
-rw-r--r-- | README-hacking.md | 59 | ||||
-rw-r--r-- | reproduce/analysis/config/gnuastro/astbuildprog.conf (renamed from reproduce/software/config/gnuastro/astbuildprog.conf) | 0 | ||||
-rw-r--r-- | reproduce/analysis/config/gnuastro/astconvertt.conf (renamed from reproduce/software/config/gnuastro/astconvertt.conf) | 0 | ||||
-rw-r--r-- | reproduce/analysis/config/gnuastro/aststatistics.conf (renamed from reproduce/software/config/gnuastro/aststatistics.conf) | 0 | ||||
-rw-r--r-- | reproduce/analysis/config/gnuastro/gnuastro.conf (renamed from reproduce/software/config/gnuastro/gnuastro.conf) | 0 | ||||
-rw-r--r-- | reproduce/analysis/make/initialize.mk | 4 | ||||
-rw-r--r-- | reproduce/analysis/make/top-make.mk | 2 | ||||
-rw-r--r-- | reproduce/analysis/make/top-prepare.mk | 2 | ||||
-rw-r--r-- | reproduce/software/config/LOCAL.conf.in (renamed from reproduce/software/config/installation/LOCAL.conf.in) | 0 | ||||
-rw-r--r-- | reproduce/software/config/TARGETS.conf (renamed from reproduce/software/config/installation/TARGETS.conf) | 2 | ||||
-rw-r--r-- | reproduce/software/config/checksums.conf (renamed from reproduce/software/config/installation/checksums.conf) | 8 | ||||
-rw-r--r-- | reproduce/software/config/numpy-scipy.cfg (renamed from reproduce/software/config/installation/numpy-scipy.cfg) | 0 | ||||
-rw-r--r-- | reproduce/software/config/texlive-packages.conf (renamed from reproduce/software/config/installation/texlive-packages.conf) | 0 | ||||
-rw-r--r-- | reproduce/software/config/texlive.conf (renamed from reproduce/software/config/installation/texlive.conf) | 0 | ||||
-rw-r--r-- | reproduce/software/config/versions.conf (renamed from reproduce/software/config/installation/versions.conf) | 6 | ||||
-rw-r--r-- | reproduce/software/make/basic.mk | 10 | ||||
-rw-r--r-- | reproduce/software/make/high-level.mk | 19 | ||||
-rw-r--r-- | reproduce/software/make/python.mk | 7 | ||||
-rwxr-xr-x | reproduce/software/shell/configure.sh | 14 |
20 files changed, 66 insertions, 67 deletions
diff --git a/.file-metadata b/.file-metadata Binary files differindex 0daa3df..1cea790 100644 --- a/.file-metadata +++ b/.file-metadata diff --git a/README-hacking.md b/README-hacking.md index 82b40e3..c1efccc 100644 --- a/README-hacking.md +++ b/README-hacking.md @@ -321,17 +321,17 @@ variables/configurations) and _workhorse-Makefiles_ (Makefiles that actually contain analysis/processing rules). The configuration-Makefiles are those that satisfy these two wildcards: -`reproduce/software/config/installation/*.conf` (for building the necessary -software when you run `./project configure`) and -`reproduce/analysis/config/*.conf` (for the high-level analysis, when you -run `./project make`). These Makefiles don't actually have any rules, they -just have values for various free parameters throughout the configuration -or analysis. Open a few of them to see for yourself. These Makefiles must -only contain raw Make variables (project configurations). By "raw" we mean -that the Make variables in these files must not depend on variables in any -other configuration-Makefile. This is because we don't want to assume any -order in reading them. It is also very important to *not* define any rule, -or other Make construct, in these configuration-Makefiles. +`reproduce/software/config/*.conf` (for building the necessary software +when you run `./project configure`) and `reproduce/analysis/config/*.conf` +(for the high-level analysis, when you run `./project make`). These +Makefiles don't actually have any rules, they just have values for various +free parameters throughout the configuration or analysis. Open a few of +them to see for yourself. These Makefiles must only contain raw Make +variables (project configurations). By "raw" we mean that the Make +variables in these files must not depend on variables in any other +configuration-Makefile. This is because we don't want to assume any order +in reading them. It is also very important to *not* define any rule, or +other Make construct, in these configuration-Makefiles. Following this rule-of-thumb enables you to set these configure-Makefiles as a prerequisite to any target that depends on their variable @@ -372,9 +372,8 @@ Let's see how this design is implemented. Please open and inspect `top-make.mk` it as we go along here. The first step (un-commented line) is to import the local configuration (your answers to the questions of `./project configure`). They are defined in the configuration-Makefile -`reproduce/software/config/installation/LOCAL.conf` which was also built by -`./project configure` (based on the `LOCAL.conf.in` template of the same -directory). +`reproduce/software/config/LOCAL.conf` which was also built by `./project +configure` (based on the `LOCAL.conf.in` template of the same directory). The next non-commented set of the top `Makefile` defines the ultimate target of the whole project (`paper.pdf`). But to avoid mistakes, a sanity @@ -767,21 +766,21 @@ Other basic customizations - **High-level software**: The template installs all the software that your project needs. You can specify which software your project needs - in `reproduce/software/config/installation/TARGETS.conf`. The - necessary software are classified into two classes: 1) programs or - libraries (usually written in C/C++) which are run directly by the - operating system. 2) Python modules/libraries that are run within - Python. By default `TARGETS.conf` only has GNU Astronomy Utilities - (Gnuastro) as one scientific program and Astropy as one scientific - Python module. Both have many dependencies which will be installed - into your project during the configuration step. To see a list of - software that are currently ready to be built in the template, see - `reproduce/software/config/installation/versions.conf` (which has - their versions also), the comments in `TARGETS.conf` describe how to use - the software name from `versions.conf`. Currently the raw pipeline just - uses Gnuastro to make the demonstration plots. Therefore if you don't - need Gnuastro, go through the analysis steps in `reproduce/analysis` - and remove all its use cases (clearly marked). + in `reproduce/software/config/TARGETS.conf`. The necessary software + are classified into two classes: 1) programs or libraries (usually + written in C/C++) which are run directly by the operating system. 2) + Python modules/libraries that are run within Python. By default + `TARGETS.conf` only has GNU Astronomy Utilities (Gnuastro) as one + scientific program and Astropy as one scientific Python module. Both + have many dependencies which will be installed into your project + during the configuration step. To see a list of software that are + currently ready to be built in the template, see + `reproduce/software/config/versions.conf` (which has their versions + also), the comments in `TARGETS.conf` describe how to use the software + name from `versions.conf`. Currently the raw pipeline just uses + Gnuastro to make the demonstration plots. Therefore if you don't need + Gnuastro, go through the analysis steps in `reproduce/analysis` and + remove all its use cases (clearly marked). - **Input dataset**: The input datasets are managed through the `reproduce/analysis/config/INPUTS.conf` file. It is best to gather all @@ -856,7 +855,7 @@ Other basic customizations TeXLive comes (once every year), if you would like to build the paper, its necessary to update it in your project (otherwise the configure script will crash). To do that, just modify the years in - `reproduce/software/config/installation/texlive.conf`, then delete + `reproduce/software/config/texlive.conf`, then delete `.build/software/tarballs/install-tl-unx.tar.gz`. The next time you run `./project configure`, the new TeXLive will be installed and used. diff --git a/reproduce/software/config/gnuastro/astbuildprog.conf b/reproduce/analysis/config/gnuastro/astbuildprog.conf index 7adb4d1..7adb4d1 100644 --- a/reproduce/software/config/gnuastro/astbuildprog.conf +++ b/reproduce/analysis/config/gnuastro/astbuildprog.conf diff --git a/reproduce/software/config/gnuastro/astconvertt.conf b/reproduce/analysis/config/gnuastro/astconvertt.conf index 770ac39..770ac39 100644 --- a/reproduce/software/config/gnuastro/astconvertt.conf +++ b/reproduce/analysis/config/gnuastro/astconvertt.conf diff --git a/reproduce/software/config/gnuastro/aststatistics.conf b/reproduce/analysis/config/gnuastro/aststatistics.conf index 90f985d..90f985d 100644 --- a/reproduce/software/config/gnuastro/aststatistics.conf +++ b/reproduce/analysis/config/gnuastro/aststatistics.conf diff --git a/reproduce/software/config/gnuastro/gnuastro.conf b/reproduce/analysis/config/gnuastro/gnuastro.conf index 82cb100..82cb100 100644 --- a/reproduce/software/config/gnuastro/gnuastro.conf +++ b/reproduce/analysis/config/gnuastro/gnuastro.conf diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk index 2736f2a..c804aaf 100644 --- a/reproduce/analysis/make/initialize.mk +++ b/reproduce/analysis/make/initialize.mk @@ -313,8 +313,8 @@ $(packagecontents): paper.pdf | $(texdir) # have this machine's local settings and are irrelevant for anyone # else. rm -rf $$dir/tex/build/build* - rm $$dir/reproduce/software/config/installation/LOCAL.conf - rm $$dir/reproduce/software/config/gnuastro/gnuastro-local.conf + rm $$dir/reproduce/software/config/LOCAL.conf + rm $$dir/reproduce/analysis/config/gnuastro/gnuastro-local.conf # 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' diff --git a/reproduce/analysis/make/top-make.mk b/reproduce/analysis/make/top-make.mk index 30d537a..5461f71 100644 --- a/reproduce/analysis/make/top-make.mk +++ b/reproduce/analysis/make/top-make.mk @@ -21,7 +21,7 @@ # Load the local configuration (created after running # `./project configure'). -include reproduce/software/config/installation/LOCAL.conf +include reproduce/software/config/LOCAL.conf diff --git a/reproduce/analysis/make/top-prepare.mk b/reproduce/analysis/make/top-prepare.mk index 1778c6b..be7482c 100644 --- a/reproduce/analysis/make/top-prepare.mk +++ b/reproduce/analysis/make/top-prepare.mk @@ -25,7 +25,7 @@ # Load the local configuration (created after running # `./project configure'). -include reproduce/software/config/installation/LOCAL.conf +include reproduce/software/config/LOCAL.conf diff --git a/reproduce/software/config/installation/LOCAL.conf.in b/reproduce/software/config/LOCAL.conf.in index 0579218..0579218 100644 --- a/reproduce/software/config/installation/LOCAL.conf.in +++ b/reproduce/software/config/LOCAL.conf.in diff --git a/reproduce/software/config/installation/TARGETS.conf b/reproduce/software/config/TARGETS.conf index bb402be..00ce387 100644 --- a/reproduce/software/config/installation/TARGETS.conf +++ b/reproduce/software/config/TARGETS.conf @@ -18,7 +18,7 @@ # All software that are currently available for installation can be seen in # the following file. # -# reproduce/software/config/installation/versions.conf +# reproduce/software/config/versions.conf # # Please add any software that you need for your project in the respective # part below (using its name in `versions.conf', but without the `-version' diff --git a/reproduce/software/config/installation/checksums.conf b/reproduce/software/config/checksums.conf index 04327aa..37fe64d 100644 --- a/reproduce/software/config/installation/checksums.conf +++ b/reproduce/software/config/checksums.conf @@ -71,9 +71,9 @@ zlib-checksum = 73fd3fff4adeccd4894084c15ddac89890cd10ef105dd5e1835e1e9bbb6a49ff # ------------------------------------------ # # These are programs and libraries that are optional, The ones in -# `reproduce/software/config/installation/TARGETS.conf' will be built as -# part of a project. To specify a software there, just remove the -# `-checksum' suffix from the list below. +# `reproduce/software/config/TARGETS.conf' will be built as part of a +# project. To specify a software there, just remove the `-checksum' suffix +# from the list below. apachelog4cxx-checksum = aa59ce549c2c5cbeec031361dfce09cdfc3e62ee3bc9ecbc809507b7ec878c14409b98536b7d13c27690809c8e9d5ebafc3589c9fb5e4aecd5cc064943ae7d6b apr-checksum = daa140c83c7e2c45c3980d9dc81d34fa662bebd050653562c39572d0ddf2eaedb71767c518a59d77f59db9b32e00221ef48b9f72ec3666c4521dd511969f3706 apr-util-checksum = 84da76e9b64da2de0996d4d6f3ab3f23db3724eb6352d218e0e8196bcc0b0a5d4fe791f41b4cc350ce3d04cce3bb3cf8bfb513d777d0cd030928368e6b55a536 @@ -86,7 +86,7 @@ boost-checksum = 4378e20f18db9f186ac0f38ad98c522526e0fe48a8deb968c41325e3f69e733 cairo-checksum = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f cdsclient-checksum = 2d7abf0079189b9dd19cb8919061445fd19ea9f7dfd54e8ceee26b743218cf62ab00eba0147abe82d9294223927f04b4cc3328620dfc9184a7049f8d515b29e4 cfitsio-checksum = c0502699e266928dd25abe57730dc4b357ccc9023789fe745324ae01aa688516aceaf37321ee578f0430111d9718f0fec0dc5b54c07f935529560f00b32ce1e3 -cmake-checksum = 7d0abf2f7c661c6b555a7e93a2fce5ab5610c653b0aa4949bed6e97bfbe6523fd0665f67115d3944d3729cbe07ae3aaf780ee673b06dd80f90018cec8a999658 +cmake-checksum = f09440681e0c414f5ca669f3aeba6666d09e0642f30a2e12c3199e7fb3da95a7dd17994fc54475c49638c37f0502ea0a2d8da0f9098805f11088ba7b299bf72a eigen-checksum = 34cf600914cce719d61511577ef9cd26fbdcb7a6fad1d0ab8396f98b887fac6a5577d3967e84a8f56225cc50de38f3b91f34f447d14312028383e32b34ea1972 expat-checksum = 514ff2ef3c93af0b1715b7a08732db33c13a113c4c72422716a22ee26c09235deed71ec55510cee24c33bcd6b2347602bd71ce70a432d5583fb63765ff9e0e09 fftw-checksum = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38 diff --git a/reproduce/software/config/installation/numpy-scipy.cfg b/reproduce/software/config/numpy-scipy.cfg index 82cc1e1..82cc1e1 100644 --- a/reproduce/software/config/installation/numpy-scipy.cfg +++ b/reproduce/software/config/numpy-scipy.cfg diff --git a/reproduce/software/config/installation/texlive-packages.conf b/reproduce/software/config/texlive-packages.conf index 6760eba..6760eba 100644 --- a/reproduce/software/config/installation/texlive-packages.conf +++ b/reproduce/software/config/texlive-packages.conf diff --git a/reproduce/software/config/installation/texlive.conf b/reproduce/software/config/texlive.conf index b5075c6..b5075c6 100644 --- a/reproduce/software/config/installation/texlive.conf +++ b/reproduce/software/config/texlive.conf diff --git a/reproduce/software/config/installation/versions.conf b/reproduce/software/config/versions.conf index e61bcb5..0c2cd0b 100644 --- a/reproduce/software/config/installation/versions.conf +++ b/reproduce/software/config/versions.conf @@ -69,7 +69,7 @@ zlib-version = 1.2.11 # ------------------------------------------ # # These are programs and libraries that are optional, The ones in -# `reproduce/software/config/installation/TARGETS.conf' will be built as +# `reproduce/software/config/TARGETS.conf' will be built as # part of a project. To specify a software there, just remove the # `-version' suffix from the list below. apachelog4cxx-version = 0.10.0-603-014954db @@ -84,7 +84,7 @@ boost-version = 1.71.0 cairo-version = 1.16.0 cdsclient-version = 3.84 cfitsio-version = 3.47 -cmake-version = 3.15.3 +cmake-version = 3.17.0 eigen-version = 3.3.7 expat-version = 2.2.9 fftw-version = 3.3.8 @@ -218,4 +218,4 @@ wcslib-version = 6.4 # Minizip is installed as a part of `zlib', and they have the same version. zlib-version = 1.2.11 -minizip-version = $(zlib-version)
\ No newline at end of file +minizip-version = $(zlib-version) diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk index 47a01a3..17bb47a 100644 --- a/reproduce/software/make/basic.mk +++ b/reproduce/software/make/basic.mk @@ -33,10 +33,10 @@ # Top level environment +include reproduce/software/config/LOCAL.conf include reproduce/software/make/build-rules.mk -include reproduce/software/config/installation/LOCAL.conf -include reproduce/software/config/installation/versions.conf -include reproduce/software/config/installation/checksums.conf +include reproduce/software/config/versions.conf +include reproduce/software/config/checksums.conf lockdir = $(BDIR)/locks tdir = $(BDIR)/software/tarballs @@ -1334,12 +1334,14 @@ $(ibidir)/gcc: | $(ibidir)/binutils \ && cd ../.. \ && tempname=$$odir/gcc-$(gcc-version)/build/rpath-temp-copy \ && if [ "x$(on_mac_os)" != xyes ]; then \ - patchelf --add-needed $(ildir)/libiconv.so $(ildir)/libstdc++.so; \ for f in $$(find $(idir)/libexec/gcc) $(ildir)/libstdc++*; do \ isdynamic=$$(file $$f | grep "dynamically linked"); \ if [ x"$$isdynamic" != x ]; then \ cp $$f $$tempname; \ patchelf --set-rpath $(ildir) $$tempname; \ + if [ "$$f" = $(ildir)/libstdc++.so ]; then \ + patchelf --add-needed $(ildir)/libiconv.so $$tempname; \ + fi; \ mv $$tempname $$f; echo "corrected"; \ fi; \ done; \ diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index b0847a9..ef4dd4c 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -27,12 +27,12 @@ # Top level environment +include reproduce/software/config/LOCAL.conf include reproduce/software/make/build-rules.mk -include reproduce/software/config/installation/LOCAL.conf -include reproduce/software/config/installation/TARGETS.conf -include reproduce/software/config/installation/versions.conf -include reproduce/software/config/installation/checksums.conf -include reproduce/software/config/installation/texlive-packages.conf +include reproduce/software/config/TARGETS.conf +include reproduce/software/config/versions.conf +include reproduce/software/config/checksums.conf +include reproduce/software/config/texlive-packages.conf lockdir = $(BDIR)/locks tdir = $(BDIR)/software/tarballs @@ -1069,7 +1069,7 @@ $(ibidir)/minizip: $(ibidir)/automake \ && rm $(iidir)/minizip/crypt.h \ && cd ../../.. \ && rm -rf $$unpackdir \ - && echo "Minizip $(minizip)" > $@ + && echo "Minizip $(minizip-version)" > $@ $(ibidir)/missfits: | $(tdir)/missfits-$(missfits-version).tar.gz $(call gbuild, missfits-$(missfits-version), static) \ @@ -1222,7 +1222,6 @@ $(ibidir)/xlsxio: $(ibidir)/cmake \ - # Since we want to avoid complicating the PATH, we are putting a symbolic # link of all the TeX Live executables in $(ibdir). But symbolic links are # hard to track for Make (as a target). Also, TeX in general is optional @@ -1242,7 +1241,7 @@ $(ibidir)/xlsxio: $(ibidir)/cmake \ tlmirror=http://mirrors.rit.edu/CTAN/systems/texlive/tlnet # The core TeX Live system. -$(itidir)/texlive-ready-tlmgr: reproduce/software/config/installation/texlive.conf \ +$(itidir)/texlive-ready-tlmgr: reproduce/software/config/texlive.conf \ | $(tdir)/install-tl-unx.tar.gz # Unpack, enter the directory, and install based on the given @@ -1253,7 +1252,7 @@ $(itidir)/texlive-ready-tlmgr: reproduce/software/config/installation/texlive.co tar xf $(tdir)/install-tl-unx.tar.gz cd install-tl-* sed -e's|@installdir[@]|$(idir)|g' \ - $$topdir/reproduce/software/config/installation/texlive.conf \ + $$topdir/reproduce/software/config/texlive.conf \ > texlive.conf # TeX Live's installation may fail due to any reason. But TeX Live @@ -1294,7 +1293,7 @@ $(itidir)/texlive-ready-tlmgr: reproduce/software/config/installation/texlive.co #else #forbiber = $(ibidir)/libnsl #endif -$(itidir)/texlive: reproduce/software/config/installation/texlive-packages.conf \ +$(itidir)/texlive: reproduce/software/config/texlive-packages.conf \ $(itidir)/texlive-ready-tlmgr \ $(forbiber) diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk index a1d198d..1ef1bf2 100644 --- a/reproduce/software/make/python.mk +++ b/reproduce/software/make/python.mk @@ -393,7 +393,7 @@ $(ipydir)/astropy: $(ipydir)/h5py \ # Currently, when the Expat library is already built in a project # (for example as a dependency of another program), Astropy's # internal building of Expat will conflict with the project's. So - # we have added Expat as a dependency of astropy (so it is always + # we have added Expat as a dependency of Astropy (so it is always # built before it, and we tell Astropy to use the project's # libexpat. pyhook_before () { @@ -599,7 +599,8 @@ $(ipydir)/numpy: $(ibidir)/unzip \ else \ export LDFLAGS="$(LDFLAGS) -shared"; \ fi; \ - conf="$$(pwd)/reproduce/software/config/installation/numpy-scipy.cfg"; \ + export CFLAGS="--std=c99 $$CFLAGS"; \ + conf="$$(pwd)/reproduce/software/config/numpy-scipy.cfg"; \ $(call pybuild, unzip, numpy-$(numpy-version),$$conf, \ Numpy $(numpy-version)) \ && cp $(dtexdir)/numpy.tex $(ictdir)/ \ @@ -678,7 +679,7 @@ $(ipydir)/scipy: $(ipydir)/numpy \ else \ export LDFLAGS="$(LDFLAGS) -shared"; \ fi; \ - conf="$$(pwd)/reproduce/software/config/installation/numpy-scipy.cfg"; \ + conf="$$(pwd)/reproduce/software/config/numpy-scipy.cfg"; \ $(call pybuild, tar xf, scipy-$(scipy-version),$$conf) \ && cp $(dtexdir)/scipy.tex $(ictdir)/ \ && echo "Scipy $(scipy-version) \citep{scipy2007,scipy2011}" > $@ diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh index cf2ef5d..4eefe7b 100755 --- a/reproduce/software/shell/configure.sh +++ b/reproduce/software/shell/configure.sh @@ -36,15 +36,13 @@ optionaldir="/optional/path" adir=reproduce/analysis/config cdir=reproduce/software/config -sbdir=$cdir/installation - -pconf=$sbdir/LOCAL.conf -ptconf=$sbdir/LOCAL_tmp.conf -poconf=$sbdir/LOCAL_old.conf -depverfile=$cdir/installation/versions.conf -depshafile=$cdir/installation/checksums.conf +pconf=$cdir/LOCAL.conf +ptconf=$cdir/LOCAL_tmp.conf +poconf=$cdir/LOCAL_old.conf +depverfile=$cdir/versions.conf +depshafile=$cdir/checksums.conf # --------- Delete for no Gnuastro --------- -glconf=$cdir/gnuastro/gnuastro-local.conf +glconf=$adir/gnuastro/gnuastro-local.conf # ------------------------------------------ |