[PATCH 5/5] kbuild: introduce hostprogs-always-y and userprogs-always-y
Masahiro Yamada
masahiroy at kernel.org
Tue Aug 18 06:55:20 EDT 2020
Linux commit faabed295cccc2aba2b67f2e7b309f2892d55004
You can use:
hostprogs-always-y += foo
as a shorthand for:
hostprogs += foo
always-y += foo
Likewise,
userprogs-always-y += foo
as a shorthand for:
userprogs += foo
always-y += foo
Signed-off-by: Masahiro Yamada <masahiroy at kernel.org>
---
scripts/Makefile | 55 ++++++++++++++++++---------------------
scripts/Makefile.build | 2 +-
scripts/Makefile.clean | 9 ++++---
scripts/Makefile.lib | 11 ++++++++
scripts/basic/Makefile | 3 +--
scripts/dtc/Makefile | 3 +--
scripts/imx/Makefile | 6 ++---
scripts/mod/Makefile | 4 +--
scripts/setupmbr/Makefile | 3 +--
scripts/tegra/Makefile | 4 +--
10 files changed, 51 insertions(+), 49 deletions(-)
diff --git a/scripts/Makefile b/scripts/Makefile
index 238460fe2..30b7ec540 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -1,50 +1,45 @@
###
# scripts contains sources for various helper programs used throughout
# barebox for the build process.
-# ---------------------------------------------------------------------------
-# kallsyms: Find all symbols in barebox
-hostprogs-y += bin2c
-hostprogs-y += mkimage
-hostprogs-y += fix_size
-hostprogs-y += bareboxenv
-hostprogs-y += bareboxcrc32
-hostprogs-y += kernel-install
-hostprogs-$(CONFIG_CRYPTO_RSA_BUILTIN_KEYS) += rsatoc
+hostprogs-always-y += bin2c
+hostprogs-always-y += mkimage
+hostprogs-always-y += fix_size
+hostprogs-always-y += bareboxenv
+hostprogs-always-y += bareboxcrc32
+hostprogs-always-y += kernel-install
+hostprogs-always-$(CONFIG_CRYPTO_RSA_BUILTIN_KEYS) += rsatoc
HOSTCFLAGS_rsatoc = `pkg-config --cflags openssl`
HOSTLDLIBS_rsatoc = `pkg-config --libs openssl`
-hostprogs-$(CONFIG_IMD) += bareboximd
-hostprogs-$(CONFIG_KALLSYMS) += kallsyms
-hostprogs-$(CONFIG_MIPS) += mips-relocs
-hostprogs-$(CONFIG_MVEBU_HOSTTOOLS) += kwbimage kwboot mvebuimg
-hostprogs-$(CONFIG_ARCH_OMAP) += omap_signGP mk-omap-image
-hostprogs-$(CONFIG_ARCH_S5PCxx) += s5p_cksum
-hostprogs-$(CONFIG_ARCH_DAVINCI) += mkublheader
+hostprogs-always-$(CONFIG_IMD) += bareboximd
+hostprogs-always-$(CONFIG_KALLSYMS) += kallsyms
+hostprogs-always-$(CONFIG_MIPS) += mips-relocs
+hostprogs-always-$(CONFIG_MVEBU_HOSTTOOLS) += kwbimage kwboot mvebuimg
+hostprogs-always-$(CONFIG_ARCH_OMAP) += omap_signGP mk-omap-image
+hostprogs-always-$(CONFIG_ARCH_S5PCxx) += s5p_cksum
+hostprogs-always-$(CONFIG_ARCH_DAVINCI) += mkublheader
HOSTCFLAGS_zynq_mkimage.o = -I$(srctree) -I$(srctree)/arch/arm/mach-zynq/include
-hostprogs-$(CONFIG_ARCH_ZYNQ) += zynq_mkimage
-hostprogs-$(CONFIG_ARCH_SOCFPGA) += socfpga_mkimage
-hostprogs-$(CONFIG_MXS_HOSTTOOLS)+= mxsimage mxsboot
-hostprogs-$(CONFIG_ARCH_LAYERSCAPE) += pblimage
-hostprogs-$(CONFIG_ARCH_STM32MP) += stm32image
+hostprogs-always-$(CONFIG_ARCH_ZYNQ) += zynq_mkimage
+hostprogs-always-$(CONFIG_ARCH_SOCFPGA) += socfpga_mkimage
+hostprogs-always-$(CONFIG_MXS_HOSTTOOLS) += mxsimage mxsboot
+hostprogs-always-$(CONFIG_ARCH_LAYERSCAPE) += pblimage
+hostprogs-always-$(CONFIG_ARCH_STM32MP) += stm32image
KBUILD_HOSTCFLAGS += -I$(srctree)/scripts/include/
HOSTLDLIBS_mxsimage = `pkg-config --libs openssl`
HOSTCFLAGS_omap3-usb-loader.o = `pkg-config --cflags libusb-1.0`
HOSTLDLIBS_omap3-usb-loader = `pkg-config --libs libusb-1.0`
-hostprogs-$(CONFIG_OMAP3_USB_LOADER) += omap3-usb-loader
+hostprogs-always-$(CONFIG_OMAP3_USB_LOADER) += omap3-usb-loader
HOSTCFLAGS_omap4_usbboot.o = `pkg-config --cflags libusb-1.0`
HOSTLDLIBS_omap4_usbboot = -lpthread `pkg-config --libs libusb-1.0`
-hostprogs-$(CONFIG_OMAP4_HOSTTOOL_USBBOOT) += omap4_usbboot
+hostprogs-always-$(CONFIG_OMAP4_HOSTTOOL_USBBOOT) += omap4_usbboot
-userprogs-$(CONFIG_BAREBOXENV_TARGET) += bareboxenv-target
-userprogs-$(CONFIG_KERNEL_INSTALL_TARGET) += kernel-install-target
-userprogs-$(CONFIG_BAREBOXCRC32_TARGET) += bareboxcrc32-target
-userprogs-$(CONFIG_IMD_TARGET) += bareboximd-target
+userprogs-always-$(CONFIG_BAREBOXENV_TARGET) += bareboxenv-target
+userprogs-always-$(CONFIG_KERNEL_INSTALL_TARGET) += kernel-install-target
+userprogs-always-$(CONFIG_BAREBOXCRC32_TARGET) += bareboxcrc32-target
+userprogs-always-$(CONFIG_IMD_TARGET) += bareboximd-target
userccflags += -I $(srctree)/$(src)/include
-userprogs := $(userprogs-y)
-always-y := $(hostprogs-y) $(hostprogs-m) $(userprogs-y)
-
subdir-y += mod
subdir-y += imx
subdir-$(CONFIG_X86) += setupmbr
diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index a3dfe261a..1614a1ac5 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -45,7 +45,7 @@ include $(if $(wildcard $(kbuild-dir)/Kbuild), $(kbuild-dir)/Kbuild, $(kbuild-di
include scripts/Makefile.lib
# Do not include host rules unless needed
-ifneq ($(hostprogs)$(hostprogs-y)$(hostprogs-m),)
+ifneq ($(hostprogs),)
include scripts/Makefile.host
endif
diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
index 97fd2ef48..3c4519fa8 100644
--- a/scripts/Makefile.clean
+++ b/scripts/Makefile.clean
@@ -35,9 +35,12 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
# build a list of files to remove, usually relative to the current
# directory
-__clean-files := $(extra-y) $(extra-m) $(extra-) \
- $(always) $(always-y) $(always-m) $(always-) $(targets) $(clean-files) \
- $(hostprogs) $(hostprogs-y) $(hostprogs-m) $(hostprogs-) $(userprogs)
+__clean-files := \
+ $(clean-files) $(targets) $(hostprogs) $(userprogs) \
+ $(extra-y) $(extra-m) $(extra-) \
+ $(always-y) $(always-m) $(always-) \
+ $(hostprogs-always-y) $(hostprogs-always-m) $(hostprogs-always-) \
+ $(userprogs-always-y) $(userprogs-always-m) $(userprogs-always-)
# as clean-files is given relative to the current directory, this adds
# a $(obj) prefix, except for absolute paths
diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 3799e777c..3c95384f9 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -89,6 +89,17 @@ real-obj-m := $(foreach m, $(obj-m), $(if $(strip $($(m:.o=-objs)) $($(m:.o=-y))
always-y += $(always-m)
+# hostprogs-always-y += foo
+# ... is a shorthand for
+# hostprogs += foo
+# always-y += foo
+hostprogs += $(hostprogs-always-y) $(hostprogs-always-m)
+always-y += $(hostprogs-always-y) $(hostprogs-always-m)
+
+# userprogs-always-y is likewise.
+userprogs += $(userprogs-always-y) $(userprogs-always-m)
+always-y += $(userprogs-always-y) $(userprogs-always-m)
+
# Add subdir path
extra-y := $(addprefix $(obj)/,$(extra-y))
diff --git a/scripts/basic/Makefile b/scripts/basic/Makefile
index 290dd27d2..eeb6a38c5 100644
--- a/scripts/basic/Makefile
+++ b/scripts/basic/Makefile
@@ -2,5 +2,4 @@
#
# fixdep: used to generate dependency information during build process
-hostprogs := fixdep
-always-y := $(hostprogs)
+hostprogs-always-y += fixdep
diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
index 69b0f6a0e..0c857c9cc 100644
--- a/scripts/dtc/Makefile
+++ b/scripts/dtc/Makefile
@@ -1,8 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
# scripts/dtc makefile
-hostprogs-$(CONFIG_DTC) := dtc fdtget
-always := $(hostprogs-y)
+hostprogs-always-$(CONFIG_DTC) += dtc
dtc-objs := dtc.o flattree.o fstree.o data.o livetree.o treesource.o \
srcpos.o checks.o util.o
diff --git a/scripts/imx/Makefile b/scripts/imx/Makefile
index e7af2c98e..029f9ca9f 100644
--- a/scripts/imx/Makefile
+++ b/scripts/imx/Makefile
@@ -1,7 +1,5 @@
-hostprogs-$(CONFIG_ARCH_IMX_IMXIMAGE) += imx-image
-hostprogs-$(CONFIG_ARCH_IMX_USBLOADER) += imx-usb-loader
-
-always := $(hostprogs-y)
+hostprogs-always-$(CONFIG_ARCH_IMX_IMXIMAGE) += imx-image
+hostprogs-always-$(CONFIG_ARCH_IMX_USBLOADER) += imx-usb-loader
HOSTCFLAGS_imx-usb-loader.o = `pkg-config --cflags libusb-1.0`
HOSTLDLIBS_imx-usb-loader = `pkg-config --libs libusb-1.0`
diff --git a/scripts/mod/Makefile b/scripts/mod/Makefile
index e02b9f4ce..9926ed08d 100644
--- a/scripts/mod/Makefile
+++ b/scripts/mod/Makefile
@@ -1,5 +1,5 @@
-hostprogs-y := modpost mk_elfconfig
-always := $(hostprogs-y) empty.o
+hostprogs-always-y += modpost mk_elfconfig
+always-y += empty.o
modpost-objs := modpost.o sumversion.o
diff --git a/scripts/setupmbr/Makefile b/scripts/setupmbr/Makefile
index 8680fedce..6e33d1536 100644
--- a/scripts/setupmbr/Makefile
+++ b/scripts/setupmbr/Makefile
@@ -1,4 +1,3 @@
HOST_EXTRACFLAGS=-I$(srctree)
-hostprogs-y := setupmbr
-always := $(hostprogs-y)
+hostprogs-always-y += setupmbr
diff --git a/scripts/tegra/Makefile b/scripts/tegra/Makefile
index 8ebc27ca7..dec0b529d 100644
--- a/scripts/tegra/Makefile
+++ b/scripts/tegra/Makefile
@@ -1,6 +1,4 @@
-hostprogs-$(CONFIG_ARCH_TEGRA) += cbootimage
-
-always := $(hostprogs-y)
+hostprogs-always-$(CONFIG_ARCH_TEGRA) += cbootimage
HOSTLDLIBS_cbootimage = '-lm'
--
2.25.1
More information about the barebox
mailing list