aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/make
AgeCommit message (Collapse)AuthorLines
2019-04-30End-of-line Backslashs no longer right under each otherMohammad Akhlaghi-756/+759
When we need to quote the new-line character we end the line with a backslash (`\'). Until now, our convention has been to put all such backslashes under each other to help in visual inspection. But this causes a lot of confusion in version control: if only one line's length is larger, the whole block will be marked as changed and thus makes it hard to visually see the actual change. It also makes debuging the code (adding some temporary lines) hard. With this commit, I went through all the files and tried to fix all such cases so only a single white space character is between the last command character and the backslash. Where there was an empty line (ending with a backslash, to help in visually separating the code into blocks), I put the backslash right under the previous line's. This completes task #15259.
2019-04-30Running PatchELF on all programs after CoreutilsMohammad Akhlaghi-13/+33
Even though the Coreutils configure script says that it adds `rpath' to its executables, its executables don't have it. As a result, it goes to use the host operating system libraries, causing failures when they don't match with the template. Unfortunately after some tests with the configure script, I couldn't find any way to include `rpath'! Even though `-rpath-link' is present in all linking commands during Coreutils' build, the installed files still don't have it! So I was forced to use PatchELF. However, one problem is that Coreutils installs many programs, not just one like Bash or AWK. As a brute-force solution, with this commit, we are running PatchELF on all the installed programs. It won't hurt those that already have it, but it will fix all those that don't. With this commit, I am also making the following non-related small changes: - In `build-rules.mk', the `&&' characters were placed at the start of the line for better readability. - Bash, Readline and NCURSES are now built in parallel on systems that support it (during `basic.mk').
2019-04-24Imported work on mpmath, SymPy and sip_tpv, no conflictsMohammad Akhlaghi-0/+26
There wasn't any conflict in this merge.
2019-04-24Added paper citation of sip_tpv Python packageRaul Infante-Sainz-4/+6
Until now, we were not citing the paper of `sip_tpv' package. With this commit, we have been fix this issue.
2019-04-23Python package sip_tpv added into the templateRaul Infante-Sainz-0/+8
With this commit, we add `sip_tpv' Python package into the template. This is a small package to convert SIP distorsion coefficients into PV distorsion coefficients, and the other way around. This package is useful in a astronomical context, specially when `swarp' is going to be used in order to resample images. The reason is that `swarp' only can understand PV distorsion coefficients.
2019-04-23Python package SymPy added into the templateRaul Infante-Sainz-5/+5
With this commit, we add `sympy' Python package into the template. This is a package to do symbolic mathematics. The motivation is that it is a prerequisite of `sip_tpv' Python package, which is useful to convert SIP distorsion coefficients into PV coefficients (in the context of astronomical images). However, the availability of `sympy' in the template will be useful for anyone interested in this package.
2019-04-23Python package mpmath added into the templateRaul Infante-Sainz-0/+16
With this commit, we add `mpmath' Python package into the template. This package is a prerequisite of `sympy', a package to do symbolic mathematics. The motivation of adding this package is because it is a dependency of `sympy', which is more widely used into the Python science community.
2019-04-23Bash updated with patched tarball (version 5.0.7)Mohammad Akhlaghi-3/+25
Until now we were using the official tarball of GNU Bash. However, Bash is distributed using patches, not a public version controlled history. So to implement newer features of Bash, its necessary to apply those patches and make the tarball ourselves. With this commit, we have done just that: we used the 7 patches that have been released since version 5.0.0 and made a tarball to use for this template. The instructions on how to make the patched tarball are also given above the Bash build rule.
2019-04-23Awk, coreutils and sed are now prerequisites of metastoreRaul Infante-Sainz-2/+9
Until now, `metastore' did not depend on the necessaries programs that we use to install it (`awk', `coreutils' and `sed'). They are not official dependencies of `metastore', but we need them to install it. With this commit, we put these programs as prerequisites of `metastore' in order to be able to install it without any problem.
2019-04-22High-level software now specified in TARGETS.mkMohammad Akhlaghi-135/+122
Until now, to specify which high-level software you want the project to contain, it was necessary to go into the `high-level.mk' Makefile that is complicated and can create bugs. With this commit, a new `reproduce/software/config/installation/TARGETS.mk' file has been created that is easily/cleanly in charge of documenting the final high-level software that must be built for the project. Also, until now, FFTW was set as a dependency of Numpy while we couldn't actually get Numpy to use it! It was just there for future reference and to justify its build rule. But now that many software won't be built and there is no problem with having rules even though a project might not use them, it has been removed.
2019-04-22Git, Metastore, cURL and Libbsd moved to basic softwareMohammad Akhlaghi-119/+126
Git and Metastore are very basic and fundamental tools for the template, so to keep things clean (let the `high-level.mk' software only represent optional software in the template), these two software (and their dependencies: `cURL' and `Libbsd') will now be built in `basic.mk'.
2019-04-22Removed ATLAS as a prerequisite of ScampRaul Infante-Sainz-4/+12
Until this commit, ATLAS was a prerequisite of Scamp. The documentation says that. However, we have been able to install Scamp without having ATLAS installed. As a consecuence, ATLAS does not have to be a prerequisite of Scamp anymore. With this commit, we remove ATLAS as prerequisite of Scamp. We also put available software in the template as optional because not all people are going to use these software.
2019-04-22SCAMP and cdsclient have been added into the projectRaul Infante-Sainz-5/+44
With this commit, we add SCAMP into the project. This program is part of the Astromatic software and the main purpose is to make the fine astrometry and the distorsion correction astronomical images. In principle, SCAMP needs ATLAS library to be able to work (that is what the documentation says). However, we had some problems with ATLAS libraries on Mac OS system, and due to that, we set the option `--enable-openblas' in the configure step. By doing that, we are be able to install SCAMP with no problems. One dependency of SCAMP is `cdsclient', it has been also added with this commit. The `cdsclient' package is a set of C and shell routines which can be built on Unix stations or PCs running Linux, which once compiled allow to query some databases located at CDS or on mirrors over the network.
2019-04-17SExtractor is now included into the projectRaul Infante-Sainz-1/+18
With this commit, we add SExtractor to be installed into the project. It is a widely used program to detect object and build catalogues from astronomical images. We had some problems when installing it because it could not link with some ATLAS libraries. But, since we have OpenBLAS installed, we can use it to override the problem with ATLAS.
2019-04-17SWarp is now into the pipelineRaul Infante-Sainz-16/+25
SWarp resamples and co-adds together FITS images using any arbitrary astrometric projection defined in the WCS standard. It is a very useful program for astronomy and that is why we added it to the pipeline. With this commit, we also cite the paper for Astrometry-net that until now was missing.
2019-04-16Binutils is built on GNU/Linux as GCC dependency, not in MAC OSRaul Infante-Sainz-0/+2
Until this commit, we didn't install Binutils. However, we need `strip' for installing Netpbm, and `strip' is part of the Binutil software. With this commit, we include Binutils as a dependency of GCC for GNU/Linux systems. For Mac OS systems we create a symbolic link to `strip' just after the generation of the symbolic link to `gcc'.
2019-04-16Typo corrections in Astrometry-net dependency rulesRaul Infante-Sainz-14/+14
Due to the copy/paste of rules from other files, in some rules there were some spaces insteand of tab. There were also a lack of semicolon in the building of CC, and bad extensions in various tarballs. With this commit, all of these typos have been fixed.
2019-04-16Astrometry-net and all its dependencies are now in the projectRaul Infante-Sainz-6/+45
With this commit, we include Astrometry-net software and one remaining dependency of it (Swig). In principle it should work as far as we tested all of this software in GNU/Linux, but we need to test also in Mac OS. As a result, this commit is just for setting all the rules and dependencies, but more tests are necessaries to ensure it works properly, specially in Mac OS systems.
2019-04-16Netpbm and its dependencies are now includedRaul Infante-Sainz-11/+50
With this commit, the installation of `netpbm' has been included. This software has a crazy dialogue installation that we override by giving to it the answers (they differs on GNU/Linux and Mac OS systems). `libxml2' also has been built (a remaining dependency of `netpbm'). In this commit, `libpng' version has been downgraded because it is required by `netpbm'. The motivation of installing `netpbm' is that it is a dependency of Astrometry-net software.
2019-04-16CC symbolic link to GCC built after GCC installationRaul Infante-Sainz-0/+2
Until now, we did not have CC. This is an obsolete way of calling C Compiler, nowadays it is GCC. However, there could be some software that is still using this convention (for example, `netpbm'). With this commit, we make the symbolic link `cc' pointing to the installed `gcc'.
2019-04-16Cairo library and its dependency Pixman, are now includedRaul Infante-Sainz-1/+16
In this commit we add Cairo library. The motivation of including this library is because it is a dependency of Astrometry-net (which is a common software used in astronomy projects). In principle it will not be build by default by de pipeline, but we will keep the rule just in case it is needed. Pixman is another library which is a prerequisite of Cairo, it is also built with this commit.
2019-04-16Symbolic link to Python created, using `python' instead of `pythonX'Raul Infante-Sainz-9/+10
Until this commit, we were using `python3' when calling Python (because we were using Python version 3.6.8). This will force us to change the name in the future. For example, when `python4' were available and into the pipeline. With this commit, at the end of the Python installation it creates a symbolic link to the Python bin executable with the new name `python'. As a consecuence, whatever version of Python was installed, into the project we will use allways `python' to invoke it.
2019-04-15New architecture to separate software-building and analysis stepsMohammad Akhlaghi-0/+2375
Until now, the software building and analysis steps of the pipeline were intertwined. However, these steps (of how to build a software, and how to use it) are logically completely independent. Therefore with this commit, the pipeline now has a new architecture (particularly in the `reproduce' directory) to emphasize this distinction: The `reproduce' directory now has the two `software' and `analysis' subdirectories and the respective parts of the previous architecture have been broken up between these two based on their function. There is also no more `src' directory. The `config' directory for software and analysis is now mixed with the language-specific directories. Also, some of the software versions were also updated after some checks with their webpages. This new architecture will allow much more focused work on each part of the pipeline (to install the software and to run them for an analysis).