summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2017-04-07 10:18:46 +0000
committerdimitri staessens <dimitri.staessens@ugent.be>2017-04-07 10:18:46 +0000
commit97dd492cb7c6d88fbd9f95fe2469a637e445b762 (patch)
tree580153354f3018d08cd25d46b624bc3b4ff42300
parenta520f53970e59b4663b2baa70dd458175154622b (diff)
parent20d0532a4b1fd7568adf63654d023d782373873e (diff)
downloadouroboros-97dd492cb7c6d88fbd9f95fe2469a637e445b762.tar.gz
ouroboros-97dd492cb7c6d88fbd9f95fe2469a637e445b762.zip
Merged in sandervrijders/ouroboros/be-netmap-cmake (pull request #470)
ipcpd: shim-eth-llc: Add check for netmap headers
-rw-r--r--cmake/CompilerUtils.cmake3
-rw-r--r--include/ouroboros/wrap/CMakeLists.txt2
-rw-r--r--src/ipcpd/shim-eth-llc/CMakeLists.txt14
3 files changed, 15 insertions, 4 deletions
diff --git a/cmake/CompilerUtils.cmake b/cmake/CompilerUtils.cmake
index fb81b7e7..b9fd391c 100644
--- a/cmake/CompilerUtils.cmake
+++ b/cmake/CompilerUtils.cmake
@@ -6,10 +6,7 @@ function(test_and_set_c_compiler_flag_global _flag)
check_c_compiler_flag(${_flag} COMPILER_SUPPORTS_FLAG_${_sflag})
if(COMPILER_SUPPORTS_FLAG_${_sflag})
- message(STATUS "Compiler supports flag ${_flag}, added globally")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}" PARENT_SCOPE)
- else(${_retval})
- message(STATUS "Compiler does not support flag ${_flag}, discarded")
endif()
endfunction(test_and_set_c_compiler_flag_global)
diff --git a/include/ouroboros/wrap/CMakeLists.txt b/include/ouroboros/wrap/CMakeLists.txt
index 7753ca02..fd9368e8 100644
--- a/include/ouroboros/wrap/CMakeLists.txt
+++ b/include/ouroboros/wrap/CMakeLists.txt
@@ -17,7 +17,7 @@ else ()
include_directories(${PYTHON_INCLUDE_PATH})
# Python assumes C99 since Python 3.6
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
+ test_and_set_c_compiler_flag_global(-std=c99)
swig_add_module(ouroboros python ouroboros.i)
swig_link_libraries(ouroboros ${PYTHON_LIBRARIES} ouroboros)
diff --git a/src/ipcpd/shim-eth-llc/CMakeLists.txt b/src/ipcpd/shim-eth-llc/CMakeLists.txt
index bd3049a2..b3abc052 100644
--- a/src/ipcpd/shim-eth-llc/CMakeLists.txt
+++ b/src/ipcpd/shim-eth-llc/CMakeLists.txt
@@ -12,6 +12,11 @@ include_directories(${CURRENT_BINARY_PARENT_DIR})
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${CMAKE_BINARY_DIR}/include)
+find_path(NETMAP_C_INCLUDE_DIR
+ net/netmap_user.h
+ HINTS /usr/include /usr/local/include
+ )
+
protobuf_generate_c(SHIM_ETH_LLC_PROTO_SRCS SHIM_ETH_LLC_PROTO_HDRS
shim_eth_llc_messages.proto)
@@ -27,6 +32,15 @@ add_executable(ipcpd-shim-eth-llc ${SHIM_ETH_LLC_SOURCES} ${IPCP_SOURCES}
target_link_libraries(ipcpd-shim-eth-llc LINK_PUBLIC ouroboros
${PROTOBUF_C_LIBRARY})
+if (${NETMAP_C_INCLUDE_DIR} STREQUAL "NETMAP_C_INCLUDE_DIR-NOTFOUND")
+ message("-- Could not find netmap. Install for better performance.")
+else ()
+ message("-- Found netmap headers in ${NETMAP_C_INCLUDE_DIR}")
+ include_directories(${NETMAP_C_INCLUDE_DIR})
+ add_compile_flags(ipcpd-shim-eth-llc -DHAVE_NETMAP)
+ test_and_set_c_compiler_flag_global(-std=c99)
+endif ()
+
include(AddCompileFlags)
if (CMAKE_BUILD_TYPE MATCHES Debug)
add_compile_flags(ipcpd-shim-eth-llc -DCONFIG_OUROBOROS_DEBUG)