]> git.hungrycats.org Git - linux/commitdiff
kbuild: build binary rpm from pre-built tree
authorGreg Edwards <edwardsg@sgi.com>
Wed, 21 Jul 2004 01:57:07 +0000 (03:57 +0200)
committerSam Ravnborg <sam@mars.ravnborg.org>
Wed, 21 Jul 2004 01:57:07 +0000 (03:57 +0200)
Many times it would be nice to quickly package up a kernel tree you're
working on, without having to rebuild the whole thing again from a clean
source tree (like the current rpm-pkg target does).  The patch below
adds an "binrpm-pkg" target which uses your existing (already built)
tree.
Modified by me to always do a make and use binrpm-pkg.

Signed-off-by: Greg Edwards <edwardsg@sgi.com>
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
scripts/package/Makefile
scripts/package/mkspec

index f3df4bc950dcc9add0b935adc1b20e5efd1e1890..6ebb635c59cd044ab8bfb9f46bdff9f1b3df5356 100644 (file)
@@ -31,6 +31,7 @@ KERNELPATH := kernel-$(subst -,,$(KERNELRELEASE))
 MKSPEC     := $(srctree)/scripts/package/mkspec
 PREV       := set -e; cd ..;
 
+# rpm-pkg
 .PHONY: rpm-pkg rpm
 
 $(objtree)/kernel.spec: $(MKSPEC)
@@ -52,6 +53,22 @@ rpm-pkg rpm: $(objtree)/kernel.spec
 
 clean-rule +=  rm -f $(objtree)/kernel.spec
 
+# binrpm-pkg
+.PHONY: binrpm-pkg
+$(objtree)/binkernel.spec: $(MKSPEC)
+       $(CONFIG_SHELL) $(MKSPEC) prebuilt > $@
+       
+binrpm-pkg: $(objtree)/binkernel.spec
+       $(MAKE)
+       set -e; \
+       $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
+       set -e; \
+       mv -f $(objtree)/.tmp_version $(objtree)/.version
+
+       $(RPM) --define "_builddir $(srctree)" --target $(UTS_MACHINE) -bb $<
+
+clean-rule += rm -f $(objtree)/binkernel.spec
+
 # Deb target
 # ---------------------------------------------------------------------------
 #
@@ -67,5 +84,6 @@ clean-rule += && rm -rf $(objtree)/debian/
 # ---------------------------------------------------------------------------
 help:
        @echo  '  rpm-pkg         - Build the kernel as an RPM package'
+       @echo  '  binrpm-pkg      - Build an rpm package containing the compiled kernel & modules'
        @echo  '  deb-pkg         - Build the kernel as an deb package'
 
index 3ecfc23e0921073382b49581e56bee073b99d1a2..5d94e452a0c0d245dfe781d95ba389a1afb38315 100755 (executable)
@@ -9,6 +9,13 @@
 #      Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
 #
 
+# how we were called determines which rpms we build and how we build them
+if [ "$1" = "prebuilt" ]; then
+       PREBUILT=true
+else
+       PREBUILT=false
+fi
+
 # starting to output the spec
 if [ "`grep CONFIG_DRM=y .config | cut -f2 -d\=`" = "y" ]; then
        PROVIDES=kernel-drm
@@ -26,8 +33,12 @@ echo "License: GPL"
 echo "Group: System Environment/Kernel"
 echo "Vendor: The Linux Community"
 echo "URL: http://www.kernel.org"
+
+if ! $PREBUILT; then
 echo -n "Source: kernel-$VERSION.$PATCHLEVEL.$SUBLEVEL"
 echo "$EXTRAVERSION.tar.gz" | sed -e "s/-//g"
+fi
+
 echo "BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root"
 echo "Provides: $PROVIDES"
 echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
@@ -36,12 +47,20 @@ echo ""
 echo "%description"
 echo "The Linux Kernel, the operating system core itself"
 echo ""
+
+if ! $PREBUILT; then
 echo "%prep"
 echo "%setup -q"
 echo ""
+fi
+
 echo "%build"
+
+if ! $PREBUILT; then
 echo "make clean && make"
 echo ""
+fi
+
 echo "%install"
 echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib $RPM_BUILD_ROOT/lib/modules'