kumquat-buildroot/linux/linux-ext-xenomai.mk
Yann E. MORIN 53785a2c77 linux: fix extensions
Since the move to the kconfig-package infra, linux extensions are
broken.

In our linux package, extensions are applied as pre-patch hooks.

Before the kconfig-package infra, we had custom rules for the
linux-*config targets, which were of the form:

    linux-menuconfig: linux-configure
        $(MAKE) -C $(LINUX_DIR) menuconfig

This caused the linux tree to be fully configured before running the
configurators, and thus linux dependencies were entirely fullfilled, and
extensions were properly applied.

Since we migrated (in dff25ea), the kconfig-package infra introduces a
(hidden, internal) intermediate step 'kconfig-fixup' and decorelates the
kconfig-part of the configuration from the actual package-part of the
configuration:

    linux-configure -------> kconfig-fixup --> .config --> $(LINUX_CONFIG_FILE)
                        /
    linux-menuconfig --'

As thus, this (very useful!) use-case breaks (starting from a clean
Buildroot tree):

    make menuconfig
        -> enable a kernel and at least one extension
        -> save and exit
    make linux-menuconfig
        -> extensions are not available

Fix that by using the newly-introduced patch-dependencies, so that
extensions are available before we try to patch the linux kernel.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2015-04-09 22:52:20 +02:00

31 lines
889 B
Makefile

################################################################################
# Linux Adeos/Xenomai extensions
#
# Patch the linux kernel with xenomai extension
################################################################################
ifeq ($(BR2_LINUX_KERNEL_EXT_XENOMAI),y)
# Add dependency to xenomai (user-space) which provide ksrc part
LINUX_PATCH_DEPENDENCIES += xenomai
# Adeos patch version
XENOMAI_ADEOS_PATCH = $(call qstrip,$(BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH))
ifeq ($(XENOMAI_ADEOS_PATCH),)
XENOMAI_ADEOS_OPTS = --default
else
XENOMAI_ADEOS_OPTS = --adeos=$(XENOMAI_ADEOS_PATCH)
endif
# Prepare kernel patch
define XENOMAI_PREPARE_KERNEL
$(XENOMAI_DIR)/scripts/prepare-kernel.sh \
--linux=$(LINUX_DIR) \
--arch=$(KERNEL_ARCH) \
$(XENOMAI_ADEOS_OPTS) \
--verbose
endef
LINUX_PRE_PATCH_HOOKS += XENOMAI_PREPARE_KERNEL
endif #BR2_LINUX_EXT_XENOMAI