summaryrefslogtreecommitdiff
path: root/scripts/package
diff options
context:
space:
mode:
authorGreg Edwards <edwardsg@sgi.com>2004-07-21 03:57:07 +0200
committerSam Ravnborg <sam@mars.ravnborg.org>2004-07-21 03:57:07 +0200
commitf0d8c63be2017f2d3ef0261a2bcebbab8df7e65f (patch)
tree9ef038490abf22433679370e537d0a05213806b6 /scripts/package
parent1bb0fa189c6ae75cbf440244ae77a8ede9912df1 (diff)
kbuild: build binary rpm from pre-built tree
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>
Diffstat (limited to 'scripts/package')
-rw-r--r--scripts/package/Makefile18
-rwxr-xr-xscripts/package/mkspec19
2 files changed, 37 insertions, 0 deletions
diff --git a/scripts/package/Makefile b/scripts/package/Makefile
index f3df4bc950dc..6ebb635c59cd 100644
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -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'
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index 3ecfc23e0921..5d94e452a0c0 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -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'