Your IP : 18.217.104.36
#!/bin/sh
#
# $Id$
#
# this shell script is designed to merely dump the configuration
# information about how the net-snmp package was compiled. The
# information is particularly useful for applications that need to
# link against the net-snmp libraries and hence must know about any
# other libraries that must be linked in as well.
check_build_dir()
{
build_dir=$1
if test "x$build_dir" = "x" ; then
echo "You must specify a build directory."
exit 1
fi
# is it the src dir?
if test -f $build_dir/net-snmp-config.in ; then
return
fi
# make sure we can find build dir
if test ! -d $build_dir/snmplib/.libs ; then
echo "$build_dir does not appear to be a build directory."
exit 1
fi
}
# usage: index n arguments
# effect: returns the (n+1)th argument
index()
{
eval echo \$`expr $1 + 1`
}
# usage: count arguments
# effect: returns the number of arguments
count()
{
echo $#
}
prefix=/opt/alt/net-snmp11/usr
exec_prefix=/opt/alt/net-snmp11/usr
includedir=/opt/alt/net-snmp11/usr/include
libdir=/opt/alt/net-snmp11/usr/lib64
datarootdir=${prefix}/share
NSC_LDFLAGS="-Wl,-z,relro -Wl,-z,now -lm"
NSC_LIBS=""
NSC_LNETSNMPLIBS=" -lssl -lssl -lcrypto"
NSC_LAGENTLIBS=" "
NSC_LMIBLIBS="-lsensors -ldl -lrpm -lrpmio "
NSC_INCLUDEDIR=${includedir}
NSC_LIBDIR=-L${libdir}
NSC_SNMPLIBS="-lnetsnmp ${NSC_LNETSNMPLIBS}"
NSC_SUBAGENTLIBS="-lnetsnmpagent ${NSC_LAGENTLIBS} ${NSC_SNMPLIBS}"
NSC_AGENTLIBS="-lnetsnmpmibs ${NSC_LMIBLIBS} ${NSC_SUBAGENTLIBS}"
NSC_PREFIX=$prefix
NSC_EXEC_PREFIX=$exec_prefix
NSC_SRCDIR=.
NSC_INCDIR=${NSC_PREFIX}/include
NSC_BASE_SNMP_LIBS="-lnetsnmp"
NSC_BASE_SUBAGENT_LIBS="-lnetsnmpagent ${NSC_BASE_SNMP_LIBS}"
NSC_BASE_AGENT_LIBS="-lnetsnmpmibs ${NSC_BASE_SUBAGENT_LIBS}"
NSC_SRC_LIBDIRS="agent/.libs snmplib/.libs"
NSC_SRC_LIBDEPS="agent/.libs/libnetsnmpmibs.a agent/.libs/libnetsnmpagent.a snmplib/.libs/libnetsnmp.a"
if test "x$NSC_SRCDIR" = "x." ; then
NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
elif test "x$NSC_SRCDIR" = "x" ; then
NSC_SRCDIR="NET-SNMP-SOURCE-DIR"
fi
if test "x$1" = "x"; then
usage="yes"
else
while test "x$done" = "x" -a "x$1" != "x" -a "x$usage" != "xyes"; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
unset shifted
case $1 in
--prefix=*)
prefix=$optarg
NSC_PREFIX=${prefix}
NSC_INCLUDEDIR=${prefix}/include
NSC_LIBDIR=-L${prefix}/lib
;;
--exec-prefix=*)
exec_prefix=$optarg
NSC_EXEC_PREFIX=${exec_prefix}
NSC_LIBDIR=-L${exec_prefix}/lib
;;
--debug-tokens|--deb*|--dbg*)
echo "find $NSC_SRCDIR -name \"*.c\" -print | xargs grep DEBUGMSGT | grep \\\" | cut -f 2 -d\\\" | sort -u"
if test "x$NSC_SRCDIR" != "xNET-SNMP-SOURCE-DIR" ; then
/usr/bin/find $NSC_SRCDIR -name "*.c" -print | xargs grep DEBUGMSGT | grep \" | cut -f 2 -d\" | sort -u
fi
;;
--indent-options|--in*)
echo "indent -orig -nbc -bap -nut -nfca `(cd $NSC_INCDIR/net-snmp; perl -n -e 'print "-T $1 " if (/}\s*(netsnmp_\w+)\s*;/);' */*.h)`"
;;
--configure-options|--con*)
echo " '--build=x86_64-redhat-linux-gnu' '--host=x86_64-redhat-linux-gnu' '--program-prefix=' '--disable-dependency-tracking' '--exec-prefix=/opt/alt/net-snmp11/usr' '--bindir=/opt/alt/net-snmp11/usr/bin' '--sbindir=/opt/alt/net-snmp11/usr/sbin' '--datadir=/opt/alt/net-snmp11/usr/share' '--includedir=/opt/alt/net-snmp11/usr/include' '--libdir=/opt/alt/net-snmp11/usr/lib64' '--libexecdir=/opt/alt/net-snmp11/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/opt/alt/net-snmp11/usr/share/man' '--infodir=/opt/alt/net-snmp11/usr/share/info' '--disable-agent' '--disable-applications' '--disable-debugging' '--disable-embedded-perl' '--disable-manuals' '--disable-scripts' '--disable-static' '--enable-as-needed' '--enable-blumenthal-aes' '--enable-ipv6' '--enable-local-smux' '--enable-mfd-rewrites' '--enable-shared' '--enable-ucd-snmp-compatibility' '--prefix=/opt/alt/net-snmp11/usr' '--sysconfdir=/etc' '--with-cflags=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include' '--with-defaults' '--with-install-prefix=/opt/alt/net-snmp11/usr' '--with-ldflags=-Wl,-z,relro -Wl,-z,now -lm' '--with-logfile=/var/log/snmpd.log' '--with-mib-modules=host agentx smux ucd-snmp/diskio tcp-mib udp-mib mibII/mta_sendmail ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable ip-mib/ipAddressPrefixTable/ipAddressPrefixTable ip-mib/ipDefaultRouterTable/ipDefaultRouterTable ip-mib/ipv6ScopeZoneIndexTable ip-mib/ipIfStatsTable sctp-mib rmon-mib etherlike-mib ucd-snmp/lmsensorsMib' '--with-openssl=/opt/alt/opnessl11' '--with-perl-modules=INSTALLDIRS=vendor' '--with-persistent-directory=/var/lib/net-snmp' '--with-pic' '--with-security-modules=tsm' '--with-sys-contact=Unknown' '--with-sys-location=Unknown' '--with-systemd' '--with-temp-file-pattern=/run/net-snmp/snmp-tmp-XXXXXX' '--with-transports=DTLSUDP TLSTCP' '--without-perl-modules' 'build_alias=x86_64-redhat-linux-gnu' 'host_alias=x86_64-redhat-linux-gnu' 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include' 'LDFLAGS=-L/opt/alt/openssl11/lib64 -L/opt/alt/libssh211/usr/lib64 -Wl,-rpath=/opt/alt/openssl11/lib64,-rpath=/opt/alt/libssh211/usr/lib64' 'CPPFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include' 'PKG_CONFIG_PATH=:/opt/alt/net-snmp11/usr/lib64/pkgconfig:/opt/alt/net-snmp11/usr/share/pkgconfig'"
;;
--snmpd-module-list|--mod*)
echo ip-mib/ipAddressPrefixTable/ipAddressPrefixTable ip-mib/ipDefaultRouterTable/ipDefaultRouterTable mibII/mta_sendmail ucd-snmp/diskio ucd-snmp/lmsensorsMib agentx/master agentx/subagent host/hrh_storage host/hrh_filesys host/hrSWInstalledTable host/hrSWRunTable host/hr_system host/hr_device host/hr_other host/hr_proc host/hr_network host/hr_print host/hr_disk host/hr_partition ip-mib/ipAddressTable/ipAddressTable ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_interface ip-mib/ipAddressPrefixTable/ipAddressPrefixTable_data_access ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_interface ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_access ip-mib/ipDefaultRouterTable/ipDefaultRouterTable_data_get ip-mib/ipIfStatsTable/ipIfStatsTable ip-mib/ipIfStatsTable/ipIfStatsTable_interface ip-mib/ipIfStatsTable/ipIfStatsTable_data_access ip-mib/ipv4InterfaceTable/ipv4InterfaceTable ip-mib/ipv6InterfaceTable/ipv6InterfaceTable ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable sctp-mib/sctpScalars smux/smux util_funcs/header_simple_table agentx/protocol agentx/master_admin agentx/agentx_config agentx/client etherlike-mib/dot3StatsTable/dot3StatsTable etherlike-mib/dot3StatsTable/dot3StatsTable_data_get etherlike-mib/dot3StatsTable/dot3StatsTable_data_set etherlike-mib/dot3StatsTable/dot3StatsTable_data_access etherlike-mib/dot3StatsTable/dot3StatsTable_interface host/data_access/swinst host/data_access/swrun host/hrSWRunPerfTable util_funcs if-mib/data_access/interface ip-mib/ipAddressTable/ipAddressTable_interface ip-mib/ipAddressTable/ipAddressTable_data_access ip-mib/data_access/defaultrouter_common ip-mib/data_access/defaultrouter_linux ip-mib/data_access/systemstats_common ip-mib/data_access/systemstats_linux ip-mib/ipIfStatsTable/ipIfStatsTable_data_get if-mib/ifTable/ifTable_interface if-mib/ifTable/ifTable_data_access if-mib/ifTable/ifTable ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_interface ip-mib/ipv4InterfaceTable/ipv4InterfaceTable_data_access ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_interface ip-mib/ipv6InterfaceTable/ipv6InterfaceTable_data_access ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_interface ip-mib/ipv6ScopeZoneIndexTable/ipv6ScopeZoneIndexTable_data_access rmon-mib/etherStatsTable/etherStatsTable rmon-mib/etherStatsTable/etherStatsTable_data_get rmon-mib/etherStatsTable/etherStatsTable_data_set rmon-mib/etherStatsTable/etherStatsTable_data_access rmon-mib/etherStatsTable/etherStatsTable_interface sctp-mib/sctpScalars_common sctp-mib/sctpScalars_linux sctp-mib/sctpTables_common sctp-mib/sctpAssocRemAddrTable sctp-mib/sctpAssocLocalAddrTable sctp-mib/sctpLookupLocalPortTable sctp-mib/sctpLookupRemPortTable sctp-mib/sctpLookupRemHostNameTable sctp-mib/sctpLookupRemPrimIPAddrTable sctp-mib/sctpLookupRemIPAddrTable sctp-mib/sctpAssocTable sctp-mib/sctpTables_linux util_funcs/get_pid_from_inode tcp-mib/tcpConnectionTable/tcpConnectionTable tcp-mib/tcpListenerTable/tcpListenerTable hardware/sensors/hw_sensors hardware/sensors/lmsensors_v3 udp-mib/udpEndpointTable/udpEndpointTable etherlike-mib/data_access/dot3stats_linux hardware/memory/hw_mem hardware/memory/memory_linux hardware/fsys/hw_fsys hardware/fsys/fsys_mntent host/data_access/swinst_rpm host/data_access/swrun_procfs_status hardware/cpu/cpu hardware/cpu/cpu_linux util_funcs/header_generic if-mib/data_access/interface_linux if-mib/data_access/interface_ioctl ip-mib/data_access/ipaddress_common ip-mib/data_access/ipaddress_linux ip-mib/data_access/ipv6scopezone_common ip-mib/data_access/ipv6scopezone_linux rmon-mib/data_access/etherstats_linux tcp-mib/data_access/tcpConn_common tcp-mib/data_access/tcpConn_linux tcp-mib/tcpConnectionTable/tcpConnectionTable_interface tcp-mib/tcpConnectionTable/tcpConnectionTable_data_access tcp-mib/tcpListenerTable/tcpListenerTable_interface tcp-mib/tcpListenerTable/tcpListenerTable_data_access udp-mib/udpEndpointTable/udpEndpointTable_interface udp-mib/udpEndpointTable/udpEndpointTable_data_access ip-mib/data_access/ipaddress_ioctl udp-mib/data_access/udp_endpoint_common udp-mib/data_access/udp_endpoint_linux
;;
--default-mibs|--mibs|--MIBS)
echo :EtherLike-MIB:HOST-RESOURCES-MIB:HOST-RESOURCES-TYPES:MTA-MIB:NETWORK-SERVICES-MIB:RMON-MIB:SCTP-MIB:TCP-MIB:UCD-DISKIO-MIB:LM-SENSORS-MIB:UDP-MIB
;;
--default-mibdirs|--mibdirs|--MIBDIRS)
echo $HOME/.snmp/mibs:/opt/alt/net-snmp11/usr/share/snmp/mibs
;;
--env-separator)
echo ":"
;;
--exeext)
echo ""
;;
--snmpconfpath|--SNMPCONFPATH)
echo "/etc/snmp:/opt/alt/net-snmp11/usr/share/snmp:/opt/alt/net-snmp11/usr/lib64/snmp:$HOME/.snmp:/var/lib/net-snmp"
;;
--persistent-directory|--persistent-dir)
echo /var/lib/net-snmp
;;
--perlprog|--perl)
echo /usr/bin/perl
;;
#################################################### compile
--base-cflags)
echo -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -Ulinux -Dlinux=linux -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -I${NSC_INCLUDEDIR}
;;
--cflags|--cf*)
echo -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -Ulinux -Dlinux=linux -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -I. -I${NSC_INCLUDEDIR}
;;
--srcdir)
echo $NSC_SRCDIR
;;
#################################################### linking
--libdir|--lib-dir)
echo $NSC_LIBDIR
;;
--ldflags|--ld*)
echo $NSC_LDFLAGS
;;
--build-lib-dirs)
shift
build_dir=$1
check_build_dir $build_dir
for dir in $NSC_SRC_LIBDIRS; do
result="$result -L$build_dir/$dir"
done
echo $result
;;
--build-lib-deps)
shift
build_dir=$1
check_build_dir $build_dir
for dir in $NSC_SRC_LIBDEPS; do
result="$result $build_dir/$dir"
done
echo $result
;;
--build-includes)
shift
build_dir=$1
check_build_dir $build_dir
result="-I$build_dir/include"
if test "$build_dir" != "$NSC_SRCDIR" -a "$NSC_SRCDIR" != "NET-SNMP-SOURCE-DIR"
then
result="$result -I$NSC_SRCDIR/include"
fi
echo $result
;;
--build-command)
echo "gcc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -Ulinux -Dlinux=linux -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include"
;;
#################################################### client lib
--libs)
# use this one == --netsnmp-libs + --external-libs
echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
;;
--netsnmp-libs)
echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS
;;
--external-libs)
echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS
;;
#################################################### agent lib
--base-agent-libs)
echo $NSC_BASE_AGENT_LIBS
;;
--base-subagent-libs)
echo $NSC_BASE_SUBAGENT_LIBS
;;
--agent-libs)
# use this one == --netsnmp-agent-libs + --external-libs
echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
;;
--netsnmp-agent-libs)
echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS
;;
--external-agent-libs)
echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
;;
####################################################
--version|--ver*)
echo 5.8
;;
--help)
usage="yes"
;;
--prefix|--pre*)
echo $NSC_PREFIX
;;
--exec-prefix)
echo $NSC_EXEC_PREFIX
;;
####################################################
--create-snmpv3-user)
done=1
shift
net-snmp-create-v3-user $*
exit $?
;;
####################################################
--compile-subagent)
shift
shifted=1
while test "x$done" = "x" -a "x$1" != "x" ; do
case $1 in
--norm)
norm=1
shift
;;
--cflags)
shift
if test "x$1" = "x" ; then
echo "You must specify the extra cflags"
exit 1
fi
cflags="$1"
echo "setting extra cflags: $cflags"
shift
;;
--ldflags)
shift
if test "x$1" = "x" ; then
echo "You must specify the extra ldflags"
exit 1
fi
ldflags="$1"
echo "setting extra ldflags: $ldflags"
shift
;;
--*)
echo "unknown suboption to --compile-subagent: $1"
exit 1
;;
*)
if test "x$outname" = "x"; then
outname=$1
shift
else
done=1
fi
;;
esac
done
tmpfile=netsnmptmp.$$.c
if test -f $tmpfile; then
echo "Ack. Can't create $tmpfile: already exists"
exit 1
fi
echo "generating the temporary code file: $tmpfile"
rm -f $tmpfile
cat > $tmpfile <<EOF
/* generated from net-snmp-config */
#include <net-snmp/net-snmp-config.h>
#ifdef HAVE_SIGNAL
#include <signal.h>
#endif /* HAVE_SIGNAL */
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif /* HAVE_SYS_STAT_H */
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#endif /* HAVE_FCNTL_H */
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
EOF
# If we were only given a single filename
# (and no explicit output name)
# then use that as the base of the output name
#
# If we weren't even given that, then bomb out
if test "x$1" = "x"; then
if test "x$outname" = "x"; then
echo "No MIB module codefile specified"
rm -f $tmpfile
exit 1
else
cfiles=$outname
outname=`basename $cfiles | sed 's/\.[co]$//'`
if test -f $outname.h; then
if grep "init_$outname" $outname.h; then
echo " #include \"$outname.h\"" >> $tmpfile
fi
fi
fi
fi
# add include files
while test "$1" != ""; do
cfiles="$cfiles $1"
name=`basename $1 | sed 's/\.[co]$//'`
if test -f $name.h; then
if grep "init_$name" $name.h; then
echo " #include \"$name.h\"" >> $tmpfile
fi
fi
shift
done
cat >> $tmpfile <<EOF
const char *app_name = "$outname";
static int reconfig = 0;
extern int netsnmp_running;
RETSIGTYPE
stop_server(int a) {
netsnmp_running = 0;
}
#ifdef SIGHUP
RETSIGTYPE
hup_handler(int sig)
{
reconfig = 1;
signal(SIGHUP, hup_handler);
}
#endif
static void
usage(const char *prog)
{
fprintf(stderr,
"USAGE: %s [OPTIONS]\n"
"\n"
"OPTIONS:\n", prog);
fprintf(stderr,
" -c FILE[,...]\t\tread FILE(s) as configuration file(s)\n"
" -C\t\t\tdo not read the default configuration files\n"
" -d\t\t\tdump all traffic\n"
" -D TOKEN[,...]\tturn on debugging output for the specified "
"TOKENs\n"
"\t\t\t (ALL gives extremely verbose debugging output)\n"
" -f\t\t\tDo not fork() from the calling shell.\n"
" -h\t\t\tdisplay this help message\n"
" -H\t\t\tdisplay a list of configuration file directives\n"
" -L LOGOPTS\t\tToggle various defaults controlling logging:\n");
snmp_log_options_usage("\t\t\t ", stderr);
#ifndef DISABLE_MIB_LOADING
fprintf(stderr,
" -m MIB[" ENV_SEPARATOR "...]\t\tload given list of MIBs (ALL loads "
"everything)\n"
" -M DIR[" ENV_SEPARATOR "...]\t\tlook in given list of directories for MIBs\n");
#endif /* DISABLE_MIB_LOADING */
fprintf(stderr,
" -p FILE\t\tstore process id in FILE\n");
#ifndef DISABLE_MIB_LOADING
fprintf(stderr,
" -P MIBOPTS\t\tToggle various defaults controlling mib "
"parsing:\n");
snmp_mib_toggle_options_usage("\t\t\t ", stderr);
#endif /* DISABLE_MIB_LOADING */
fprintf(stderr,
" -v\t\t\tdisplay package version number\n"
" -x TRANSPORT\tconnect to master agent using TRANSPORT\n");
exit(1);
}
static void
version(void)
{
fprintf(stderr, "NET-SNMP version: %s\n", netsnmp_get_version());
exit(0);
}
int
main (int argc, char **argv)
{
int arg;
char* cp = NULL;
int dont_fork = 0, do_help = 0;
char* pid_file = NULL;
while ((arg = getopt(argc, argv, "c:CdD:fhHL:"
#ifndef DISABLE_MIB_LOADING
"m:M:"
#endif /* DISABLE_MIB_LOADING */
"n:p:"
#ifndef DISABLE_MIB_LOADING
"P:"
#endif /* DISABLE_MIB_LOADING */
"vx:")) != EOF) {
switch (arg) {
case 'c':
if (optarg != NULL) {
netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
NETSNMP_DS_LIB_OPTIONALCONFIG, optarg);
} else {
usage(argv[0]);
}
break;
case 'C':
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
NETSNMP_DS_LIB_DONT_READ_CONFIGS, 1);
break;
case 'd':
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID,
NETSNMP_DS_LIB_DUMP_PACKET, 1);
break;
case 'D':
debug_register_tokens(optarg);
snmp_set_do_debugging(1);
break;
case 'f':
dont_fork = 1;
break;
case 'h':
usage(argv[0]);
break;
case 'H':
do_help = 1;
break;
case 'L':
if (snmp_log_options(optarg, argc, argv) < 0) {
exit(1);
}
break;
#ifndef DISABLE_MIB_LOADING
case 'm':
if (optarg != NULL) {
setenv("MIBS", optarg, 1);
} else {
usage(argv[0]);
}
break;
case 'M':
if (optarg != NULL) {
setenv("MIBDIRS", optarg, 1);
} else {
usage(argv[0]);
}
break;
#endif /* DISABLE_MIB_LOADING */
case 'n':
if (optarg != NULL) {
app_name = optarg;
netsnmp_ds_set_string(NETSNMP_DS_LIBRARY_ID,
NETSNMP_DS_LIB_APPTYPE, app_name);
} else {
usage(argv[0]);
}
break;
case 'p':
if (optarg != NULL) {
pid_file = optarg;
} else {
usage(argv[0]);
}
break;
#ifndef DISABLE_MIB_LOADING
case 'P':
cp = snmp_mib_toggle_options(optarg);
if (cp != NULL) {
fprintf(stderr, "Unknown parser option to -P: %c.\n", *cp);
usage(argv[0]);
}
break;
#endif /* DISABLE_MIB_LOADING */
case 'v':
version();
break;
case 'x':
if (optarg != NULL) {
netsnmp_ds_set_string(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_X_SOCKET, optarg);
} else {
usage(argv[0]);
}
break;
default:
fprintf(stderr, "invalid option: -%c\n", arg);
usage(argv[0]);
break;
}
}
if (do_help) {
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_NO_ROOT_ACCESS, 1);
} else {
/* we are a subagent */
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_ROLE, 1);
if (!dont_fork) {
if (netsnmp_daemonize(1, snmp_stderrlog_status()) != 0)
exit(1);
}
#if HAVE_GETPID
if (pid_file != NULL) {
/*
* unlink the pid_file, if it exists, prior to open. Without
* doing this the open will fail if the user specified pid_file
* already exists.
*/
int fd;
unlink(pid_file);
fd = open(pid_file, O_CREAT | O_EXCL | O_WRONLY, 0600);
if (fd == -1) {
snmp_log_perror(pid_file);
if (!netsnmp_ds_get_boolean(NETSNMP_DS_APPLICATION_ID,
NETSNMP_DS_AGENT_NO_ROOT_ACCESS)) {
exit(1);
}
} else {
char buf[3 + sizeof(long) * 3];
int len = snprintf(buf, sizeof(buf), "%ld\n", (long int)getpid());
write(fd, buf, len);
close(fd);
}
}
#endif
/* initialize tcpip, if necessary */
SOCK_STARTUP;
}
/* initialize the agent library */
init_agent(app_name);
/* initialize your mib code here */
EOF
# add init routines
for i in $cfiles ; do
name=`basename $i | sed 's/\.[co]$//'`
echo checking for init_$name in $i
if grep "init_$name" $i ; then
echo " init_${name}();" >> $tmpfile
fi
done
# handle the main loop
cat >> $tmpfile <<EOF
/* $outname will be used to read $outname.conf files. */
init_snmp("$outname");
if (do_help) {
fprintf(stderr, "Configuration directives understood:\n");
read_config_print_usage(" ");
exit(0);
}
/* In case we received a request to stop (kill -TERM or kill -INT) */
netsnmp_running = 1;
#ifdef SIGTERM
signal(SIGTERM, stop_server);
#endif
#ifdef SIGINT
signal(SIGINT, stop_server);
#endif
#ifdef SIGHUP
signal(SIGHUP, hup_handler);
#endif
/* main loop here... */
while(netsnmp_running) {
if (reconfig) {
free_config();
read_configs();
reconfig = 0;
}
agent_check_and_process(1);
}
/* at shutdown time */
snmp_shutdown(app_name);
/* deinitialize your mib code here */
EOF
# add shutdown routines
i=`count $cfiles`
while [ $i -gt 0 ] ; do
fullname=`index $i $cfiles`
name=`basename $fullname | sed 's/\.[co]$//'`
echo checking for shutdown_$name in $fullname
if grep "shutdown_$name" $fullname ; then
echo " shutdown_${name}();" >> $tmpfile
fi
i=`expr $i - 1`
done
# finish file
cat >> $tmpfile <<EOF
/* shutdown the agent library */
shutdown_agent();
if (pid_file != NULL) {
unlink(pid_file);
}
SOCK_CLEANUP;
exit(0);
}
EOF
if test "$?" != 0 -o ! -f "$tmpfile" ; then
echo "Ack. Can't create $tmpfile."
exit 1
fi
cmd="gcc $cflags -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/opt/alt/openssl11/include -Ulinux -Dlinux=linux -I. -I${NSC_INCLUDEDIR} -o $outname $tmpfile $cfiles $NSC_LDFLAGS $NSC_LIBDIR $NSC_BASE_AGENT_LIBS $NSC_AGENTLIBS $ldflags"
echo "running: $cmd"
`$cmd`
result=$?
if test "x$norm" != "x1" ; then
echo "removing the temporary code file: $tmpfile"
rm -f $tmpfile
else
echo "leaving the temporary code file: $tmpfile"
fi
if test "$result" = "0" -a -f "$outname" ; then
echo "subagent program $outname created"
fi
exit $result
;;
*)
echo "unknown option $1"
usage="yes"
;;
esac
if [ "x$shifted" = "x" ] ; then
shift
fi
done
fi
if test "x$usage" = "xyes"; then
echo ""
echo "Usage:"
echo " net-snmp-config [--cflags] [--agent-libs] [--libs] [--version]"
echo " ... [see below for complete flag list]"
echo ""
echo " --version displays the net-snmp version number"
echo " --indent-options displays the indent options from the Coding Style"
echo " --debug-tokens displays a example command line to search to source"
echo " code for a list of available debug tokens"
echo ""
echo " SNMP Setup commands:"
echo ""
echo " --create-snmpv3-user creates a SNMPv3 user in Net-SNMP config file."
echo " See net-snmp-create-v3-user --help for list of"
echo " accepted options."
echo ""
echo " These options produce the various compilation flags needed when"
echo " building external SNMP applications:"
echo ""
echo " --base-cflags lists additional compilation flags needed"
echo " --cflags lists additional compilation flags needed"
echo " (includes -I. and extra developer warning flags)"
echo ""
echo " These options produce the various link flags needed when"
echo " building external SNMP applications:"
echo ""
echo " --libs lists libraries needed for building applications"
echo " --agent-libs lists libraries needed for building subagents"
echo ""
echo " These options produce various link flags broken down into parts."
echo " (Most of the time the simple options above should be used.)"
echo ""
echo " --libdir path to netsnmp libraries"
echo ""
echo " --base-agent-libs netsnmp specific agent libraries"
echo ""
echo " --netsnmp-libs netsnmp specific libraries (with path)"
echo " --netsnmp-agent-libs netsnmp specific agent libraries (with path)"
echo ""
echo " --ldflags link flags for external libraries"
echo " --external-libs external libraries needed by netsnmp libs"
echo " --external-agent-libs external libraries needed by netsnmp agent libs"
echo ""
echo " These options produce various link flags used when linking an"
echo " external application against an uninstalled build directory."
echo ""
echo " --build-includes include path to build/source includes"
echo " --build-lib-dirs link path to libraries"
echo " --build-lib-deps path to libraries for dependency target"
echo " --build-command command to compile \$3... to \$2"
echo ""
echo " Automated subagent building (produces an OUTPUTNAME binary file):"
echo " [this feature has not been tested very well yet. use at your risk.]"
echo ""
echo " --compile-subagent OUTPUTNAME [--norm] [--cflags flags]"
echo " [--ldflags flags] mibmodule1.c [...]]"
echo ""
echo " --norm leave the generated .c file around to read."
echo " --cflags flags extra cflags to use (e.g. -I...)."
echo " --ldflags flags extra ld flags to use (e.g. -L... -l...)."
echo ""
echo " Details on how the net-snmp package was compiled:"
echo ""
echo " --configure-options display original configure arguments"
echo " --prefix display the installation prefix"
echo " --snmpd-module-list display the modules compiled into the agent"
echo " --default-mibs display default list of MIBs"
echo " --default-mibdirs display default list of MIB directories"
echo " --snmpconfpath display default SNMPCONFPATH"
echo " --persistent-directory display default persistent directory"
echo " --perlprog display path to perl for the perl modules"
echo ""
exit
fi