diff --git a/lib/dunemodules.lib b/lib/dunemodules.lib index 1ede7b15a77377cf2e7ac0c55d0e006702ef2ba0..332692003c7adac7271b3474e31a57b49b366829 100644 --- a/lib/dunemodules.lib +++ b/lib/dunemodules.lib @@ -260,6 +260,14 @@ _check_deps() local module="$1" local mode="$2" local depmode="$3" + local report="ERROR" + local requires="requires" + local required="required" + if test "x$mode" = "xSUGS"; then + report="WARNING" + requires="suggests" + required="suggested" + fi eval deps=\$${mode}_$module #initially remove leading space deps=`echo ${deps//^[, ]}` @@ -288,28 +296,40 @@ _check_deps() if test "x$(eval echo \$HAVE_$dep)" != "x"; then eval ver=\$VERS_$dep if test "$SKIPVERSIONCHECK" != "yes" && ! check_version "$ver" "$depver"; then - echo "ERROR: version mismatch." >&2 - echo " $modname requires $name $depver," >&2 + echo "$report: version mismatch." >&2 + echo " $modname $requires $name $depver," >&2 echo " but only $name = $ver is available." >&2 - exit 1 + if test "x$mode" = "xDEPS"; then + exit 1 + else + return 0; + fi fi _sort_module $dep $depmode else # perhaps this module is installed, # then it should be handled via pkg-config if ! pkg-config $name; then - echo "ERROR: could not find module $name," >&2 + echo "$report: could not find module $name," >&2 echo " module is also unknown to pkg-config." >&2 echo " Maybe you need to adjust PKG_CONFIG_PATH!" >&2 - echo " $name is required by $modname" >&2 - exit 1 + echo " $name is $required by $modname" >&2 + if test "x$mode" = "xDEPS"; then + exit 1 + else + return 0; + fi else eval ver=$(pkg-config $name --modversion) if test "$SKIPVERSIONCHECK" != "yes" && ! check_version "$ver" "$depver"; then - echo "ERROR: version mismatch." >&2 - echo " $modname requires $name $depver," >&2 + echo "$report: version mismatch." >&2 + echo " $modname $requires $name $depver," >&2 echo " but only $name = $ver is installed." >&2 - exit 1 + if test "x$mode" = "xDEPS"; then + exit 1 + else + return 0; + fi fi # update module list parse_control $(pkg-config $name --variable=prefix)/lib/dunecontrol/$name/dune.module