summaryrefslogtreecommitdiff
path: root/m4/netsnmp_search_libs.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/netsnmp_search_libs.m4')
-rw-r--r--m4/netsnmp_search_libs.m435
1 files changed, 35 insertions, 0 deletions
diff --git a/m4/netsnmp_search_libs.m4 b/m4/netsnmp_search_libs.m4
new file mode 100644
index 0000000..bdd8a12
--- /dev/null
+++ b/m4/netsnmp_search_libs.m4
@@ -0,0 +1,35 @@
+dnl @synopsis NETSNMP_SEARCH_LIBS(FUNCTION, SEARCH-LIBS, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND], [OTHER-LIBRARIES], [TARGET-VARIABLE])
+dnl Similar to AC_SEARCH_LIBS but changes TARGET-VARIABLE instead of LIBS
+dnl If TARGET-VARIABLE is unset then LIBS is used
+AC_DEFUN([NETSNMP_SEARCH_LIBS],
+[m4_pushdef([netsnmp_target],m4_ifval([$6],[$6],[LIBS]))
+ AC_CACHE_CHECK([for library containing $1],
+ [netsnmp_cv_func_$1_]netsnmp_target,
+ [netsnmp_func_search_save_LIBS="$LIBS"
+ m4_if(netsnmp_target, [LIBS],
+ [netsnmp_target_val="$LIBS"
+ netsnmp_temp_LIBS="$5 ${LIBS}"],
+ [netsnmp_target_val="$netsnmp_target"
+ netsnmp_temp_LIBS="${netsnmp_target_val} $5 ${LIBS}"])
+ netsnmp_result=no
+ LIBS="${netsnmp_temp_LIBS}"
+ AC_LINK_IFELSE([AC_LANG_CALL([],[$1])],
+ [netsnmp_result="none required"],
+ [for netsnmp_cur_lib in $2 ; do
+ LIBS="-l${netsnmp_cur_lib} ${netsnmp_temp_LIBS}"
+ AC_LINK_IFELSE([AC_LANG_CALL([],[$1])],
+ [netsnmp_result=-l${netsnmp_cur_lib}
+ break])
+ done])
+ LIBS="${netsnmp_func_search_save_LIBS}"
+ [netsnmp_cv_func_$1_]netsnmp_target="${netsnmp_result}"])
+ if test "${[netsnmp_cv_func_$1_]netsnmp_target}" != "no" ; then
+ if test "${[netsnmp_cv_func_$1_]netsnmp_target}" != "none required" ; then
+ netsnmp_target="${netsnmp_result} ${netsnmp_target_val}"
+ fi
+ $3
+ m4_ifval([$4], [else
+ $4])
+ fi
+ m4_popdef([netsnmp_target])])