aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJörg Mayer <jmayer@loplof.de>2012-09-11 10:48:43 +0000
committerJörg Mayer <jmayer@loplof.de>2012-09-11 10:48:43 +0000
commitc7bf21cbf190df6d5a9f8a355de46009bde02b19 (patch)
treeed034f00c0b5f3474f3616d58dd9c96f9a373f21
parent1bdf9a891209cd8f042e9932407843437d4bbf18 (diff)
Differentiate between libnl versions. Feature parity with autofoo
for libnl. svn path=/trunk/; revision=44876
-rw-r--r--cmake/modules/FindNL.cmake91
1 files changed, 57 insertions, 34 deletions
diff --git a/cmake/modules/FindNL.cmake b/cmake/modules/FindNL.cmake
index 9eeab4f1ae..54531ecaa1 100644
--- a/cmake/modules/FindNL.cmake
+++ b/cmake/modules/FindNL.cmake
@@ -1,9 +1,13 @@
#
# $Id$
#
-# - Find netlink
# Find the native netlink includes and library
#
+# If they exist, differentiate between versions 1,2 and 3.
+# Version 1 does not have netlink/version.h
+# Version 3 does have the major version number as a suffix
+# to the libnl name (libnl-3)
+#
# NL_INCLUDE_DIRS - where to find libnl.h, etc.
# NL_LIBRARIES - List of libraries when using libnl3.
# NL_FOUND - True if libnl found.
@@ -12,51 +16,72 @@ IF (NL_LIBRARIES AND NL_INCLUDE_DIRS )
# in cache already
SET(NL_FOUND TRUE)
ELSE (NL_LIBRARIES AND NL_INCLUDE_DIRS )
-
SET( SEARCHPATHS
/opt/local
/sw
/usr
/usr/local
)
-
FIND_PATH( NL_INCLUDE_DIR
PATH_SUFFIXES
include/libnl3
NAMES
- netlink/version.h netlink/netlink.h
- PATHS
- $(SEARCHPATHS)
- )
-
- FIND_LIBRARY( NL_LIBRARY
- NAMES
- nl-3 nl
- PATH_SUFFIXES
- lib64 lib
- PATHS
- $(SEARCHPATHS)
- )
-
- FIND_LIBRARY( NLGENL_LIBRARY
- NAMES
- nl-genl-3 nl-genl
- PATH_SUFFIXES
- lib64 lib
+ netlink/version.h
PATHS
$(SEARCHPATHS)
)
-
- FIND_LIBRARY( NLROUTE_LIBRARY
- NAMES
- nl-route-3 nl-route
- PATH_SUFFIXES
- lib64 lib
- PATHS
- $(SEARCHPATHS)
- )
-
+ # NL version >= 2
+ IF ( NL_INCLUDE_DIR )
+ FIND_LIBRARY( NL_LIBRARY
+ NAMES
+ nl-3 nl
+ PATH_SUFFIXES
+ lib64 lib
+ PATHS
+ $(SEARCHPATHS)
+ )
+ FIND_LIBRARY( NLGENL_LIBRARY
+ NAMES
+ nl-genl-3 nl-genl
+ PATH_SUFFIXES
+ lib64 lib
+ PATHS
+ $(SEARCHPATHS)
+ )
+ FIND_LIBRARY( NLROUTE_LIBRARY
+ NAMES
+ nl-route-3 nl-route
+ PATH_SUFFIXES
+ lib64 lib
+ PATHS
+ $(SEARCHPATHS)
+ )
+ STRING(REGEX REPLACE ".*nl-([^.,;]*).*" "\\1" NLSUFFIX ${NL_LIBRARY})
+ IF ( NLSUFFIX )
+ SET( HAVE_LIBNL3 1 )
+ ELSE ( NLSUFFIX )
+ SET( HAVE_LIBNL2 1 )
+ ENDIF (NLSUFFIX )
+ ELSE( NL_INCLUDE_DIR )
+ # NL version 1 ?
+ FIND_PATH( NL_INCLUDE_DIR
+ NAMES
+ netlink/netlink.h
+ PATHS
+ $(SEARCHPATHS)
+ )
+ FIND_LIBRARY( NL_LIBRARY
+ NAMES
+ nl
+ PATH_SUFFIXES
+ lib64 lib
+ PATHS
+ $(SEARCHPATHS)
+ )
+ SET( HAVE_LIBNL1 1 )
+ ENDIF( NL_INCLUDE_DIR )
ENDIF(NL_LIBRARIES AND NL_INCLUDE_DIRS)
+# MESSAGE(STATUS "LIB Found: ${NL_LIBRARY}, Suffix: ${NLSUFFIX}\n 1:${HAVE_LIBNL1}, 2:${HAVE_LIBNL2}, 3:${HAVE_LIBNL3}.")
# handle the QUIETLY and REQUIRED arguments and set NL_FOUND to TRUE if
# all listed variables are TRUE
@@ -66,8 +91,6 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(NL DEFAULT_MSG NL_LIBRARY NL_INCLUDE_DIR)
IF(NL_FOUND)
SET( NL_LIBRARIES ${NLGENL_LIBRARY} ${NLROUTE_LIBRARY} ${NL_LIBRARY} )
SET( NL_INCLUDE_DIRS ${NL_INCLUDE_DIR})
-# FIXME: Differentiate between libnl versions
- SET( HAVE_LIBNL3 1 )
ELSE()
SET( NL_LIBRARIES )
SET( NL_INCLUDE_DIRS )