From 6c0f2ebe28f9522c140f6c0e05f92d61e9b81c34 Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Sun, 3 Jun 2012 16:43:16 +0200 Subject: [PATCH] cmake: module for libnl Signed-off-by: Daniel Borkmann --- src/cmake/modules/FindLibnl.cmake | 27 +++++++++++++++++++++++++++ src/netsniff-ng/CMakeLists.txt | 9 +++++---- src/trafgen/CMakeLists.txt | 9 +++++---- 3 files changed, 37 insertions(+), 8 deletions(-) create mode 100644 src/cmake/modules/FindLibnl.cmake diff --git a/src/cmake/modules/FindLibnl.cmake b/src/cmake/modules/FindLibnl.cmake new file mode 100644 index 00000000..0a2cf734 --- /dev/null +++ b/src/cmake/modules/FindLibnl.cmake @@ -0,0 +1,27 @@ +# - Find libnl +# Find libnl includes and library. +# Once done this will define +# +# This module defines +# LIBNL_FOUND - whether the libnl library was found +# LIBNL_LIBRARIES - the libnl library +# LIBNL_INCLUDE_DIR - the include path of the libnl library + +FIND_LIBRARY(LIBNL_LIBRARY nl) + +SET(LIBNL_LIBRARIES ${LIBNL_LIBRARY}) + +FIND_PATH(LIBNL_INCLUDE_DIR + NAMES netlink.h + PATH_SUFFIXES netlink +) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(Libnl DEFAULT_MSG + LIBNL_LIBRARY + LIBNL_INCLUDE_DIR) + +MARK_AS_ADVANCED( + LIBNL_INCLUDE_DIR + LIBNL_LIBRARY +) diff --git a/src/netsniff-ng/CMakeLists.txt b/src/netsniff-ng/CMakeLists.txt index 4a2be12c..86432090 100644 --- a/src/netsniff-ng/CMakeLists.txt +++ b/src/netsniff-ng/CMakeLists.txt @@ -2,9 +2,10 @@ PROJECT(netsniff-ng C) SET(BUILD_STRING "generic") FIND_PACKAGE(Threads) +FIND_PACKAGE(Libnl) INCLUDE(Pod2Man) -IF (CMAKE_HAVE_PTHREAD_CREATE) +IF (CMAKE_HAVE_PTHREAD_CREATE AND LIBNL_FOUND) ADD_EXECUTABLE(${PROJECT_NAME} ../hash.c ../dissector.c ../dissector_eth.c @@ -56,10 +57,10 @@ IF (CMAKE_HAVE_PTHREAD_CREATE) -D_LARGEFILE64_SOURCE -D__WITH_PROTOS) POD2MAN(${CMAKE_SOURCE_DIR}/netsniff-ng.c netsniff-ng 8) - TARGET_LINK_LIBRARIES(netsniff-ng ${CMAKE_THREAD_LIBS_INIT} -lnl) + TARGET_LINK_LIBRARIES(netsniff-ng ${CMAKE_THREAD_LIBS_INIT} ${LIBNL_LIBRARIES}) INSTALL(FILES ${rules_files} DESTINATION ${CONFIG_INSTALL_PATH}/rules/) INSTALL(FILES ../conf/ether.conf ../conf/tcp.conf ../conf/udp.conf ../conf/oui.conf DESTINATION ${CONFIG_INSTALL_PATH}) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${EXECUTABLE_INSTALL_PATH}) -ELSE(CMAKE_HAVE_PTHREAD_CREATE) +ELSE(CMAKE_HAVE_PTHREAD_CREATE AND LIBNL_FOUND) MESSAGE("pthread is missing on target. Skipping ${PROJECT_NAME} build.") -ENDIF(CMAKE_HAVE_PTHREAD_CREATE) +ENDIF(CMAKE_HAVE_PTHREAD_CREATE AND LIBNL_FOUND) diff --git a/src/trafgen/CMakeLists.txt b/src/trafgen/CMakeLists.txt index 47a1733e..dcb4aa81 100644 --- a/src/trafgen/CMakeLists.txt +++ b/src/trafgen/CMakeLists.txt @@ -3,11 +3,12 @@ PROJECT(trafgen C) FIND_PACKAGE(FLEX) FIND_PACKAGE(BISON) FIND_PACKAGE(LibCLI) +FIND_PACKAGE(Libnl) INCLUDE(Pod2Man) SET(BUILD_STRING "generic") -IF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND) +IF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND) FLEX_TARGET(BPF_LEXER ../trafgen_lexer.l ${CMAKE_CURRENT_BINARY_DIR}/trafgen_lex.yy.c) BISON_TARGET(BPF_PARSER ../trafgen_parser.y ${CMAKE_CURRENT_BINARY_DIR}/trafgen_parser.tab.c) ADD_EXECUTABLE(${PROJECT_NAME} ../xmalloc.c @@ -24,9 +25,9 @@ IF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND) ADD_DEFINITIONS(-DPROGNAME_STRING="${PROJECT_NAME}" -DVERSION_STRING="${VERSION}" -DBUILD_STRING="${BUILD_STRING}") - TARGET_LINK_LIBRARIES(trafgen ${LIBCLI_LIBRARY} -lnl) + TARGET_LINK_LIBRARIES(trafgen ${LIBCLI_LIBRARY} ${LIBNL_LIBRARIES}) POD2MAN(${CMAKE_SOURCE_DIR}/trafgen.c trafgen 8) INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${EXECUTABLE_INSTALL_PATH}) -ELSE(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND) +ELSE(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND) MESSAGE("libcli-dev is missing on target. Skipping ${PROJECT_NAME} build.") -ENDIF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND) +ENDIF(LIBCLI_FOUND AND FLEX_FOUND AND BISON_FOUND AND LIBNL_FOUND) -- 2.11.4.GIT