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"
+
+}

Reply via email to