Blame configure.d/config_modules_transports

Packit Service b38f0b
# -*- sh -*-
Packit Service b38f0b
transport_src_list=""
Packit Service b38f0b
transport_hdr_list=""
Packit Service b38f0b
transport_def_list=""
Packit Service b38f0b
transport_result_list=""
Packit Service b38f0b
transport_add_list=""
Packit Service b38f0b
new_with_transport_list=`echo $with_transports | $SED 's/,/ /g;'`
Packit Service b38f0b
new_with_out_transport_list=`echo $with_out_transports | $SED 's/,/ /g;'`
Packit Service b38f0b
Packit Service b38f0b
# set up the CPP command
Packit Service b38f0b
MODULECPP="$CPP $CPPFLAGS $PARTIALTARGETFLAGS -I${srcdir} -I${srcdir}/include"
Packit Service b38f0b
Packit Service b38f0b
#
Packit Service b38f0b
# Add the default transports to the list
Packit Service b38f0b
#
Packit Service b38f0b
if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then 
Packit Service b38f0b
  transport_default_list="UDP TCP Alias Callback"
Packit Service b38f0b
else
Packit Service b38f0b
  transport_default_list="UDP TCP Alias Unix Callback"
Packit Service b38f0b
fi
Packit Service b38f0b
if test "x$enable_ipv6" = "xyes"; then
Packit Service b38f0b
  transport_default_list="UDPIPv6 TCPIPv6 $transport_default_list"
Packit Service b38f0b
fi
Packit Service b38f0b
for i in $transport_default_list; do
Packit Service b38f0b
  if echo " $new_with_transport_list " | $GREP " $i " >/dev/null; then
Packit Service b38f0b
    :
Packit Service b38f0b
  else
Packit Service b38f0b
    transport_add_list="$i $transport_add_list"
Packit Service b38f0b
  fi
Packit Service b38f0b
done
Packit Service b38f0b
new_transport_list="$transport_add_list $new_with_transport_list"
Packit Service b38f0b
Packit Service b38f0b
if test "x$ctor_header" = "x" ; then
Packit Service b38f0b
   ctor_header="snmplib/transports/snmp_transport_inits.h"
Packit Service b38f0b
fi
Packit Service b38f0b
Packit Service b38f0b
echo "/* This file is automatically generated by configure.  Do not modify by hand. */" > $ctor_header
Packit Service b38f0b
while test "x$new_transport_list" != "x"; do
Packit Service b38f0b
  future_new_transport_list=""
Packit Service b38f0b
  for i in $new_transport_list; do
Packit Service b38f0b
    if echo " $new_with_out_transport_list " | $GREP " $i " >/dev/null; then
Packit Service b38f0b
      true
Packit Service b38f0b
    else
Packit Service b38f0b
      if test "x$enable_ipv6" != "xyes"; then
Packit Service b38f0b
          if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
Packit Service b38f0b
              AC_MSG_ERROR(IPv6 transports not available if IPv6 support is not enabled)
Packit Service b38f0b
          fi
Packit Service b38f0b
      fi
Packit Service b38f0b
      transport_src="transports/snmp"$i"Domain.c"
Packit Service b38f0b
      transport_hdr="snmp"$i"Domain.h"
Packit Service b38f0b
      rel_transport_src="snmplib/"$transport_src
Packit Service b38f0b
      rel_transport_hdr="include/net-snmp/library/"$transport_hdr
Packit Service b38f0b
      lc_i=`echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
Packit Service b38f0b
      ctor_fn="netsnmp_"$lc_i"_ctor"
Packit Service b38f0b
      if test -f "$srcdir/$rel_transport_src"; then
Packit Service b38f0b
        transport_result_list="$transport_result_list $i"
Packit Service b38f0b
        transport_src_list="$transport_src $transport_src_list"
Packit Service b38f0b
        if test -f "$srcdir/$rel_transport_hdr"; then
Packit Service b38f0b
          transport_hdr_list="$transport_hdr $transport_hdr_list"
Packit Service b38f0b
        fi
Packit Service b38f0b
        transport_def=`echo $i | $SED 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
Packit Service b38f0b
        transport_def_list="NETSNMP_TRANSPORT_"$transport_def"_DOMAIN $transport_def_list"
Packit Service b38f0b
      else
Packit Service b38f0b
        echo
Packit Service b38f0b
        AC_MSG_ERROR(Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i.)
Packit Service b38f0b
      fi
Packit Service b38f0b
Packit Service b38f0b
      #---------------------
Packit Service b38f0b
      # build a pseudo include header that includes current config and
Packit Service b38f0b
      # system symbols:
Packit Service b38f0b
      rm -f conftest.$ac_ext module_tmp_header.h
Packit Service b38f0b
      AC_LANG_CONFTEST([AC_LANG_SOURCE([[
Packit Service b38f0b
#include NETSNMP_SYSTEM_INCLUDE_FILE
Packit Service b38f0b
#undef NETSNMP_MINIMAL_CODE
Packit Service b38f0b
#define NET_SNMP_CONFIG_H
Packit Service b38f0b
#undef config_require
Packit Service b38f0b
#define config_require(foo) config_checkit_require(foo)
Packit Service b38f0b
#undef config_error
Packit Service b38f0b
#define config_error(foo) config_checkit_error(foo)
Packit Service b38f0b
#include "$rel_transport_hdr"]])])
Packit Service b38f0b
      mv conftest.$ac_ext module_tmp_header.h
Packit Service b38f0b
Packit Service b38f0b
      #
Packit Service b38f0b
      # check for dependencies using config_require() macro
Packit Service b38f0b
      #
Packit Service b38f0b
      sub_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_require | $SED 's/.*config_checkit_require *( *\(.*\) *).*/\1/'`
Packit Service b38f0b
      if test "x$sub_list" != "x" ; then
Packit Service b38f0b
        for j in $sub_list ; do
Packit Service b38f0b
	  if echo " $future_new_transport_list $new_transport_list " | $GREP " $j " > /dev/null ; then
Packit Service b38f0b
	    :
Packit Service b38f0b
	  else
Packit Service b38f0b
            future_new_transport_list="$future_new_transport_list $j"
Packit Service b38f0b
	  fi
Packit Service b38f0b
        done
Packit Service b38f0b
      fi
Packit Service b38f0b
Packit Service b38f0b
      #
Packit Service b38f0b
      # check for errors using config_error() macro
Packit Service b38f0b
      #
Packit Service b38f0b
      error_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_error | $SED 's/.*config_checkit_error(\(.*\)).*/\1/g'`
Packit Service b38f0b
      if test "x$error_list" != "x" ; then
Packit Service b38f0b
        echo ""
Packit Service b38f0b
        AC_MSG_ERROR($error_list)
Packit Service b38f0b
      fi
Packit Service b38f0b
Packit Service b38f0b
      #
Packit Service b38f0b
      # Check for needed constructor initialization routines to call
Packit Service b38f0b
      #
Packit Service b38f0b
      found=`grep $ctor_fn $srcdir/$rel_transport_src`
Packit Service b38f0b
      if grep $ctor_fn $srcdir/$rel_transport_src > /dev/null ; then
Packit Service b38f0b
	# we add them down below instead of here to make sure
Packit Service b38f0b
	# config_require dependency constructors get called first.
Packit Service b38f0b
	tr_init_list="$ctor_fn $tr_init_list"
Packit Service b38f0b
      fi
Packit Service b38f0b
    fi
Packit Service b38f0b
  done # for each new transport
Packit Service b38f0b
  new_transport_list="$future_new_transport_list"
Packit Service b38f0b
done # while new transports exist
Packit Service b38f0b
transport_obj_list=`echo " $transport_src_list " | $SED 's/\.c/\.o/g'`
Packit Service b38f0b
transport_lobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.lo/g'`
Packit Service b38f0b
transport_ftobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.ft/g'`
Packit Service b38f0b
for i in $tr_init_list ; do
Packit Service b38f0b
   echo "$i();" >> $ctor_header
Packit Service b38f0b
done
Packit Service b38f0b
Packit Service b38f0b
## win32 platforms require inet_ntop etc.
Packit Service b38f0b
if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
Packit Service b38f0b
  if echo "$transport_def_list" | $GREP "IPV6" >/dev/null; then
Packit Service b38f0b
    transport_obj_list="$transport_obj_list inet_ntop.o inet_pton.o"
Packit Service b38f0b
    transport_lobj_list="$transport_lobj_list inet_ntop.lo inet_pton.lo"
Packit Service b38f0b
    transport_ftobj_list="$transport_ftobj_list inet_ntop.ft inet_pton.ft"
Packit Service b38f0b
  fi
Packit Service b38f0b
fi
Packit Service b38f0b
Packit Service b38f0b
if test "x$transport_result_list" = x ; then
Packit Service b38f0b
   AC_MSG_ERROR([No transports configured, at least one must be provided])
Packit Service b38f0b
fi