Re: [gentoo-dev] [PATCH v3] linux-info.eclass : Support valid Make files
> On Fri, 03 Sep 2021, Mike wrote: > - if [ ! -s "${KV_DIR}/Makefile" ] > + get_makefile > + > + if [[ ! -s "${KERNEL_MAKEFILE}" ]] No quotation marks needed in [[ ]]. + [[ -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" Ditto. Ulrich signature.asc Description: PGP signature
Re: [gentoo-dev] [PATCH v3] linux-info.eclass : Support valid Make files
On Thu, 2021-09-02 at 19:28 -0400, Mike wrote: > 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 > > Bug: https://bugs.gentoo.org/663368 > > Signed-off-by: Mike Pagano > --- > 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 0b6df1bf5..a6159eac2 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" ] > + 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: get_makefile Please prefix it so it doesn't pollute the global namespace. > +# @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 > +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" > + > +} -- Best regards, Michał Górny
[gentoo-dev] [PATCH v3] linux-info.eclass : Support valid Make files
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 Bug: https://bugs.gentoo.org/663368 Signed-off-by: Mike Pagano --- 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 0b6df1bf5..a6159eac2 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" ] + 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: 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 +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" + +} -- 2.32.0