aboutsummaryrefslogtreecommitdiff
path: root/reproduce/src/make/dependencies.mk
AgeCommit message (Collapse)AuthorLines
2018-11-14Configuration stops if a dependency cannot be builtMohammad Akhlaghi-26/+1
Until now, we used semicolons in Make's Call function definitions to build the programs with GNU build system or CMake. Therefore, if any step of the process failed, the rest would be ignorant to it and pass. Now, we use `&&' to separate the different processing steps. In this way, we can be sure that if any of them fails (during configuration, or building for example), the pipeline will also stop and not continue to the next command (in the same recipe). Since the two Make Call functions were identical in the two `dependencies-basic.mk' and `dependencies.mk', they are now in one file to be imported in both. This bug was found by Raul Infante Sainz.
2018-11-14./configure and building of Bash and Make with more basic toolsMohammad Akhlaghi-30/+4
After a test by Raúl Infante Sainz, we found out that the configure script and the Make script for Bash and Make are making too many assumptions on more recent versions of both. As a result, it couldn't be built. Therefore, the `configure' script was modified to not use more recent tools like `readlink' (to find the absolute address of a relative one). It was also re-organized to not have to read the configuration parameters from a text file. The parameters are directly read from the command-line and are written into the proper file afterwards. This removes the need to opening a text editor by the user (which also caused problems on Raúl's system). To fix the Make version issue, the building of Bash and Make are now done in a new Makefile (`reproduce/src/make/dependencies-basic.mk'). This file doesn't make many of the assumptions that were made in `dependencies.mk'. So it should hopefully work on any version of Make. To help in debugging, for now, the Makefile of configure, are asked to work on one thread (the `-j' option is commented in the `configure'). But after checks, we'll fix this.
2018-11-13Most library versions are now also checkedMohammad Akhlaghi-28/+37
All the libraries that define their version string as a macro in their headers are now also checked in `reproduce/src/make/initialize.mk'. Also, the CFITSIO tarball now follows the same versioning style as the rest of the tarballs: a script is added to convert the version string into what is included in the tarball.
2018-11-12Corrected CFITSIO building recipeMohammad Akhlaghi-1/+1
We were mistakenly using GSL's name for the unpacked tarball.
2018-11-12Libcurl, Git, CMake, TIFF, Zlib also built at configure timeMohammad Akhlaghi-87/+116
During the configuration step several new programs that were necessary for a more complete controlled environment are now also downloaded and built statically.
2018-11-12Added tarball host webp addresses for downloadMohammad Akhlaghi-12/+15
The host web address of most of the necessary packages was blank (filled with `WWWWWWWWWWWWWWWW' as a place holder). They now point to the correct webpages.
2018-11-12Dependencies built at the start of the pipelineMohammad Akhlaghi-0/+254
To enable easy/proper reproduction of results, all the high-level dependencies are now built within the pipeline and installed in a fixed directory that is added to the PATH of the Makefile. This includes GNU Bash and GNU Make, which are then used to run the pipeline. The `./configure' script will first build Bash and Make within itself, then it will build All the dependencies are also built to be static. So after they are built, changing of the system's low-level libraries (like C library) won't change the tarballs. Currently the C library and C compiler aren't built within the pipeline, but we'll hopefully add them to the build process also. With this change, we now have full control of the shell and Make that will be used in the pipeline, so we can safely remove some of the generalities we had before.