Patchwork [1/1] Openpowerlink: new package

login
register
mail settings
Submitter Romain Naour
Date Sept. 21, 2013, 12:48 a.m.
Message ID <681556336.7308664.1379724486354.JavaMail.root@openwide.fr>
Download mbox | patch
Permalink /patch/276823/
State Superseded
Headers show

Comments

Romain Naour - Sept. 21, 2013, 12:48 a.m.
Signed-off-by: Romain Naour <romain.naour@openwide.fr>
---
 package/Config.in                                  |  1 +
 package/openpowerlink/Config.in                    | 92 +++++++++++++++++++++
 .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
 package/openpowerlink/openpowerlink.mk             | 93 ++++++++++++++++++++++
 4 files changed, 213 insertions(+)
 create mode 100644 package/openpowerlink/Config.in
 create mode 100644 package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
 create mode 100644 package/openpowerlink/openpowerlink.mk
Thomas De Schampheleire - Sept. 21, 2013, 7:16 a.m.
Hi Romain,

Thanks for contributing! A few comments below.

Op 21-sep.-2013 02:48 schreef "Romain Naour" <romain.naour@openwide.fr> het
volgende:
>
>
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
>  package/Config.in                                  |  1 +
>  package/openpowerlink/Config.in                    | 92
+++++++++++++++++++++
>  .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>  package/openpowerlink/openpowerlink.mk             | 93
++++++++++++++++++++++
>  4 files changed, 213 insertions(+)
>  create mode 100644 package/openpowerlink/Config.in
>  create mode 100644
package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>  create mode 100644 package/openpowerlink/openpowerlink.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index e1dfd5d..fdf9b55 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -912,6 +912,7 @@ endmenu
>  menu "Real-Time"
>  source "package/xenomai/Config.in"
>  source "package/rtai/Config.in"
> +source "package/openpowerlink/Config.in"

Is real-time the right menu for openpowerlink? The current packages in that
menu provide real time capabilities, not packages you use in a real time
environment. There is an other menu 'hardware handling' that at first sight
seems also fitting.

Note that entries should be in alphabetical order, but apparently xenomai
and rtai weren't yet.

>  endmenu
>
>  menu "Shell and utilities"
> diff --git a/package/openpowerlink/Config.in
b/package/openpowerlink/Config.in
> new file mode 100644
> index 0000000..42a6099
> --- /dev/null
> +++ b/package/openpowerlink/Config.in
> @@ -0,0 +1,92 @@
> +comment "openpowerlink requires thread support in toolchain"
> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +config BR2_PACKAGE_OPENPOWERLINK
> +       bool "Openpowerlink"

We typically write such entries in all-lowercase.

> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       depends on BR2_i386 || BR2_x86_64
> +       help
> +         openPOWERLINK is an Open Source Industrial Ethernet
> +         stack implementing the POWERLINK protocol for Managing Node
> +         (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK
Slave).
> +
> +         It is provided by SYSTEC electronic (
http://www.systec-electronic.com),
> +         B&R (http://www.br-automation.com) and
> +         Kalycito (http://www.kalycito.com).

It's there a url specifically for this package? This should be mentioned as
the last line of the entry.

> +
> +if BR2_PACKAGE_OPENPOWERLINK
> +
> +choice
> +       prompt "Openpowerlink mode"

Is it necessary to repeat the package name here?

> +
> +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
> +       bool "userspace stack"
> +       select BR2_PACKAGE_LIBPCAP
> +
> +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +       bool "kernel stack"
> +       depends on BR2_LINUX_KERNEL
> +       help
> +         You may select BR2_PACKAGE_PCIUTILS for lscpi, and
BR2_PACKAGE_PROCPS for ps command.
> +         These commands are used in EplLoad and EplUndload scripts.
> +
> +endchoice

Is there more help that can be given for both options? Are there
benefits/advantages on either? Or limitations in functionality?

> +
> +if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +choice
> +       prompt "Select Ethernet Powerlink Driver"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_82573
> +       bool "Intel 82573"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_8255x
> +       bool "Intel 8255x"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_RTL8139
> +       bool "Realteck RTL-8139"

This should be Realtek

> +
> +endchoice
> +
> +endif
> +
> +choice
> +       prompt "Select MN/CN mode"
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_MN
> +       bool "MN"
> +       help
> +         Enable Managing Node mode
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_CN
> +       bool "CN"
> +       help
> +         Enable Controlled Node mode
> +
> +endchoice
> +
> +# Powerlink Demos

It would make sense to group the demos under a suboption, don't you think?

> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
> +       bool "Console MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
> +       bool "QT MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +       select BR2_PACKAGE_QT
> +       select BR2_PACKAGE_QT_STL
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
> +       bool "Console CN demo"
> +       depends on !BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
> +       bool "Kernel demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
> +       string "Debug level for EPL"
> +       help
> +         default value: 0xEC000000L
> +
> +endif
> diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch

Patches should be named openpowerlink-0001-description.patch, and we
typically use lowercase and dashes for the description.

> new file mode 100644
> index 0000000..a71298d
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> @@ -0,0 +1,27 @@
> +From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@openwide.fr>
> +Date: Wed, 18 Sep 2013 23:33:04 +0200
> +Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources
list
> +
> +demo_mn_qt use EplGetEmergErrCodeStr()
> +
> +Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> +---
> + Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +index 9db2f7f..48ae9eb 100644
> +--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> ++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
> +                  src/MainWindow.cpp
> +                  src/NodeState.cpp
> +
 ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
> ++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
> +     )
> +
> + # The TRACE macros need trace.c on the Windows platform
> +--
> +1.8.4
> +

Is this patch something that can be upstreamed?

> diff --git a/package/openpowerlink/openpowerlink.mkb/package/openpowerlink/
openpowerlink.mk
> new file mode 100644
> index 0000000..ac28de9
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink.mk
> @@ -0,0 +1,93 @@
>
+################################################################################
> +#
> +# openPOWERLINK
> +#
>
+################################################################################
> +
> +OPENPOWERLINK_VERSION = V1.08.3
> +OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
> +OPENPOWERLINK_SITE =
http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
> +
> +OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
> +OPENPOWERLINK_LICENSE_FILES = license.txt
> +OPENPOWERLINK_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_i386),y)
> +OPENPOWERLINK_ARCH = x86
> +endif
> +
> +ifeq ($(BR2_x86_64),y)
> +OPENPOWERLINK_ARCH = x86_64
> +endif
> +
> +OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
> +
> +OPENPOWERLINK_DEBUG_LEVEL = $(call
qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
> +
> +ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L

What about moving this as default to Config.in, then you don't need a
if-else here?

> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
> +#  use the user space stack (libpcap)
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
> +OPENPOWERLINK_DEPENDENCIES = libpcap
> +else
> +# use the kernel stack
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
> +OPENPOWERLINK_DEPENDENCIES = linux
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
> +OPENPOWERLINK_DEPENDENCIES += qt
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
> +endif
> +
> +define OPENPOWERLINK_EXTRACT_CMDS
> +       $(RM) -rf $(OPENPOWERLINK_DIR)
> +       unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
> +       test -d $(OPENPOWERLINK_DIR) || \
> +               mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE))
$(OPENPOWERLINK_DIR)
> +endef
> +
> +$(eval $(cmake-package))
> --
> 1.8.4

Best regards,
Thomas
Thomas Petazzoni - Sept. 21, 2013, 7:42 a.m.
Dear Thomas De Schampheleire,

On Sat, 21 Sep 2013 09:16:15 +0200, Thomas De Schampheleire wrote:
> Hi Romain,
> 
> Thanks for contributing! A few comments below.
> 
> Op 21-sep.-2013 02:48 schreef "Romain Naour" <romain.naour@openwide.fr> het
> volgende:
> >
> >
> > Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> > ---
> >  package/Config.in                                  |  1 +
> >  package/openpowerlink/Config.in                    | 92
> +++++++++++++++++++++
> >  .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
> >  package/openpowerlink/openpowerlink.mk             | 93
> ++++++++++++++++++++++
> >  4 files changed, 213 insertions(+)

Whenever you reply to an e-mail, since a few weeks, your replies are
badly line-wrapped. Would it be possible to tune your e-mail client not
to do so?

Thanks a lot!

Thomas
Thomas De Schampheleire - Sept. 21, 2013, 8:15 a.m.
Hi Thomas,

Op 21-sep.-2013 02:48 schreef "Romain Naour" <romain.naour@openwide.fr> het
volgende:
>
>
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
>  package/Config.in                                  |  1 +
>  package/openpowerlink/Config.in                    | 92
+++++++++++++++++++++
>  .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>  package/openpowerlink/openpowerlink.mk             | 93
++++++++++++++++++++++
>  4 files changed, 213 insertions(+)
>  create mode 100644 package/openpowerlink/Config.in
>  create mode 100644
package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>  create mode 100644 package/openpowerlink/openpowerlink.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index e1dfd5d..fdf9b55 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -912,6 +912,7 @@ endmenu
>  menu "Real-Time"
>  source "package/xenomai/Config.in"
>  source "package/rtai/Config.in"
> +source "package/openpowerlink/Config.in"
>  endmenu
>
>  menu "Shell and utilities"
> diff --git a/package/openpowerlink/Config.in
b/package/openpowerlink/Config.in
> new file mode 100644
> index 0000000..42a6099
> --- /dev/null
> +++ b/package/openpowerlink/Config.in
> @@ -0,0 +1,92 @@
> +comment "openpowerlink requires thread support in toolchain"
> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +config BR2_PACKAGE_OPENPOWERLINK
> +       bool "Openpowerlink"
> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       depends on BR2_i386 || BR2_x86_64
> +       help
> +         openPOWERLINK is an Open Source Industrial Ethernet
> +         stack implementing the POWERLINK protocol for Managing Node
> +         (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK
Slave).
> +
> +         It is provided by SYSTEC electronic (
http://www.systec-electronic.com),
> +         B&R (http://www.br-automation.com) and
> +         Kalycito (http://www.kalycito.com).
> +
> +if BR2_PACKAGE_OPENPOWERLINK
> +
> +choice
> +       prompt "Openpowerlink mode"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
> +       bool "userspace stack"
> +       select BR2_PACKAGE_LIBPCAP
> +
> +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +       bool "kernel stack"
> +       depends on BR2_LINUX_KERNEL
> +       help
> +         You may select BR2_PACKAGE_PCIUTILS for lscpi, and
BR2_PACKAGE_PROCPS for ps command.
> +         These commands are used in EplLoad and EplUndload scripts.
> +
> +endchoice
> +
> +if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +choice
> +       prompt "Select Ethernet Powerlink Driver"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_82573
> +       bool "Intel 82573"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_8255x
> +       bool "Intel 8255x"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_RTL8139
> +       bool "Realteck RTL-8139"
> +
> +endchoice
> +
> +endif
> +
> +choice
> +       prompt "Select MN/CN mode"
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_MN
> +       bool "MN"
> +       help
> +         Enable Managing Node mode
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_CN
> +       bool "CN"
> +       help
> +         Enable Controlled Node mode
> +
> +endchoice
> +
> +# Powerlink Demos
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
> +       bool "Console MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
> +       bool "QT MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +       select BR2_PACKAGE_QT
> +       select BR2_PACKAGE_QT_STL
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
> +       bool "Console CN demo"
> +       depends on !BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
> +       bool "Kernel demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
> +       string "Debug level for EPL"
> +       help
> +         default value: 0xEC000000L
> +
> +endif
> diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> new file mode 100644
> index 0000000..a71298d
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> @@ -0,0 +1,27 @@
> +From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@openwide.fr>
> +Date: Wed, 18 Sep 2013 23:33:04 +0200
> +Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources
list
> +
> +demo_mn_qt use EplGetEmergErrCodeStr()
> +
> +Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> +---
> + Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +index 9db2f7f..48ae9eb 100644
> +--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> ++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
> +                  src/MainWindow.cpp
> +                  src/NodeState.cpp
> +
 ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
> ++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
> +     )
> +
> + # The TRACE macros need trace.c on the Windows platform
> +--
> +1.8.4
> +
> diff --git a/package/openpowerlink/openpowerlink.mkb/package/openpowerlink/
openpowerlink.mk
> new file mode 100644
> index 0000000..ac28de9
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink.mk
> @@ -0,0 +1,93 @@
>
+################################################################################
> +#
> +# openPOWERLINK
> +#
>
+################################################################################
> +
> +OPENPOWERLINK_VERSION = V1.08.3
> +OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
> +OPENPOWERLINK_SITE =
http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
> +
> +OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
> +OPENPOWERLINK_LICENSE_FILES = license.txt
> +OPENPOWERLINK_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_i386),y)
> +OPENPOWERLINK_ARCH = x86
> +endif
> +
> +ifeq ($(BR2_x86_64),y)
> +OPENPOWERLINK_ARCH = x86_64
> +endif
> +
> +OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
> +
> +OPENPOWERLINK_DEBUG_LEVEL = $(call
qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
> +
> +ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
> +#  use the user space stack (libpcap)
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
> +OPENPOWERLINK_DEPENDENCIES = libpcap
> +else
> +# use the kernel stack
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
> +OPENPOWERLINK_DEPENDENCIES = linux
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
> +OPENPOWERLINK_DEPENDENCIES += qt
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
> +endif
> +
> +define OPENPOWERLINK_EXTRACT_CMDS
> +       $(RM) -rf $(OPENPOWERLINK_DIR)
> +       unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
> +       test -d $(OPENPOWERLINK_DIR) || \
> +               mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE))
$(OPENPOWERLINK_DIR)
> +endef
> +
> +$(eval $(cmake-package))
> --
> 1.8.4

Thanks for mentioning the line wrapping problem, I wasn't aware. I think
the problem only occurs when I send mail from the gmail app on my phone. I
now changed a setting but I fear it will not affect outgoing mail. This is
a test mail.
If it doesn't work I'll find a better mail app for android. Suggestions are
welcome...

Thanks,
Thomas
Thomas De Schampheleire - Sept. 21, 2013, 8:17 a.m.
Hi Thomas,

On Sat, Sep 21, 2013 at 2:48 AM, Romain Naour <romain.naour@openwide.fr> wrote:
>
> Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> ---
>  package/Config.in                                  |  1 +
>  package/openpowerlink/Config.in                    | 92 +++++++++++++++++++++
>  .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>  package/openpowerlink/openpowerlink.mk             | 93 ++++++++++++++++++++++
>  4 files changed, 213 insertions(+)
>  create mode 100644 package/openpowerlink/Config.in
>  create mode 100644 package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>  create mode 100644 package/openpowerlink/openpowerlink.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index e1dfd5d..fdf9b55 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -912,6 +912,7 @@ endmenu
>  menu "Real-Time"
>  source "package/xenomai/Config.in"
>  source "package/rtai/Config.in"
> +source "package/openpowerlink/Config.in"
>  endmenu
>
>  menu "Shell and utilities"
> diff --git a/package/openpowerlink/Config.in b/package/openpowerlink/Config.in
> new file mode 100644
> index 0000000..42a6099
> --- /dev/null
> +++ b/package/openpowerlink/Config.in
> @@ -0,0 +1,92 @@
> +comment "openpowerlink requires thread support in toolchain"
> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +config BR2_PACKAGE_OPENPOWERLINK
> +       bool "Openpowerlink"
> +       depends on BR2_TOOLCHAIN_HAS_THREADS
> +       depends on BR2_i386 || BR2_x86_64
> +       help
> +         openPOWERLINK is an Open Source Industrial Ethernet
> +         stack implementing the POWERLINK protocol for Managing Node
> +         (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
> +
> +         It is provided by SYSTEC electronic (http://www.systec-electronic.com),
> +         B&R (http://www.br-automation.com) and
> +         Kalycito (http://www.kalycito.com).
> +
> +if BR2_PACKAGE_OPENPOWERLINK
> +
> +choice
> +       prompt "Openpowerlink mode"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
> +       bool "userspace stack"
> +       select BR2_PACKAGE_LIBPCAP
> +
> +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +       bool "kernel stack"
> +       depends on BR2_LINUX_KERNEL
> +       help
> +         You may select BR2_PACKAGE_PCIUTILS for lscpi, and BR2_PACKAGE_PROCPS for ps command.
> +         These commands are used in EplLoad and EplUndload scripts.
> +
> +endchoice
> +
> +if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +choice
> +       prompt "Select Ethernet Powerlink Driver"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_82573
> +       bool "Intel 82573"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_8255x
> +       bool "Intel 8255x"
> +
> +config BR2_PACKAGE_OPENPOWERLINK_RTL8139
> +       bool "Realteck RTL-8139"
> +
> +endchoice
> +
> +endif
> +
> +choice
> +       prompt "Select MN/CN mode"
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_MN
> +       bool "MN"
> +       help
> +         Enable Managing Node mode
> +
> +       config BR2_PACKAGE_OPENPOWERLINK_CN
> +       bool "CN"
> +       help
> +         Enable Controlled Node mode
> +
> +endchoice
> +
> +# Powerlink Demos
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
> +       bool "Console MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
> +       bool "QT MN demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
> +       select BR2_PACKAGE_QT
> +       select BR2_PACKAGE_QT_STL
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
> +       bool "Console CN demo"
> +       depends on !BR2_PACKAGE_OPENPOWERLINK_MN
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
> +       bool "Kernel demo"
> +       depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
> +
> +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
> +       string "Debug level for EPL"
> +       help
> +         default value: 0xEC000000L
> +
> +endif
> diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> new file mode 100644
> index 0000000..a71298d
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> @@ -0,0 +1,27 @@
> +From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
> +From: Romain Naour <romain.naour@openwide.fr>
> +Date: Wed, 18 Sep 2013 23:33:04 +0200
> +Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources list
> +
> +demo_mn_qt use EplGetEmergErrCodeStr()
> +
> +Signed-off-by: Romain Naour <romain.naour@openwide.fr>
> +---
> + Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
> + 1 file changed, 1 insertion(+)
> +
> +diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +index 9db2f7f..48ae9eb 100644
> +--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> ++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
> +@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
> +                  src/MainWindow.cpp
> +                  src/NodeState.cpp
> +                  ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
> ++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
> +     )
> +
> + # The TRACE macros need trace.c on the Windows platform
> +--
> +1.8.4
> +
> diff --git a/package/openpowerlink/openpowerlink.mk b/package/openpowerlink/openpowerlink.mk
> new file mode 100644
> index 0000000..ac28de9
> --- /dev/null
> +++ b/package/openpowerlink/openpowerlink.mk
> @@ -0,0 +1,93 @@
> +################################################################################
> +#
> +# openPOWERLINK
> +#
> +################################################################################
> +
> +OPENPOWERLINK_VERSION = V1.08.3
> +OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
> +OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
> +
> +OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
> +OPENPOWERLINK_LICENSE_FILES = license.txt
> +OPENPOWERLINK_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_i386),y)
> +OPENPOWERLINK_ARCH = x86
> +endif
> +
> +ifeq ($(BR2_x86_64),y)
> +OPENPOWERLINK_ARCH = x86_64
> +endif
> +
> +OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
> +
> +OPENPOWERLINK_DEBUG_LEVEL = $(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
> +
> +ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
> +#  use the user space stack (libpcap)
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
> +OPENPOWERLINK_DEPENDENCIES = libpcap
> +else
> +# use the kernel stack
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
> +OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
> +OPENPOWERLINK_DEPENDENCIES = linux
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
> +OPENPOWERLINK_DEPENDENCIES += qt
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
> +endif
> +
> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
> +else
> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
> +endif
> +
> +define OPENPOWERLINK_EXTRACT_CMDS
> +       $(RM) -rf $(OPENPOWERLINK_DIR)
> +       unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
> +       test -d $(OPENPOWERLINK_DIR) || \
> +               mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE)) $(OPENPOWERLINK_DIR)
> +endef
> +
> +$(eval $(cmake-package))
> --
> 1.8.4
>

Hmm, that test didn't seem to work.
This test is from Gmail on desktop, just to be double-check that that
is OK. Sorry for the spam by the way, don't know a better way to check
it, because the gmail web interface does not show any bad line
wrapping...

Best regards,
Thomas
Thomas De Schampheleire - Sept. 21, 2013, 9:38 a.m.
Romain Naour <romain.naour@openwide.fr> schreef:
>
>Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>---
> package/Config.in                                  |  1 +
>package/openpowerlink/Config.in                    | 92
>+++++++++++++++++++++
> .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>package/openpowerlink/openpowerlink.mk             | 93
>++++++++++++++++++++++
> 4 files changed, 213 insertions(+)
> create mode 100644 package/openpowerlink/Config.in
>create mode 100644
>package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> create mode 100644 package/openpowerlink/openpowerlink.mk
>
>diff --git a/package/Config.in b/package/Config.in
>index e1dfd5d..fdf9b55 100644
>--- a/package/Config.in
>+++ b/package/Config.in
>@@ -912,6 +912,7 @@ endmenu
> menu "Real-Time"
> source "package/xenomai/Config.in"
> source "package/rtai/Config.in"
>+source "package/openpowerlink/Config.in"
> endmenu
> 
> menu "Shell and utilities"
>diff --git a/package/openpowerlink/Config.in
>b/package/openpowerlink/Config.in
>new file mode 100644
>index 0000000..42a6099
>--- /dev/null
>+++ b/package/openpowerlink/Config.in
>@@ -0,0 +1,92 @@
>+comment "openpowerlink requires thread support in toolchain"
>+	depends on !BR2_TOOLCHAIN_HAS_THREADS
>+
>+config BR2_PACKAGE_OPENPOWERLINK
>+	bool "Openpowerlink"
>+	depends on BR2_TOOLCHAIN_HAS_THREADS
>+	depends on BR2_i386 || BR2_x86_64
>+	help
>+	  openPOWERLINK is an Open Source Industrial Ethernet 
>+	  stack implementing the POWERLINK protocol for Managing Node 
>+	  (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
>+
>+	  It is provided by SYSTEC electronic
>(http://www.systec-electronic.com), 
>+	  B&R (http://www.br-automation.com) and 
>+	  Kalycito (http://www.kalycito.com).
>+
>+if BR2_PACKAGE_OPENPOWERLINK
>+
>+choice
>+	prompt "Openpowerlink mode"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
>+	bool "userspace stack"
>+	select BR2_PACKAGE_LIBPCAP
>+
>+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+	bool "kernel stack"
>+	depends on BR2_LINUX_KERNEL
>+	help
>+	  You may select BR2_PACKAGE_PCIUTILS for lscpi, and
>BR2_PACKAGE_PROCPS for ps command.
>+	  These commands are used in EplLoad and EplUndload scripts.
>+
>+endchoice
>+
>+if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+
>+choice
>+	prompt "Select Ethernet Powerlink Driver"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_82573
>+	bool "Intel 82573"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_8255x
>+	bool "Intel 8255x"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_RTL8139
>+	bool "Realteck RTL-8139"
>+
>+endchoice
>+
>+endif
>+
>+choice
>+	prompt "Select MN/CN mode"
>+
>+	config BR2_PACKAGE_OPENPOWERLINK_MN
>+	bool "MN"
>+	help
>+	  Enable Managing Node mode
>+
>+	config BR2_PACKAGE_OPENPOWERLINK_CN
>+	bool "CN"
>+	help
>+	  Enable Controlled Node mode
>+
>+endchoice
>+
>+# Powerlink Demos
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
>+	bool "Console MN demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
>+	bool "QT MN demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
>+	select BR2_PACKAGE_QT
>+	select BR2_PACKAGE_QT_STL
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
>+	bool "Console CN demo"
>+	depends on !BR2_PACKAGE_OPENPOWERLINK_MN
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
>+	bool "Kernel demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
>+	string "Debug level for EPL"
>+	help
>+	  default value: 0xEC000000L
>+
>+endif
>diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>new file mode 100644
>index 0000000..a71298d
>--- /dev/null
>+++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>@@ -0,0 +1,27 @@
>+From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
>+From: Romain Naour <romain.naour@openwide.fr>
>+Date: Wed, 18 Sep 2013 23:33:04 +0200
>+Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources
>list
>+
>+demo_mn_qt use EplGetEmergErrCodeStr()
>+
>+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>+---
>+ Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
>+ 1 file changed, 1 insertion(+)
>+
>+diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>+index 9db2f7f..48ae9eb 100644
>+--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>+@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
>+                  src/MainWindow.cpp
>+                  src/NodeState.cpp
>+                 
>${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
>++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
>+     )
>+ 
>+ # The TRACE macros need trace.c on the Windows platform
>+-- 
>+1.8.4
>+
>diff --git a/package/openpowerlink/openpowerlink.mk
>b/package/openpowerlink/openpowerlink.mk
>new file mode 100644
>index 0000000..ac28de9
>--- /dev/null
>+++ b/package/openpowerlink/openpowerlink.mk
>@@ -0,0 +1,93 @@
>+################################################################################
>+#
>+# openPOWERLINK
>+#
>+################################################################################
>+
>+OPENPOWERLINK_VERSION = V1.08.3
>+OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
>+OPENPOWERLINK_SITE =
>http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
>+
>+OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
>+OPENPOWERLINK_LICENSE_FILES = license.txt
>+OPENPOWERLINK_INSTALL_STAGING = YES
>+
>+ifeq ($(BR2_i386),y)
>+OPENPOWERLINK_ARCH = x86
>+endif
>+
>+ifeq ($(BR2_x86_64),y)
>+OPENPOWERLINK_ARCH = x86_64
>+endif
>+
>+OPENPOWERLINK_CONF_OPT =
>-DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
>+
>+OPENPOWERLINK_DEBUG_LEVEL = $(call
>qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
>+
>+ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
>+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
>+#  use the user space stack (libpcap)
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
>+OPENPOWERLINK_DEPENDENCIES = libpcap
>+else
>+# use the kernel stack
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
>+OPENPOWERLINK_DEPENDENCIES = linux
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
>+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
>+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
>+OPENPOWERLINK_DEPENDENCIES += qt
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
>+endif
>+
>+define OPENPOWERLINK_EXTRACT_CMDS
>+	$(RM) -rf $(OPENPOWERLINK_DIR)
>+	unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
>+	test -d $(OPENPOWERLINK_DIR) || \
>+		mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE))
>$(OPENPOWERLINK_DIR)
>+endef
>+
>+$(eval $(cmake-package))

Here it's another test from k9...
Thomas De Schampheleire - Sept. 21, 2013, 9:41 a.m.
Romain Naour <romain.naour@openwide.fr> schreef:
>
>Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>---
> package/Config.in                                  |  1 +
>package/openpowerlink/Config.in                    | 92
>+++++++++++++++++++++
> .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>package/openpowerlink/openpowerlink.mk             | 93
>++++++++++++++++++++++
> 4 files changed, 213 insertions(+)
> create mode 100644 package/openpowerlink/Config.in
>create mode 100644
>package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> create mode 100644 package/openpowerlink/openpowerlink.mk
>
>diff --git a/package/Config.in b/package/Config.in
>index e1dfd5d..fdf9b55 100644
>--- a/package/Config.in
>+++ b/package/Config.in
>@@ -912,6 +912,7 @@ endmenu
> menu "Real-Time"
> source "package/xenomai/Config.in"
> source "package/rtai/Config.in"
>+source "package/openpowerlink/Config.in"
> endmenu
> 
> menu "Shell and utilities"
>diff --git a/package/openpowerlink/Config.in
>b/package/openpowerlink/Config.in
>new file mode 100644
>index 0000000..42a6099
>--- /dev/null
>+++ b/package/openpowerlink/Config.in
>@@ -0,0 +1,92 @@
>+comment "openpowerlink requires thread support in toolchain"
>+	depends on !BR2_TOOLCHAIN_HAS_THREADS
>+
>+config BR2_PACKAGE_OPENPOWERLINK
>+	bool "Openpowerlink"
>+	depends on BR2_TOOLCHAIN_HAS_THREADS
>+	depends on BR2_i386 || BR2_x86_64
>+	help
>+	  openPOWERLINK is an Open Source Industrial Ethernet 
>+	  stack implementing the POWERLINK protocol for Managing Node 
>+	  (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
>+
>+	  It is provided by SYSTEC electronic
>(http://www.systec-electronic.com), 
>+	  B&R (http://www.br-automation.com) and 
>+	  Kalycito (http://www.kalycito.com).
>+
>+if BR2_PACKAGE_OPENPOWERLINK
>+
>+choice
>+	prompt "Openpowerlink mode"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
>+	bool "userspace stack"
>+	select BR2_PACKAGE_LIBPCAP
>+
>+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+	bool "kernel stack"
>+	depends on BR2_LINUX_KERNEL
>+	help
>+	  You may select BR2_PACKAGE_PCIUTILS for lscpi, and
>BR2_PACKAGE_PROCPS for ps command.
>+	  These commands are used in EplLoad and EplUndload scripts.
>+
>+endchoice
>+
>+if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+
>+choice
>+	prompt "Select Ethernet Powerlink Driver"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_82573
>+	bool "Intel 82573"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_8255x
>+	bool "Intel 8255x"
>+
>+config BR2_PACKAGE_OPENPOWERLINK_RTL8139
>+	bool "Realteck RTL-8139"
>+
>+endchoice
>+
>+endif
>+
>+choice
>+	prompt "Select MN/CN mode"
>+
>+	config BR2_PACKAGE_OPENPOWERLINK_MN
>+	bool "MN"
>+	help
>+	  Enable Managing Node mode
>+
>+	config BR2_PACKAGE_OPENPOWERLINK_CN
>+	bool "CN"
>+	help
>+	  Enable Controlled Node mode
>+
>+endchoice
>+
>+# Powerlink Demos
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
>+	bool "Console MN demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
>+	bool "QT MN demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
>+	select BR2_PACKAGE_QT
>+	select BR2_PACKAGE_QT_STL
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
>+	bool "Console CN demo"
>+	depends on !BR2_PACKAGE_OPENPOWERLINK_MN
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
>+	bool "Kernel demo"
>+	depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>+
>+config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
>+	string "Debug level for EPL"
>+	help
>+	  default value: 0xEC000000L
>+
>+endif
>diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>new file mode 100644
>index 0000000..a71298d
>--- /dev/null
>+++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>@@ -0,0 +1,27 @@
>+From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
>+From: Romain Naour <romain.naour@openwide.fr>
>+Date: Wed, 18 Sep 2013 23:33:04 +0200
>+Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources
>list
>+
>+demo_mn_qt use EplGetEmergErrCodeStr()
>+
>+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
>+---
>+ Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
>+ 1 file changed, 1 insertion(+)
>+
>+diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>+index 9db2f7f..48ae9eb 100644
>+--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>+@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
>+                  src/MainWindow.cpp
>+                  src/NodeState.cpp
>+                 
>${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
>++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
>+     )
>+ 
>+ # The TRACE macros need trace.c on the Windows platform
>+-- 
>+1.8.4
>+
>diff --git a/package/openpowerlink/openpowerlink.mk
>b/package/openpowerlink/openpowerlink.mk
>new file mode 100644
>index 0000000..ac28de9
>--- /dev/null
>+++ b/package/openpowerlink/openpowerlink.mk
>@@ -0,0 +1,93 @@
>+################################################################################
>+#
>+# openPOWERLINK
>+#
>+################################################################################
>+
>+OPENPOWERLINK_VERSION = V1.08.3
>+OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
>+OPENPOWERLINK_SITE =
>http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
>+
>+OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
>+OPENPOWERLINK_LICENSE_FILES = license.txt
>+OPENPOWERLINK_INSTALL_STAGING = YES
>+
>+ifeq ($(BR2_i386),y)
>+OPENPOWERLINK_ARCH = x86
>+endif
>+
>+ifeq ($(BR2_x86_64),y)
>+OPENPOWERLINK_ARCH = x86_64
>+endif
>+
>+OPENPOWERLINK_CONF_OPT =
>-DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
>+
>+OPENPOWERLINK_DEBUG_LEVEL = $(call
>qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
>+
>+ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
>+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
>+#  use the user space stack (libpcap)
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
>+OPENPOWERLINK_DEPENDENCIES = libpcap
>+else
>+# use the kernel stack
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
>+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
>+OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
>+OPENPOWERLINK_DEPENDENCIES = linux
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
>+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
>+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
>+OPENPOWERLINK_DEPENDENCIES += qt
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
>+endif
>+
>+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
>+else
>+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
>+endif
>+
>+define OPENPOWERLINK_EXTRACT_CMDS
>+	$(RM) -rf $(OPENPOWERLINK_DIR)
>+	unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
>+	test -d $(OPENPOWERLINK_DIR) || \
>+		mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE))
>$(OPENPOWERLINK_DIR)
>+endef
>+
>+$(eval $(cmake-package))

 Why is this so hard?
Romain Naour - Sept. 21, 2013, 10:19 a.m.
Hi Thomas,

Le 21/09/2013 09:16, Thomas De Schampheleire a écrit :
> Hi Romain,
> 
> Thanks for contributing! A few comments below.

You're welcome.

> 
> Op 21-sep.-2013 02:48 schreef "Romain Naour" <romain.naour@openwide.fr <mailto:romain.naour@openwide.fr>> het volgende:
>>
>>
>> Signed-off-by: Romain Naour <romain.naour@openwide.fr <mailto:romain.naour@openwide.fr>>
>> ---
>>  package/Config.in                                  |  1 +
>>  package/openpowerlink/Config.in                    | 92 +++++++++++++++++++++
>>  .../openpowerlink-FIX-demo_mn_qt.patch             | 27 +++++++
>>  package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>             | 93 ++++++++++++++++++++++
>>  4 files changed, 213 insertions(+)
>>  create mode 100644 package/openpowerlink/Config.in
>>  create mode 100644 package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>>  create mode 100644 package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>>
>> diff --git a/package/Config.in b/package/Config.in
>> index e1dfd5d..fdf9b55 100644
>> --- a/package/Config.in
>> +++ b/package/Config.in
>> @@ -912,6 +912,7 @@ endmenu
>>  menu "Real-Time"
>>  source "package/xenomai/Config.in"
>>  source "package/rtai/Config.in"
>> +source "package/openpowerlink/Config.in"
> 
> Is real-time the right menu for openpowerlink? The current packages in that menu provide real time capabilities, not packages you use in a real time
> environment. There is an other menu 'hardware handling' that at first sight seems also fitting.

I wasn't sure about that...
It is because openpowerlink is mainly used when you're running a preempt-rt kernel.

> 
> Note that entries should be in alphabetical order, but apparently xenomai and rtai weren't yet.

I will fix that.

> 
>>  endmenu
>>
>>  menu "Shell and utilities"
>> diff --git a/package/openpowerlink/Config.in b/package/openpowerlink/Config.in
>> new file mode 100644
>> index 0000000..42a6099
>> --- /dev/null
>> +++ b/package/openpowerlink/Config.in
>> @@ -0,0 +1,92 @@
>> +comment "openpowerlink requires thread support in toolchain"
>> +       depends on !BR2_TOOLCHAIN_HAS_THREADS
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK
>> +       bool "Openpowerlink"
> 
> We typically write such entries in all-lowercase.
> 
>> +       depends on BR2_TOOLCHAIN_HAS_THREADS
>> +       depends on BR2_i386 || BR2_x86_64
>> +       help
>> +         openPOWERLINK is an Open Source Industrial Ethernet
>> +         stack implementing the POWERLINK protocol for Managing Node
>> +         (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
>> +
>> +         It is provided by SYSTEC electronic (http://www.systec-electronic.com),
>> +         B&R (http://www.br-automation.com) and
>> +         Kalycito (http://www.kalycito.com).
> 
> It's there a url specifically for this package? This should be mentioned as the last line of the entry.

yes, the sources are available at sourceforge.

> 
>> +
>> +if BR2_PACKAGE_OPENPOWERLINK
>> +
>> +choice
>> +       prompt "Openpowerlink mode"
> 
> Is it necessary to repeat the package name here?
> 
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
>> +       bool "userspace stack"
>> +       select BR2_PACKAGE_LIBPCAP
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> +       bool "kernel stack"
>> +       depends on BR2_LINUX_KERNEL
>> +       help
>> +         You may select BR2_PACKAGE_PCIUTILS for lscpi, and BR2_PACKAGE_PROCPS for ps command.
>> +         These commands are used in EplLoad and EplUndload scripts.
>> +
>> +endchoice
> 
> Is there more help that can be given for both options? Are there benefits/advantages on either? Or limitations in functionality?

I will add some help from openpowerlink documentation.

> 
>> +
>> +if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> +
>> +choice
>> +       prompt "Select Ethernet Powerlink Driver"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_82573
>> +       bool "Intel 82573"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_8255x
>> +       bool "Intel 8255x"
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_RTL8139
>> +       bool "Realteck RTL-8139"
> 
> This should be Realtek

thanks

> 
>> +
>> +endchoice
>> +
>> +endif
>> +
>> +choice
>> +       prompt "Select MN/CN mode"
>> +
>> +       config BR2_PACKAGE_OPENPOWERLINK_MN
>> +       bool "MN"
>> +       help
>> +         Enable Managing Node mode
>> +
>> +       config BR2_PACKAGE_OPENPOWERLINK_CN
>> +       bool "CN"
>> +       help
>> +         Enable Controlled Node mode
>> +
>> +endchoice
>> +
>> +# Powerlink Demos
> 
> It would make sense to group the demos under a suboption, don't you think?

Why not, ok.

> 
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
>> +       bool "Console MN demo"
>> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
>> +       bool "QT MN demo"
>> +       depends on BR2_PACKAGE_OPENPOWERLINK_MN
>> +       select BR2_PACKAGE_QT
>> +       select BR2_PACKAGE_QT_STL
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
>> +       bool "Console CN demo"
>> +       depends on !BR2_PACKAGE_OPENPOWERLINK_MN
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
>> +       bool "Kernel demo"
>> +       depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
>> +
>> +config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
>> +       string "Debug level for EPL"
>> +       help
>> +         default value: 0xEC000000L
>> +
>> +endif
>> diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
> 
> Patches should be named openpowerlink-0001-description.patch, and we typically use lowercase and dashes for the description.

ok

> 
>> new file mode 100644
>> index 0000000..a71298d
>> --- /dev/null
>> +++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
>> @@ -0,0 +1,27 @@
>> +From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
>> +From: Romain Naour <romain.naour@openwide.fr <mailto:romain.naour@openwide.fr>>
>> +Date: Wed, 18 Sep 2013 23:33:04 +0200
>> +Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources list
>> +
>> +demo_mn_qt use EplGetEmergErrCodeStr()
>> +
>> +Signed-off-by: Romain Naour <romain.naour@openwide.fr <mailto:romain.naour@openwide.fr>>
>> +---
>> + Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
>> + 1 file changed, 1 insertion(+)
>> +
>> +diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> +index 9db2f7f..48ae9eb 100644
>> +--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> ++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
>> +@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
>> +                  src/MainWindow.cpp
>> +                  src/NodeState.cpp
>> +                  ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
>> ++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
>> +     )
>> +
>> + # The TRACE macros need trace.c on the Windows platform
>> +--
>> +1.8.4
>> +
> 
> Is this patch something that can be upstreamed?

Definitely, my patches for openpowerlink are available in my sourceforge account.
Openpowerlink's developers can get them for the next release.

> 
>> diff --git a/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk> b/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>> new file mode 100644
>> index 0000000..ac28de9
>> --- /dev/null
>> +++ b/package/openpowerlink/openpowerlink.mk <http://openpowerlink.mk>
>> @@ -0,0 +1,93 @@
>> +################################################################################
>> +#
>> +# openPOWERLINK
>> +#
>> +################################################################################
>> +
>> +OPENPOWERLINK_VERSION = V1.08.3
>> +OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
>> +OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
>> +
>> +OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
>> +OPENPOWERLINK_LICENSE_FILES = license.txt
>> +OPENPOWERLINK_INSTALL_STAGING = YES
>> +
>> +ifeq ($(BR2_i386),y)
>> +OPENPOWERLINK_ARCH = x86
>> +endif
>> +
>> +ifeq ($(BR2_x86_64),y)
>> +OPENPOWERLINK_ARCH = x86_64
>> +endif
>> +
>> +OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
>> +
>> +OPENPOWERLINK_DEBUG_LEVEL = $(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
>> +
>> +ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
> 
> What about moving this as default to Config.in, then you don't need a if-else here?

Ok

> 
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
>> +#  use the user space stack (libpcap)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
>> +OPENPOWERLINK_DEPENDENCIES = libpcap
>> +else
>> +# use the kernel stack
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
>> +OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
>> +OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
>> +OPENPOWERLINK_DEPENDENCIES = linux
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
>> +else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
>> +OPENPOWERLINK_DEPENDENCIES += qt
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
>> +else
>> +OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
>> +endif
>> +
>> +define OPENPOWERLINK_EXTRACT_CMDS
>> +       $(RM) -rf $(OPENPOWERLINK_DIR)
>> +       unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
>> +       test -d $(OPENPOWERLINK_DIR) || \
>> +               mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE)) $(OPENPOWERLINK_DIR)
>> +endef
>> +
>> +$(eval $(cmake-package))
>> --
>> 1.8.4
> 
> Best regards,
> Thomas
> 

Thank you Thomas for your review.

Best regards,
Thomas Petazzoni - Sept. 22, 2013, 8:20 a.m.
Dear Thomas De Schampheleire,

On Sat, 21 Sep 2013 10:17:24 +0200, Thomas De Schampheleire wrote:

> Hmm, that test didn't seem to work.
> This test is from Gmail on desktop, just to be double-check that that
> is OK. Sorry for the spam by the way, don't know a better way to check
> it, because the gmail web interface does not show any bad line
> wrapping...

This reply was correct, with no line-wrapping of the patch.

Thanks!

Thomas
Thomas Petazzoni - Sept. 22, 2013, 1:43 p.m.
Dear Thomas De Schampheleire,

On Sat, 21 Sep 2013 10:15:20 +0200, Thomas De Schampheleire wrote:

> Thanks for mentioning the line wrapping problem, I wasn't aware. I think
> the problem only occurs when I send mail from the gmail app on my phone. I
> now changed a setting but I fear it will not affect outgoing mail. This is
> a test mail.

Your reply was line-wrapped.

> If it doesn't work I'll find a better mail app for android. Suggestions are
> welcome...

Have you tried K9 ? I use it, but I admit only for reading e-mails. I
find a phone so impractical to write stuff that I only ever send
e-mails from my laptop.

Best regards,

Thomas
Thomas De Schampheleire - Sept. 23, 2013, 11:34 a.m.
Hi Thomas,

On Sun, Sep 22, 2013 at 3:43 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
>> If it doesn't work I'll find a better mail app for android. Suggestions are
>> welcome...
>
> Have you tried K9 ? I use it, but I admit only for reading e-mails. I
> find a phone so impractical to write stuff that I only ever send
> e-mails from my laptop.

After your initial mail I tried K9, but those darn bastards also wrap
at 72 lines! Luckily, K9 is open-source, and I found the offending
code quite easily and filed a bug report here:
http://code.google.com/p/k9mail/issues/detail?id=5957
In the mean time, I'll try to compile it myself, haven't done any
Android development before.

Best regards,
Thomas
Thomas Petazzoni - Sept. 23, 2013, 12:13 p.m.
Dear Thomas De Schampheleire,

On Mon, 23 Sep 2013 13:34:55 +0200, Thomas De Schampheleire wrote:

> After your initial mail I tried K9, but those darn bastards also wrap
> at 72 lines! Luckily, K9 is open-source, and I found the offending
> code quite easily and filed a bug report here:
> http://code.google.com/p/k9mail/issues/detail?id=5957
> In the mean time, I'll try to compile it myself, haven't done any
> Android development before.

Nice!

This is getting out-of-topic, but personally, I like the wrap or to
not wrap question to be decided on a per e-mail basis. When I need to
reply to a patch, I don't want the original e-mail to be wrapped.
However, when I reply to a normal e-mail that has been sent with
Outlook or some other crappy mail client that does not wrap at all,
then I generally like wrapping such e-mails to have a nice formatting
when replying.

Best regards,

Thomas

Patch

diff --git a/package/Config.in b/package/Config.in
index e1dfd5d..fdf9b55 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -912,6 +912,7 @@  endmenu
 menu "Real-Time"
 source "package/xenomai/Config.in"
 source "package/rtai/Config.in"
+source "package/openpowerlink/Config.in"
 endmenu
 
 menu "Shell and utilities"
diff --git a/package/openpowerlink/Config.in b/package/openpowerlink/Config.in
new file mode 100644
index 0000000..42a6099
--- /dev/null
+++ b/package/openpowerlink/Config.in
@@ -0,0 +1,92 @@ 
+comment "openpowerlink requires thread support in toolchain"
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+config BR2_PACKAGE_OPENPOWERLINK
+	bool "Openpowerlink"
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_i386 || BR2_x86_64
+	help
+	  openPOWERLINK is an Open Source Industrial Ethernet 
+	  stack implementing the POWERLINK protocol for Managing Node 
+	  (MN, POWERLINK Master) and Controlled Node (CN, POWERLINK Slave).
+
+	  It is provided by SYSTEC electronic (http://www.systec-electronic.com), 
+	  B&R (http://www.br-automation.com) and 
+	  Kalycito (http://www.kalycito.com).
+
+if BR2_PACKAGE_OPENPOWERLINK
+
+choice
+	prompt "Openpowerlink mode"
+
+config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
+	bool "userspace stack"
+	select BR2_PACKAGE_LIBPCAP
+
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
+	bool "kernel stack"
+	depends on BR2_LINUX_KERNEL
+	help
+	  You may select BR2_PACKAGE_PCIUTILS for lscpi, and BR2_PACKAGE_PROCPS for ps command.
+	  These commands are used in EplLoad and EplUndload scripts.
+
+endchoice
+
+if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
+
+choice
+	prompt "Select Ethernet Powerlink Driver"
+
+config BR2_PACKAGE_OPENPOWERLINK_82573
+	bool "Intel 82573"
+
+config BR2_PACKAGE_OPENPOWERLINK_8255x
+	bool "Intel 8255x"
+
+config BR2_PACKAGE_OPENPOWERLINK_RTL8139
+	bool "Realteck RTL-8139"
+
+endchoice
+
+endif
+
+choice
+	prompt "Select MN/CN mode"
+
+	config BR2_PACKAGE_OPENPOWERLINK_MN
+	bool "MN"
+	help
+	  Enable Managing Node mode
+
+	config BR2_PACKAGE_OPENPOWERLINK_CN
+	bool "CN"
+	help
+	  Enable Controlled Node mode
+
+endchoice
+
+# Powerlink Demos
+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE
+	bool "Console MN demo"
+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
+
+config BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT
+	bool "QT MN demo"
+	depends on BR2_PACKAGE_OPENPOWERLINK_MN
+	select BR2_PACKAGE_QT
+	select BR2_PACKAGE_QT_STL
+
+config BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE
+	bool "Console CN demo"
+	depends on !BR2_PACKAGE_OPENPOWERLINK_MN
+
+config BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL
+	bool "Kernel demo"
+	depends on BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
+
+config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
+	string "Debug level for EPL"
+	help
+	  default value: 0xEC000000L
+
+endif
diff --git a/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
new file mode 100644
index 0000000..a71298d
--- /dev/null
+++ b/package/openpowerlink/openpowerlink-FIX-demo_mn_qt.patch
@@ -0,0 +1,27 @@ 
+From 8658075bd7c49a7481e8f6d0d7a13b0651e1dfd7 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Wed, 18 Sep 2013 23:33:04 +0200
+Subject: [PATCH 1/1] [FIX] demo_mn_qt: add EplDebug.c in demo_sources list
+
+demo_mn_qt use EplGetEmergErrCodeStr()
+
+Signed-off-by: Romain Naour <romain.naour@openwide.fr>
+---
+ Examples/X86/Generic/demo_mn_qt/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
+index 9db2f7f..48ae9eb 100644
+--- a/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
++++ b/Examples/X86/Generic/demo_mn_qt/CMakeLists.txt
+@@ -78,6 +78,7 @@ SET(DEMO_SOURCES src/EplApi.cpp
+                  src/MainWindow.cpp
+                  src/NodeState.cpp
+                  ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/EplApiProcessImageSetup.c
++                 ${POWERLINK_SOURCE_DIR}/EplStack/EplDebug.c
+     )
+ 
+ # The TRACE macros need trace.c on the Windows platform
+-- 
+1.8.4
+
diff --git a/package/openpowerlink/openpowerlink.mk b/package/openpowerlink/openpowerlink.mk
new file mode 100644
index 0000000..ac28de9
--- /dev/null
+++ b/package/openpowerlink/openpowerlink.mk
@@ -0,0 +1,93 @@ 
+################################################################################
+#
+# openPOWERLINK
+#
+################################################################################
+
+OPENPOWERLINK_VERSION = V1.08.3
+OPENPOWERLINK_SOURCE = openPOWERLINK-$(OPENPOWERLINK_VERSION).zip
+OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/V1.8.3
+
+OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
+OPENPOWERLINK_LICENSE_FILES = license.txt
+OPENPOWERLINK_INSTALL_STAGING = YES
+
+ifeq ($(BR2_i386),y)
+OPENPOWERLINK_ARCH = x86
+endif
+
+ifeq ($(BR2_x86_64),y)
+OPENPOWERLINK_ARCH = x86_64
+endif
+
+OPENPOWERLINK_CONF_OPT = -DCMAKE_SYSTEM_PROCESSOR=$(OPENPOWERLINK_ARCH)
+OPENPOWERLINK_CONF_OPT += -DCMAKE_BUILD_TYPE=Debug
+OPENPOWERLINK_CONF_OPT += -DCMAKE_INSTALL_PREFIX=/usr/
+
+OPENPOWERLINK_DEBUG_LEVEL = $(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
+
+ifeq ($(OPENPOWERLINK_DEBUG_LEVEL),)
+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=0xEC000000L
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_DEBUG_LVL=$(OPENPOWERLINK_DEBUG_LEVEL)
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
+#  use the user space stack (libpcap)
+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=OFF
+OPENPOWERLINK_DEPENDENCIES = libpcap
+else
+# use the kernel stack
+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_STACK=ON
+OPENPOWERLINK_CONF_OPT += -DCFG_KERNEL_DIR=$(LINUX_DIR)
+OPENPOWERLINK_CONF_OPT += -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
+OPENPOWERLINK_DEPENDENCIES = linux
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=82573
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8139
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_EDRV=8255x
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=ON
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_POWERLINK_MN=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=ON
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_CONSOLE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=ON
+OPENPOWERLINK_DEPENDENCIES += qt
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_MN_QT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=ON
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_CN_CONSOLE=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=ON
+else
+OPENPOWERLINK_CONF_OPT += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
+endif
+
+define OPENPOWERLINK_EXTRACT_CMDS
+	$(RM) -rf $(OPENPOWERLINK_DIR)
+	unzip -q -d $(BUILD_DIR)/ $(DL_DIR)/$(OPENPOWERLINK_SOURCE)
+	test -d $(OPENPOWERLINK_DIR) || \
+		mv $(BUILD_DIR)/$(subst .zip,,$(OPENPOWERLINK_SOURCE)) $(OPENPOWERLINK_DIR)
+endef
+
+$(eval $(cmake-package))