![Romain Naour](/assets/img/avatar_default.png)
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. For example, since version 2.28 [1], glibc requires GNU Make >= 4.0. For packages requiring make >= 4.0, the package makefile must use: <PKG>_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY) ... <PKG>_MAKE = $(BR2_MAKE) BR2_MAKE1 is also available if needed. [1] https://www.sourceware.org/ml/libc-alpha/2018-08/msg00003.html Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Baruch Siach <baruch@tkos.co.il> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Tested-by: Matt Weber <matthew.weber@rockwellcollins.com> [Thomas: remove extraction of "bugfix" part of the version, since it's not used anywhere.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
38 lines
799 B
Bash
Executable file
38 lines
799 B
Bash
Executable file
#!/bin/sh
|
|
|
|
# prevent shift error
|
|
[ $# -lt 2 ] && exit 1
|
|
|
|
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
|