commit: 6d497c62450da33d98f7d4c7b7ce755793ef7892 Author: Mike Pagano <mpagano <AT> gentoo <DOT> org> AuthorDate: Sat Sep 4 17:46:07 2021 +0000 Commit: Mike Pagano <mpagano <AT> gentoo <DOT> org> CommitDate: Sat Sep 4 17:46:07 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d497c62
Thanks to Sam, mgorny and Ulm for the review. Support the possibility that the Makefile could be one of the following and should be checked in the order described here: https://www.gnu.org/software/make/manual/make.html Order of checking and valid Makefiles names: GNUMakefile, makefile, Makefile Closes: https://bugs.gentoo.org/663368 Signed-off-by: Mike Pagano <mpagano <AT> gentoo.org> eclass/linux-info.eclass | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/eclass/linux-info.eclass b/eclass/linux-info.eclass index 0b6df1bf591..1379b6008b8 100644 --- a/eclass/linux-info.eclass +++ b/eclass/linux-info.eclass @@ -80,6 +80,15 @@ KERNEL_DIR="${KERNEL_DIR:-${ROOT%/}/usr/src/linux}" # There are also a couple of variables which are set by this, and shouldn't be # set by hand. These are as follows: +# @ECLASS-VARIABLE: KERNEL_MAKEFILE +# @INTERNAL +# @DESCRIPTION: +# According to upstream documentation, by default, when make looks for the makefile, it tries +# the following names, in order: GNUmakefile, makefile and Makefile. Set this variable to the +# proper Makefile name or the eclass will search in this order for it. +# See https://www.gnu.org/software/make/manual/make.html +: ${KERNEL_MAKEFILE:=""} + # @ECLASS-VARIABLE: KV_FULL # @OUTPUT_VARIABLE # @DESCRIPTION: @@ -510,7 +519,9 @@ get_version() { qeinfo " ${KV_DIR}" fi - if [ ! -s "${KV_DIR}/Makefile" ] + kernel_get_makefile + + if [[ ! -s ${KERNEL_MAKEFILE} ]] then if [ -z "${get_version_warning_done}" ]; then get_version_warning_done=1 @@ -526,9 +537,6 @@ get_version() { # do we pass KBUILD_OUTPUT on the CLI? local OUTPUT_DIR=${KBUILD_OUTPUT} - # keep track of it - KERNEL_MAKEFILE="${KV_DIR}/Makefile" - if [[ -z ${OUTPUT_DIR} ]]; then # Decide the function used to extract makefile variables. local mkfunc=$(get_makefile_extract_function "${KERNEL_MAKEFILE}") @@ -971,3 +979,17 @@ linux-info_pkg_setup() { [ -n "${CONFIG_CHECK}" ] && check_extra_config; } + +# @FUNCTION: kernel_get_makefile +# @DESCRIPTION: +# Support the possibility that the Makefile could be one of the following and should +# be checked in the order described here: +# https://www.gnu.org/software/make/manual/make.html +# Order of checking and valid Makefiles names: GNUMakefile, makefile, Makefile +kernel_get_makefile() { + + [[ -s ${KV_DIR}/GNUMakefile ]] && KERNEL_MAKEFILE="${KV_DIR}/GNUMakefile" + [[ -s ${KV_DIR}/makefile ]] && KERNEL_MAKEFILE="${KV_DIR}/makefile" + [[ -s ${KV_DIR}/Makefile ]] && KERNEL_MAKEFILE="${KV_DIR}/Makefile" + +}
