@@ -1,45 +1,8 @@
#!/bin/sh
-# prevent shift error
-[ $# -lt 2 ] && exit 1
+readversion() {
+ "$1" --version |
+ sed -r -e '/.* ([[:digit:]]+\.[[:digit:]]+).*$/!d;' -e 's//\1/'
+}
-major_min="${1%.*}"
-minor_min="${1#*.}"
-
-shift
-
-for candidate; do
-
- # Try to locate the candidate. Discard it if not located.
- cmake=`which "${candidate}" 2>/dev/null`
- [ -n "${cmake}" ] || continue
-
- # Extract version X.Y from versions in the form X.Y or X.Y.Z
- # with X, Y and Z numbers with one or more digits each, e.g.
- # 3.2 -> 3.2
- # 3.2.3 -> 3.2
- # 3.2.42 -> 3.2
- # 3.10 -> 3.10
- # 3.10.4 -> 3.10
- # 3.10.42 -> 3.10
- # Discard the candidate if no version can be obtained
- version="$(${cmake} --version \
- |sed -r -e '/.* ([[:digit:]]+\.[[:digit:]]+).*$/!d;' \
- -e 's//\1/'
- )"
- [ -n "${version}" ] || continue
-
- major="${version%.*}"
- minor="${version#*.}"
-
- if [ ${major} -gt ${major_min} ]; then
- echo "${cmake}"
- exit
- elif [ ${major} -eq ${major_min} -a ${minor} -ge ${minor_min} ]; then
- echo "${cmake}"
- exit
- fi
-done
-
-# echo nothing: no suitable cmake found
-exit 1
+. "$(dirname "$(readlink -e "$0")")"/versioncheck.sh
@@ -1,37 +1,8 @@
#!/bin/sh
-# prevent shift error
-[ $# -lt 2 ] && exit 1
+readversion() {
+ "$1" --version 2>&1 |
+ sed -e 's/^.* \([0-9\.]\)/\1/g' -e 's/[-].*//g' -e '1q'
+}
-major_min="${1%.*}"
-minor_min="${1#*.}"
-
-shift
-
-# The host make program is already checked by dependencies.sh but we
-# want to check the version number even if Buildroot is able to use
-# GNU make >= 3.81 but some packages may require a more recent version.
-make="$1"
-
-# Output of 'make --version' examples:
-# GNU Make 4.2.1
-# GNU Make 4.0
-# GNU Make 3.81
-version=`$make --version 2>&1 | sed -e 's/^.* \([0-9\.]\)/\1/g' -e 's/[-\
-].*//g' -e '1q'`
-
-major=`echo "$version" | cut -d. -f1`
-minor=`echo "$version" | cut -d. -f2`
-
-if [ $major -lt $major_min ]; then
- # echo nothing: no suitable make found
- exit 1
-fi
-
-if [ $major -eq $major_min -a $minor -lt $minor_min ]; then
- # echo nothing: no suitable make found
- exit 1
-fi
-
-# valid
-echo $make
+. "$(dirname "$(readlink -e "$0")")"/versioncheck.sh
@@ -1,45 +1,5 @@
#!/bin/sh
-# prevent shift error
-[ $# -ge 2 ] && [ -n "$1" ] || exit 1
-
-split_version() {
- local VARPREFIX
- local NUMBERS
- local major
- local minor
-
- VARPREFIX=$1
- NUMBERS=$2
-
- major=${NUMBERS%%\.*}
- NUMBERS=${NUMBERS#$major}; NUMBERS=${NUMBERS#\.}
- minor=${NUMBERS%%\.*}
- NUMBERS=${NUMBERS#$minor}; NUMBERS=${NUMBERS#\.}
-
- # ensure that missing values are 0
- eval "${VARPREFIX}_major=\$major; ${VARPREFIX}_minor=\$((minor + 0)); ${VARPREFIX}_bugfix=\$((NUMBERS + 0));"
+readversion() {
+ "$1" --version
}
-
-split_version req "$1"
-
-shift
-
-for candidate; do
-
- # Try to locate the candidate. Discard it if not located.
- tool=$(which "${candidate}" 2>/dev/null)
- [ -n "${tool}" ] || continue
-
- split_version cur "$("${tool}" --version)"
-
- [ -n "${cur_major}" -a "${cur_major}" -ge "${req_major}" ] || continue
- [ "${cur_major}" -gt "${req_major}" ] || [ "${cur_minor}" -ge "${req_minor}" ] || continue
- [ "${cur_minor}" -gt "${req_minor}" ] || [ "${cur_bugfix}" -ge "${req_bugfix}" ] || continue
-
- echo "${tool}"
- exit
-done
-
-# echo nothing: no suitable tool found
-exit 1
@@ -1,45 +1,5 @@
#!/bin/sh
-# prevent shift error
-[ $# -ge 2 ] && [ -n "$1" ] || exit 1
-
-split_version() {
- local VARPREFIX
- local NUMBERS
- local major
- local minor
-
- VARPREFIX=$1
- NUMBERS=$2
-
- major=${NUMBERS%%\.*}
- NUMBERS=${NUMBERS#$major}; NUMBERS=${NUMBERS#\.}
- minor=${NUMBERS%%\.*}
- NUMBERS=${NUMBERS#$minor}; NUMBERS=${NUMBERS#\.}
-
- # ensure that missing values are 0
- eval "${VARPREFIX}_major=\$major; ${VARPREFIX}_minor=\$((minor + 0)); ${VARPREFIX}_bugfix=\$((NUMBERS + 0));"
+readversion() {
+ "$1" --version
}
-
-split_version req "$1"
-
-shift
-
-for candidate; do
-
- # Try to locate the candidate. Discard it if not located.
- tool=$(which "${candidate}" 2>/dev/null)
- [ -n "${tool}" ] || continue
-
- split_version cur "$("${tool}" --version)"
-
- [ -n "${cur_major}" -a "${cur_major}" -ge "${req_major}" ] || continue
- [ "${cur_major}" -gt "${req_major}" ] || [ "${cur_minor}" -ge "${req_minor}" ] || continue
- [ "${cur_minor}" -gt "${req_minor}" ] || [ "${cur_bugfix}" -ge "${req_bugfix}" ] || continue
-
- echo "${tool}"
- exit
-done
-
-# echo nothing: no suitable tool found
-exit 1
new file mode 100755
@@ -0,0 +1,45 @@
+#!/bin/sh
+
+# prevent shift error
+[ $# -ge 2 ] && [ -n "$1" ] || exit 1
+
+split_version() {
+ local VARPREFIX
+ local NUMBERS
+ local major
+ local minor
+
+ VARPREFIX=$1
+ NUMBERS=$2
+
+ major=${NUMBERS%%\.*}
+ NUMBERS=${NUMBERS#$major}; NUMBERS=${NUMBERS#\.}
+ minor=${NUMBERS%%\.*}
+ NUMBERS=${NUMBERS#$minor}; NUMBERS=${NUMBERS#\.}
+
+ # ensure that missing values are 0
+ eval "${VARPREFIX}_major=\$major; ${VARPREFIX}_minor=\$((minor + 0)); ${VARPREFIX}_bugfix=\$((NUMBERS + 0));"
+}
+
+split_version req "$1"
+
+shift
+
+for candidate; do
+
+ # Try to locate the candidate. Discard it if not located.
+ tool=$(which "${candidate}" 2>/dev/null)
+ [ -n "${tool}" ] || continue
+
+ split_version cur "$(readversion "${tool}")"
+
+ [ -n "${cur_major}" -a "${cur_major}" -ge "${req_major}" ] || continue
+ [ "${cur_major}" -gt "${req_major}" ] || [ "${cur_minor}" -ge "${req_minor}" ] || continue
+ [ "${cur_minor}" -gt "${req_minor}" ] || [ "${cur_bugfix}" -ge "${req_bugfix}" ] || continue
+
+ echo "${tool}"
+ exit
+done
+
+# echo nothing: no suitable tool found
+exit 1
Signed-off-by: Norbert Lange <nolange79@gmail.com> --- support/dependencies/check-host-cmake.sh | 47 +++--------------------- support/dependencies/check-host-make.sh | 39 +++----------------- support/dependencies/check-host-meson.sh | 44 +--------------------- support/dependencies/check-host-ninja.sh | 44 +--------------------- support/dependencies/versioncheck.sh | 45 +++++++++++++++++++++++ 5 files changed, 59 insertions(+), 160 deletions(-) create mode 100755 support/dependencies/versioncheck.sh