On 8 May 2015 at 13:40, Juan Quintela <quint...@redhat.com> wrote: > Currently, it exits until each error, so if you are installing on a new > machine, it requires lots of configure runs until you get all the > dependencies that you need. With this change, it shows all the errors > with the selected configured options. > > Signed-off-by: Juan Quintela <quint...@redhat.com> > --- > configure | 11 ++++++++++- > 1 file changed, 10 insertions(+), 1 deletion(-) > > diff --git a/configure b/configure > index b18aa9e..1d7966b 100755 > --- a/configure > +++ b/configure > @@ -38,6 +38,8 @@ printf " '%s'" "$0" "$@" >> config.log > echo >> config.log > echo "#" >> config.log > > +has_errors="no" > + > error_exit() { > echo > echo "ERROR: $1" > @@ -46,7 +48,7 @@ error_exit() { > shift > done > echo > - exit 1 > + has_errors="yes" > }
This will cause problems in some cases which assume that they're protected by an error_exit, or which at least will cause a lot of spurious errors later on: * python version check assumes python exists * you really want to bail out early if the C compiler test fails * not having pkg-config is going to cause a lot of follow-on errors Also it makes the function name pretty misleading. I would suggest changing this function to just error, and having error_exit for the few cases where we really do want to bail out early. > + > +if [ "x$has_errors" == "xyes" ]; then The POSIX shell string equality operator is "=". "==" is a bashism and won't work on other shells. Also, you don't need the 'x' here, so if [ "$has_errors" = "yes" ]; then will do. > + echo "There are errors with this configuration. Exiting." > + exit 1; > +fi As per discussion on IRC, this should go further up. thanks -- PMM