kumquat-buildroot/package/linux-fusion/linux-fusion.mk
Thomas Petazzoni 2fc19d0e19 linux-fusion: many fixes
This commit fixes several issues with linux-fusion so that it builds
properly with the current Buildroot:

 * Following the rework of the Linux kernel build process in
   Buildroot, a few adaptations were needed: depend on
   BR2_LINUX_KERNEL instead of !BR2_KERNEL_none, use
   $(LINUX26_VERSION_PROBED) to get the real kernel version, etc.

 * Add a LINUX_FUSION_BUILD_CMDS that actually does the build of
   linux-fusion.

 * Define SYSROOT for linux-fusion to TARGET_DIR so that at target
   installation, kernel modules are installed in $(TARGET_DIR)

 * Replace the staging installation by a simple one-liner that only
   installs the linux fusion header, needed for DirectFB to use the
   fusion kernel module

 * Fix the uninstallation macros. They have been misunderstood as
   hooks, while their are in fact normal macros.

 * Add a patch to fix a build failure in linux-fusion itself (missing
   <linux/sched.h> include in fusiondev.c)

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2010-07-16 23:42:32 +02:00

52 lines
1.7 KiB
Makefile

#############################################################
#
# linux-fusion
#
#############################################################
LINUX_FUSION_VERSION = 8.1.1
LINUX_FUSION_SOURCE = linux-fusion-$(LINUX_FUSION_VERSION).tar.gz
LINUX_FUSION_SITE = http://directfb.org/downloads/Core/linux-fusion
LINUX_FUSION_INSTALL_STAGING = YES
LINUX_FUSION_DEPENDENCIES = linux26
LINUX_FOR_FUSION=$(LINUX26_VERSION_PROBED)
LINUX_FUSION_ETC_DIR=$(TARGET_DIR)/etc/udev/rules.d
LINUX_FUSION_MAKE_OPTS = KERNEL_VERSION=$(LINUX_FOR_FUSION)
LINUX_FUSION_MAKE_OPTS += KERNEL_BUILD=$(LINUX26_DIR)
LINUX_FUSION_MAKE_OPTS += KERNEL_SOURCE=$(LINUX26_DIR)
LINUX_FUSION_MAKE_OPTS += SYSROOT=$(TARGET_DIR)
LINUX_FUSION_MAKE_OPTS += ARCH=$(KERNEL_ARCH)
LINUX_FUSION_MAKE_OPTS += CROSS_COMPILE=$(TARGET_CROSS)
LINUX_FUSION_MAKE_OPTS += KERNEL_MODLIB=/lib/modules/$(LINUX_FOR_FUSION)/kernel
define LINUX_FUSION_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) $(LINUX_FUSION_MAKE_OPTS) -C $(@D)
endef
# Only the header file is needed in the staging directory
define LINUX_FUSION_INSTALL_STAGING_CMDS
install -m 644 $(@D)/linux/include/linux/fusion.h $(STAGING_DIR)/usr/include/linux
endef
define LINUX_FUSION_INSTALL_TARGET_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) \
$(LINUX_FUSION_MAKE_OPTS) \
-C $(@D) install
mkdir -p $(LINUX_FUSION_ETC_DIR)
cp -dpf package/linux-fusion/40-fusion.rules $(LINUX_FUSION_ETC_DIR)
endef
define LINUX_FUSION_UNINSTALL_STAGING_CMDS
rm -f $(STAGING_DIR)/usr/include/linux/fusion.h
endef
define LINUX_FUSION_UNINSTALL_TARGET_CMDS
rm -f $(TARGET_DIR)/usr/include/linux/fusion.h
rm -rf $(TARGET_DIR)/lib/modules/$(LINUX_FOR_FUSION)/kernel/drivers/char/fusion
rm -f $(LINUX_FUSION_ETC_DIR)/40-fusion.rules
endef
$(eval $(call GENTARGETS,package,linux-fusion))