Caltech-IPAC/Montage

Makefiles do not stop on error

Closed this issue · 1 comments

A compilation error is not propagated in the current Makefile system due to the currently used Makefile syntax, f.e.

Montage/util/Makefile

Lines 1 to 4 in 31e56d3

all:
-(cd Calibrate; make; make install)
-(cd CatMap; ./Configure.sh; make; make install)
-(cd CatSearch; make; make install)

  • commands are executed in a subshell and concatenated with ; instead of &&
  • command lines are start with -, causing ignorance of any error code

Together with missing build time tests, it is practically impossible to find out whether a compilation was successful, especially not in an automated way. This makes it very hard to package Montage for Debian and other systems: We use an automated build system for ~24 architectures, with automated rebuilds on ABI changes, and with automated builds on downstream distributions (like Ubuntu or Mint).

Would it be possible to change the build system so that it stops on error?

This topic was basically brought up by people wanting to cross compile Montage. They opened the bug Debian#915163 for the Debian package.

Makefiles changed.