diff options
Diffstat (limited to 'm4/netsnmp_search_libs.m4')
-rw-r--r-- | m4/netsnmp_search_libs.m4 | 35 |
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])]) |