Until now, "configure" was willing to accept anything as the OVS source and build directory, but obviously only an actual OVS source or build directory will actually work. This commit adds some basic checking.
In addition, this changes relative paths so that they are relative to the current working directory when "configure" is invoked, instead of relative to the location of the "configure" script. This is less surprising. Finally, this moves the `eval echo "$dir"` lines up higher so that they do their intended job of expanding ~ in the right place. That has to happen early, otherwise, ~/foo will effectively end up as $PWD/\~/foo. Signed-off-by: Ben Pfaff <[email protected]> --- acinclude.m4 | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 31e4f0b5413f..9dfed9034910 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1220,32 +1220,37 @@ AC_DEFUN([OVN_CHECK_OVS], [ AC_MSG_CHECKING([for OVS source directory]) if test X"$with_ovs_source" != X; then - OVSDIR=$with_ovs_source + OVSDIR=`eval echo "$with_ovs_source"` case $OVSDIR in /*) ;; - *) OVSDIR=$ac_abs_confdir/$OVSDIR ;; + *) OVSDIR=`pwd`/$OVSDIR ;; esac + if test ! -f "$OVSDIR/vswitchd/bridge.c"; then + AC_ERROR([$OVSDIR is not an OVS source directory]) + fi else - AC_ERROR([OVS source dir path needs to be specified]) + AC_ERROR([OVS source dir path needs to be specified (use --with-ovs-source)]) fi - OVSDIR=`eval echo "$OVSDIR"` AC_MSG_RESULT([$OVSDIR]) AC_SUBST(OVSDIR) AC_MSG_CHECKING([for OVS build directory]) if test X"$with_ovs_build" != X; then - OVSBUILDDIR=$with_ovs_build + OVSBUILDDIR=`eval echo "$with_ovs_build"` case $OVSBUILDDIR in /*) ;; - *) OVSBUILDDIR=$ac_abs_confdir/$OVSBUILDDIR ;; + *) OVSBUILDDIR=`pwd`/$OVSBUILDDIR ;; esac - else + if test ! -f "$OVSBUILDDIR/config.h"; then + AC_ERROR([$OVSBUILDDIR is not a configured OVS build directory]) + fi + elif test -f "$OVSDIR/config.h"; then # If separate build dir is not specified, use src dir. OVSBUILDDIR=$OVSDIR + else + AC_ERROR([OVS source dir $OVSDIR is not configured as a build directory (either run configure there or use --with-ovs-build to point to the build directory)]) fi - - OVSBUILDDIR=`eval echo "$OVSBUILDDIR"` AC_MSG_RESULT([$OVSBUILDDIR]) AC_SUBST(OVSBUILDDIR) ]) -- 2.21.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
