128 lines
3.7 KiB
Text
128 lines
3.7 KiB
Text
# Configure paths for libsmi
|
|
# Shamelessly stolen from http://autoconf-archive.cryp.to/ax_lib_sqlite3.html
|
|
|
|
# Synopsis: AX_LIBSMI([minimum library version])
|
|
# The default minimum library version is 2
|
|
|
|
# This macro sets/substitutes the following:
|
|
# AC_DEFINE(HAVE_LIBSMI)
|
|
# AC_SUBST(LIBSMI_CFLAGS)
|
|
# AC_SUBST(LIBSMI_LDLAGS)
|
|
# AC_SUBST(LIBSMI_VERSION)
|
|
# $libsmi_message is set to "yes" or "no"
|
|
|
|
AC_DEFUN([AX_LIBSMI],
|
|
[
|
|
AC_ARG_WITH([libsmi],
|
|
AC_HELP_STRING(
|
|
[--with-libsmi=@<:@DIR@:>@],
|
|
[use libsmi MIB/PIB library @<:@default=yes@:>@, optionally specify the prefix for libsmi]
|
|
),
|
|
[
|
|
if test "$withval" = "no"; then
|
|
WANT_LIBSMI="no"
|
|
elif test "$withval" = "yes"; then
|
|
WANT_LIBSMI="yes"
|
|
ac_libsmi_path=""
|
|
else
|
|
WANT_LIBSMI="yes"
|
|
ac_libsmi_path="$withval"
|
|
fi
|
|
],
|
|
[WANT_LIBSMI="yes"]
|
|
)
|
|
|
|
libsmi_message="no"
|
|
LIBSMI_CFLAGS=""
|
|
LIBSMI_LDFLAGS=""
|
|
LIBSMI_VERSION=""
|
|
|
|
if test "x$WANT_LIBSMI" = "xyes"; then
|
|
|
|
ac_libsmi_header="smi.h"
|
|
|
|
libsmi_version_req=ifelse([$1], [], [2], [$1])
|
|
|
|
AC_MSG_CHECKING([for libsmi >= $libsmi_version_req])
|
|
|
|
if test "$ac_libsmi_path" != ""; then
|
|
ac_libsmi_ldflags="-L$ac_libsmi_path/lib"
|
|
ac_libsmi_cflags="-I$ac_libsmi_path/include"
|
|
else
|
|
for ac_libsmi_path_tmp in /usr /usr/local /opt ; do
|
|
if test -f "$ac_libsmi_path_tmp/include/$ac_libsmi_header" \
|
|
&& test -r "$ac_libsmi_path_tmp/include/$ac_libsmi_header"; then
|
|
ac_libsmi_path=$ac_libsmi_path_tmp
|
|
ac_libsmi_ldlags="-L$ac_libsmi_path_tmp/lib"
|
|
ac_libsmi_cflags="-I$ac_libsmi_path_tmp/include"
|
|
break;
|
|
fi
|
|
done
|
|
fi
|
|
|
|
ac_libsmi_ldflags="$ac_libsmi_ldflags -lsmi"
|
|
|
|
saved_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS $ac_libsmi_cflags"
|
|
|
|
AC_LANG_PUSH(C)
|
|
AC_COMPILE_IFELSE(
|
|
[
|
|
AC_LANG_PROGRAM([[@%:@include <smi.h>]],
|
|
[[
|
|
int current, revision, age, n;
|
|
const int required = $libsmi_version_req;
|
|
if (smiInit(""))
|
|
exit(1);
|
|
if (strcmp(SMI_LIBRARY_VERSION, smi_library_version))
|
|
exit(2);
|
|
n = sscanf(smi_library_version, "%d:%d:%d", ¤t, &revision, &age);
|
|
if (n != 3)
|
|
exit(3);
|
|
if (required < current - age || required > current)
|
|
exit(4);
|
|
]]
|
|
)
|
|
],
|
|
[
|
|
AC_MSG_RESULT([yes])
|
|
libsmi_message="yes"
|
|
],
|
|
[
|
|
AC_MSG_RESULT([not found])
|
|
libsmi_message="no"
|
|
]
|
|
)
|
|
AC_LANG_POP([C])
|
|
|
|
CFLAGS="$saved_CFLAGS"
|
|
|
|
if test "$libsmi_message" = "yes"; then
|
|
|
|
LIBSMI_CFLAGS="$ac_libsmi_cflags"
|
|
LIBSMI_LDFLAGS="$ac_libsmi_ldflags"
|
|
|
|
ac_libsmi_header_path="$ac_libsmi_path/include/$ac_libsmi_header"
|
|
|
|
dnl Retrieve libsmi release version
|
|
if test "x$ac_libsmi_header_path" != "x"; then
|
|
ac_libsmi_version=`cat $ac_libsmi_header_path \
|
|
| grep '#define.*SMI_LIBRARY_VERSION.*\"' | sed -e 's/.* "//' \
|
|
| sed -e 's/"//'`
|
|
if test $ac_libsmi_version != ""; then
|
|
LIBSMI_VERSION=$ac_libsmi_version
|
|
else
|
|
AC_MSG_WARN([Can not find SMI_LIBRARY_VERSION macro in smi.h header to retrieve libsmi version!])
|
|
fi
|
|
fi
|
|
|
|
AC_SUBST(LIBSMI_CFLAGS)
|
|
AC_SUBST(LIBSMI_LDFLAGS)
|
|
AC_SUBST(LIBSMI_VERSION)
|
|
AC_DEFINE(HAVE_LIBSMI, 1, [Define to 1 if you have the `smi' library (-lsmi).])
|
|
fi
|
|
fi
|
|
])
|
|
|
|
|