summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2012-01-09 18:37:44 -0600
committerDan Williams <dcbw@redhat.com>2012-01-09 19:25:53 -0600
commitd4940f4ab2165398168e82b283e856e71ec24a68 (patch)
tree009f069d249572bfd145840498be9b015d1e5a11
parent821e436f61e348155ce8906b56ee125c3f47f437 (diff)
core: start fixing for libnl3
-rw-r--r--bin/Makefile.am4
-rw-r--r--configure.in54
-rw-r--r--include/config.h.in9
-rw-r--r--lib/Makefile.am8
-rw-r--r--libwimaxll-0-uninstalled.pc.in4
-rw-r--r--libwimaxll-0.pc.in4
-rw-r--r--libwimaxll-i2400m-0-uninstalled.pc.in4
-rw-r--r--libwimaxll-i2400m-0.pc.in4
-rw-r--r--src/Makefile.am4
9 files changed, 74 insertions, 21 deletions
diff --git a/bin/Makefile.am b/bin/Makefile.am
index c19b746..229102f 100644
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -5,7 +5,9 @@ INCLUDES = \
-I$(top_builddir)/include \
$(I2400M_INCLUDES)
-LDADD = ../lib/libwimaxll.la $(LIBNL1_LIBS)
+AM_CPPFLAGS = $(LIBNL_CFLAGS)
+
+LDADD = ../lib/libwimaxll.la $(LIBNL_LIBS)
dist_bin_SCRIPTS = \
wimaxll-reset \
diff --git a/configure.in b/configure.in
index a837f48..b3a54b8 100644
--- a/configure.in
+++ b/configure.in
@@ -60,18 +60,56 @@ AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug],
fi
])
-# If libnl-1 is installed
-AC_ARG_WITH(libnl1,
- AC_HELP_STRING([--with-libnl1],
+# If libnl is installed
+AC_ARG_WITH(libnl,
+ AC_HELP_STRING([--with-libnl],
[prefix to libnl (>=1.0-pre7) installation; defaults to
whichever is found in the system with pkg-config.
USE ABSOLUTE PATHS.]),
export PKG_CONFIG_PATH="$withval:$withval/lib/pkgconfig")
-PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0-pre7)
-libnl1_prefix=`pkg-config "libnl-1 >= 1.0-pre7" --variable=prefix`
-AC_MSG_RESULT(Using libnl1 from $libnl1_prefix)
-AC_SUBST(LIBNL1_CFLAGS)
-AC_SUBST(LIBNL1_LIBS)
+
+have_libnl="no"
+PKG_CHECK_MODULES(LIBNL3, libnl-3.0, [have_libnl3=yes], [have_libnl3=no])
+PKG_CHECK_MODULES(LIBNL_ROUTE3, libnl-route-3.0, [have_libnl_route3=yes], [have_libnl_route3=no])
+PKG_CHECK_MODULES(LIBNL_GENL3, libnl-genl-3.0, [have_libnl_genl3=yes], [have_libnl_genl3=no])
+if (test "${have_libnl3}" = "yes" -a "${have_libnl_route3}" = "yes" -a "${have_libnl_genl3}" = "yes"); then
+ AC_DEFINE(HAVE_LIBNL3, 1, [Define if you require specific libnl-3 support])
+ LIBNL_CFLAGS="$LIBNL3_CFLAGS $LIBNL_ROUTE3_CFLAGS $LIBNL_GENL3_CFLAGS"
+ LIBNL_LIBS="$LIBNL3_LIBS $LIBNL_ROUTE3_LIBS $LIBNL_GENL3_LIBS"
+ libnl_version="3"
+ LIBNL_PC_EXT="3.0"
+ have_libnl="yes"
+else
+ PKG_CHECK_MODULES(LIBNL2, libnl-2.0, [have_libnl2=yes], [have_libnl2=no])
+ if (test "${have_libnl2}" = "yes"); then
+ AC_DEFINE(HAVE_LIBNL2, 1, [Define if you require specific libnl-2 support])
+ LIBNL_CFLAGS="$LIBNL2_CFLAGS"
+ LIBNL_LIBS="$LIBNL2_LIBS"
+ libnl_version="2"
+ LIBNL_PC_EXT="2"
+ have_libnl="yes"
+ else
+ PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0-pre8, [have_libnl1=yes], [have_libnl1=no])
+ if (test "${have_libnl1}" = "yes"); then
+ AC_DEFINE(HAVE_LIBNL1, 1, [Define if you require libnl-1 legacy support])
+ LIBNL_CFLAGS="$LIBNL1_CFLAGS"
+ LIBNL_LIBS="$LIBNL1_LIBS"
+ libnl_version="1"
+ LIBNL_PC_EXT="1"
+ have_libnl="yes"
+ fi
+ fi
+fi
+
+if (test "${have_libnl}" = "no"); then
+ AC_MSG_ERROR([libnl development header are required])
+fi
+AC_SUBST(LIBNL_CFLAGS)
+AC_SUBST(LIBNL_LIBS)
+AC_SUBST(LIBNL_PC_EXT)
+
+libnl_prefix=`pkg-config "libnl >= 1.0-pre7" --variable=prefix`
+AC_MSG_RESULT(Using libnl from $libnl_prefix)
# Linux WiMAX stack
LINUX_KERNEL=/usr
diff --git a/include/config.h.in b/include/config.h.in
index b659c56..4bf7928 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -6,6 +6,15 @@
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
+/* Define if you require libnl-1 legacy support */
+#undef HAVE_LIBNL1
+
+/* Define if you require specific libnl-2 support */
+#undef HAVE_LIBNL2
+
+/* Define if you require specific libnl-3 support */
+#undef HAVE_LIBNL3
+
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 4d97adf..ca6f2f0 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -4,7 +4,7 @@
#
INCLUDES = \
-I$(top_builddir)/include -I$(top_srcdir)/include \
- $(LIBNL1_CFLAGS) \
+ $(LIBNL_CFLAGS) \
-I $(LINUX_INCLUDE_PATH)
noinst_HEADERS = debug.h internal.h
@@ -27,12 +27,13 @@ libwimaxll_a_SOURCES = $(libwimaxll_sources)
libwimaxll_la_SOURCES = $(libwimaxll_sources)
# Trick automake
libwimaxll_la_CFLAGS = $(AM_CFLAGS)
+libwimaxll_la_CPPFLAGS = $(LIBNL_CFLAGS)
# -version-info is CURRENT:REVISION:AGE
# CURRENT: inc for added, removed/changed interfaces
# REVISION: inc for changes that do not affect the external interface
# AGE: inc for added interfaces
# set to zero if removed existing interfaces
-libwimaxll_la_LDFLAGS = -version-info 1:0:1 $(LIBNL1_LIBS)
+libwimaxll_la_LDFLAGS = -version-info 1:0:1 $(LIBNL_LIBS)
# misc.c includes this file
BUILT_SOURCES = names-vals.h
@@ -68,13 +69,14 @@ libwimaxll_i2400m_a_SOURCES = $(libwimaxll_i2400m_sources)
libwimaxll_i2400m_la_SOURCES = $(libwimaxll_i2400m_sources)
# Trick automake
libwimaxll_i2400m_la_CFLAGS = $(AM_CFLAGS)
+libwimaxll_i2400m_la_CPPFLAGS = $(LIBNL_CFLAGS)
# -version-info is CURRENT:REVISION:AGE
# CURRENT: inc for added, removed/changed interfaces
# REVISION: inc for changes that do not affect the external interface
# AGE: inc for added interfaces
# set to zero if removed existing interfaces
libwimaxll_i2400m_la_LIBADD = libwimaxll.la
-libwimaxll_i2400m_la_LDFLAGS = -lpthread -version-info 1:0:1 $(LIBNL1_LIBS)
+libwimaxll_i2400m_la_LDFLAGS = -lpthread -version-info 1:0:1 $(LIBNL_LIBS)
lib_LTLIBRARIES += libwimaxll-i2400m.la
lib_LIBRARIES += libwimaxll-i2400m.a
diff --git a/libwimaxll-0-uninstalled.pc.in b/libwimaxll-0-uninstalled.pc.in
index 92c2f09..af0f81c 100644
--- a/libwimaxll-0-uninstalled.pc.in
+++ b/libwimaxll-0-uninstalled.pc.in
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: @PACKAGE_TARNAME@
Description: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
-Requires: libnl-1 >= 1.0
-Libs: -L${libdir} -lwimaxll @LIBNL1_LIBS@
+Requires: libnl-@LIBNL_PC_EXT@ >= 1.0
+Libs: -L${libdir} -lwimaxll @LIBNL_LIBS@
Cflags: -I${includedir}
diff --git a/libwimaxll-0.pc.in b/libwimaxll-0.pc.in
index f998325..66fefd6 100644
--- a/libwimaxll-0.pc.in
+++ b/libwimaxll-0.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: @PACKAGE_TARNAME@
Description: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
-Requires: libnl-1 >= 1.0
-Libs: -L${libdir} -lwimaxll @LIBNL1_LIBS@
+Requires: libnl-@LIBNL_PC_EXT@ >= 1.0
+Libs: -L${libdir} -lwimaxll @LIBNL_LIBS@
Cflags: -I${includedir}
diff --git a/libwimaxll-i2400m-0-uninstalled.pc.in b/libwimaxll-i2400m-0-uninstalled.pc.in
index 73ec46c..07c9531 100644
--- a/libwimaxll-i2400m-0-uninstalled.pc.in
+++ b/libwimaxll-i2400m-0-uninstalled.pc.in
@@ -6,6 +6,6 @@ includedir=${prefix}/include
Name: @PACKAGE_TARNAME@ (i2400m specific)
Description: @PACKAGE_NAME@ (i2400m specific)
Version: @PACKAGE_VERSION@
-Requires: libnl-1 >= 1.0
-Libs: -L${libdir} -lwimaxll-i2400m -lwimaxll @LIBNL1_LIBS@
+Requires: libnl-@LIBNL_PC_EXT@ >= 1.0
+Libs: -L${libdir} -lwimaxll-i2400m -lwimaxll @LIBNL_LIBS@
Cflags: -I${includedir}
diff --git a/libwimaxll-i2400m-0.pc.in b/libwimaxll-i2400m-0.pc.in
index b4e176f..2a5efd8 100644
--- a/libwimaxll-i2400m-0.pc.in
+++ b/libwimaxll-i2400m-0.pc.in
@@ -6,6 +6,6 @@ includedir=@includedir@
Name: @PACKAGE_TARNAME@
Description: @PACKAGE_NAME@
Version: @PACKAGE_VERSION@
-Requires: libnl-1 >= 1.0
-Libs: -L${libdir} -lwimaxll-i2400m -lwimaxll @LIBNL1_LIBS@
+Requires: libnl-@LIBNL_PC_EXT@ >= 1.0
+Libs: -L${libdir} -lwimaxll-i2400m -lwimaxll @LIBNL_LIBS@
Cflags: -I${includedir}
diff --git a/src/Makefile.am b/src/Makefile.am
index 65d1652..6395b65 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,9 @@ INCLUDES = \
-I$(top_builddir)/include -I$(top_srcdir)/include \
$(I2400M_INCLUDES)
-LDADD = ../lib/libwimaxll.la $(LIBNL1_LIBS)
+AM_CPPFLAGS = $(LIBNL_CFLAGS)
+
+LDADD = ../lib/libwimaxll.la $(LIBNL_LIBS)
testdir = $(pkglibdir)/test