summaryrefslogtreecommitdiff
path: root/src/ipcpd/eth/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipcpd/eth/CMakeLists.txt')
-rw-r--r--src/ipcpd/eth/CMakeLists.txt33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/ipcpd/eth/CMakeLists.txt b/src/ipcpd/eth/CMakeLists.txt
index 624b8266..6672f93c 100644
--- a/src/ipcpd/eth/CMakeLists.txt
+++ b/src/ipcpd/eth/CMakeLists.txt
@@ -14,31 +14,31 @@ include_directories(${CMAKE_BINARY_DIR}/include)
find_path(NETMAP_C_INCLUDE_DIR
net/netmap_user.h
- HINTS /usr/include /usr/local/include
-)
+ HINTS /usr/include /usr/local/include)
mark_as_advanced(NETMAP_C_INCLUDE_DIR)
-unset(HAVE_ETH)
-
+# Check for raw sockets
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(DISABLE_RAW_SOCKETS FALSE CACHE BOOL
"Disable raw socket support for Ethernet IPCPs")
if (NOT DISABLE_RAW_SOCKETS)
message(STATUS "Raw socket support for Ethernet IPCPs enabled")
set(HAVE_RAW_SOCKETS TRUE PARENT_SCOPE)
+ set(HAVE_RAW_SOCKETS TRUE)
set(HAVE_ETH TRUE)
else ()
message(STATUS "Raw socket support for Ethernet IPCPs disabled by user")
+ unset(HAVE_RAW_SOCKETS PARENT_SCOPE)
unset(HAVE_RAW_SOCKETS)
endif ()
endif ()
+# Check for BPF
if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
find_path(BPF_C_INCLUDE_DIR
- net/bpf.h
- HINTS /usr/include /usr/local/include
- )
+ net/bpf.h
+ HINTS /usr/include /usr/local/include)
mark_as_advanced(BPF_C_INCLUDE_DIR)
@@ -47,28 +47,31 @@ if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
"Disable Berkeley Packet Filter support for Ethernet IPCPs")
if (NOT DISABLE_BPF)
message(STATUS "Berkeley Packet Filter support "
- "for Ethernet IPCPs enabled")
+ "for Ethernet IPCPs enabled")
set(HAVE_BPF TRUE PARENT_SCOPE)
+ set(HAVE_BPF TRUE)
set(HAVE_ETH TRUE)
else ()
message(STATUS "Berkeley Packet Filter support "
- "for Ethernet IPCPs disabled by user")
+ "for Ethernet IPCPs disabled by user")
+ unset(HAVE_BPF PARENT_SCOPE)
unset(HAVE_BPF)
endif ()
endif ()
endif ()
-if (NETMAP_C_INCLUDE_DIR)
+# Check for netmap exclusively
+if (NOT HAVE_RAW_SOCKETS AND NOT HAVE_BPF AND NETMAP_C_INCLUDE_DIR)
set(DISABLE_NETMAP FALSE CACHE BOOL
- "Disable netmap support for ETH IPCPs")
+ "Disable netmap support for ETH IPCPs")
if (NOT DISABLE_NETMAP)
message(STATUS "Netmap support for Ethernet IPCPs enabled")
- set(HAVE_NETMAP TRUE PARENT_SCOPE)
test_and_set_c_compiler_flag_global(-std=c99)
+ set(HAVE_NETMAP TRUE PARENT_SCOPE)
set(HAVE_ETH TRUE)
else ()
message(STATUS "Netmap support for Ethernet IPCPs disabled by user")
- unset(HAVE_NETMAP)
+ unset(HAVE_NETMAP PARENT_SCOPE)
endif ()
endif ()
@@ -83,12 +86,12 @@ if (HAVE_ETH)
set(ETH_LLC_SOURCES
# Add source files here
${CMAKE_CURRENT_SOURCE_DIR}/llc.c
- )
+ )
set(ETH_DIX_SOURCES
# Add source files here
${CMAKE_CURRENT_SOURCE_DIR}/dix.c
- )
+ )
set(IPCP_ETH_LLC_TARGET ipcpd-eth-llc CACHE INTERNAL "")
set(IPCP_ETH_DIX_TARGET ipcpd-eth-dix CACHE INTERNAL "")