blob: 46ca03dbef8b70035fe3b4b0fefaaebe3fda4736 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
#
# 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.
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_package(PkgConfig)
pkg_check_modules(NL3 libnl-3.0 libnl-genl-3.0 libnl-route-3.0)
pkg_search_module(NL2 libnl-2.0)
FIND_PATH( NL_INCLUDE_DIR
PATH_SUFFIXES
include/libnl3
NAMES
netlink/version.h
HINTS
"${NL3_libnl-3.0_INCLUDEDIR}"
"${NL2_INCLUDEDIR}"
PATHS
$(SEARCHPATHS)
)
# NL version >= 2
IF ( NL_INCLUDE_DIR )
FIND_LIBRARY( NL_LIBRARY
NAMES
nl-3 nl
PATH_SUFFIXES
lib64 lib
HINTS
"${NL3_libnl-3.0_LIBDIR}"
"${NL2_LIBDIR}"
PATHS
$(SEARCHPATHS)
)
FIND_LIBRARY( NLGENL_LIBRARY
NAMES
nl-genl-3 nl-genl
PATH_SUFFIXES
lib64 lib
HINTS
"${NL3_libnl-genl-3.0_LIBDIR}"
"${NL2_LIBDIR}"
PATHS
$(SEARCHPATHS)
)
FIND_LIBRARY( NLROUTE_LIBRARY
NAMES
nl-route-3 nl-route
PATH_SUFFIXES
lib64 lib
HINTS
"${NL3_libnl-route-3.0_LIBDIR}"
"${NL2_LIBDIR}"
PATHS
$(SEARCHPATHS)
)
#
# If we don't have all of those libraries, we can't use libnl.
#
IF ( NOT NLGENL_LIBRARY AND NOT NLROUTE_LIBRARY )
SET( NL_LIBRARY NOTFOUND )
ENDIF ( NOT NLGENL_LIBRARY AND NOT NLROUTE_LIBRARY )
IF( NL_LIBRARY )
STRING(REGEX REPLACE ".*nl-([^.,;]*).*" "\\1" NLSUFFIX ${NL_LIBRARY})
IF ( NLSUFFIX )
SET( HAVE_LIBNL3 1 )
ELSE ( NLSUFFIX )
SET( HAVE_LIBNL2 1 )
ENDIF (NLSUFFIX )
SET( HAVE_LIBNL 1 )
ENDIF( NL_LIBRARY )
ELSE( NL_INCLUDE_DIR )
# NL version 1 ?
pkg_search_module(NL1 libnl-1)
FIND_PATH( NL_INCLUDE_DIR
NAMES
netlink/netlink.h
HINTS
"${NL1_INCLUDEDIR}"
PATHS
$(SEARCHPATHS)
)
FIND_LIBRARY( NL_LIBRARY
NAMES
nl
PATH_SUFFIXES
lib64 lib
HINTS
"${NL1_LIBDIR}"
PATHS
$(SEARCHPATHS)
)
if ( NL_INCLUDE_DIR )
SET( HAVE_LIBNL1 1 )
ENDIF ( NL_INCLUDE_DIR )
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
INCLUDE(FindPackageHandleStandardArgs)
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})
ELSE()
SET( NL_LIBRARIES )
SET( NL_INCLUDE_DIRS )
ENDIF()
MARK_AS_ADVANCED( NL_LIBRARIES NL_INCLUDE_DIRS )
|