Skip to content

Commit

Permalink
kbuild: rpm-pkg: refactor *rpm-pkg targets
Browse files Browse the repository at this point in the history
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: Masahiro Yamada <masahiroy@kernel.org>
  • Loading branch information
masahir0y committed Jul 24, 2023
1 parent 6db9ced commit 3747749
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 33 deletions.
54 changes: 29 additions & 25 deletions scripts/Makefile.package
Original file line number Diff line number Diff line change
Expand Up @@ -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 = \
Expand Down Expand Up @@ -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
# ---------------------------------------------------------------------------
Expand Down
8 changes: 0 additions & 8 deletions scripts/package/mkspec
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 3747749

Please sign in to comment.