[Buildroot] [PATCHv5] package/openpowerlink: bump to v2.2.1
Romain Naour
romain.naour at openwide.fr
Fri Aug 14 16:20:25 UTC 2015
This new version break the API used in the v1.x but
this is a complete rewrite of the Powerlink EPSG DS 301
implementation.
Add a top level CMakeLists.txt to build each openpowerlink
component without having to package each of them in a separate
Buildroot packages. Fixes the build system to support the top
level CMake build.
Signed-off-by: Romain Naour <romain.naour at openwide.fr>
---
v5: bump to v2.2.1 and remove upstream patches
There is no change in the packaging
v4: Add a top level CMakeLists.txt to be able to squash all
openpowerlink packages into one and fixes the build
system accordingly
Add legacy handling
v3: Add patch info about patches status
bump to v2.2.0
remove old openpowerlink stack (v1.8.5)
Rename openpowerlin2 to openpowerlink
fix build with musl toolchains
v2: switch to tar.gz archive
add hash file
merge openpowerlink2 and openpowerlink2-stack
Add a new patch to install headers files
add OPENPOWERLINK2_*_ONOFF
---
Config.in.legacy | 17 +++
...l-the-stack-libraries-to-lib-subdirectory.patch | 133 ++++++++++++++++
...a-better-regex-for-cmake-system-processor.patch | 89 -----------
...0002-FIX-cmake-install-oplk-headers-files.patch | 34 +++++
...-fix-user-space-stack-enable-shared-build.patch | 54 -------
...se-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch | 154 +++++++++++++++++++
...ROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch | 125 +++++++++++++++
.../0005-FIX-Add-top-level-CMakeLists.txt.patch | 170 +++++++++++++++++++++
package/openpowerlink/Config.in | 131 ++++++++--------
package/openpowerlink/openpowerlink.hash | 3 +
package/openpowerlink/openpowerlink.mk | 143 ++++++++++++-----
11 files changed, 805 insertions(+), 248 deletions(-)
create mode 100644 package/openpowerlink/0001-FIX-install-the-stack-libraries-to-lib-subdirectory.patch
delete mode 100644 package/openpowerlink/0001-fix-use-a-better-regex-for-cmake-system-processor.patch
create mode 100644 package/openpowerlink/0002-FIX-cmake-install-oplk-headers-files.patch
delete mode 100644 package/openpowerlink/0002-fix-user-space-stack-enable-shared-build.patch
create mode 100644 package/openpowerlink/0003-FIX-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch
create mode 100644 package/openpowerlink/0004-FIX-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch
create mode 100644 package/openpowerlink/0005-FIX-Add-top-level-CMakeLists.txt.patch
create mode 100644 package/openpowerlink/openpowerlink.hash
diff --git a/Config.in.legacy b/Config.in.legacy
index 3b77b34..8c387ee 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -107,6 +107,23 @@ endif
###############################################################################
comment "Legacy options removed in 2015.08"
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
+ bool "openpowerlink package has been updated"
+ select BR2_LEGACY
+ select BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB
+ help
+ openpowerlink kernel modules are built if the
+ kernel stack library is selected.
+
+config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
+ bool "openpowerlink package has been updated"
+ select BR2_LEGACY
+ select BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB
+ help
+ The user space support has been split in two part:
+ - a monolitic user space library
+ - a user spae deamon driver
+
config BR2_PACKAGE_KODI_PVR_ADDONS
bool "Kodi PVR addon was split"
select BR2_LEGACY
diff --git a/package/openpowerlink/0001-FIX-install-the-stack-libraries-to-lib-subdirectory.patch b/package/openpowerlink/0001-FIX-install-the-stack-libraries-to-lib-subdirectory.patch
new file mode 100644
index 0000000..465aeec
--- /dev/null
+++ b/package/openpowerlink/0001-FIX-install-the-stack-libraries-to-lib-subdirectory.patch
@@ -0,0 +1,133 @@
+From 43a485a934d94879edaed0443aefe4b37e83ca1c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at openwide.fr>
+Date: Fri, 1 May 2015 12:19:34 +0200
+Subject: [PATCH] [FIX] install the stack libraries to "lib" subdirectory
+
+Using '.' to install the stack libraries is not correct since
+it will install them to /usr/.
+
+ls /usr/liboplkmnapp-kernelintf.so
+
+Fix this by using 'lib' instead of '.'
+
+The problem with the openpowerlink build system is that it expect
+the stack directory to be a "local staging" directory which
+contains headers and libraries. So the libraries build by the
+stack project are installed in stack/lib by default.
+
+This is wrong to do that because it becomes difficult to package
+openpowerlink for normal Linux systems.
+
+Buildroot like others build system expect from a packaged software
+to install libraries and headers build/provided in a staging
+directory.
+
+It seems that CMAKE_INSTALL_PREFIX is misused by the default value
+"${CMAKE_CURRENT_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR}"
+since it already contains the lib directory and therefore the
+entire build system is messed up.
+
+It seems that the openpowerlink's build system doesn't allow/support
+CMAKE_INSTALL_PREFIX to be set externally
+(which is the standard approach).
+
+The issue has been reported [1] upstream and a build system
+refactoring is needed to fix this properly.
+
+[1] http://sourceforge.net/p/openpowerlink/discussion/newbie/thread/3f13af65/#8f80/a50a/4649/f07c
+
+Signed-off-by: Romain Naour <romain.naour at openwide.fr>
+---
+ stack/proj/linux/liboplkcn/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkmn/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt | 2 +-
+ stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt | 2 +-
+ 8 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/stack/proj/linux/liboplkcn/CMakeLists.txt b/stack/proj/linux/liboplkcn/CMakeLists.txt
+index b7c73e6..23e3112 100644
+--- a/stack/proj/linux/liboplkcn/CMakeLists.txt
++++ b/stack/proj/linux/liboplkcn/CMakeLists.txt
+@@ -88,4 +88,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt b/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt
+index 6c3bec6..a6f9271 100644
+--- a/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt
++++ b/stack/proj/linux/liboplkcnapp-kernelintf/CMakeLists.txt
+@@ -81,4 +81,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt b/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt
+index fdf6fd4..6df8bb7 100644
+--- a/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt
++++ b/stack/proj/linux/liboplkcnapp-userintf/CMakeLists.txt
+@@ -81,4 +81,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt b/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt
+index 440f02c..6ffcbe9 100644
+--- a/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt
++++ b/stack/proj/linux/liboplkcndrv-pcap/CMakeLists.txt
+@@ -77,4 +77,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkmn/CMakeLists.txt b/stack/proj/linux/liboplkmn/CMakeLists.txt
+index 8f97144..e29f795 100644
+--- a/stack/proj/linux/liboplkmn/CMakeLists.txt
++++ b/stack/proj/linux/liboplkmn/CMakeLists.txt
+@@ -92,4 +92,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt
+index df74265..2ba1cd1 100644
+--- a/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt
++++ b/stack/proj/linux/liboplkmnapp-kernelintf/CMakeLists.txt
+@@ -85,4 +85,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt b/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt
+index 98835c7..12b3dc6 100644
+--- a/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt
++++ b/stack/proj/linux/liboplkmnapp-userintf/CMakeLists.txt
+@@ -85,4 +85,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+diff --git a/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt b/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt
+index b4dd41b..cf875ca 100644
+--- a/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt
++++ b/stack/proj/linux/liboplkmndrv-pcap/CMakeLists.txt
+@@ -80,4 +80,4 @@ ADD_LIBRARY(${LIB_NAME} ${LIB_TYPE} ${LIB_SOURCES})
+ TARGET_LINK_LIBRARIES(${LIB_NAME} ${ARCH_LIBRARIES})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
+ SET_PROPERTY(TARGET ${LIB_NAME} PROPERTY DEBUG_POSTFIX "_d")
+-INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION . LIBRARY DESTINATION .)
++INSTALL(TARGETS ${LIB_NAME} ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
+--
+1.7.10.4
+
diff --git a/package/openpowerlink/0001-fix-use-a-better-regex-for-cmake-system-processor.patch b/package/openpowerlink/0001-fix-use-a-better-regex-for-cmake-system-processor.patch
deleted file mode 100644
index 6fd1990..0000000
--- a/package/openpowerlink/0001-fix-use-a-better-regex-for-cmake-system-processor.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 9fd3aef2f9bb7a2b05b6823281bb5c988fa25149 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour at openwide.fr>
-Date: Mon, 17 Nov 2014 23:27:05 +0100
-Subject: [PATCH 1/2] [FIX] use a better regex for CMAKE_SYSTEM_PROCESSOR
-
-According to CMake doc, CMAKE_SYSTEM_PROCESSOR is set to the
-output of the command "uname -p" (in fact it is the output of "uname
--m"). This is only true for native compilation.
-
-In the case of cross-compilation, the CMake code does not set anything,
-it just expects the CMAKE_SYSTEM_* variables to be set in the
-toolchain file.
-
-Add a test matching the patern "^i.86$" and keep the old one "x86" for
-compatibility.
-By doing that, factorize this test using "^(i.86|x86(_64)?)$".
-
-Thanks to Samuel Martin [1]
-[1] http://lists.busybox.net/pipermail/buildroot/2014-November/112163.html
-
-Signed-off-by: Romain Naour <romain.naour at openwide.fr>
----
- Examples/X86/Linux/gnu/demo_kernel/CMakeLists.txt | 15 ++++-----------
- .../X86/Linux/gnu/powerlink_kernel_module/CMakeLists.txt | 15 ++++-----------
- 2 files changed, 8 insertions(+), 22 deletions(-)
-
-diff --git a/Examples/X86/Linux/gnu/demo_kernel/CMakeLists.txt b/Examples/X86/Linux/gnu/demo_kernel/CMakeLists.txt
-index 271ecdc..b49ef53 100644
---- a/Examples/X86/Linux/gnu/demo_kernel/CMakeLists.txt
-+++ b/Examples/X86/Linux/gnu/demo_kernel/CMakeLists.txt
-@@ -154,21 +154,14 @@ SET(MODULE_SOURCE_FILES
- ${POWERLINK_SOURCE_DIR}/ObjDicts/${OBJDICT}/Objdict.c
- )
-
--IF (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amix86.c)
--
--ELSEIF ( CMAKE_SYSTEM_PROCESSOR STREQUAL arm
-- OR CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
-+ELSEIF (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amiarm.c)
--
--ELSEIF ( CMAKE_SYSTEM_PROCESSOR STREQUAL i686
-- OR CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64)
-- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amix86.c)
--
--ELSE (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+ELSE (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
- MESSAGE(FATAL_ERROR
- "ami: CMAKE_SYSTEM_PROCESSOR is set to ${CMAKE_SYSTEM_PROCESSOR}. Valid targets are (x86, x86_64, arm, armv7l, i686).")
--ENDIF (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
-
- SET(MODULE_FILE
- ${MODULE_NAME}.ko
-diff --git a/Examples/X86/Linux/gnu/powerlink_kernel_module/CMakeLists.txt b/Examples/X86/Linux/gnu/powerlink_kernel_module/CMakeLists.txt
-index 1b47c76..f534a4d 100644
---- a/Examples/X86/Linux/gnu/powerlink_kernel_module/CMakeLists.txt
-+++ b/Examples/X86/Linux/gnu/powerlink_kernel_module/CMakeLists.txt
-@@ -171,21 +171,14 @@ ELSE(CFG_POWERLINK_EDRV STREQUAL "I210")
- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/Target/X86/Linux/gnu/generic/TimerHighReskX86.c)
- ENDIF(CFG_POWERLINK_EDRV STREQUAL "I210")
-
--IF (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+IF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amix86.c)
--
--ELSEIF ( CMAKE_SYSTEM_PROCESSOR STREQUAL arm
-- OR CMAKE_SYSTEM_PROCESSOR STREQUAL armv7l)
-+ELSEIF (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amiarm.c)
--
--ELSEIF ( CMAKE_SYSTEM_PROCESSOR STREQUAL i686
-- OR CMAKE_SYSTEM_PROCESSOR STREQUAL x86_64)
-- SET(MODULE_SOURCE_FILES ${MODULE_SOURCE_FILES} ${POWERLINK_SOURCE_DIR}/EplStack/amix86.c)
--
--ELSE (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+ELSE (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
- MESSAGE(FATAL_ERROR
- "ami: CMAKE_SYSTEM_PROCESSOR is set to ${CMAKE_SYSTEM_PROCESSOR}. Valid targets are (x86, x86_64, arm, armv7l, i686).")
--ENDIF (CMAKE_SYSTEM_PROCESSOR STREQUAL x86)
-+ENDIF (CMAKE_SYSTEM_PROCESSOR MATCHES "^(i.86|x86(_64)?)$")
-
- SET(MODULE_FILE
- ${MODULE_NAME}.ko
---
-1.9.3
-
diff --git a/package/openpowerlink/0002-FIX-cmake-install-oplk-headers-files.patch b/package/openpowerlink/0002-FIX-cmake-install-oplk-headers-files.patch
new file mode 100644
index 0000000..1844906
--- /dev/null
+++ b/package/openpowerlink/0002-FIX-cmake-install-oplk-headers-files.patch
@@ -0,0 +1,34 @@
+From cf3f84a815fc8ed415fbc9718ec5ae3c97fbe59f Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at openwide.fr>
+Date: Mon, 4 May 2015 11:47:05 +0200
+Subject: [PATCH] [FIX] cmake: install oplk headers files
+
+In order to be able to link a third paries application
+with openpowerlink libraries, we need to install oplk
+headers files related to openpowerlink stack.
+
+Install all headers file from STACK_INCLUDE_DIR/oplk.
+
+Signed-off-by: Romain Naour <romain.naour at openwide.fr>
+---
+v4: install only include/oplk directory
+---
+ stack/CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/stack/CMakeLists.txt b/stack/CMakeLists.txt
+index 9ff13f4..f4614cd 100644
+--- a/stack/CMakeLists.txt
++++ b/stack/CMakeLists.txt
+@@ -103,3 +103,8 @@ ELSEIF((CMAKE_SYSTEM_NAME STREQUAL "Generic") AND (CMAKE_SYSTEM_PROCESSOR STREQU
+ ELSE()
+ MESSAGE(FATAL_ERROR "Unknown Platform and processor combination ${CMAKE_SYSTEM_NAME} and ${CMAKE_SYSTEM_PROCESSOR}!!")
+ ENDIF()
++
++################################################################################
++# Install oplk headers files
++################################################################################
++INSTALL(DIRECTORY ${STACK_INCLUDE_DIR}/oplk DESTINATION "include")
+--
+1.7.10.4
+
diff --git a/package/openpowerlink/0002-fix-user-space-stack-enable-shared-build.patch b/package/openpowerlink/0002-fix-user-space-stack-enable-shared-build.patch
deleted file mode 100644
index 2345594..0000000
--- a/package/openpowerlink/0002-fix-user-space-stack-enable-shared-build.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 9c11eef037dc1137ab7a4656e45afde7d1a615c4 Mon Sep 17 00:00:00 2001
-From: Romain Naour <romain.naour at openwide.fr>
-Date: Sat, 22 Nov 2014 16:38:01 +0100
-Subject: [PATCH 2/2] [FIX]: user space stack: enable dynamic build
-
-The build fail if BUILD_SHARED_LIBS is set to ON.
-
-Depending on BUILD_SHARED_LIBS, link with STATIC or SHARED.
-
-Signed-off-by: Romain Naour <romain.naour at openwide.fr>
----
- Examples/X86/Generic/powerlink_user_lib/CMakeLists.txt | 12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/Examples/X86/Generic/powerlink_user_lib/CMakeLists.txt b/Examples/X86/Generic/powerlink_user_lib/CMakeLists.txt
-index 40b7756..27360f2 100644
---- a/Examples/X86/Generic/powerlink_user_lib/CMakeLists.txt
-+++ b/Examples/X86/Generic/powerlink_user_lib/CMakeLists.txt
-@@ -93,7 +93,13 @@ ENDIF(CFG_STORE_RESTORE)
- #
- # Set type of library
- #
--IF (WIN32)
-+IF (UNIX)
-+ IF (BUILD_SHARED_LIBS)
-+ SET(LIB_TYPE "SHARED")
-+ ELSE (BUILD_SHARED_LIBS)
-+ SET(LIB_TYPE "STATIC")
-+ ENDIF(BUILD_SHARED_LIBS)
-+ELSEIF (WIN32)
- IF(CFG_X86_WINDOWS_DLL)
- SET(LIB_TYPE "SHARED")
- ELSE(CFG_X86_WINDOWS_DLL)
-@@ -313,7 +319,7 @@ ENDIF ()
- # Define library source code
- #
- IF (UNIX)
-- ADD_LIBRARY(powerlink ${LIB_SOURCES} ${LIB_SOURCES_KERNEL} ${LIB_SOURCES_USER} ${LIB_HEADERS} ${LIB_HEADERS_KERNEL} ${LIB_HEADERS_USER} ${LIB_OBJDICT})
-+ ADD_LIBRARY(powerlink ${LIB_TYPE} ${LIB_SOURCES} ${LIB_SOURCES_KERNEL} ${LIB_SOURCES_USER} ${LIB_HEADERS} ${LIB_HEADERS_KERNEL} ${LIB_HEADERS_USER} ${LIB_OBJDICT})
-
- SET_PROPERTY(TARGET powerlink
- PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
-@@ -330,7 +336,7 @@ ENDIF ()
- # Installation
- #
- IF (UNIX)
-- INSTALL(TARGETS powerlink ARCHIVE DESTINATION lib)
-+ INSTALL(TARGETS powerlink ARCHIVE DESTINATION lib LIBRARY DESTINATION lib COMPONENT library)
- ELSEIF (WIN32)
- IF (CFG_X86_WINDOWS_DLL)
- INSTALL(TARGETS openPOWERLINK RUNTIME DESTINATION bin)
---
-1.9.3
-
diff --git a/package/openpowerlink/0003-FIX-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch b/package/openpowerlink/0003-FIX-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch
new file mode 100644
index 0000000..22a86f1
--- /dev/null
+++ b/package/openpowerlink/0003-FIX-cmake-use-CMAKE_CURRENT_SOURCE_DIR-instead-of-CM.patch
@@ -0,0 +1,154 @@
+From 4278474a8d4264c09f4f262fe01862fedd5558d0 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at openwide.fr>
+Date: Wed, 17 Sep 2014 13:27:44 +0200
+Subject: [PATCH] [FIX] cmake: use CMAKE_CURRENT_SOURCE_DIR instead of
+ CMAKE_SOURCE_DIR
+
+The aim of this patch is to be able to call each subproject's CMakeLists.txt
+from a top-level CMakeLists.txt.
+
+This will help to build automatically the epl libraries, epl driver, unittests
+and demos.
+
+This patch has been submitted upstream:
+https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57
+
+Signed-off-by: Romain Naour <romain.naour at openwide.fr>
+---
+ drivers/linux/drv_daemon_pcap/CMakeLists.txt | 6 +++---
+ drivers/linux/drv_kernelmod_edrv/CMakeLists.txt | 8 ++++----
+ hardware/CMakeLists.txt | 4 ++--
+ hardware/drivers/hostinterface/CMakeLists.txt | 2 +-
+ hardware/drivers/openmac/CMakeLists.txt | 4 ++--
+ unittests/CMakeLists.txt | 4 ++--
+ 6 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+index 4c3f933..9041e4d 100644
+--- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt
++++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+@@ -57,8 +57,8 @@ MESSAGE(STATUS "Configuring ${EXE_NAME}")
+ ###############################################################################
+ # Set global directories
+ ###############################################################################
+-SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/../../..)
+-SET(DRV_SOURCE_DIR ${CMAKE_SOURCE_DIR})
++SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
++SET(DRV_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+ SET(CONTRIB_SOURCE_DIR ${OPLK_BASE_DIR}/contrib)
+ SET(OPLK_INCLUDE_DIR ${OPLK_BASE_DIR}/stack/include)
+ SET(TOOLS_DIR ${OPLK_BASE_DIR}/tools)
+@@ -66,7 +66,7 @@ SET(TOOLS_DIR ${OPLK_BASE_DIR}/tools)
+ ###############################################################################
+ # Include CMake Modules
+ ###############################################################################
+-SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/../../cmake ${CMAKE_MODULE_PATH})
++SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../cmake ${CMAKE_MODULE_PATH})
+
+ # include standard cmake modules
+ INCLUDE(CMakeDependentOption)
+diff --git a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
+index a3d8de9..8b2c677 100644
+--- a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
++++ b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
+@@ -72,7 +72,7 @@ SET_PROPERTY(CACHE CFG_POWERLINK_EDRV PROPERTY STRINGS 8139 82573 8255x i210 811
+ ################################################################################
+ # Set global directories
+ ################################################################################
+-SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/../../..)
++SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
+ SET(CONTRIB_SOURCE_DIR ${OPLK_BASE_DIR}/contrib)
+ SET(STACK_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src)
+ SET(COMMON_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src/common)
+@@ -149,10 +149,10 @@ IF(CFG_OPLK_MN)
+ ENDIF()
+ SET(MODULE_DEFS "${MODULE_DEFS} -DCONFIG_MN")
+ SET(MODULE_NAME "${MODULE_NAME}mn")
+- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/proj/mn)
++ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/proj/mn)
+ ELSE()
+ SET(MODULE_NAME "${MODULE_NAME}cn")
+- INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/proj/cn)
++ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/proj/cn)
+ ENDIF()
+
+ ###############################################################################
+@@ -188,7 +188,7 @@ ENDFOREACH()
+ #
+ SET(MODULE_SOURCE_FILES
+ ${MODULE_SOURCE_FILES}
+- ${CMAKE_SOURCE_DIR}/main.c
++ ${CMAKE_CURRENT_SOURCE_DIR}/main.c
+ ${CONTRIB_SOURCE_DIR}/trace/trace-printk.c
+ ${EDRV_SOURCE_DIR}/edrvcyclic.c
+ ${KERNEL_SOURCE_DIR}/ctrl/ctrlk.c
+diff --git a/hardware/CMakeLists.txt b/hardware/CMakeLists.txt
+index 218c4eb..3ba85ca 100644
+--- a/hardware/CMakeLists.txt
++++ b/hardware/CMakeLists.txt
+@@ -40,7 +40,7 @@ INCLUDE(reduceboardname)
+
+ ################################################################################
+ # Set paths
+-SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/..)
++SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
+ SET(OMETHLIB_BASE_DIR ${PROJECT_SOURCE_DIR}/drivers/openmac)
+ SET(OMETHLIB_BUILD_DIR ${PROJECT_BINARY_DIR}/drivers/openmac)
+ SET(HOSTIF_BASE_DIR ${PROJECT_SOURCE_DIR}/drivers/hostinterface)
+@@ -56,7 +56,7 @@ STRING(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSTEM_PROCESSOR_DIR)
+
+ IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+ SET(CMAKE_INSTALL_PREFIX
+- ${CMAKE_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR} CACHE PATH "openPOWERLINK hardware install prefix" FORCE
++ ${CMAKE_CURRENT_SOURCE_DIR}/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR} CACHE PATH "openPOWERLINK hardware install prefix" FORCE
+ )
+ ENDIF()
+
+diff --git a/hardware/drivers/hostinterface/CMakeLists.txt b/hardware/drivers/hostinterface/CMakeLists.txt
+index 1a9d2aa..9c56c16 100644
+--- a/hardware/drivers/hostinterface/CMakeLists.txt
++++ b/hardware/drivers/hostinterface/CMakeLists.txt
+@@ -71,7 +71,7 @@ ELSE()
+ SET( HOSTIF_LIB_NAME "${HOSTIF_NAME}")
+ ENDIF()
+
+-SET(BOARDS_COMMON_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/common)
++SET(BOARDS_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/common)
+ SET(EXAMPLE_BINARY_DIR ${CMAKE_BINARY_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME})
+
+ ########################################################################
+diff --git a/hardware/drivers/openmac/CMakeLists.txt b/hardware/drivers/openmac/CMakeLists.txt
+index 560c0d9..d532996 100644
+--- a/hardware/drivers/openmac/CMakeLists.txt
++++ b/hardware/drivers/openmac/CMakeLists.txt
+@@ -55,8 +55,8 @@ ELSE()
+ SET(OMETH_LIB_NAME "${OMETH_NAME}")
+ ENDIF()
+
+-SET(BOARD_EXAMPLE_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME})
+-SET(BOARDS_COMMON_DIR ${CMAKE_SOURCE_DIR}/boards/${BOARD_NAME}/common)
++SET(BOARD_EXAMPLE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME})
++SET(BOARDS_COMMON_DIR ${CMAKE_CURRENT_SOURCE_DIR}/boards/${BOARD_NAME}/common)
+ SET(EXAMPLE_BINARY_DIR ${CMAKE_BINARY_DIR}/boards/${BOARD_NAME}/${EXAMPLE_NAME})
+
+ ########################################################################
+diff --git a/unittests/CMakeLists.txt b/unittests/CMakeLists.txt
+index 533d4e7..4460c2e 100644
+--- a/unittests/CMakeLists.txt
++++ b/unittests/CMakeLists.txt
+@@ -55,10 +55,10 @@ ENDMACRO(ADD_UNIT_TEST)
+
+ ################################################################################
+ # Set general directories
+-SET(OPLK_BASE_DIR ${CMAKE_SOURCE_DIR}/..)
++SET(OPLK_BASE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/..)
+ SET(OPLK_SOURCE_DIR ${OPLK_BASE_DIR}/stack/src)
+ SET(OPLK_INCLUDE_DIR ${OPLK_BASE_DIR}/stack/include)
+-SET(TEST_COMMON_SOURCE_DIR ${CMAKE_SOURCE_DIR}/common)
++SET(TEST_COMMON_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/common)
+
+ # We need a oplkcfg.h file for compiling the sources
+ # We are using the project for the complete MN library
+--
+1.7.10.4
+
diff --git a/package/openpowerlink/0004-FIX-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch b/package/openpowerlink/0004-FIX-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch
new file mode 100644
index 0000000..88b87c5
--- /dev/null
+++ b/package/openpowerlink/0004-FIX-Use-PROJECT_NAME-instead-of-CMAKE_PROJECT_NAME.patch
@@ -0,0 +1,125 @@
+From 092f52e873453b335a8b8d9d1c1bd3030b713175 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at openwide.fr>
+Date: Wed, 12 Aug 2015 10:54:32 +0200
+Subject: [PATCH] [FIX] Use PROJECT_NAME instead of CMAKE_PROJECT_NAME
+
+In order to support a top level CMakeLists.txt, use the current project
+name instead of the top level one.
+
+This patch has been submitted upstream:
+https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57
+
+Signed-off-by: Romain Naour <romain.naour at openwide.fr>
+---
+ apps/demo_cn_console/CMakeLists.txt | 2 +-
+ apps/demo_cn_console/linux.cmake | 2 +-
+ apps/demo_mn_console/CMakeLists.txt | 4 ++--
+ apps/demo_mn_console/linux.cmake | 2 +-
+ apps/demo_mn_qt/CMakeLists.txt | 4 ++--
+ apps/demo_mn_qt/linux.cmake | 2 +-
+ drivers/linux/drv_daemon_pcap/CMakeLists.txt | 2 +-
+ drivers/linux/drv_kernelmod_edrv/CMakeLists.txt | 10 +++++-----
+ 8 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/apps/demo_cn_console/CMakeLists.txt b/apps/demo_cn_console/CMakeLists.txt
+index cd3b418..c5a47a8 100644
+--- a/apps/demo_cn_console/CMakeLists.txt
++++ b/apps/demo_cn_console/CMakeLists.txt
+@@ -112,6 +112,6 @@ TARGET_LINK_LIBRARIES(demo_cn_console ${ARCH_LIBRARIES})
+ ################################################################################
+ # Installation rules
+
+-INSTALL(TARGETS demo_cn_console RUNTIME DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(TARGETS demo_cn_console RUNTIME DESTINATION ${PROJECT_NAME})
+
+
+diff --git a/apps/demo_cn_console/linux.cmake b/apps/demo_cn_console/linux.cmake
+index 409bf11..76e381d 100644
+--- a/apps/demo_cn_console/linux.cmake
++++ b/apps/demo_cn_console/linux.cmake
+@@ -53,5 +53,5 @@ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
+ ################################################################################
+ # Set architecture specific installation files
+
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME})
+
+diff --git a/apps/demo_mn_console/CMakeLists.txt b/apps/demo_mn_console/CMakeLists.txt
+index 9f6140e..edb60b1 100644
+--- a/apps/demo_mn_console/CMakeLists.txt
++++ b/apps/demo_mn_console/CMakeLists.txt
+@@ -126,6 +126,6 @@ TARGET_LINK_LIBRARIES(demo_mn_console ${ARCH_LIBRARIES})
+ ################################################################################
+ # Installation rules
+
+-INSTALL(TARGETS demo_mn_console RUNTIME DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(TARGETS demo_mn_console RUNTIME DESTINATION ${PROJECT_NAME})
++INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${PROJECT_NAME})
+
+diff --git a/apps/demo_mn_console/linux.cmake b/apps/demo_mn_console/linux.cmake
+index a9e9072..a994928 100644
+--- a/apps/demo_mn_console/linux.cmake
++++ b/apps/demo_mn_console/linux.cmake
+@@ -53,5 +53,5 @@ SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
+ ################################################################################
+ # Set architecture specific installation files
+
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME})
+
+diff --git a/apps/demo_mn_qt/CMakeLists.txt b/apps/demo_mn_qt/CMakeLists.txt
+index 7827414..ef39a0d 100644
+--- a/apps/demo_mn_qt/CMakeLists.txt
++++ b/apps/demo_mn_qt/CMakeLists.txt
+@@ -167,5 +167,5 @@ TARGET_LINK_LIBRARIES(demo_mn_qt ${ARCH_LIBRARIES} ${QT_LIBRARIES})
+ ################################################################################
+ # Installation rules
+
+-INSTALL(TARGETS demo_mn_qt RUNTIME DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(TARGETS demo_mn_qt RUNTIME DESTINATION ${PROJECT_NAME})
++INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mnobd.cdc DESTINATION ${PROJECT_NAME})
+diff --git a/apps/demo_mn_qt/linux.cmake b/apps/demo_mn_qt/linux.cmake
+index 6f19ff2..6ed75ee 100644
+--- a/apps/demo_mn_qt/linux.cmake
++++ b/apps/demo_mn_qt/linux.cmake
+@@ -45,5 +45,5 @@ SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
+ ################################################################################
+ # Set architecture specific installation files
+
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/set_prio DESTINATION ${PROJECT_NAME})
+
+diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+index 9041e4d..2702abd 100644
+--- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt
++++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+@@ -136,5 +136,5 @@ SET_PROPERTY(TARGET ${EXE_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEB
+ TARGET_LINK_LIBRARIES(${EXE_NAME} ${OPLKLIB} ${ARCH_LIBRARIES})
+
+ # add installation rules
+-INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(TARGETS ${EXE_NAME} RUNTIME DESTINATION ${PROJECT_NAME})
+
+diff --git a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
+index 8b2c677..1a6f70a 100644
+--- a/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
++++ b/drivers/linux/drv_kernelmod_edrv/CMakeLists.txt
+@@ -294,8 +294,8 @@ ADD_CUSTOM_TARGET(
+ ################################################################################
+ # add installation rules
+
+-INSTALL(FILES ${MODULE_OUTPUT_DIR}/${MODULE_NAME}.ko DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(FILES ${TOOLS_DIR}/linux/50-openPOWERLINK.rules DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkload DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkunload DESTINATION ${CMAKE_PROJECT_NAME})
+-INSTALL(PROGRAMS ${TOOLS_DIR}/linux/devices.txt DESTINATION ${CMAKE_PROJECT_NAME})
++INSTALL(FILES ${MODULE_OUTPUT_DIR}/${MODULE_NAME}.ko DESTINATION ${PROJECT_NAME})
++INSTALL(FILES ${TOOLS_DIR}/linux/50-openPOWERLINK.rules DESTINATION ${PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkload DESTINATION ${PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/plkunload DESTINATION ${PROJECT_NAME})
++INSTALL(PROGRAMS ${TOOLS_DIR}/linux/devices.txt DESTINATION ${PROJECT_NAME})
+--
+1.7.10.4
+
diff --git a/package/openpowerlink/0005-FIX-Add-top-level-CMakeLists.txt.patch b/package/openpowerlink/0005-FIX-Add-top-level-CMakeLists.txt.patch
new file mode 100644
index 0000000..adcaf46
--- /dev/null
+++ b/package/openpowerlink/0005-FIX-Add-top-level-CMakeLists.txt.patch
@@ -0,0 +1,170 @@
+From 7df926088d0a794a5407d728f7546f9c2e00cf00 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour at openwide.fr>
+Date: Wed, 12 Aug 2015 11:24:24 +0200
+Subject: [PATCH] [FIX] Add top level CMakeLists.txt
+
+This CMakeLists.txt can be used to build openpowerlink
+using a automated build system.
+
+Don't use FIND_LIBRARY when the stack is built from a top
+level build (ie CFG_OPLK_LIB is ON).
+For a top level build, CMake will automatically add a build
+dependency on oplk libraries for building demos applications.
+
+This patch has been submitted upstream:
+https://github.com/openPOWERLINK/openPOWERLINK_V2/pull/57
+
+Signed-off-by: Romain Naour <romain.naour at openwide.fr>
+---
+ CMakeLists.txt | 36 ++++++++++++++
+ apps/common/cmake/findoplklib.cmake | 68 ++++++++++++++------------
+ drivers/linux/drv_daemon_pcap/CMakeLists.txt | 12 +++--
+ 3 files changed, 82 insertions(+), 34 deletions(-)
+ create mode 100644 CMakeLists.txt
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+new file mode 100644
+index 0000000..96e3d0f
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,36 @@
++
++CMAKE_MINIMUM_REQUIRED (VERSION 2.8.7)
++
++#### LIB ####
++
++IF (CFG_OPLK_LIB)
++ ADD_SUBDIRECTORY("stack")
++ENDIF (CFG_OPLK_LIB)
++
++#### Linux kernel module ####
++
++IF (CFG_KERNEL_DRIVERS)
++ ADD_SUBDIRECTORY("drivers/linux/drv_kernelmod_edrv")
++ENDIF (CFG_KERNEL_DRIVERS)
++
++#### Pcap userspace driver ####
++
++IF (CFG_PCAP_DAEMON)
++ ADD_SUBDIRECTORY("drivers/linux/drv_daemon_pcap")
++ENDIF (CFG_PCAP_DAEMON)
++
++#### OpenPowerLink Demos ####
++
++# Add subdirectory of CN console demo application
++IF (CFG_DEMO_CN_CONSOLE)
++ ADD_SUBDIRECTORY("apps/demo_cn_console")
++ENDIF (CFG_DEMO_CN_CONSOLE)
++
++# Add subdirectory of MN console demo application
++IF (CFG_DEMO_MN_CONSOLE)
++ ADD_SUBDIRECTORY("apps/demo_mn_console")
++ENDIF (CFG_DEMO_MN_CONSOLE)
++
++IF (CFG_DEMO_MN_QT)
++ ADD_SUBDIRECTORY("apps/demo_mn_qt")
++ENDIF (CFG_DEMO_MN_QT)
+diff --git a/apps/common/cmake/findoplklib.cmake b/apps/common/cmake/findoplklib.cmake
+index 1bf570e..79ea35b 100644
+--- a/apps/common/cmake/findoplklib.cmake
++++ b/apps/common/cmake/findoplklib.cmake
+@@ -81,36 +81,42 @@ MACRO(FIND_OPLK_LIBRARY OPLK_NODE_TYPE)
+ # Set oplk library directory
+ SET(OPLKLIB_DIR ${OPLK_BASE_DIR}/stack/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR})
+
+- IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Release"))
+- # Search for release library
+- UNSET(OPLKLIB CACHE)
+- MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_NAME} in ${OPLKLIB_DIR}")
+- FIND_LIBRARY(OPLKLIB NAME ${OPLKLIB_NAME}
+- HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME})
+-
+- IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+-
+- UNSET(OPLKDLL CACHE)
+- FIND_PROGRAM(OPLKDLL NAME ${OPLKLIB_NAME}.dll
+- HINTS ${OPLKLIB_DIR})
+-
+- ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+- ENDIF()
+-
+- IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Debug"))
+- # Search for debug library
+- UNSET(OPLKLIB_DEBUG CACHE)
+- MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_DEBUG_NAME} in ${OPLKLIB_DIR}")
+- FIND_LIBRARY(OPLKLIB_DEBUG NAME ${OPLKLIB_DEBUG_NAME}
+- HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME})
+-
+- IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+-
+- UNSET(OPLKDLL_DEBUG CACHE)
+- FIND_PROGRAM(OPLKDLL_DEBUG NAME ${OPLKLIB_DEBUG_NAME}.dll
+- HINTS ${OPLKLIB_DIR})
+-
+- ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+- ENDIF()
++ # Don't look for oplk libraries for a top level build
++ IF(CFG_OPLK_LIB)
++ SET(OPLKLIB ${OPLKLIB_NAME})
++ SET(OPLKLIB_DEBUG ${OPLKLIB_DEBUG_NAME})
++ ELSE(CFG_OPLK_LIB)
++ IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Release"))
++ # Search for release library
++ UNSET(OPLKLIB CACHE)
++ MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_NAME} in ${OPLKLIB_DIR}")
++ FIND_LIBRARY(OPLKLIB NAME ${OPLKLIB_NAME}
++ HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME})
++
++ IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
++
++ UNSET(OPLKDLL CACHE)
++ FIND_PROGRAM(OPLKDLL NAME ${OPLKLIB_NAME}.dll
++ HINTS ${OPLKLIB_DIR})
++
++ ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
++ ENDIF()
++
++ IF((CMAKE_GENERATOR MATCHES "Visual Studio") OR (CMAKE_BUILD_TYPE STREQUAL "Debug"))
++ # Search for debug library
++ UNSET(OPLKLIB_DEBUG CACHE)
++ MESSAGE(STATUS "Searching for LIBRARY ${OPLKLIB_DEBUG_NAME} in ${OPLKLIB_DIR}")
++ FIND_LIBRARY(OPLKLIB_DEBUG NAME ${OPLKLIB_DEBUG_NAME}
++ HINTS ${OPLKLIB_DIR} ${OPLKLIB_DIR}/${CFG_DEMO_BOARD_NAME}/${CFG_DEMO_NAME})
++
++ IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
++
++ UNSET(OPLKDLL_DEBUG CACHE)
++ FIND_PROGRAM(OPLKDLL_DEBUG NAME ${OPLKLIB_DEBUG_NAME}.dll
++ HINTS ${OPLKLIB_DIR})
++
++ ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
++ ENDIF()
++ ENDIF(CFG_OPLK_LIB)
+
+ ENDMACRO(FIND_OPLK_LIBRARY)
+diff --git a/drivers/linux/drv_daemon_pcap/CMakeLists.txt b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+index 2702abd..81bb598 100644
+--- a/drivers/linux/drv_daemon_pcap/CMakeLists.txt
++++ b/drivers/linux/drv_daemon_pcap/CMakeLists.txt
+@@ -104,9 +104,15 @@ ENDIF()
+ SET(OPLKLIB_DIR ${OPLK_BASE_DIR}/stack/lib/${SYSTEM_NAME_DIR}/${SYSTEM_PROCESSOR_DIR})
+ SET(OPLKLIB_INCDIR ${OPLK_BASE_DIR}/stack/proj/${SYSTEM_NAME_DIR}/lib${LIB_NAME})
+
+-UNSET(OPLKLIB CACHE)
+-FIND_LIBRARY(OPLKLIB NAME ${LIB_NAME}${BUILD_TYPE_EXT}
+- HINTS ${OPLKLIB_DIR})
++# Don't look for oplk libraries for a top level build
++IF(CFG_OPLK_LIB)
++ SET(OPLKLIB ${LIB_NAME}${BUILD_TYPE_EXT})
++ELSE(CFG_OPLK_LIB)
++ UNSET(OPLKLIB CACHE)
++ FIND_LIBRARY(OPLKLIB NAME ${LIB_NAME}${BUILD_TYPE_EXT}
++ HINTS ${OPLKLIB_DIR})
++ENDIF(CFG_OPLK_LIB)
++
+ INCLUDE_DIRECTORIES(${OPLKLIB_INCDIR})
+
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -pedantic -std=c99 -pthread -fno-strict-aliasing")
+--
+1.7.10.4
+
diff --git a/package/openpowerlink/Config.in b/package/openpowerlink/Config.in
index d87f8be..702d25e 100644
--- a/package/openpowerlink/Config.in
+++ b/package/openpowerlink/Config.in
@@ -1,14 +1,11 @@
-comment "openpowerlink needs a toolchain w/ C++, threads"
- depends on BR2_USE_MMU
+comment "openpowerlink needs a toolchain w/ threads"
depends on BR2_i386 || BR2_x86_64
- depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
config BR2_PACKAGE_OPENPOWERLINK
bool "openpowerlink"
- depends on BR2_INSTALL_LIBSTDCPP
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_i386 || BR2_x86_64
- depends on BR2_USE_MMU # qt
help
openPOWERLINK is an Open Source Industrial Ethernet
stack implementing the POWERLINK protocol for Managing Node
@@ -19,71 +16,93 @@ config BR2_PACKAGE_OPENPOWERLINK
B&R (http://www.br-automation.com) and
Kalycito (http://www.kalycito.com).
- https://sourceforge.net/projects/openpowerlink/
+ http://openpowerlink.sourceforge.net/web/
if BR2_PACKAGE_OPENPOWERLINK
choice
- prompt "stack implementation"
+ prompt "Select MN/CN mode"
+
+config BR2_PACKAGE_OPENPOWERLINK_MN
+ bool "MN"
+ help
+ Enable Managing Node (master) mode
+
+config BR2_PACKAGE_OPENPOWERLINK_CN
+ bool "CN"
+ help
+ Enable Controlled Node (slave) mode
+
+endchoice
+
+config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
+ string "debug level for openpowerlink stack"
+ default "0xEC000000L"
+ depends on BR2_ENABLE_DEBUG
+ help
+ Debug level to be used for openPOWERLINK debugging functions.
+ The bit field is defined in oplk/debug.h and allows to enable
+ only debug trace on corresponding openpowerlink stack layers.
+
+choice
+ prompt "Select openPOWERLINK library type"
-config BR2_PACKAGE_OPENPOWERLINK_LIBPCAP
- bool "userspace stack"
+config BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB
+ bool "the EPL stack is directly linked into application."
select BR2_PACKAGE_LIBPCAP
help
- The Linux userspace implementation of the openPOWERLINK stack provides
- all functions for a software based POWERLINK solution running as Linux
- userspace application. The stack uses the libpcap library for accessing
- the network interface and is therefore totally independant of the used
- network card and driver.
-
-config BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
- bool "kernel stack"
- depends on BR2_LINUX_KERNEL
+ Compile a monolithic openPOWERLINK library. The library contains
+ an Ethernet driver which is using the PCAP library for accessing
+ the network. No kernel-side driver is needed.
+
+config BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB
+ bool "build EPL stack as linux userspace pcap daemon."
+ select BR2_PACKAGE_LIBPCAP
+ select BR2_PACKAGE_OPENPOWERLINK_PCAP_DAEMON
+ help
+ Compile openPOWERLINK application library which contains the
+ interface to a Linux user space driver, and the Linux user space
+ driver. It is used for implementing a multi-process solution
+ where the openPOWERLINK layer is running as a separate
+ Linux user space daemon (i.e. a PCAP based user space daemon).
+ No kernel-side stack is needed.
+
+config BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB
+ bool "build EPL stack as linux kernelspace module."
+ depends on BR2_LINUX_KERNEL # openpowerlink-kernel-driver
help
- The openPOWERLINK stack may be implemented as Linux kernel module.
- This solution provides the best performance, but is limited to the
- available openPOWERLINK network drivers.
- You may select BR2_PACKAGE_PCIUTILS for lscpi,
- and BR2_PACKAGE_PROCPS for ps command.
- These commands are used in EplLoad and EplUndload scripts.
+ Compile openPOWERLINK application library which contains the
+ interface to a Linux kernel space driver. This will also build
+ and install a Linux kernel module openPOWERLINK driver.
+
+comment "openpowerlink kernel stack needs a Linux kernel to be built"
+ depends on !BR2_LINUX_KERNEL
endchoice
-if BR2_PACKAGE_OPENPOWERLINK_KERNEL_MODULE
+if BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB
choice
prompt "select Ethernet Powerlink Driver"
-config BR2_PACKAGE_OPENPOWERLINK_82573
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_82573
bool "Intel 82573"
-config BR2_PACKAGE_OPENPOWERLINK_8255x
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_8255x
bool "Intel 8255x"
-config BR2_PACKAGE_OPENPOWERLINK_I210
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_I210
bool "Intel I210"
-config BR2_PACKAGE_OPENPOWERLINK_RTL8139
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_RTL8111
+ bool "Realtek RTL-8111/8168"
+
+config BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_RTL8139
bool "Realtek 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
+endif # BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB
menu "openpowerlink demos"
@@ -91,28 +110,10 @@ 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
- depends on BR2_INSTALL_LIBSTDCPP
- 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
- depends on BR2_PACKAGE_OPENPOWERLINK_MN
+ depends on BR2_PACKAGE_OPENPOWERLINK_CN
endmenu
-config BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL
- string "debug level for openpowerlink stack"
- default "0xEC000000L"
- help
- Debug level to be used for openPOWERLINK debugging functions.
-
-endif
+endif # BR2_PACKAGE_OPENPOWERLINK
diff --git a/package/openpowerlink/openpowerlink.hash b/package/openpowerlink/openpowerlink.hash
new file mode 100644
index 0000000..23b9458
--- /dev/null
+++ b/package/openpowerlink/openpowerlink.hash
@@ -0,0 +1,3 @@
+# From http://sourceforge.net/projects/openpowerlink/files/openPOWERLINK/V2.2.1/
+md5 7e79e31a30d312a4281ef7c237f40cde openPOWERLINK_V2.2.1.tar.gz
+sha1 abf4debc432bc6c31021291c113aede6e6e6b102 openPOWERLINK_V2.2.1.tar.gz
diff --git a/package/openpowerlink/openpowerlink.mk b/package/openpowerlink/openpowerlink.mk
index d9cdcdd..680b196 100644
--- a/package/openpowerlink/openpowerlink.mk
+++ b/package/openpowerlink/openpowerlink.mk
@@ -4,67 +4,130 @@
#
################################################################################
-OPENPOWERLINK_VERSION = V1.08.5
-OPENPOWERLINK_SITE = http://git.code.sf.net/p/openpowerlink/code
-OPENPOWERLINK_SITE_METHOD = git
+OPENPOWERLINK_VERSION = V2.2.1
+OPENPOWERLINK_SITE = http://downloads.sourceforge.net/project/openpowerlink/openPOWERLINK/$(OPENPOWERLINK_VERSION)
+OPENPOWERLINK_SOURCE = openPOWERLINK_$(OPENPOWERLINK_VERSION).tar.gz
OPENPOWERLINK_LICENSE = BSD-2c, GPLv2
-OPENPOWERLINK_LICENSE_FILES = license.txt
+OPENPOWERLINK_LICENSE_FILES = license.md
+
OPENPOWERLINK_INSTALL_STAGING = YES
-OPENPOWERLINK_CONF_OPTS = -DCFG_DEBUG_LVL=$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))
+define OPENPOWERLINK_EXTRACT_CMDS
+ $(INFLATE$(suffix $($(PKG)_SOURCE))) $(DL_DIR)/$($(PKG)_SOURCE) | \
+ $(TAR) -C $($(PKG)_DIR) $(TAR_OPTIONS) - $($(PKG)_TAR_OPTIONS)
+endef
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_LIBPCAP),y)
-# use the user space stack (libpcap)
-OPENPOWERLINK_CONF_OPTS += -DCFG_KERNEL_STACK=OFF
-OPENPOWERLINK_DEPENDENCIES = libpcap
-else
-# use the kernel stack
+# CFG_DEBUG_LVL is taken into account only in Debug
+ifeq ($(BR2_ENABLE_DEBUG),y)
OPENPOWERLINK_CONF_OPTS += \
- -DCFG_KERNEL_STACK=ON \
- -DCFG_KERNEL_DIR=$(LINUX_DIR) \
- -DCMAKE_SYSTEM_VERSION=$(LINUX_VERSION)
-OPENPOWERLINK_DEPENDENCIES = linux
+ -DCFG_DEBUG_LVL="$(call qstrip,$(BR2_PACKAGE_OPENPOWERLINK_DEBUG_LEVEL))"
endif
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_82573),y)
+OPENPOWERLINK_MN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK_MN),ON,OFF)
+OPENPOWERLINK_CN_ONOFF = $(if $(BR2_PACKAGE_OPENPOWERLINK_CN),ON,OFF)
+
+#### OPLK LIBRARY ####
+
+# Always build a oplk stack
+OPENPOWERLINK_CONF_OPTS += -DCFG_OPLK_LIB=ON
+
+# All option are ON by default
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB),y)
+OPENPOWERLINK_DEPENDENCIES += libpcap
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_COMPILE_LIB_MN=$(OPENPOWERLINK_MN_ONOFF) \
+ -DCFG_COMPILE_LIB_MNAPP_USERINTF=OFF \
+ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=OFF \
+ -DCFG_COMPILE_LIB_MNDRV_PCAP=OFF \
+ -DCFG_COMPILE_LIB_CN=$(OPENPOWERLINK_CN_ONOFF) \
+ -DCFG_COMPILE_LIB_CNAPP_USERINTF=OFF \
+ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=OFF \
+ -DCFG_COMPILE_LIB_CNDRV_PCAP=OFF
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y)
+OPENPOWERLINK_DEPENDENCIES += libpcap
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_COMPILE_LIB_MN=OFF \
+ -DCFG_COMPILE_LIB_MNAPP_USERINTF=$(OPENPOWERLINK_MN_ONOFF) \
+ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=OFF \
+ -DCFG_COMPILE_LIB_MNDRV_PCAP=$(OPENPOWERLINK_MN_ONOFF) \
+ -DCFG_COMPILE_LIB_CN=OFF \
+ -DCFG_COMPILE_LIB_CNAPP_USERINTF=$(OPENPOWERLINK_CN_ONOFF) \
+ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=OFF \
+ -DCFG_COMPILE_LIB_CNDRV_PCAP=$(OPENPOWERLINK_CN_ONOFF)
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y)
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_COMPILE_LIB_MN=OFF \
+ -DCFG_COMPILE_LIB_MNAPP_USERINTF=OFF \
+ -DCFG_COMPILE_LIB_MNAPP_KERNELINTF=$(OPENPOWERLINK_MN_ONOFF) \
+ -DCFG_COMPILE_LIB_MNDRV_PCAP=OFF \
+ -DCFG_COMPILE_LIB_CN=OFF \
+ -DCFG_COMPILE_LIB_CNAPP_USERINTF=OFF \
+ -DCFG_COMPILE_LIB_CNAPP_KERNELINTF=$(OPENPOWERLINK_CN_ONOFF) \
+ -DCFG_COMPILE_LIB_CNDRV_PCAP=OFF
+endif
+
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_COMPILE_SHARED_LIBRARY=$(if $(BR2_STATIC_LIBS),OFF,ON)
+
+#### OPLK KERNEL DRIVERS ####
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y)
+OPENPOWERLINK_DEPENDENCIES += linux
+
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_KERNEL_DRIVERS=ON \
+ -DCFG_KERNEL_DIR="$(LINUX_DIR)" \
+ -DCMAKE_SYSTEM_VERSION="$(LINUX_VERSION)" \
+ -DCFG_OPLK_MN="$(OPENPOWERLINK_MN_ONOFF)" \
+ -DMAKE_KERNEL_ARCH="$(KERNEL_ARCH)" \
+ -DMAKE_KERNEL_CROSS_COMPILE="$(CCACHE) $(TARGET_CROSS)"
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_82573),y)
OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=82573
-else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_8255x),y)
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_8255x),y)
OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=8255x
-else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_I210),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=I210
-else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_RTL8139),y)
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_I210),y)
+OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=i210
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_RTL8111),y)
+OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=8111
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_KERNEL_DRIVERS_RTL8139),y)
OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_EDRV=8139
endif
-
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_MN),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_MN=ON
-else
-OPENPOWERLINK_CONF_OPTS += -DCFG_POWERLINK_MN=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_MN_CONSOLE=ON
-else
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_MN_CONSOLE=OFF
+#### OPLK PCAP DAEMON ####
+
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y)
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_PCAP_DAEMON=ON \
+ -DCFG_OPLK_MN=$(OPENPOWERLINK_MN_ONOFF)
endif
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_QT),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_MN_QT=ON
-OPENPOWERLINK_DEPENDENCIES += qt
-else
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_MN_QT=OFF
+#### OPLK DEMO APPS ####
+
+# See apps/common/cmake/configure-linux.cmake for available options list.
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_MONOLITHIC_USER_STACK_LIB),y)
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_BUILD_KERNEL_STACK="Link to Application"
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_USERSPACE_DAEMON_LIB),y)
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_BUILD_KERNEL_STACK="Linux Userspace Daemon"
+else ifeq ($(BR2_PACKAGE_OPENPOWERLINK_STACK_KERNEL_STACK_LIB),y)
+OPENPOWERLINK_CONF_OPTS += \
+ -DCFG_BUILD_KERNEL_STACK="Linux Kernel Module"
endif
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_CN_CONSOLE=ON
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_MN_CONSOLE),y)
+OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_MN_CONSOLE=ON \
+ -DCFG_DEMO_MN_CONSOLE_USE_SYNCTHREAD=ON
else
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_CN_CONSOLE=OFF
+OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_MN_CONSOLE=OFF
endif
-ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_LINUX_KERNEL),y)
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_LINUX_KERNEL=ON
+ifeq ($(BR2_PACKAGE_OPENPOWERLINK_DEMO_CN_CONSOLE),y)
+OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_CN_CONSOLE=ON
else
-OPENPOWERLINK_CONF_OPTS += -DCFG_X86_DEMO_LINUX_KERNEL=OFF
+OPENPOWERLINK_CONF_OPTS += -DCFG_DEMO_CN_CONSOLE=OFF
endif
$(eval $(cmake-package))
--
2.4.3
More information about the buildroot
mailing list