# -*- autoconf -*- # # generate empty files # # Create include file list for snmp_vars.h to use. mibdir="agent/mibgroup" if test ! -d agent; then mkdir agent fi if test ! -d agent/mibgroup; then mkdir agent/mibgroup fi j="$mibdir/mib_module_includes.h $mibdir/agent_module_includes.h \ $mibdir/mib_module_inits.h $mibdir/agent_module_inits.h \ $mibdir/mib_module_shutdown.h $mibdir/agent_module_shutdown.h \ include/net-snmp/agent/mib_module_config.h \ include/net-snmp/agent/agent_module_config.h \ $mibdir/mib_module_dot_conf.h $mibdir/agent_module_dot_conf.h" for i in $j; do rm -f $i echo "/* This file is automatically generated by configure. Do not modify by hand. */" > $i done # # Do hairy agent module processing. # AC_MSG_CHECKING([for and configuring mib modules to use]) # set up the CPP command MODULECPP="$CPP $PARTIALTARGETFLAGS $CPPFLAGS -DNETSNMP_FEATURE_CHECKING -I${srcdir}/include -I${srcdir}/agent/mibgroup" if test "x$enable_mfd_rewrites" = "xyes"; then MODULECPP="$MODULECPP -DNETSNMP_ENABLE_MFD_REWRITES" fi module_list="" mib_module_list="" agent_module_list="" new_with_mib_modules=`echo $with_mib_modules | $SED 's/,/ /g;'` new_with_out_mib_modules=`echo $with_out_mib_modules | $SED 's/,/ /g;'` # set up initial module list new_module_list="$new_with_mib_modules" if test "x$enable_agent" != "xno" ; then # If the agent should be built then use default_modules new_module_list="$new_module_list default_modules" if test "x$mini_agent" = "xyes"; then # define the mini agent flag to reduce our load list from default_mibs.h MODULECPP="$MODULECPP -DNETSNMP_MINI_AGENT" fi elif test "x$enable_applications" != "xno" ; then # otherwise, if snmptrapd should be built then add SNMPv3 and # snmptrapd-specific parts new_module_list="$new_module_list mibII/vacm_conf utilities/execute" default_mibs=SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB default_mibs_install=" " fi test_modules="$new_module_list" new_module_list="" # remove modules that were explicitly excluded for i in $test_modules do if echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then mib_cfg_msg="mib module '$i' is both included and excluded." AC_MSG_WARN([mib module conflict]) if test "x$with_mib_cfg_checks" = "xyes"; then AC_MSG_WARN([user with : $with_mib_modules]) AC_MSG_WARN([final with : $new_module_list]) AC_MSG_WARN([user without : $with_out_mib_modules]) AC_MSG_WARN([final without: $new_with_out_mib_modules]) AC_MSG_ERROR([$mib_cfg_msg]) else AC_MSG_WARN([$mib_cfg_msg It will be excluded]) AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg It has been excluded.]) fi else new_module_list="$new_module_list $i" fi done new_module_list=`(echo $new_module_list | tr ' ' '\n' | sort | tr '\n' ' '; echo '') | $SED 's/ $//'` AC_MSG_RESULT([$new_module_list.]) #--------------------- # loop over module list # all_warnings="" if test "x$with_mib_cfg_debug" = "xyes"; then module_debug=1 else module_debug=0 fi first_pass=1 output_to=normal if test ! -d mk ; then mkdir mk fi module_rules=mk/module_rules.mk echo "# contents below built automatically by configure; do not edit by hand" > $module_rules # # make file sub-pieces # for i in module_list_deps mib_module_list_deps agent_module_list_deps ; do eval "$i=mk/${i}.mk" echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk done # # variable settings sub-pieces # for i in module_list_code mib_module_list_code agent_module_list_code module_list mib_module_list agent_module_list ; do eval "$i=mk/${i}.mk" echo "# contents below built automatically by configure; do not edit by hand" > mk/${i}.mk echo "$i= \\" >> mk/${i}.mk done echo $ECHO_N "echo " $ECHO_C > mk/MODULE_LIST.mk MODULE_LIST=mk/MODULE_LIST.mk #--------------------- # until we have an empty module list... # (modules may add new modules, and until all dependencies are done...) # while test "x$new_module_list" != "x"; do AC_MSG_MODULE_DBG(-e,"\n****************************************************************") AC_MSG_MODULE_DBG("nml: $new_module_list") #--------------------- # loop over all the modules in the current list # for j in $new_module_list do #--------------------- # figure out which sub-blocks to build in parts if echo "$j" | $GREP "=" ; then # build a shared object file # format: sofilename=module1:module2 # XXX: currently doesn't do this dl_name=`echo $j | $SED 's/=.*//'` dl_names="$dl_names $dl_name" dl_objects=`echo $j | $SED 's/.*=//'` module_sublist=`echo $dl_objects | $SED 's/:/ /g'` saved_sublist="" saved_sublist_code="" output_to=separate # create output files # these actually get nuked later output_inits="agent/mibgroup/${dl_name}-dll.c" output_hdrs="agent/mibgroup/${dl_name}-hdrs.h" else # not a special token invocation module_sublist=$j output_to=normal output_t= fi while test "x$module_sublist" != "x" ; do #--------------------- # loop over all the modules in the sub list for i in $module_sublist do AC_MSG_MODULE_DBG(-e "\n================================================================") AC_MSG_MODULE_DBG("testing $i") need_header=0 #--------------------- # 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 #include "$srcdir/$mibdir/$i.h"]])]) mv conftest.$ac_ext module_tmp_header.h #--------------------- # macro: config_belongs_in(ARG) # ARG: either # - mib_module => libnetsnmpmibs (default) # - agent_module => libnetsnmpagent # AH_TOP([#define config_belongs_in(x)]) module_type=mib_module if test -f $srcdir/$mibdir/$i.h; then changequote(, ) module_type=`$MODULECPP module_tmp_header.h | \ $SED -n 's@.*config_belongs_in(\([^)]*\)).*@\1@p'` changequote([, ]) fi if test "x$module_type" = "x" ; then module_type=mib_module fi if test "x$output_to" = "xnormal" ; then output_inits="$mibdir/${module_type}_inits.h" output_hdrs="$mibdir/${module_type}_includes.h" fi #-------------------- # check for duplicates within the dll system. # - if found in a dll, then remove from the dll and add to main dblfix="" for dltest in $dl_names ; do eval mod_files="\"\$dl_${dltest}_files\"" if echo " $mod_files " | $GREP " $i " > /dev/null; then # some dll module has already seen this, unload it from that list # and include it in the core (again) AC_MSG_MODULE_DBG("removing $i from $dltest") mod_files=`echo " $mod_files " | $SED "s@ $i @@"` dblfix="__XXX__" eval "dl_${dltest}_files=\"$mod_files\"" module_list="$module_list $i" echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps if test $module_type = "agent_module" ; then echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps else echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps fi eval ${module_type}_list="\"\$${module_type}_list $i\"" echo " $i \\" >> $module_list_code echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST eval tmpfilevar=\$`echo ${module_type}_list_code` echo " $i \\" >> $tmpfilevar # XXX: add this to the main init list; this is possible not # quite in the right spot any longer but we're stuck with it. # Adding it back to the original ordered spot would be a # nightmare. Ok, we're already in nightmare code so that # wolud have to be a night-terror. mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'` output_inits_tmp="$mibdir/${module_type}_inits.h" echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits_tmp # XXX: even worse, we loose whether the header is needed or not. output_hdrs_tmp="$mibdir/${module_type}_includes.h" echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs_tmp fi done #--------------------- # make sure module wasn't explicitly excluded, or already added # if test "x$dblfix" != "x" ; then AC_MSG_MODULE_DBG("$i was duplicated -- putting into main") elif echo " $new_with_out_mib_modules " | $GREP " $i " > /dev/null; then AC_MSG_MODULE_DBG("$i was excluded") elif echo " $module_list " | $GREP " $i " > /dev/null; then AC_MSG_MODULE_DBG("$i already tested") else #--------------------- # process modules header, checking for config_ pseudo-macros # #--------------------- # does the header file for the module exist? # macros are only processed if it does if test -f $srcdir/$mibdir/$i.h; then new_list="" #--------------------- # macro: config_exclude(modules) # - lists conflicts with other modules # - EG: new MIB implementations exclude old and vice-versa # # check if $i has any conflicts # AH_TOP([#define config_exclude(x)]) new_list_excl=`$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_exclude(\(.*\)).*/\1/p'` if test "x$new_list_excl" != "x"; then AC_MSG_MODULE_DBG("$i excludes $new_list_excl") for j in $new_list_excl do if echo " $module_list $new_mib_module_list $new_list_two " | $GREP " $j " > /dev/null; then mib_cfg_msg="mib module '$i' excludes module '$j' but another module requires it" AC_MSG_WARN([mib module error]) if test "x$with_mib_cfg_checks" = "xyes"; then AC_MSG_ERROR([$mib_cfg_msg]) else AC_MSG_WARN([$mib_cfg_msg]) AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg]) fi else new_with_out_mib_modules="$j $new_with_out_mib_modules" AC_MSG_MODULE_DBG("$j added to excluded list") fi done fi #--------------------- # macro: config_arch_require(ARCH,modules) # - lists modules required for a given ARCH # # check if $i has any architecture specific requirements # AH_TOP([#define config_arch_require(x,y)]) changequote(, ) new_list_arch=`$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_arch_require( *\([^ ]*\) *, *\([^ ]*\) *).*/\1-xarchx-\2/p'` changequote([, ]) if test "x$new_list_arch" != "x"; then for j in $new_list_arch do archtest=`echo $j | $SED 's/-xarchx-.*//'` # target_os may have been changed to a #define of 1... if test "x$archtest" = "x1" -o "x$target_os" = "x$archtest" -o "x$PARTIALTARGETOS" = "x$archtest"; then new_list="$new_list `echo $j | $SED 's/.*-xarchx-//'`" AC_MSG_MODULE_DBG(" $i required adding arch files: `echo $j | $SED 's/.*-xarchx-//'`") fi done fi AC_MSG_MODULE_DBG(" $i required arch files: $new_list") #--------------------- # macro: config_version_require((base, version, version-modules, ...)) # - lists alternative modules used from different versions. # AH_TOP([#define config_version_require(x)]) [new_list_alt3=`$MODULECPP module_tmp_header.h | \ $AWK ' BEGIN { if("'"$enable_new_features"'" == "yes") method="max"; else if("'"$enable_old_features"'" == "yes") method="max-less"; else method="max-less-equal"; FS = "."; split("'"$with_features_of"'", a); version=sprintf("%03d%03d%03d%03d", a[1], a[2], a[3], a[4]); } /config_version_require/ { gsub("^.*config_version_require *\\\\(\\\\(", ""); gsub("\\\\)\\\\).*$", ""); gsub(", *", ","); FS = ","; n = split($0, a); FS = "."; actver = "000000000000"; actstr = a[1]; for(i = 2; i < n; i += 2) { split(a[i], b); curver=sprintf("%03d%03d%03d%03d", b[1], b[2], b[3], b[4]); if (curver > actver && (method != "max-less" || curver < version) && (method != "max-less-equal" || curver <= version)) { actver = curver; actstr = a[i + 1]; } } printf(" %s", actstr); }'`] AC_MSG_MODULE_DBG(" $i required versioned features: $new_list_alt3") new_list="${new_list}${new_list_alt3}" #--------------------- # macro: config_require(modules) # - lists modules required for this module # # check if $i has any other required modules # AH_TOP([#define config_require(x)]) new_list="$new_list `$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_require(\(.*\)).*/\1/p'`" AC_MSG_MODULE_DBG(" $i will test: $new_list") if test "x$new_list" != "x"; then for j in $new_list do AC_MSG_MODULE_DBG(-n " $i wants to add $j: ") if test ! -f $srcdir/$mibdir/$j.h -a ! -f $srcdir/$mibdir/$j.c; then AC_MSG_WARN([mib module error]) AC_MSG_ERROR([mib module "$i" requires module "$j" but $j.h or $j.c could not be found in $srcdir/$mibdir]) elif echo " $new_with_out_mib_modules " | $GREP " $j " > /dev/null; then if test "x$i" != "xdefault_modules" ; then mib_cfg_msg="mib module '$i' requires module '$j' but someone told me to compile without it" AC_MSG_WARN([mib module error]) if test "x$with_mib_cfg_checks" = "xyes"; then AC_MSG_ERROR([$mib_cfg_msg]) else AC_MSG_WARN([$mib_cfg_msg]) AC_MSG_CACHE_ADD([*** MIB Module warning *** $mib_cfg_msg]) fi # elif echo " $module_list $new_list_two $new_module_list " | $GREP " $j " > /dev/null; then # AC_MSG_MODULE_DBG(" $j included previously") fi else new_list_two="$new_list_two $j" AC_MSG_MODULE_DBG(" $j included") fi done fi #--------------------- # macro: config_add_mib(SOME-MIB) # - lists MIBs to be added to the default to-load list. # # check if $i has any mibs to add # AH_TOP([#define config_add_mib(x)]) new_mibs=`$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_add_mib(\(.*\)).*/\1/p'` if test "x$new_mibs" != "x"; then for j in $new_mibs do if test "x`echo :$default_mibs: | $GREP :$j:`" = "x"; then default_mibs="$default_mibs:$j" fi if test -f $srcdir/mibs/$j.txt; then if echo $default_mibs_install | $GREP " $j " > /dev/null; then : else default_mibs_install="$default_mibs_install $j.txt" fi fi done fi # new mibs #------------------- # add the current module to the list of stuff to compile, etc. # # add $i to module list # AC_MSG_MODULE_DBG(" $i added (based on $i.h)") module_list="$module_list $i" eval ${module_type}_list="\"\$${module_type}_list $i\"" echo "read_config.lo: mibgroup/$i.h" >> $module_list_deps if test $module_type = "agent_module" ; then echo "snmp_vars.lo: mibgroup/$i.h" >> $agent_module_list_deps else echo "mib_modules.lo: mibgroup/$i.h" >> $mib_module_list_deps fi #------------------- # check for unsupported config_load_mib # if $MODULECPP module_tmp_header.h | $GREP -q config_load_mib; then AC_MSG_WARN([mib module error]) AC_MSG_WARN([mib module "$i" uses the "config_load_mib" directive, which is no longer supported. It probably won't work.]) fi # grep config_load_mib #------------------- # check for config_parse_dot_conf # (generally not used any longer; old auto-load a .conf token) # AH_TOP([#define config_parse_dot_conf(w,x,y,z)]) changequote(, ) $MODULECPP module_tmp_header.h | \ $SED -n 's@.*config_parse_dot_conf(\([^)]*\), *\([^),]*\), *\([^),]*\), *\([^),]*\)).*@register_config_handler("snmpd",\1, \2, \3, \4);@p' >> $mibdir/mib_module_dot_conf.h changequote([, ]) #--------------------- # macro: config_error(error text) # - used to signal a configuration error from a module # # check if $i has any errors, or warnings # AH_TOP([#define config_error(x)]) error=`$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_error(\(.*\)).*/\1/p'` if test "x$error" != "x"; then echo echo AC_MSG_ERROR([$i: *** $error ***]) fi #--------------------- # macro: config_warning(warning text) # - used to signal a configuration "warning" to be printed to the user # AH_TOP([#define config_warning(x)]) warning=`$MODULECPP module_tmp_header.h | \ $SED -n 's/.*config_warning(\(.*\)).*/\1/p'` if test "x$warning" != "x"; then all_warnings="$all_warnings $warning " fi #--------------------- # Check for a .c file if the .h didn't exist # elif test -f $srcdir/$mibdir/$i.c; then if echo " $module_list $new_list_two $new_module_list " | $GREP " $i " > /dev/null; then AC_MSG_MODULE_DBG(" $i already included") else AC_MSG_MODULE_DBG(" $i added (based on $i.c)") module_list="$module_list $i" mib_module_list="$mib_module_list $i" fi #--------------------- # No .h or .c = error! (typo?) # else # no $i.h or $i.c AC_MSG_WARN([mib module error]) AC_MSG_ERROR([module files $i.h or $i.c could not be found in $srcdir/$mibdir]) fi # no $i.h #------------------- # check for init/shutdown routines too # has_c_code=no if test -f $srcdir/$mibdir/$i.c; then if test "x$output_to" = "xnormal" ; then echo " $i \\" >> $module_list_code echo $ECHO_N " $i" $ECHO_C >> $MODULE_LIST eval tmpfilevar=\$`echo ${module_type}_list_code` echo " $i \\" >> $tmpfilevar else eval "dl_${dl_name}_files=\"\$dl_${dl_name}_files $i\"" saved_sublist_code="$saved_sublist_code $i" fi mnm=`echo $i | $SED 's/.*\///;s/\.c$//;'` AC_MSG_MODULE_DBG(-e "\nchecking '$srcdir/$mibdir/$i.c' ($mnm/`basename $i`) C file for init/shutdown") if test "x$mnm" != "x`basename $i`"; then AC_MSG_WARN([mib module error]) AC_MSG_ERROR([conflicting names: $mnm != `basename $i`]) fi temp_init=`$GREP init_$mnm $srcdir/$mibdir/$i.c | $GREP -v _init_$mnm` if test "x$temp_init" != "x"; then AC_MSG_MODULE_DBG(-e "adding init_$mnm() to list") need_header=1 echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits fi $GREP shutdown_$mnm $srcdir/$mibdir/$i.c > /dev/null if test $? -eq 0 ; then if test $module_debug -eq 1; then echo -e "\nadding shutdown_$mnm() to list" fi need_header=1 echo " if (should_init(\"$mnm\")) shutdown_$mnm();" >> $mibdir/${module_type}_shutdown.h fi fi # test -f $srcdir/$mibdir/$i.c #------------------- # if there is a shutdown/init list, # if test $need_header -eq 1 ; then echo '#include "'"mibgroup/$i.h"'"' >> $output_hdrs else echo '/*#include "'"mibgroup/$i.h"'"*/' >> $output_hdrs fi #------------------- # check for output directory (for building outside of source tree # changequote(, ) if test "x`echo $i | $SED 's/\///g;'`" != "x$i"; then mnd=`echo $i | $SED 's/\/[^/]*$//;'` if test ! -d ./$mibdir/$mnd; then module_directories="$module_directories ./$mibdir/$mnd" fi fi # module directory test changequote([, ]) #------------------- # define USING_*_MODULE # changequote(, ) sym="`echo ${i} | $SED 's/[^a-zA-Z0-9_]/_/g' | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`" changequote([, ]) echo "/* Define if compiling with the ${i} module files. */" >> include/net-snmp/agent/${module_type}_config.h echo "#define USING_${sym}_MODULE 1" >> include/net-snmp/agent/${module_type}_config.h echo " " >> include/net-snmp/agent/${module_type}_config.h #------------------- echo $ECHO_N " $i$ECHO_C" fi # done # for i in $module_sublist if test "$output_to" = "separate" ; then if test "x$new_list_two" = "x" ; then # no new sub-modules to add to the current target output_to="normal" dllcleans="$saved_sublist_o $dllcleans" output_inits="" module_sublist="" else # a module had sub-modules required; keep goin' saved_sublist="$saved_sublist $module_sublist" module_sublist="$new_list_two" new_list_two="" fi else module_sublist="" fi done # while module_sublist done # for j in $new_module_list # remember the top level modules for later reporting if test $first_pass = 1 ; then # remember this list for later reporting top_level_modules="$new_module_list => $new_list_two" first_pass=0 fi #------------------- # if $i added new modules vis config_*, # check those modules for requirements too # # transfer the new module to check list to the normal variable # if test "x$new_list_two" ; then output_to=normal fi new_module_list="$new_list_two" new_list_two="" done # while test "x$new_module_list" != "x"; do echo "" #-------------------- # construct the dll code files and make rules. This can't be done # until now because duplicate use of a module means it gets removed # from the dll and put into the main agent. # for i in $dl_names ; do eval mod_files="\"\$dl_${i}_files\"" echo "components in the $i dll: $mod_files" output_inits="agent/mibgroup/${i}-dll.c" output_hdrs="agent/mibgroup/${i}-hdrs.h" AC_MSG_MODULE_DBG("creating dll file: $output_inits") for ofile in $output_inits $output_hdrs ; do if test -f $ofile ; then if $GREP "this file created automatically by configure" $ofile > /dev/null 2>&1 ; then : else AC_MSG_ERROR([$ofile already existed ; can't build dll object $i]) fi fi cat > $ofile << EOFIF /* xDo not edit; this file created automatically by configure */ EOFIF done cat >> $output_inits << EOFOC #include #include #include #include "${i}-hdrs.h" void init_$i(void) { EOFOC # create the .so rule saved_sublist_o=`echo "$mod_files " | $SED 's/^ *//g;s/ */.o /g;'` # create the rules for each object for j in $mod_files ; do cat >> $module_rules << EOFR $j.o: $j.c \$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$< EOFR mnm=`echo $j | $SED 's/.*\///;s/\.c$//;'` echo " if (should_init(\"$mnm\")) init_$mnm();" >> $output_inits done # create the rule for the .so and wrapper code cat >> $module_rules << EOFM ${i}-dll.o: ${i}-dll.c \$(CC) -c \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ \$< ${i}.so: $saved_sublist_o ${i}-dll.o \$(CC) \$(CPPFLAGS) \$(CFLAGS) \$(DLFLAGS) -o \$@ $saved_sublist_o ${i}-dll.o EOFM cat >> $output_inits << EOFOCFIN } EOFOCFIN done # cleanup rm -f conftest.$ac_ext module_tmp_header.h #------------------- # build module lists for Makefiles # changequote(, ) for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do eval "$i=mk/${i}.mk" done $SED 's/^module_list_code/module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $module_list_code > $module_list_o $SED 's/^module_list_code/module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $module_list_code > $module_list_c $SED 's/^module_list_code/module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $module_list_code > $module_list_lo $SED 's/^module_list_code/module_list_ft/;s/\([^=]\) *\\/\1.ft \\/g' < $module_list_code > $module_list_ft $SED 's/^mib_module_list_code/mib_module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $mib_module_list_code > $mib_module_list_o $SED 's/^mib_module_list_code/mib_module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $mib_module_list_code > $mib_module_list_c $SED 's/^mib_module_list_code/mib_module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $mib_module_list_code > $mib_module_list_lo $SED 's/^mib_module_list_code/mib_module_list_ft/;s/\([^=]\) *\\/\1.ft \\/g' < $mib_module_list_code > $mib_module_list_ft $SED 's/^mib_module_list_o/mibgroup_list_o/;s@\([^ ]*\)\.o@mibgroup/\1.o@g' < $mib_module_list_o > $mibgroup_list_o $SED 's/^mib_module_list_lo/mibgroup_list_lo/;s@\([^ ]*\)\.lo@mibgroup/\1.lo@g' < $mib_module_list_lo > $mibgroup_list_lo $SED 's/^mib_module_list_ft/mibgroup_list_ft/;s@\([^ ]*\)\.ft@mibgroup/\1.ft@g' < $mib_module_list_ft > $mibgroup_list_ft $SED 's/^agent_module_list_code/agent_module_list_o/;s/\([^=]\) *\\/\1.o \\/g' < $agent_module_list_code > $agent_module_list_o $SED 's/^agent_module_list_code/agent_module_list_c/;s/\([^=]\) *\\/\1.c \\/g' < $agent_module_list_code > $agent_module_list_c $SED 's/^agent_module_list_code/agent_module_list_lo/;s/\([^=]\) *\\/\1.lo \\/g' < $agent_module_list_code > $agent_module_list_lo $SED 's/^agent_module_list_code/agent_module_list_ft/;s/\([^=]\) *\\/\1.ft \\/g' < $agent_module_list_code > $agent_module_list_ft $SED 's/^agent_module_list_o/agentgroup_list_o/;s@\([^ ]*\)\.o@mibgroup/\1.o@g' < $agent_module_list_o > $agentgroup_list_o $SED 's/^agent_module_list_lo/agentgroup_list_lo/;s@\([^ ]*\)\.lo@mibgroup/\1.lo@g' < $agent_module_list_lo > $agentgroup_list_lo $SED 's/^agent_module_list_ft/agentgroup_list_ft/;s@\([^ ]*\)\.ft@mibgroup/\1.ft@g' < $agent_module_list_ft > $agentgroup_list_ft for i in module_list_o module_list_c module_list_lo module_list_ft mib_module_list_o mib_module_list_c mib_module_list_lo mib_module_list_ft mibgroup_list_o mibgroup_list_lo mibgroup_list_ft agent_module_list_o agent_module_list_c agent_module_list_lo agent_module_list_ft agentgroup_list_o agentgroup_list_lo agentgroup_list_ft ; do # hpux make (at least) doesn't like a trailing \ on the last # line even when the next line contains nothing but # whitespace. lasttoken=`awk '{lasttoken=$1}END{print lasttoken}' mk/$i.mk` $SED "s#$lasttoken \\\\#$lasttoken#" < mk/$i.mk > mk/$i.mk.tmp mv mk/$i.mk.tmp mk/$i.mk # add a closing comment echo "" >> mk/$i.mk echo "# end configure generated code" >> mk/$i.mk done changequote([, ]) if test $module_debug -eq 1; then echo -e "\nFinal module list: $module_list_code" exit fi if test "x$with_mib_cfg_checks" = "xyes"; then AC_MSG_CACHE_ADD([Agent Module list: $module_list_code]) fi AC_SUBST_FILE(MODULE_LIST) AC_SUBST_FILE(module_list_c) AC_SUBST_FILE(module_list_o) AC_SUBST_FILE(module_list_lo) AC_SUBST_FILE(module_list_ft) AC_SUBST_FILE(mib_module_list_c) AC_SUBST_FILE(mib_module_list_o) AC_SUBST_FILE(mib_module_list_lo) AC_SUBST_FILE(mib_module_list_ft) AC_SUBST_FILE(agent_module_list_c) AC_SUBST_FILE(agent_module_list_o) AC_SUBST_FILE(agent_module_list_lo) AC_SUBST_FILE(agent_module_list_ft) AC_SUBST_FILE(mibgroup_list_o) AC_SUBST_FILE(mibgroup_list_lo) AC_SUBST_FILE(mibgroup_list_ft) AC_SUBST_FILE(agentgroup_list_o) AC_SUBST_FILE(agentgroup_list_lo) AC_SUBST_FILE(agentgroup_list_ft) AC_SUBST(default_mibs_install) AC_SUBST(dllcleans) AC_SUBST_FILE(module_rules) AC_SUBST_FILE(module_list_deps) AC_SUBST_FILE(mib_module_list_deps) AC_SUBST_FILE(agent_module_list_deps) AC_MSG_RESULT(.) if test $module_debug -eq 1; then AC_MSG_CACHE_ADD(Agent MIB code: $module_list) fi AC_MSG_CACHE_ADD(Agent MIB code: $top_level_modules) # end hairy agent module processing AC_MSG_CHECKING([if directories need to be created]) for i in $module_directories; do $srcdir/mkinstalldirs $i done AC_MSG_RESULT(.) #------------------- # Define default mibs # AC_MSG_CHECKING([default mib files to read]) if test "x$NETSNMP_DEFAULT_MIBS" = "x"; then NETSNMP_DEFAULT_MIBS="$default_mibs" fi if test "x$ENV_SEPARATOR" != "x"; then : elif test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc" -o "x$PARTIALTARGETOS" = "xcygwin"; then # mingw32 and cygwin use ';' as the default environment variable separator ENV_SEPARATOR=";" NETSNMP_DEFAULT_MIBS=`echo "$NETSNMP_DEFAULT_MIBS" | $SED 's/:/;/g'` default_mibs=`echo "$default_mibs" | $SED 's/:/;/g'` else ENV_SEPARATOR=":" fi AC_SUBST(ENV_SEPARATOR) AC_DEFINE_UNQUOTED([ENV_SEPARATOR], ["$ENV_SEPARATOR"], [Environment separator character surrounded by double quotes.]) AC_DEFINE_UNQUOTED([ENV_SEPARATOR_CHAR], ['$ENV_SEPARATOR'], [Environment separator character surrounded by single quotes.]) AC_DEFINE_UNQUOTED(NETSNMP_DEFAULT_MIBS,"$NETSNMP_DEFAULT_MIBS") AC_SUBST(NETSNMP_DEFAULT_MIBS) AC_MSG_RESULT($NETSNMP_DEFAULT_MIBS) #------------------- # Define symbols for conditional compilation in makefiles # if echo " $agent_module_list " | \ fgrep ' agentx/agentx_config ' | \ fgrep ' agentx/protocol ' > /dev/null ; then NETSNMP_HAVE_AGENTX_LIBS_TRUE='' NETSNMP_HAVE_AGENTX_LIBS_FALSE='#' else NETSNMP_HAVE_AGENTX_LIBS_TRUE='#' NETSNMP_HAVE_AGENTX_LIBS_FALSE='' fi AC_SUBST([NETSNMP_HAVE_AGENTX_LIBS_TRUE]) AC_SUBST([NETSNMP_HAVE_AGENTX_LIBS_FALSE])