diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2017-12-18 20:50:04 +0100 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2017-12-19 10:27:02 +0100 |
commit | e5cc7fbcf165ef9c205b6c136f239f645a8d7830 (patch) | |
tree | 334120a6cc6dcbe240076b3957233da337bf7ad2 /src/ipcpd/eth-llc/CMakeLists.txt | |
parent | d654c997f142b22e2529dc0fb9fab4f799f7ef56 (diff) | |
download | ouroboros-e5cc7fbcf165ef9c205b6c136f239f645a8d7830.tar.gz ouroboros-e5cc7fbcf165ef9c205b6c136f239f645a8d7830.zip |
ipcpd: Use the term "layer" and deprecate "shim"
This changes the terminology to use layer instead of DIF and deprecate
the word "shim" for the IPCPs that attach to Ethernet LLC and UDP .The
terminology has not yet been changed in the variable names etc.
This reflects the design choices in Ouroboros to make IPCPs pure
resource allocators instead of also providing an "IPC service". The
Ouroboros IPCPs that attach to Ethernet and UDP implement the
allocator and are thus not really shims.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'src/ipcpd/eth-llc/CMakeLists.txt')
-rw-r--r-- | src/ipcpd/eth-llc/CMakeLists.txt | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/ipcpd/eth-llc/CMakeLists.txt b/src/ipcpd/eth-llc/CMakeLists.txt new file mode 100644 index 00000000..11a631b3 --- /dev/null +++ b/src/ipcpd/eth-llc/CMakeLists.txt @@ -0,0 +1,106 @@ +get_filename_component(CURRENT_SOURCE_PARENT_DIR + ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) +get_filename_component(CURRENT_BINARY_PARENT_DIR + ${CMAKE_CURRENT_BINARY_DIR} DIRECTORY) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + +include_directories(${CURRENT_SOURCE_PARENT_DIR}) +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 +) + +mark_as_advanced(NETMAP_C_INCLUDE_DIR) + +if (CMAKE_SYSTEM_NAME STREQUAL "Linux") + set(DISABLE_RAW_SOCKETS FALSE CACHE BOOL + "Disable raw socket support for LLC IPCP") + if (NOT DISABLE_RAW_SOCKETS) + message(STATUS "Raw socket support for eth-llc enabled") + set(HAVE_RAW_SOCKETS TRUE PARENT_SCOPE) + set(HAVE_LLC TRUE) + else () + message(STATUS "Raw socket support for eth-llc disabled by user") + unset(HAVE_RAW_SOCKETS) + unset(HAVE_LLC) + endif () +endif () + +if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_path(BPF_C_INCLUDE_DIR + net/bpf.h + HINTS /usr/include /usr/local/include + ) + + mark_as_advanced(BPF_C_INCLUDE_DIR) + + if (BPF_C_INCLUDE_DIR) + set(DISABLE_BPF FALSE CACHE BOOL + "Disable Berkeley Packet Filter support for LLC IPCP") + if (NOT DISABLE_BPF) + message(STATUS "Berkeley Packet Filter support " + "for eth-llc enabled") + set(HAVE_BPF TRUE PARENT_SCOPE) + set(HAVE_LLC TRUE) + else () + message(STATUS "Berkeley Packet Filter support " + "for eth-llc disabled by user") + unset(HAVE_BPF) + unset(HAVE_LLC) + endif () + endif () +endif () + +if (NETMAP_C_INCLUDE_DIR) + set(DISABLE_NETMAP FALSE CACHE BOOL + "Disable netmap support for LLC IPCP") + if (NOT DISABLE_NETMAP) + message(STATUS "Netmap support for eth-llc enabled") + set(HAVE_NETMAP TRUE PARENT_SCOPE) + test_and_set_c_compiler_flag_global(-std=c99) + set(HAVE_LLC TRUE) + else () + message(STATUS "Netmap support for eth-llc disabled by user") + unset(HAVE_NETMAP) + unset(HAVE_LLC) + unset(IPCP_ETH_LLC_TARGET CACHE) + endif () +endif () + +if (HAVE_LLC) + message(STATUS "Supported raw Ethernet API found, building eth-llc") + + set(ETH_LLC_SOURCES + # Add source files here + ${CMAKE_CURRENT_SOURCE_DIR}/main.c + ) + + set(IPCP_ETH_LLC_TARGET ipcpd-eth-llc CACHE INTERNAL "") + + add_executable(ipcpd-eth-llc ${ETH_LLC_SOURCES} ${IPCP_SOURCES}) + + if (HAVE_BPF AND NOT APPLE) + target_include_directories(ipcpd-eth-llc PUBLIC ${BPF_C_INCLUDE_DIR}) + endif () + + if (HAVE_NETMAP AND NOT APPLE) + target_include_directories(ipcpd-eth-llc PUBLIC + ${NETMAP_C_INCLUDE_DIR}) + endif () + + target_link_libraries(ipcpd-eth-llc LINK_PUBLIC ouroboros-dev) + + include(AddCompileFlags) + if (CMAKE_BUILD_TYPE MATCHES "Debug*") + add_compile_flags(ipcpd-eth-llc -DCONFIG_OUROBOROS_DEBUG) + endif () + + install(TARGETS ipcpd-eth-llc RUNTIME DESTINATION sbin) +endif () |