Commit 93b25724 authored by Romain Naour's avatar Romain Naour Committed by Wolfgang Seiss

[FIX] Use pcap-config to fix static linking

When linking the demo applications statically with pcap,
the CMake build system does not link with other libraries
that are already linked with libpcap
(-lnl-genl-3 -lnl-3 -ldbus-1 -pthread).

To fix this, the build system uses pcap-config:
pcap-config --libs --static

Resolves:
#187

Change-Id: I90d1c8997ca089d5c12dd6bfd276fe04cba572f7
Signed-off-by: 's avatarRomain Naour <romain.naour@gmail.com>
parent f959616f
......@@ -46,8 +46,28 @@ SET (DEMO_ARCH_SOURCES
################################################################################
# Set architecture specific libraries
IF (NOT CFG_COMPILE_SHARED_LIBRARY)
SET(PCAP_CONFIG_OPTS --static)
ENDIF()
IF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
FIND_PROGRAM(PCAP_CONFIG NAMES pcap-config PATHS)
IF (PCAP_CONFIG)
MESSAGE (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
ELSE (PCAP_CONFIG)
MESSAGE (STATUS "pcap-config not found, using defaults...")
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
ENDIF (PCAP_CONFIG)
ENDIF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
......
......@@ -46,8 +46,28 @@ SET (DEMO_ARCH_SOURCES
################################################################################
# Set architecture specific libraries
IF (NOT CFG_COMPILE_SHARED_LIBRARY)
SET(PCAP_CONFIG_OPTS --static)
ENDIF()
IF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
FIND_PROGRAM(PCAP_CONFIG NAMES pcap-config PATHS)
IF (PCAP_CONFIG)
MESSAGE (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
ELSE (PCAP_CONFIG)
MESSAGE (STATUS "pcap-config not found, using defaults...")
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
ENDIF (PCAP_CONFIG)
ENDIF (CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
......
......@@ -37,8 +37,28 @@
################################################################################
# Set architecture specific libraries
IF (NOT CFG_COMPILE_SHARED_LIBRARY)
SET(PCAP_CONFIG_OPTS --static)
ENDIF()
IF(CFG_KERNEL_STACK_DIRECTLINK OR CFG_KERNEL_STACK_USERSPACE_DAEMON)
SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
FIND_PROGRAM(PCAP_CONFIG NAMES pcap-config PATHS)
IF (PCAP_CONFIG)
MESSAGE (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
ELSE (PCAP_CONFIG)
MESSAGE (STATUS "pcap-config not found, using defaults...")
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
ENDIF (PCAP_CONFIG)
ENDIF()
SET(ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
......
......@@ -134,7 +134,27 @@ INCLUDE_DIRECTORIES(
${CONTRIB_SOURCE_DIR}
)
SET (ARCH_LIBRARIES pcap pthread rt)
IF (NOT CFG_COMPILE_SHARED_LIBRARY)
SET(PCAP_CONFIG_OPTS --static)
ENDIF()
FIND_PROGRAM(PCAP_CONFIG NAMES pcap-config PATHS)
IF (PCAP_CONFIG)
MESSAGE (STATUS "Looking for pcap-config... ${PCAP_CONFIG}")
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --libs ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
EXECUTE_PROCESS (COMMAND ${PCAP_CONFIG} --cflags ${PCAP_CONFIG_OPTS}
OUTPUT_VARIABLE PCAP_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} ${PCAP_LDFLAGS})
ELSE (PCAP_CONFIG)
MESSAGE (STATUS "pcap-config not found, using defaults...")
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pcap)
ENDIF (PCAP_CONFIG)
SET (ARCH_LIBRARIES ${ARCH_LIBRARIES} pthread rt)
ADD_EXECUTABLE(${EXE_NAME} ${DRV_SOURCES})
SET_PROPERTY(TARGET ${EXE_NAME} PROPERTY COMPILE_DEFINITIONS_DEBUG DEBUG;DEF_DEBUG_LVL=${CFG_DEBUG_LVL})
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment