diff options
Diffstat (limited to 'package/xenomai/xenomai.mk')
-rw-r--r-- | package/xenomai/xenomai.mk | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/package/xenomai/xenomai.mk b/package/xenomai/xenomai.mk new file mode 100644 index 000000000..8f78333e0 --- /dev/null +++ b/package/xenomai/xenomai.mk @@ -0,0 +1,99 @@ +############################################################# +# Xenomai +# URL : http://xenomai.org +# NOTE : Real-Time Framework for Linux +# +############################################################# + +XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION)) +ifeq ($(XENOMAI_VERSION),) +XENOMAI_VERSION = 2.5.6 +endif + +XENOMAI_SITE = http://download.gna.org/xenomai/stable/ +XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2 + +XENOMAI_INSTALL_STAGING = YES + +ifeq ($(BR2_arm),y) +XENOMAI_CPU_TYPE = $(call qstrip,$(BR2_PACKAGE_XENOMAI_CPU_TYPE)) +# Set "generic" if not defined +ifeq ($(XENOMAI_CPU_TYPE),) +XENOMAI_CPU_TYPE = generic +endif +XENOMAI_CONF_OPT += --enable-arm-mach=$(XENOMAI_CPU_TYPE) +endif #BR2_arm + +ifeq ($(BR2_PACKAGE_XENOMAI_SMP),y) +XENOMAI_CONF_OPT += --enable-smp +endif + +# The configure step needs to be overloaded, because Xenomai doesn't +# support --prefix=/usr and the autotargets infrastructure enforces +# this. +define XENOMAI_CONFIGURE_CMDS + (cd $(@D); rm -rf config.cache; \ + $(TARGET_CONFIGURE_OPTS) \ + $(TARGET_CONFIGURE_ARGS) \ + CCFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ + ./configure \ + $(XENOMAI_CONF_OPT) \ + --host=$(GNU_TARGET_NAME) \ + ) +endef + +ifeq ($(BR2_HAVE_DOCUMENTATION),) +define XENOMAI_REMOVE_DOCUMENTATION + rm -rf $(TARGET_DIR)/usr/xenomai/share/doc + rm -rf $(TARGET_DIR)/usr/xenomai/share/man +endef + +XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_DOCUMENTATION +endif + +ifeq ($(BR2_HAVE_DEVFILES),) +define XENOMAI_REMOVE_DEVFILES + rm -rf $(TARGET_DIR)/usr/xenomai/include + for i in xeno-config xeno-info wrap-link.sh ; do \ + rm -f $(TARGET_DIR)/usr/xenomai/bin/$$i ; \ + done +endef + +XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_DEVFILES +endif + +define XENOMAI_ADD_LD_SO_CONF + # Add /usr/xenomai/lib in the library search path + grep -q "^/usr/xenomai/lib" $(TARGET_DIR)/etc/ld.so.conf || \ + echo "/usr/xenomai/lib" >> $(TARGET_DIR)/etc/ld.so.conf +endef + +XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_ADD_LD_SO_CONF + +# If you use static /dev creation don't forget to update your +# device_table_dev.txt +ifeq ($(BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_UDEV),y) +XENOMAI_DEPENDENCIES += udev + +define XENOMAI_INSTALL_UDEV_RULES + if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \ + for f in $(@D)/ksrc/nucleus/udev/*.rules ; do \ + cp $$f $(TARGET_DIR)/etc/udev/rules.d/ ; \ + done ; \ + fi; +endef + +XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_INSTALL_UDEV_RULES +endif # udev + +define XENOMAI_REMOVE_UDEV_RULES + if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \ + for f in $(@D)/ksrc/nucleus/udev/*.rules ; do \ + rm -f $(TARGET_DIR)/etc/udev/rules.d/$$f ; \ + done ; \ + fi; +endef + +XENOMAI_POST_UNINSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UDEV_RULES + +$(eval $(call AUTOTARGETS,package,xenomai)) |