After some misuse I noticed that autoconf, when an option requiring a
path is passed, tries to build with the default value ('yes') for that
option as the path. i.e. `--with-buid-sysroot` missing an argument will
set sysroot to 'yes', and thus will do weird things like trying to
include 'yes/usr/include'.

Since traditionally unix tools, i.e. programs using getopt_long(), have
the tradition to accept syntaxes like `--option value` and
`--option=value` as interchangeable, it gets prone to errors if the
person is unaware autoconf handles long options differently, leading to
problems of the same nature, i.e.
`--with-build-sysroot /path/to/sysroot` rather than
`--with-build-sysroot=/path/to/sysroot`.

To avoid builds that will surely break in the middle, fail when such
configure option is passed without a valid path. This patch series
implements such validation to all options described by top level's
`./configure --help`, both in the top-level and on subdirs.

Agatha Isabelle Moreira (7):
  configure: Stop when `--with-build-sysroot` is passed without argument
  configure: Stop when --with-mpc{,-include,-lib} has no argument
  configure: Stop when --with-mpfr{,-include,-lib} has no argument
  configure: Stop when --with-gmp{,-lib,-include} has no argument
  configure: Stop when --with-isl has no arguent
  configure: Stop when --with-isl-{lib,include} has no argument
  configure: Stop when --with-target-bdw-gc{,-lib,-include} has no arg

 config/isl.m4        |  8 ++++++++
 configure            | 37 ++++++++++++++++++++++++++++++++++++-
 configure.ac         | 29 ++++++++++++++++++++++++++++-
 gcc/configure        |  9 ++++++---
 gcc/configure.ac     |  5 ++++-
 libga68/configure    |  6 ++++++
 libga68/configure.ac |  6 ++++++
 libobjc/configure    |  6 ++++++
 libobjc/configure.ac |  6 ++++++
 9 files changed, 106 insertions(+), 6 deletions(-)

-- 
2.54.0

Reply via email to