GNU Astronomy Utilities



11 Makefile extensions (for GNU Make)

Make is a build automation tool. It can greatly help manage your analysis workflow, even very complex projects with thousands of files and hundreds of processing steps. In this book, we have discussed Make previously in the context of parallelization (see How to run simultaneous operations). For example, Maneage uses Make to organize complex and reproducible workflows, see Akhlaghi et al. 2021.

GNU Make is the most common and powerful implementation of Make, with many unique additions to the core POSIX standard of Make. One of those features is the ability to add extensions using a dynamic library (that Gnuastro provides). For the details of this feature from GNU Make’s own manual, see its Loading dynamic objects section. Through this feature, Gnuastro provides additional Make functions that are useful in the context of data analysis.

To use this feature, Gnuastro has to be built in shared library more. Gnuastro’s Make extensions will not work if you build Gnuastro without shared libraries (for example, when you configure Gnuastro with --disable-shared or --debug).