[PATCH] Install target for sparc (was: Kernel compiling)
On Sat, Jul 16, 2005 at 06:58:10AM -0500, Tib wrote:
> make O=/kernel-build modules_install install
>
> It all runs smoothly until that last line. The modules get compiled just
> fine, and then it bombs out saying:
> make[1]: *** No rule to make target `install'. Stop.
> make: *** [install] Error 2
Not all architectures support the "install" target. If you run "make help"
it won't show up for sparc.
The patch below adds an "install" target for the SPARC architecture.
I've been using it for a while because I build several different
architectures (and would like a consist build procedure).
I added silo support to the official installkernel package, which is included
in versions 2.9 of that tool.
Martin
Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
---
--- 2.6.8/arch/sparc/boot/install.sh.orig 2004-09-06 12:27:24.136715368 +0100
+++ 2.6.8/arch/sparc/boot/install.sh 2004-09-04 22:44:40.000000000 +0100
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# arch/sparc/boot/install.sh
+#
+# This file is subject to the terms and conditions of the GNU General Public
+# License. See the file "COPYING" in the main directory of this archive
+# for more details.
+#
+# Copyright (C) 1995 by Linus Torvalds
+#
+# Blatantly stolen from in arch/i386/boot/install.sh by Martin Habets
+#
+# "make install" script for sparc architecture
+#
+# Arguments:
+# $1 - kernel version
+# $2 - kernel image file
+# $3 - kernel map file
+# $4 - default install path (blank if root directory)
+#
+
+# 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
+
+# Default install
+
+# Figure out if this is a compressed image or not.
+target=vmlinux
+if [ -n "`file $2 | grep -i compressed`" ];
+then
+ target=vmlinuz;
+fi
+
+if [ -f $4/$target ]; then
+ mv $4/$target $4/$target.old
+fi
+
+if [ -f $4/System.map ]; then
+ mv $4/System.map $4/System.old
+fi
+
+cat $2 > $4/$target
+cp $3 $4/System.map
--- 2.6.6/arch/sparc/boot/Makefile.orig 2004-06-16 15:53:21.000000000 +0100
+++ 2.6.6/arch/sparc/boot/Makefile 2004-06-16 19:38:49.000000000 +0100
@@ -32,3 +32,6 @@
$(obj)/btfix.s: $(obj)/btfixupprep vmlinux FORCE
$(call if_changed,btfix)
+
+$(obj)/install: $(obj)/image
+ sh $(srctree)/$(src)/install.sh $(KERNELRELEASE) $< System.map "$(INSTALL_PATH)"
--- 2.6.6/arch/sparc/Makefile.orig 2004-06-16 16:03:04.000000000 +0100
+++ 2.6.6/arch/sparc/Makefile 2004-06-17 18:57:22.000000000 +0100
@@ -52,9 +52,14 @@
boot := arch/sparc/boot
-image tftpboot.img: vmlinux
+image tftpboot.img install: vmlinux
$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
+# This makes install trigger the modules as well.
+ifdef CONFIG_MODULES
+install: modules_install
+endif
+
archclean:
$(Q)$(MAKE) $(clean)=$(boot)
@@ -74,4 +79,8 @@
define archhelp
echo '* image - kernel image ($(boot)/image)'
echo ' tftpboot.img - image prepared for tftp'
+ echo ' install - Install kernel using'
+ echo ' (your) ~/bin/installkernel or'
+ echo ' (distribution) /sbin/installkernel or'
+ echo ' install to $$(INSTALL_PATH)'
endef
Reply to: