# -*- autoconf -*- # # Maybe add library extensions for thread mutex locking. # if test "x$with_res_locks" = "xyes"; then AC_DEFINE(NETSNMP_REENTRANT, 1, [Define to 1 if you want to build with reentrant/threaded code (incomplete).]) case $target_os in aix*) CC_RUNTIME_ARG="$CC_RUNTIME_ARG -lpthreads" ;; *) ;; esac fi # # Add platform-specific source files. # AC_MSG_CHECKING([for platform-specific source]) other_src_list="" other_ftobjs_list="" other_lobjs_list="" other_objs_list="" other_agentobjs="" other_lagentobjs="" other_ftagentobjs="" other_trapd_objects="" # Win32 service code if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then other_src_list="$other_src_list winservice.c winservicerc.rc" other_objs_list="$other_objs_list winservice.o winservicerc.o" other_lobjs_list="$other_lobjs_list winservice.lo winservicerc.lo" other_ftobjs_list="$other_ftobjs_list winservice.ft winservicerc.ft" other_agentobjs="../snmplib/winservicerc.o" other_lagentobjs="../snmplib/winservicerc.lo" other_ftagentobjs="../snmplib/winservicerc.lo" other_trapd_objects="../snmplib/winservicerc.o" fi # Win32 pipes if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then other_src_list="$other_src_list winpipe.c" other_objs_list="$other_objs_list winpipe.o" other_lobjs_list="$other_lobjs_list winpipe.lo" other_ftobjs_list="$other_ftobjs_list winpipe.ft" fi # Linux systemd if test "x$with_systemd" == "xyes"; then other_src_list="$other_src_list sd-daemon.c" other_objs_list="$other_objs_list sd-daemon.o" other_lobjs_list="$other_lobjs_list sd-daemon.lo" other_ftobjs_list="$other_ftobjs_list sd-daemon.ft" fi AC_SUBST(other_src_list) AC_SUBST(other_objs_list) AC_SUBST(other_lobjs_list) AC_SUBST(other_ftobjs_list) AC_SUBST(other_agentobjs) AC_SUBST(other_lagentobjs) AC_SUBST(other_ftagentobjs) AC_SUBST(other_trapd_objects) AC_MSG_RESULT([$other_src_list $other_objs_list $other_lobjs_list]) AC_MSG_RESULT([$other_agentobjs $other_lagentobjs $other_trapd_objects]) # # Create directory structure for build # if test ! -d include; then mkdir include fi if test ! -d include/net-snmp; then mkdir include/net-snmp fi if test ! -d include/net-snmp/agent; then mkdir include/net-snmp/agent fi if test ! -d include/net-snmp/library; then mkdir include/net-snmp/library fi if test ! -d include/ucd-snmp; then mkdir include/ucd-snmp fi if test ! -d snmplib; then mkdir snmplib fi if test ! -d snmplib/transports ; then mkdir snmplib/transports fi # # Do transport module processing. # AC_MSG_CHECKING([for and configuring transport modules to use]) # include the actual code checking m4_include(configure.d/config_modules_transports) AC_SUBST(transport_hdr_list) AC_SUBST(transport_src_list) AC_SUBST(transport_obj_list) AC_SUBST(transport_lobj_list) AC_SUBST(transport_ftobj_list) for i in $transport_def_list; do AC_DEFINE_UNQUOTED($i) done AC_MSG_RESULT($transport_result_list.) AC_MSG_CACHE_ADD(Network transport support: $transport_result_list) # cleanup rm -f module_tmp_header.h # # Security modules to use # AC_MSG_CHECKING([for security modules to use]) m4_include(configure.d/config_modules_security_modules) AC_SUBST(security_src_list) AC_SUBST(security_hdr_list) AC_SUBST(security_obj_list) AC_SUBST(security_lobj_list) AC_SUBST(security_ftobj_list) AC_MSG_RESULT($new_with_security) AC_MSG_CACHE_ADD(SNMPv3 Security Modules: $new_with_security) # # Handle the special case of KSM to see which crypto API we support # rebuilt_new_with_security= already_checked_krb5=no for sec in $new_with_security do if test "x$sec" = "xksm"; then if test "xyes" = "x$already_checked_krb5"; then continue else already_checked_krb5=yes fi fi if test x$sec != xksm; then rebuilt_new_with_security="$rebuilt_new_with_security $sec" else if test no = $trykrb5; then AC_MSG_NOTICE([configured not to use krb5. disabling ksm]) continue fi AC_PATH_PROG([krb5_config],krb5-config,[no],$krb5path/bin:$PATH) if test no != $krb5_config; then CPPFLAGS="$CPPFLAGS `$krb5_config --cflags`" LIBS="$LIBS `$krb5_config --libs`" elif test $krb5path != no; then AC_ADD_SEARCH_PATH($krb5path) else AC_ADD_SEARCH_PATH(/usr/kerberos) fi AC_MSG_CHECKING([for krb5]) AC_CACHE_VAL(ac_cv_have_krb5, AC_CHECK_LIB(krb5, krb5_init_context, ac_cv_have_krb5=yes, ac_cv_have_krb5=no ) ) if test $ac_cv_have_krb5 = no; then if test "x$askedkrb5" = "xyes"; then AC_MSG_ERROR(Asked to use krb5 but I couldn't find it.) fi AC_MSG_RESULT(no. disabling ksm) continue fi AC_MSG_RESULT(yes) rebuilt_new_with_security="$rebuilt_new_with_security ksm" AC_MSG_CHECKING([[for heimdal]]) AC_CACHE_VAL(ac_cv_heimdal, [AC_TRY_COMPILE( [#include ], [const char *v = heimdal_version;], ac_cv_heimdal=yes, ac_cv_heimdal=no )]) AC_MSG_RESULT($ac_cv_heimdal) if test $ac_cv_heimdal = yes; then AC_DEFINE(NETSNMP_USE_KERBEROS_HEIMDAL, 1, [Define this if you're using Heimdal Kerberos]) if test no = $krb5_config; then LIBS="$LIBS -lkrb5 -lasn1 -lcom_err -lroken" fi elif test no = $krb5_config; then LIBS="$LIBS -lkrb5 -lcom_err" fi AC_MSG_CHECKING([to see which crypto API we need to use]) AC_CACHE_VAL(ac_cv_NETSNMP_USE_KERBEROS_MIT, AC_CHECK_LIB(k5crypto, krb5_init_context, ac_cv_NETSNMP_USE_KERBEROS_MIT=yes, ac_cv_NETSNMP_USE_KERBEROS_MIT=no ) ) if test yes = $ac_cv_NETSNMP_USE_KERBEROS_MIT; then AC_MSG_RESULT(new MIT crypto API) AC_DEFINE(NETSNMP_USE_KERBEROS_MIT, 1, [Define this if we're using the new MIT crypto API]) if test no = $krb5_config; then LIBS="$LIBS -lk5crypto" fi else AC_MSG_RESULT(old MIT crypto API) fi AC_CHECK_FUNCS([krb5_auth_con_getsendsubkey krb5_auth_con_getrecvsubkey]) fi done new_with_security=$rebuilt_new_with_security # # Detect lm_sensors version # if test "x$ac_cv_header_sensors_sensors_h" = "xyes"; then AC_CHECK_DECLS([sensors_get_all_subfeatures], [AC_DEFINE(NETSNMP_USE_SENSORS_V3, 1, [Define this if you have lm_sensors v3 or later])],, [[#include ]]) fi