Add buildroot 2018-02
This commit is contained in:
192
buildroot/package/xenomai/Config.in
Normal file
192
buildroot/package/xenomai/Config.in
Normal file
@@ -0,0 +1,192 @@
|
||||
config BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS
|
||||
bool
|
||||
default y
|
||||
depends on BR2_i386 || BR2_x86_64 || (BR2_arm && !BR2_ARM_CPU_ARMV7M) || \
|
||||
BR2_bfin || BR2_powerpc
|
||||
|
||||
comment "xenomai needs an glibc or uClibc toolchain w/ threads"
|
||||
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_MUSL
|
||||
depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS
|
||||
|
||||
config BR2_PACKAGE_XENOMAI
|
||||
bool "Xenomai Userspace"
|
||||
depends on BR2_PACKAGE_XENOMAI_ARCH_SUPPORTS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
# uses <error.h>, __WORDSIZE and bits/local_lim.h
|
||||
depends on !BR2_TOOLCHAIN_USES_MUSL
|
||||
help
|
||||
Real-Time Framework for Linux
|
||||
http://www.xenomai.org
|
||||
|
||||
Xenomai is split in two parts: a kernel part and an
|
||||
userspace part.
|
||||
|
||||
This package contains the userspace part, which consists
|
||||
mainly in libraries to write userspace real-time programs
|
||||
that interact with the in-kernel Xenomai real-time core.
|
||||
|
||||
For those libraries to work, you need a Xenomai-enabled
|
||||
kernel. This is possible in two ways:
|
||||
- if you compile your kernel with Buildroot, you need to go
|
||||
to Linux Kernel -> Linux Kernel Extensions to enable the
|
||||
Xenomai extension.
|
||||
- if you compile your kernel outside of Buildroot, you need
|
||||
to make sure that it is Xenomai-enabled.
|
||||
|
||||
Finally, if you are using a static /dev, make sure to
|
||||
uncomment the Xenomai entries listed in
|
||||
target/generic/device_table_dev.txt.
|
||||
|
||||
if BR2_PACKAGE_XENOMAI
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_VERSION
|
||||
string "Custom Xenomai version"
|
||||
help
|
||||
Manually select Xenomai version. If left empty, the default
|
||||
version will be used.
|
||||
|
||||
Make sure that the selected version has a patch for your
|
||||
selected Linux kernel. If it does not, download and select
|
||||
a patch manually with
|
||||
BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH, in the Linux
|
||||
Kernel -> Linux Kernel Extensions menu.
|
||||
|
||||
choice
|
||||
prompt "Xenomai core"
|
||||
default BR2_PACKAGE_XENOMAI_MERCURY
|
||||
help
|
||||
Select the Xenomai core: dual kernel (Cobalt)
|
||||
or native Linux Kernel (Mercury).
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_MERCURY
|
||||
bool "Mercury"
|
||||
depends on !BR2_LINUX_KERNEL_EXT_XENOMAI
|
||||
help
|
||||
Select Mercury core for the Xenomai userspace.
|
||||
You want to use it if you have the native Linux Kernel.
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_COBALT
|
||||
bool "Cobalt"
|
||||
help
|
||||
Select Cobalt core (dual kernel) for the Xenomai
|
||||
userspace. Use this if you use a Xenomai-patched
|
||||
Linux kernel.
|
||||
|
||||
If you want to use Cobalt core, your kernel must have
|
||||
the Adeos and Xenomai patches applied to it. You can
|
||||
add these through the BR2_LINUX_KERNEL_EXT_XENOMAI option
|
||||
in the Linux Kernel Extensions menu.
|
||||
endchoice
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_ENABLE_SMP
|
||||
bool "Enable SMP support"
|
||||
default y
|
||||
help
|
||||
This option enables SMP support in Xenomai userspace.
|
||||
|
||||
If this option is turned on while no SMP support is enabled
|
||||
in the kernel, things will still work. However, if SMP is
|
||||
enabled in the kernel but this option is not turned on,
|
||||
Xenomai applications will complain with:
|
||||
|
||||
feature mismatch: missing="smp/nosmp"
|
||||
|
||||
Please refer to this troubleshooting guide for more
|
||||
information:
|
||||
|
||||
http://xenomai.org/troubleshooting-a-dual-kernel-configuration/#feature_mismatch_missing8221smpnosmp8221
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
|
||||
bool "Enable registry"
|
||||
depends on !BR2_STATIC_LIBS # libfuse
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
|
||||
depends on BR2_USE_MMU # libfuse
|
||||
select BR2_PACKAGE_LIBFUSE
|
||||
help
|
||||
Xenomai APIs can export their internal state through a
|
||||
pseudo-filesystem, whose files may be read to obtain
|
||||
information about the existing real-time objects, such as
|
||||
tasks, semaphores, message queues and so on.
|
||||
|
||||
comment "registry needs a toolchain w/ threads, dynamic library"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH
|
||||
string "Custom registry root path"
|
||||
depends on BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY
|
||||
help
|
||||
Specify the root path of the registry here.
|
||||
To use the Xenomai default (currently: /var/run/xenomai),
|
||||
leave this option empty.
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS
|
||||
string "Additional configure options"
|
||||
help
|
||||
Specify any additional options to pass to the configure
|
||||
script here. See Xenomai documentation for details.
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_TESTSUITE
|
||||
bool "Install testsuite"
|
||||
help
|
||||
This option allows to install the Xenomai test programs.
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_RTCAN
|
||||
bool "RTCan utilities"
|
||||
help
|
||||
This option allows to install the Xenomai RT-CAN utilities.
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_ANALOGY
|
||||
bool "Analogy libs and utils"
|
||||
help
|
||||
This option allows to install the Xenomai Analogy utilities
|
||||
and libraries
|
||||
|
||||
menu "Skin selection"
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_NATIVE_SKIN
|
||||
bool "Alchemy (native) skin"
|
||||
default y
|
||||
help
|
||||
This option allows to install the Alchemy Xenomai skin,
|
||||
previously called 'native'
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_POSIX_SKIN
|
||||
bool "POSIX skin"
|
||||
default y
|
||||
help
|
||||
This option allows to install the POSIX Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_PSOS_SKIN
|
||||
bool "pSOS skin"
|
||||
help
|
||||
This option allows to install the pSOS Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_RTAI_SKIN
|
||||
bool "RTAI skin"
|
||||
help
|
||||
This option allows to install the RTAI Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_SMOKEY_SKIN
|
||||
bool "Smokey skin"
|
||||
help
|
||||
This option allows to install the Smokey Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_UITRON_SKIN
|
||||
bool "uITRON skin"
|
||||
help
|
||||
This option allows to install the uITRON Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_VRTX_SKIN
|
||||
bool "VRTX skin"
|
||||
help
|
||||
This option allows to install the VRTX Xenomai skin
|
||||
|
||||
config BR2_PACKAGE_XENOMAI_VXWORKS_SKIN
|
||||
bool "VxWorks skin"
|
||||
help
|
||||
This option allows to install the VxWorks Xenomai skin
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
2
buildroot/package/xenomai/xenomai.hash
Normal file
2
buildroot/package/xenomai/xenomai.hash
Normal file
@@ -0,0 +1,2 @@
|
||||
# Locally computed;
|
||||
sha256 2c0dd3f0e36e4a10f97e0028989bb873e80f4d1ce212ac55fd3b28857c464f94 xenomai-3.0.6.tar.bz2
|
||||
158
buildroot/package/xenomai/xenomai.mk
Normal file
158
buildroot/package/xenomai/xenomai.mk
Normal file
@@ -0,0 +1,158 @@
|
||||
################################################################################
|
||||
#
|
||||
# xenomai
|
||||
#
|
||||
################################################################################
|
||||
|
||||
XENOMAI_VERSION = $(call qstrip,$(BR2_PACKAGE_XENOMAI_VERSION))
|
||||
ifeq ($(XENOMAI_VERSION),)
|
||||
XENOMAI_VERSION = 3.0.6
|
||||
else
|
||||
BR_NO_CHECK_HASH_FOR += $(XENOMAI_SOURCE)
|
||||
endif
|
||||
|
||||
XENOMAI_SITE = http://xenomai.org/downloads/xenomai/stable
|
||||
XENOMAI_SOURCE = xenomai-$(XENOMAI_VERSION).tar.bz2
|
||||
XENOMAI_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)
|
||||
# GFDL is not included but refers to gnu.org
|
||||
XENOMAI_LICENSE_FILES = debian/copyright include/COPYING kernel/cobalt/COPYING \
|
||||
kernel/cobalt/posix/COPYING kernel/cobalt/rtdm/COPYING \
|
||||
lib/alchemy/COPYING lib/analogy/COPYING \
|
||||
lib/boilerplate/iniparser/LICENSE lib/boilerplate/COPYING \
|
||||
lib/cobalt/COPYING lib/copperplate/COPYING lib/psos/COPYING \
|
||||
lib/smokey/COPYING lib/trank/COPYING lib/vxworks/COPYING
|
||||
|
||||
XENOMAI_DEPENDENCIES = host-pkgconf
|
||||
|
||||
# 0002-boilerplate-build-obstack-support-conditionally.patch
|
||||
XENOMAI_AUTORECONF = YES
|
||||
|
||||
XENOMAI_INSTALL_STAGING = YES
|
||||
XENOMAI_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR) install-user
|
||||
XENOMAI_INSTALL_STAGING_OPTS = DESTDIR=$(STAGING_DIR) install-user
|
||||
|
||||
XENOMAI_CONF_OPTS += --includedir=/usr/include/xenomai/ --disable-doc-install
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_MERCURY),y)
|
||||
XENOMAI_CONF_OPTS += --with-core=mercury
|
||||
else
|
||||
XENOMAI_CONF_OPTS += --with-core=cobalt
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_SMP),y)
|
||||
XENOMAI_CONF_OPTS += --enable-smp
|
||||
else
|
||||
XENOMAI_CONF_OPTS += --disable-smp
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY),y)
|
||||
XENOMAI_DEPENDENCIES += libfuse
|
||||
XENOMAI_REGISTRY_PATH = $(call qstrip,$(BR2_PACKAGE_XENOMAI_ENABLE_REGISTRY_PATH))
|
||||
ifeq ($(XENOMAI_REGISTRY_PATH),)
|
||||
XENOMAI_CONF_OPTS += --enable-registry
|
||||
else
|
||||
XENOMAI_CONF_OPTS += --enable-registry=$(XENOMAI_REGISTRY_PATH)
|
||||
endif
|
||||
else
|
||||
XENOMAI_CONF_OPTS += --disable-registry
|
||||
endif
|
||||
|
||||
XENOMAI_CONF_OPTS += $(call qstrip,$(BR2_PACKAGE_XENOMAI_ADDITIONAL_CONF_OPTS))
|
||||
|
||||
# Some of these files may be desired by some users -- at that point specific
|
||||
# config options need to be added to keep a particular set.
|
||||
define XENOMAI_REMOVE_UNNEEDED_FILES
|
||||
for i in xeno xeno-config xeno-info wrap-link.sh ; do \
|
||||
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
|
||||
done
|
||||
for i in autotune corectl hdb rtnet nomaccfg rtcfg rtifconfig \
|
||||
rtiwconfig rtping rtroute tdmacfg rtps slackspot version; do \
|
||||
rm -f $(TARGET_DIR)/usr/sbin/$$i ; \
|
||||
done
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_UNNEEDED_FILES
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_TESTSUITE),)
|
||||
define XENOMAI_REMOVE_TESTSUITE
|
||||
rm -rf $(TARGET_DIR)/usr/share/xenomai/
|
||||
for i in clocktest gpiotest latency spitest switchtest \
|
||||
xeno-test-run-wrapper dohell xeno-test-run xeno-test ; do \
|
||||
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
|
||||
done
|
||||
rm -rf $(TARGET_DIR)/usr/demo/
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_TESTSUITE
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_RTCAN),)
|
||||
define XENOMAI_REMOVE_RTCAN_PROGS
|
||||
for i in rtcanrecv rtcansend ; do \
|
||||
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
|
||||
done
|
||||
rm -f $(TARGET_DIR)/usr/sbin/rtcanconfig
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_RTCAN_PROGS
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_XENOMAI_ANALOGY),)
|
||||
define XENOMAI_REMOVE_ANALOGY
|
||||
for i in cmd_read cmd_write cmd_bits insn_read insn_write insn_bits \
|
||||
wf_generate ; do \
|
||||
rm -f $(TARGET_DIR)/usr/bin/$$i ; \
|
||||
done
|
||||
for i in analogy_config analogy_calibrate ; do \
|
||||
rm -f $(TARGET_DIR)/usr/sbin/$$i ; \
|
||||
done
|
||||
rm -f $(TARGET_DIR)/usr/lib/libanalogy.*
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_ANALOGY
|
||||
endif
|
||||
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_NATIVE_SKIN),,alchemy)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_POSIX_SKIN),,posix)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_PSOS_SKIN),,psos)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_RTAI_SKIN),,rtai)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_SMOKEY_SKIN),,smokey)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_UITRON_SKIN),,uitron)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_VXWORKS_SKIN),,vxworks)
|
||||
XENOMAI_REMOVE_SKIN_LIST += $(if $(BR2_PACKAGE_XENOMAI_VRTX_SKIN),,vrtx)
|
||||
|
||||
define XENOMAI_REMOVE_SKINS
|
||||
for i in $(XENOMAI_REMOVE_SKIN_LIST) ; do \
|
||||
rm -f $(TARGET_DIR)/usr/lib/lib$$i.* ; \
|
||||
if [ $$i == "posix" ] ; then \
|
||||
rm -f $(TARGET_DIR)/usr/lib/posix.wrappers ; \
|
||||
fi ; \
|
||||
if [ $$i == "smokey" ] ; then \
|
||||
rm -f $(TARGET_DIR)/usr/bin/smokey* ; \
|
||||
fi ; \
|
||||
done
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_REMOVE_SKINS
|
||||
|
||||
define XENOMAI_DEVICES
|
||||
/dev/rtheap c 666 0 0 10 254 0 0 -
|
||||
/dev/rtscope c 666 0 0 10 253 0 0 -
|
||||
/dev/rtp c 666 0 0 150 0 0 1 32
|
||||
endef
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HAS_UDEV),y)
|
||||
XENOMAI_DEPENDENCIES += udev
|
||||
|
||||
define XENOMAI_INSTALL_UDEV_RULES
|
||||
if test -d $(TARGET_DIR)/etc/udev/rules.d ; then \
|
||||
for f in $(@D)/kernel/cobalt/udev/*.rules ; do \
|
||||
cp $$f $(TARGET_DIR)/etc/udev/rules.d/ || exit 1 ; \
|
||||
done ; \
|
||||
fi;
|
||||
endef
|
||||
|
||||
XENOMAI_POST_INSTALL_TARGET_HOOKS += XENOMAI_INSTALL_UDEV_RULES
|
||||
endif # udev
|
||||
|
||||
$(eval $(autotools-package))
|
||||
Reference in New Issue
Block a user