Differentiate between libnl versions. Feature parity with autofoo

for libnl.

svn path=/trunk/; revision=44876
This commit is contained in:
Jörg Mayer 2012-09-11 10:48:43 +00:00
parent 1bdf9a8912
commit c7bf21cbf1
1 changed files with 57 additions and 34 deletions

View File

@ -1,9 +1,13 @@
# #
# $Id$ # $Id$
# #
# - Find netlink
# Find the native netlink includes and library # 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_INCLUDE_DIRS - where to find libnl.h, etc.
# NL_LIBRARIES - List of libraries when using libnl3. # NL_LIBRARIES - List of libraries when using libnl3.
# NL_FOUND - True if libnl found. # NL_FOUND - True if libnl found.
@ -12,51 +16,72 @@ IF (NL_LIBRARIES AND NL_INCLUDE_DIRS )
# in cache already # in cache already
SET(NL_FOUND TRUE) SET(NL_FOUND TRUE)
ELSE (NL_LIBRARIES AND NL_INCLUDE_DIRS ) ELSE (NL_LIBRARIES AND NL_INCLUDE_DIRS )
SET( SEARCHPATHS SET( SEARCHPATHS
/opt/local /opt/local
/sw /sw
/usr /usr
/usr/local /usr/local
) )
FIND_PATH( NL_INCLUDE_DIR FIND_PATH( NL_INCLUDE_DIR
PATH_SUFFIXES PATH_SUFFIXES
include/libnl3 include/libnl3
NAMES NAMES
netlink/version.h netlink/netlink.h netlink/version.h
PATHS PATHS
$(SEARCHPATHS) $(SEARCHPATHS)
) )
# NL version >= 2
FIND_LIBRARY( NL_LIBRARY IF ( NL_INCLUDE_DIR )
NAMES FIND_LIBRARY( NL_LIBRARY
nl-3 nl NAMES
PATH_SUFFIXES nl-3 nl
lib64 lib PATH_SUFFIXES
PATHS lib64 lib
$(SEARCHPATHS) PATHS
) $(SEARCHPATHS)
)
FIND_LIBRARY( NLGENL_LIBRARY FIND_LIBRARY( NLGENL_LIBRARY
NAMES NAMES
nl-genl-3 nl-genl nl-genl-3 nl-genl
PATH_SUFFIXES PATH_SUFFIXES
lib64 lib lib64 lib
PATHS PATHS
$(SEARCHPATHS) $(SEARCHPATHS)
) )
FIND_LIBRARY( NLROUTE_LIBRARY
FIND_LIBRARY( NLROUTE_LIBRARY NAMES
NAMES nl-route-3 nl-route
nl-route-3 nl-route PATH_SUFFIXES
PATH_SUFFIXES lib64 lib
lib64 lib PATHS
PATHS $(SEARCHPATHS)
$(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) 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 # handle the QUIETLY and REQUIRED arguments and set NL_FOUND to TRUE if
# all listed variables are TRUE # 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) IF(NL_FOUND)
SET( NL_LIBRARIES ${NLGENL_LIBRARY} ${NLROUTE_LIBRARY} ${NL_LIBRARY} ) SET( NL_LIBRARIES ${NLGENL_LIBRARY} ${NLROUTE_LIBRARY} ${NL_LIBRARY} )
SET( NL_INCLUDE_DIRS ${NL_INCLUDE_DIR}) SET( NL_INCLUDE_DIRS ${NL_INCLUDE_DIR})
# FIXME: Differentiate between libnl versions
SET( HAVE_LIBNL3 1 )
ELSE() ELSE()
SET( NL_LIBRARIES ) SET( NL_LIBRARIES )
SET( NL_INCLUDE_DIRS ) SET( NL_INCLUDE_DIRS )