Commit 37477496 authored by Masahiro Yamada's avatar Masahiro Yamada
Browse files

kbuild: rpm-pkg: refactor *rpm-pkg targets



Merge the similar build targets.

Also, make the output location consistent.

Previously, source packages were created in the build directory,
while binary packages under ~/rpmbuild/RPMS/.

Now, Kbuild creates the rpmbuild/ directory in the build directory,
and saves all packages under it.

Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
parent 6db9ced4
Loading
Loading
Loading
Loading
+29 −25
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ TAR_CONTENT := Documentation LICENSES arch block certs crypto drivers fs \
               samples scripts security sound tools usr virt \
               .config Makefile \
               Kbuild Kconfig COPYING $(wildcard localversion*)
MKSPEC     := $(srctree)/scripts/package/mkspec

quiet_cmd_src_tar = TAR     $(2).tar.gz
      cmd_src_tar = \
@@ -66,32 +65,37 @@ $(linux-tarballs): archive-args = --prefix=linux/ $$(cat $<)
$(linux-tarballs): .tmp_HEAD FORCE
	$(call if_changed,archive)

# rpm-pkg
# rpm-pkg srcrpm-pkg binrpm-pkg
# ---------------------------------------------------------------------------
PHONY += rpm-pkg
rpm-pkg: srpm = $(shell rpmspec --srpm --query --queryformat='%{name}-%{VERSION}-%{RELEASE}.src.rpm' kernel.spec)
rpm-pkg: srcrpm-pkg
	+rpmbuild $(RPMOPTS) --target $(UTS_MACHINE)-linux -rb $(srpm) \
	--build-in-place --noprep \
	--define='_smp_mflags %{nil}' --define='make $(MAKE)'

# srcrpm-pkg
# ---------------------------------------------------------------------------
PHONY += srcrpm-pkg
srcrpm-pkg: linux.tar.gz
	$(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
	+rpmbuild $(RPMOPTS) --target $(UTS_MACHINE)-linux -bs kernel.spec \
	--define='_smp_mflags %{nil}' --define='_sourcedir rpmbuild/SOURCES' --define='_srcrpmdir .'

# binrpm-pkg
# ---------------------------------------------------------------------------
PHONY += binrpm-pkg
binrpm-pkg:
	$(CONFIG_SHELL) $(MKSPEC) prebuilt > $(objtree)/kernel.spec
	+rpmbuild $(RPMOPTS) --define "_builddir $(objtree)" --target \
		$(UTS_MACHINE)-linux -bb $(objtree)/kernel.spec \
		--build-in-place --noprep --define='_smp_mflags %{nil}' --without devel \
		--define='make $(MAKE)'
quiet_cmd_mkspec = GEN     $@
      cmd_mkspec = $(srctree)/scripts/package/mkspec > $@

kernel.spec: FORCE
	$(call cmd,mkspec)

PHONY += rpm-sources
rpm-sources: linux.tar.gz
	$(Q)mkdir -p rpmbuild/SOURCES
	$(Q)ln -f linux.tar.gz rpmbuild/SOURCES/linux.tar.gz
	$(Q)cp $(KCONFIG_CONFIG) rpmbuild/SOURCES/config
	$(Q)$(srctree)/scripts/package/gen-diff-patch rpmbuild/SOURCES/diff.patch

PHONY += rpm-pkg srcrpm-pkg binrpm-pkg

rpm-pkg:    private build-type := a
srcrpm-pkg: private build-type := s
binrpm-pkg: private build-type := b

rpm-pkg srcrpm-pkg: rpm-sources
rpm-pkg srcrpm-pkg binrpm-pkg: kernel.spec
	+$(strip rpmbuild -b$(build-type) kernel.spec \
	--define='_topdir $(abspath rpmbuild)' \
	$(if $(filter a b, $(build-type)), \
		--target $(UTS_MACHINE)-linux --build-in-place --noprep --define='_smp_mflags %{nil}') \
	$(if $(filter b, $(build-type)), \
		--without devel) \
	$(RPMOPTS))

# deb-pkg srcdeb-pkg bindeb-pkg
# ---------------------------------------------------------------------------
+0 −8
Original line number Diff line number Diff line
@@ -9,14 +9,6 @@
#	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 [ -z "$1" ]; then
	mkdir -p rpmbuild/SOURCES
	cp linux.tar.gz rpmbuild/SOURCES
	cp "${KCONFIG_CONFIG}" rpmbuild/SOURCES/config
	"${srctree}/scripts/package/gen-diff-patch" rpmbuild/SOURCES/diff.patch
fi

if grep -q CONFIG_MODULES=y include/config/auto.conf; then
echo '%define with_devel %{?_without_devel: 0} %{?!_without_devel: 1}'
else