blob: b10b9604931455ba6352a2ecd87777a3971f9494 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
# -*- sh -*-
transport_src_list=""
transport_hdr_list=""
transport_def_list=""
transport_result_list=""
transport_add_list=""
new_with_transport_list=`echo $with_transports | $SED 's/,/ /g;'`
new_with_out_transport_list=`echo $with_out_transports | $SED 's/,/ /g;'`
# set up the CPP command
MODULECPP="$CPP $PARTIALTARGETFLAGS -I${srcdir} -I${srcdir}/include"
#
# Add the default transports to the list
#
if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"; then
transport_default_list="UDP TCP Alias Callback"
else
transport_default_list="UDP TCP Alias Unix Callback"
fi
if test "x$enable_ipv6" = "xyes"; then
transport_default_list="UDPIPv6 TCPIPv6 $transport_default_list"
fi
for i in $transport_default_list; do
if echo " $new_with_transport_list " | $GREP " $i " >/dev/null; then
:
else
transport_add_list="$i $transport_add_list"
fi
done
new_transport_list="$transport_add_list $new_with_transport_list"
if test "x$ctor_header" = "x" ; then
ctor_header="snmplib/transports/snmp_transport_inits.h"
fi
echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $ctor_header
while test "x$new_transport_list" != "x"; do
future_new_transport_list=""
for i in $new_transport_list; do
if echo " $new_with_out_transport_list " | $GREP " $i " >/dev/null; then
true
else
if test "x$enable_ipv6" != "xyes"; then
if test "x$i" = "xUDPIPv6" -o "x$i" = "xTCPIPv6"; then
AC_MSG_ERROR(IPv6 transports not available if IPv6 support is not enabled)
fi
fi
transport_src="transports/snmp"$i"Domain.c"
transport_hdr="snmp"$i"Domain.h"
rel_transport_src="snmplib/"$transport_src
rel_transport_hdr="include/net-snmp/library/"$transport_hdr
lc_i=`echo $i | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
ctor_fn="netsnmp_"$lc_i"_ctor"
if test -f "$srcdir/$rel_transport_src"; then
transport_result_list="$transport_result_list $i"
transport_src_list="$transport_src $transport_src_list"
if test -f "$srcdir/$rel_transport_hdr"; then
transport_hdr_list="$transport_hdr $transport_hdr_list"
fi
transport_def=`echo $i | $SED 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
transport_def_list="NETSNMP_TRANSPORT_"$transport_def"_DOMAIN $transport_def_list"
else
echo
AC_MSG_ERROR(Cannot find file $srcdir/$rel_transport_src to support SNMP transport domain $i.)
fi
#---------------------
# build a pseudo include header that includes current config and
# system symbols:
rm -f conftest.$ac_ext module_tmp_header.h
AC_LANG_CONFTEST([AC_LANG_SOURCE([[
#include NETSNMP_SYSTEM_INCLUDE_FILE
#undef NETSNMP_MINIMAL_CODE
#define NET_SNMP_CONFIG_H
#undef config_require
#define config_require(foo) config_checkit_require(foo)
#undef config_error
#define config_error(foo) config_checkit_error(foo)
#include "$rel_transport_hdr"]])])
mv conftest.$ac_ext module_tmp_header.h
#
# check for dependencies using config_require() macro
#
sub_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_require | $SED 's/.*config_checkit_require *( *\(.*\) *).*/\1/'`
if test "x$sub_list" != "x" ; then
for j in $sub_list ; do
if echo " $future_new_transport_list $new_transport_list " | $GREP " $j " > /dev/null ; then
:
else
future_new_transport_list="$future_new_transport_list $j"
fi
done
fi
#
# check for errors using config_error() macro
#
error_list=`$MODULECPP module_tmp_header.h | $GREP config_checkit_error | $SED 's/.*config_checkit_error(\(.*\)).*/\1/g'`
if test "x$error_list" != "x" ; then
echo ""
AC_MSG_ERROR($error_list)
fi
#
# Check for needed constructor initialization routines to call
#
found=`grep $ctor_fn $srcdir/$rel_transport_src`
if grep $ctor_fn $srcdir/$rel_transport_src > /dev/null ; then
# we add them down below instead of here to make sure
# config_require dependency constructors get called first.
tr_init_list="$ctor_fn $tr_init_list"
fi
fi
done # for each new transport
new_transport_list="$future_new_transport_list"
done # while new transports exist
transport_obj_list=`echo " $transport_src_list " | $SED 's/\.c/\.o/g'`
transport_lobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.lo/g'`
transport_ftobj_list=`echo " $transport_src_list " | $SED 's/\.c/\.ft/g'`
for i in $tr_init_list ; do
echo "$i();" >> $ctor_header
done
## win32 platforms require inet_ntop etc.
if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then
if echo "$transport_def_list" | $GREP "IPV6" >/dev/null; then
transport_obj_list="$transport_obj_list inet_ntop.o inet_pton.o"
transport_lobj_list="$transport_lobj_list inet_ntop.lo inet_pton.lo"
transport_ftobj_list="$transport_ftobj_list inet_ntop.ft inet_pton.ft"
fi
fi
if test "x$transport_result_list" = x ; then
AC_MSG_ERROR([No transports configured, at least one must be provided])
fi
|