1################################################################################ 2# 3# xenomai 4# 5################################################################################ 6 7XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION)) 8ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL),y) 9XENOMAI_TARBALL = $(call qstrip,$(BR2_PACKAGE_XENOMAI_CUSTOM_TARBALL_URL)) 10XENOMAI_SOURCE = $(notdir $(XENOMAI_TARBALL)) 11XENOMAI_SITE = $(patsubst %/,%,$(dir $(XENOMAI_TARBALL))) 12# Exclude from the hash check 13BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE) 14else ifeq ($(BR2_PACKAGE_XENOMAI_CUSTOM_GIT),y) 15XENOMAI_SITE = $(call qstrip,$(BR2_PACKAGE_XENOMAI_REPOSITORY)) 16XENOMAI_SITE_METHOD = git 17# Exclude from the hash check 18BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE) 19else 20XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2 21XENOMAI_SITE = https://source.denx.de/Xenomai/xenomai/-/archive/$(XENOMAI_VERSION) 22endif 23# We're patching configure.ac 24XENOMAI_AUTORECONF = YES 25 26XENOMAI_LICENSE = GPL-2.0+ with exception (headers), LGPL-2.1+ (libraries), GPL-2.0+ (kernel), GFDL-1.2+ (docs), GPL-2.0 (ipipe patch, can driver) 27# GFDL is not included but refers to gnu.org 28XENOMAI_LICENSE_FILES = debian/copyright include/COPYING kernel/cobalt/COPYING \ 29 kernel/cobalt/posix/COPYING kernel/cobalt/rtdm/COPYING \ 30 lib/alchemy/COPYING lib/analogy/COPYING \ 31 lib/boilerplate/iniparser/LICENSE lib/boilerplate/COPYING \ 32 lib/cobalt/COPYING lib/copperplate/COPYING lib/psos/COPYING \ 33 lib/smokey/COPYING lib/trank/COPYING lib/vxworks/COPYING 34 35XENOMAI_DEPENDENCIES = host-pkgconf 36 37XENOMAI_INSTALL_STAGING = YES 38XENOMAI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-user 39XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user 40 41XENOMAI_CONF_OPTS += \ 42 --disable-demo \ 43 --disable-testsuite \ 44 --includedir=/usr/include/xenomai/ 45 46ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y) 47XENOMAI_CONF_OPTS += --with-core=mercury 48else 49XENOMAI_CONF_OPTS += --with-core=cobalt 50endif 51 52ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_SMP),y) 53XENOMAI_CONF_OPTS += --enable-smp 54else 55XENOMAI_CONF_OPTS += --disable-smp 56endif 57 58ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY),y) 59XENOMAI_DEPENDENCIES += libfuse 60XENOMAI_REGISTRY_PATH = $(call qstrip,$(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH)) 61ifeq ($(XENOMAI_REGISTRY_PATH),) 62XENOMAI_CONF_OPTS += --enable-registry 63else 64XENOMAI_CONF_OPTS += --enable-registry=$(XENOMAI_REGISTRY_PATH) 65endif 66else 67XENOMAI_CONF_OPTS += --disable-registry 68endif 69 70XENOMAI_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS)) 71 72# Some of these files may be desired by some users -- at that point specific 73# config options need to be added to keep a particular set. 74define XENOMAI_REMOVE_UNNEEDED_FILES 75 for i in xeno xeno-config xeno-info wrap-link.sh ; do \ 76 rm -f $(TARGET_DIR)/usr/bin/$$i ; \ 77 done 78 for i in cobalt modechk ; do \ 79 rm -f $(TARGET_DIR)/usr/lib/$$i.wrappers ; \ 80 done 81 for i in autotune corectl hdb rtnet nomaccfg rtcfg rtifconfig \ 82 rtiwconfig rtping rtroute tdmacfg rtps slackspot version; do \ 83 rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ 84 done 85endef 86 87XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES 88 89ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),) 90define XENOMAI_REMOVE_TESTSUITE 91 rm -rf $(TARGET_DIR)/usr/share/xenomai/ 92 for i in clocktest gpiotest latency smokey spitest switchtest \ 93 xeno-test-run-wrapper dohell xeno-test-run xeno-test ; do \ 94 rm -f $(TARGET_DIR)/usr/bin/$$i ; \ 95 done 96 rm -rf $(TARGET_DIR)/usr/demo/ 97endef 98 99XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_TESTSUITE 100endif 101 102ifeq ($(BR2_PACKAGE_XENOMAI_RTCAN),) 103define XENOMAI_REMOVE_RTCAN_PROGS 104 for i in rtcanrecv rtcansend ; do \ 105 rm -f $(TARGET_DIR)/usr/bin/$$i ; \ 106 done 107 rm -f $(TARGET_DIR)/usr/sbin/rtcanconfig 108endef 109 110XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_RTCAN_PROGS 111endif 112 113ifeq ($(BR2_PACKAGE_XENOMAI_ANALOGY),) 114define XENOMAI_REMOVE_ANALOGY 115 for i in cmd_read cmd_write cmd_bits insn_read insn_write insn_bits \ 116 wf_generate ; do \ 117 rm -f $(TARGET_DIR)/usr/bin/$$i ; \ 118 done 119 for i in analogy_config analogy_calibrate ; do \ 120 rm -f $(TARGET_DIR)/usr/sbin/$$i ; \ 121 done 122 rm -f $(TARGET_DIR)/usr/lib/libanalogy.* 123endef 124 125XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_ANALOGY 126endif 127 128XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_NATIVE_SKIN),,alchemy) 129XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_POSIX_SKIN),,posix) 130XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_PSOS_SKIN),,psos) 131XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_RTAI_SKIN),,rtai) 132XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_TESTSUITE),,smokey) 133XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_UITRON_SKIN),,uitron) 134XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VXWORKS_SKIN),,vxworks) 135XENOMAI_REMOVE_LIBS_LIST += $(if $(BR2_PACKAGE_XENOMAI_VRTX_SKIN),,vrtx) 136 137define XENOMAI_REMOVE_LIBS 138 for i in $(XENOMAI_REMOVE_LIBS_LIST) ; do \ 139 rm -f $(TARGET_DIR)/usr/lib/lib$$i.* ; \ 140 done 141endef 142 143XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_LIBS 144 145define XENOMAI_DEVICES 146 /dev/rtheap c 666 0 0 10 254 0 0 - 147 /dev/rtscope c 666 0 0 10 253 0 0 - 148 /dev/rtp c 666 0 0 150 0 0 1 32 149endef 150 151ifeq ($(BR2_PACKAGE_HAS_UDEV),y) 152XENOMAI_DEPENDENCIES += udev 153 154define XENOMAI_INSTALL_UDEV_RULES 155 if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \ 156 for f in $(@D)/kernel/cobalt/udev/*.rules ; do \ 157 cp $$f $(TARGET_DIR)/etc/udev/rules.d/ || exit 1 ; \ 158 done ; \ 159 fi; 160endef 161 162XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_INSTALL_UDEV_RULES 163endif # udev 164 165$(eval $(autotools-package)) 166