buildroot/package/linux-tools/linux-tools.mk
Yann E. MORIN 5587f366cd package/linux-tools/perf: bear the kernel options munging
perf by itself is not a standalone package; instead, it is part of a
bigger package, linux-tools.

Even though perf is the only one to need kernel .config fixups, we still
do it in a generic way, as it blends nicely in the existing variables,
which all use a loop over all the tools.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-05-31 23:08:44 +02:00

75 lines
2.7 KiB
Makefile

################################################################################
#
# linux-tools
#
################################################################################
# Vampirising sources from the kernel tree, so no source nor site specified.
# Instead, we directly build in the sources of the linux package. We can do
# that, because we're not building in the same location and the same files.
#
# So, all tools refer to $(LINUX_DIR) instead of $(@D).
# Note: we need individual tools makefiles to be included *before* we build
# the list of build and install hooks below to guarantee that each tool has
# a chance to register itself once, and only once. Therefore, the makefiles
# are named linux-tool-*.mk.in, so they won't be picked up by the top-level
# Makefile, but can be included here, guaranteeing the single inclusion and
# the proper ordering.
include $(sort $(wildcard package/linux-tools/*.mk.in))
# We only need the kernel to be extracted, not actually built
LINUX_TOOLS_PATCH_DEPENDENCIES = linux
# Install Linux kernel tools in the staging directory since some tools
# may install shared libraries and headers (e.g. cpupower).
LINUX_TOOLS_INSTALL_STAGING = YES
LINUX_TOOLS_DEPENDENCIES += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$($(call UPPERCASE,$(tool))_DEPENDENCIES)))
LINUX_TOOLS_POST_BUILD_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_BUILD_CMDS))
LINUX_TOOLS_POST_INSTALL_STAGING_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_INSTALL_STAGING_CMDS))
LINUX_TOOLS_POST_INSTALL_TARGET_HOOKS += $(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$(call UPPERCASE,$(tool))_INSTALL_TARGET_CMDS))
define LINUX_TOOLS_LINUX_CONFIG_FIXUPS
$(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$($(call UPPERCASE,$(tool))_LINUX_CONFIG_FIXUPS))
)
endef
define LINUX_TOOLS_INSTALL_INIT_SYSTEMD
$(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSTEMD))
)
endef
define LINUX_TOOLS_INSTALL_INIT_SYSV
$(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSV))
)
endef
define LINUX_TOOLS_INSTALL_INIT_OPENRC
$(foreach tool,$(LINUX_TOOLS),\
$(if $(BR2_PACKAGE_LINUX_TOOLS_$(call UPPERCASE,$(tool))),\
$(or $($(call UPPERCASE,$(tool))_INSTALL_INIT_OPENRC),\
$($(call UPPERCASE,$(tool))_INSTALL_INIT_SYSV)))
)
endef
$(eval $(generic-package))