Re: [Patch] make installkernel configurable from command line (wasRe: how to avoid that install.sh goes mad, if I am not root?)

From: Mikael Pettersson
Date: Wed Jan 26 2011 - 05:02:18 EST


[cc: linux-kbuild's address corrected]

=?utf-8?Q?Am=C3=A9rico?= Wang writes:
> On Mon, Jan 24, 2011 at 12:43:14PM +0100, Mikael Pettersson wrote:
> >NAK -- this breaks existing setups which rely on /root/bin/installkernel
> >being picked up automatically.
> >
> >Can you handle 'make INSTALLKERNEL=...' without breaking that please?
>
> Yes, here we go.
>
> --------->
>
> Signed-off-by: WANG Cong <xiyou.wangcong@xxxxxxxxx>
>
> ---
> diff --git a/Makefile b/Makefile
> index 1f47495..44abded 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -327,7 +327,7 @@ OBJCOPY = $(CROSS_COMPILE)objcopy
> OBJDUMP = $(CROSS_COMPILE)objdump
> AWK = awk
> GENKSYMS = scripts/genksyms/genksyms
> -INSTALLKERNEL := installkernel
> +INSTALLKERNEL ?= /sbin/installkernel
> DEPMOD = /sbin/depmod
> KALLSYMS = scripts/kallsyms
> PERL = perl
> diff --git a/arch/x86/boot/install.sh b/arch/x86/boot/install.sh
> index d13ec1c..c8c9a92 100644
> --- a/arch/x86/boot/install.sh
> +++ b/arch/x86/boot/install.sh
> @@ -33,8 +33,8 @@ verify "$3"
>
> # User may have a custom install script
>
> -if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi
> -if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi
> +if [ -x ~/bin/installkernel ]; then exec ~/bin/installkernel "$@"; fi
> +if [ -x "${INSTALLKERNEL}" ]; then exec "${INSTALLKERNEL}" "$@"; fi
>
> # Default install - same as make zlilo

Tested. This works as far as not overriding root's ~/bin/installkernel
if it exists, but it fails to give precedence to an explicit command-line
INSTALLKERNEL=... over the built-in fallbacks. I don't see an easy way
to fix that without first consolidating all archs' INSTALLKERNEL handling
into the top-level Makefile.

Not using make install and just invoking your own install script directly
works, so I'm not sure this is worth the trouble (unless you can unify all
archs' INSTALLKERNEL handling as a side-effect / cleanup).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/