From 757cbecfeb13e0db0fd8db7b2a3e8c57f733e77d Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Wed, 13 Dec 2017 17:54:13 +0100 Subject: ipcpd: Integrate raptor into ouroboros 0.8 The raptor code is refactored to completely remove reduntant code relating to addresses. The dependency on the google protocol buffers is removed. The build system will only build raptor if the relevant kernel module is found on the system. The irm tool and the relevant documentation are updated. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/ipcpd/raptor/CMakeLists.txt | 60 +++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 23 deletions(-) (limited to 'src/ipcpd/raptor/CMakeLists.txt') diff --git a/src/ipcpd/raptor/CMakeLists.txt b/src/ipcpd/raptor/CMakeLists.txt index 2cb86a76..03411941 100644 --- a/src/ipcpd/raptor/CMakeLists.txt +++ b/src/ipcpd/raptor/CMakeLists.txt @@ -12,26 +12,40 @@ include_directories(${CURRENT_BINARY_PARENT_DIR}) include_directories(${CMAKE_SOURCE_DIR}/include) include_directories(${CMAKE_BINARY_DIR}/include) -protobuf_generate_c(RAPTOR_PROTO_SRCS RAPTOR_PROTO_HDRS - raptor_messages.proto) - -set(IPCP_RAPTOR_TARGET ipcpd-raptor - CACHE STRING "IPCP_RAPTOR_TARGET") - -set(RAPTOR_SOURCES - # Add source files here - ${CMAKE_CURRENT_SOURCE_DIR}/main.c) - -add_executable(ipcpd-raptor ${RAPTOR_SOURCES} ${IPCP_SOURCES} - ${RAPTOR_PROTO_SRCS}) -target_link_libraries(ipcpd-raptor LINK_PUBLIC ouroboros - ${PROTOBUF_C_LIBRARY}) - -test_and_set_c_compiler_flag_global(-std=c99) - -include(AddCompileFlags) -if (CMAKE_BUILD_TYPE MATCHES Debug) - add_compile_flags(ipcpd-raptor -DCONFIG_OUROBOROS_DEBUG) -endif (CMAKE_BUILD_TYPE MATCHES Debug) - -install(TARGETS ipcpd-raptor RUNTIME DESTINATION sbin) +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_path(RAPTOR_KERNEL_MODULE + NAMES + raptor.ko + raptor.ko.gz + HINTS + /lib/modules/${CMAKE_SYSTEM_VERSION}/ + /lib/modules/${CMAKE_SYSTEM_VERSION}/extramodules/ + ) + + mark_as_advanced(RAPTOR_KERNEL_MODULE) + + if (RAPTOR_KERNEL_MODULE) + set(DISABLE_RAPTOR FALSE CACHE BOOL + "Disable support for raptor devices") + if (NOT DISABLE_RAPTOR) + message(STATUS "Kernel module for raptor found. Building raptor.") + set(IPCP_RAPTOR_TARGET ipcpd-raptor CACHE INTERNAL "") + + set(RAPTOR_SOURCES + # Add source files here + ${CMAKE_CURRENT_SOURCE_DIR}/main.c) + + add_executable(ipcpd-raptor ${RAPTOR_SOURCES} ${IPCP_SOURCES}) + target_link_libraries(ipcpd-raptor LINK_PUBLIC ouroboros-dev) + + include(AddCompileFlags) + if (CMAKE_BUILD_TYPE MATCHES "Debug*") + add_compile_flags(ipcpd-raptor -DCONFIG_OUROBOROS_DEBUG) + endif () + + install(TARGETS ipcpd-raptor RUNTIME DESTINATION sbin) + else () + message(STATUS "Raptor support disabled by user") + endif () + endif () +endif () -- cgit v1.2.3