#!/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() { [ $# -gt $1 ] || return shift $1 echo $1 } # usage: count arguments # effect: returns the number of arguments count() { echo $# } check_devel_files() { if [ ! -e "${NSC_INCDIR}/net-snmp/net-snmp-config.h" ] ; then echo "Can not find \"${NSC_INCDIR}/net-snmp/net-snmp-config.h\". The net-snmp development files seems to be missing. Exiting" >&2 # exit 2 fi } prefix=/usr exec_prefix=/usr includedir=/usr/include libdir=/usr/lib64 # Avoid that configure complains that this script ignores ${prefix}/share echo "${prefix}/share" >/dev/null NSC_LDFLAGS="-Wl,-z,relro -Wl,-z,now" NSC_LIBS="" NSC_LNETSNMPLIBS="-lm -lssl -lssl -lssl -lssl -lcrypto" NSC_LAGENTLIBS=" -L/usr/lib -lwrap -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/CORE" NSC_LMIBLIBS="-lnl-3 -lsensors -lm " 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 " '--host=x86_64-eisfair-linux' '--build=x86_64-eisfair-linux' '--program-prefix=' '--disable-dependency-tracking' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib64' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/var/lib' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-sys-contact=root@localhost' '--with-sys-location=unknown' '--with-mib-modules=misc/ipfwacc ucd-snmp/diskio etherlike-mib rmon-mib smux ip-mib/ipv4InterfaceTable ip-mib/ipv6InterfaceTable ip-mib/ipDefaultRouterTable ip-mib/ipAddressPrefixTable ip-mib/ipv6ScopeZoneIndexTable ip-mib/ipIfStatsTable tsm-mib tlstm-mib ucd-snmp/lmsensorsMib' '--with-cflags=-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon' '--with-ldflags=-Wl,-z,relro -Wl,-z,now' '--with-persistent-directory=/var/lib/net-snmp' '--with-agentx-socket=/run/agentx/master' '--with-temp-file-pattern=/var/run/net-snmp/snmp-tmp-XXXXXX' '--with-logfile=/var/log/net-snmpd.log' '--with-libwrap=/usr' '--with-perl-modules=INSTALLDIRS=vendor' '--with-defaults' '--with-pic' '--sysconfdir=/etc' '--enable-shared' '--disable-static' '--enable-as-needed' '--without-root-access' '--enable-local-smux' '--enable-ipv6' '--enable-ucd-snmp-compatibility' '--enable-mfd-rewrites' '--with-security-modules=tsm,usm' '--with-transports=TLSTCP,DTLSUDP' '--with-systemd' '--with-openssl' '--enable-blumenthal-aes' '--disable-des' '--disable-md5' '--without-rpm' 'build_alias=x86_64-eisfair-linux' 'host_alias=x86_64-eisfair-linux' 'CFLAGS=-O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables' 'LDFLAGS=' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'" ;; --snmpd-module-list|--mod*) echo misc/ipfwacc ucd-snmp/diskio ucd-snmp/lmsensorsMib ip-mib/ipAddressPrefixTable/ipAddressPrefixTable ip-mib/ipDefaultRouterTable/ipDefaultRouterTable 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 util_funcs/header_simple_table smux/smux tsm-mib/snmpTsmConfigurationUsePrefix snmpv3/snmpEngine snmpv3/snmpMPDStats snmpv3/usmStats snmpv3/usmConf snmpv3/usmUser mibII/system_mib mibII/sysORTable mibII/snmp_mib mibII/vacm_vars mibII/setSerialNo mibII/at mibII/ip mibII/tcp mibII/udp mibII/ipv6 mibII/icmp ucd-snmp/proc ucd-snmp/versioninfo ucd-snmp/pass ucd-snmp/pass_persist ucd-snmp/disk_hw ucd-snmp/loadave agent/extend ucd-snmp/errormib ucd-snmp/file ucd-snmp/dlmod ucd-snmp/proxy ucd-snmp/logmatch ucd-snmp/memory ucd-snmp/vmstat notification/snmpNotifyTable notification/snmpNotifyFilterProfileTable notification-log-mib/notification_log target/snmpTargetAddrEntry target/snmpTargetParamsEntry target/target target/target_counters agent/nsTransactionTable agent/nsModuleTable agent/nsDebug agent/nsCache agent/nsLogging agent/nsVacmAccessTable agentx/master agentx/subagent disman/event/mteScalars disman/event/mteTrigger disman/event/mteTriggerTable disman/event/mteTriggerDeltaTable disman/event/mteTriggerExistenceTable disman/event/mteTriggerBooleanTable disman/event/mteTriggerThresholdTable disman/event/mteTriggerConf disman/event/mteEvent disman/event/mteEventTable disman/event/mteEventSetTable disman/event/mteEventNotificationTable disman/event/mteEventConf disman/event/mteObjects disman/event/mteObjectsTable disman/event/mteObjectsConf disman/schedule/schedCore disman/schedule/schedConf disman/schedule/schedTable utilities/override utilities/execute utilities/iquery 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 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 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/data_access/systemstats_common ip-mib/data_access/systemstats_linux ip-mib/ipIfStatsTable/ipIfStatsTable_data_get if-mib/data_access/interface 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 tlstm-mib/snmpTlstmSession/snmpTlstmSession tlstm-mib/snmpTlstmAddrTable/snmpTlstmAddrTable tlstm-mib/snmpTlstmCertToTSNTable/snmpTlstmCertToTSNTable tlstm-mib/snmpTlstmParamsTable/snmpTlstmParamsTable tsm-mib/snmpTsmStats/snmpTsmStats hardware/sensors/hw_sensors hardware/sensors/lmsensors_v3 util_funcs/header_generic util_funcs mibII/updates mibII/vacm_context mibII/vacm_conf mibII/data_access/at_linux mibII/data_access/at_unix mibII/ipAddr mibII/var_route mibII/route_write mibII/kernel_linux mibII/tcpTable mibII/udpTable ip-mib/ip_scalars util_funcs/restart ucd-snmp/pass_common notification/snmpNotifyTable_data header_complex snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_storage snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable notification/snmpNotifyFilterProfileTable_data target/snmpTargetAddrEntry_data target/snmpTargetParamsEntry_data agentx/protocol agentx/master_admin agentx/agentx_config agentx/client host/data_access/swinst host/data_access/swrun host/hrSWRunPerfTable etherlike-mib/data_access/dot3stats_linux ip-mib/ipAddressTable/ipAddressTable_interface ip-mib/ipAddressTable/ipAddressTable_data_access ip-mib/data_access/defaultrouter_common ip-mib/data_access/defaultrouter_linux if-mib/data_access/interface_linux if-mib/data_access/interface_ioctl ip-mib/data_access/ipv6scopezone_common ip-mib/data_access/ipv6scopezone_linux rmon-mib/data_access/etherstats_linux if-mib/ifXTable/ifXTable ip-mib/inetNetToMediaTable/inetNetToMediaTable ip-mib/inetNetToMediaTable/inetNetToMediaTable_interface ip-mib/inetNetToMediaTable/inetNetToMediaTable_data_access ip-mib/ipSystemStatsTable/ipSystemStatsTable ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface ip-mib/ipSystemStatsTable/ipSystemStatsTable_data_access ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable tcp-mib/tcpConnectionTable/tcpConnectionTable tcp-mib/tcpListenerTable/tcpListenerTable udp-mib/udpEndpointTable/udpEndpointTable hardware/fsys/hw_fsys hardware/fsys/fsys_mntent hardware/memory/hw_mem hardware/memory/memory_linux hardware/cpu/cpu hardware/cpu/cpu_linux snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_interface snmp-notification-mib/snmpNotifyFilterTable/snmpNotifyFilterTable_data_access host/data_access/swinst_pkginfo host/data_access/swrun_procfs_status ip-mib/data_access/ipaddress_common ip-mib/data_access/ipaddress_linux if-mib/ifXTable/ifXTable_interface if-mib/ifXTable/ifXTable_data_access ip-mib/data_access/arp_common ip-mib/data_access/arp_netlink ip-mib/data_access/scalars_linux ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_interface ip-forward-mib/ipCidrRouteTable/ipCidrRouteTable_data_access ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_interface ip-forward-mib/inetCidrRouteTable/inetCidrRouteTable_data_access tcp-mib/data_access/tcpConn_common tcp-mib/data_access/tcpConn_linux util_funcs/get_pid_from_inode 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 ip-forward-mib/data_access/route_common ip-forward-mib/data_access/route_linux ip-forward-mib/data_access/route_ioctl udp-mib/data_access/udp_endpoint_common udp-mib/data_access/udp_endpoint_linux ;; --default-mibs|--mibs|--MIBS) echo :SNMPv2-MIB:IF-MIB:IP-MIB:TCP-MIB:UDP-MIB:HOST-RESOURCES-MIB:NOTIFICATION-LOG-MIB:DISMAN-EVENT-MIB:DISMAN-SCHEDULE-MIB:EtherLike-MIB:UCD-IPFWACC-MIB:RMON-MIB:SNMP-TLS-TM-MIB:SNMP-TSM-MIB:UCD-DISKIO-MIB:LM-SENSORS-MIB:UCD-SNMP-MIB:UCD-DEMO-MIB:SNMP-TARGET-MIB:NET-SNMP-AGENT-MIB:HOST-RESOURCES-TYPES:SNMP-FRAMEWORK-MIB:SNMP-MPD-MIB:SNMP-USER-BASED-SM-MIB:SNMP-VIEW-BASED-ACM-MIB:SNMP-COMMUNITY-MIB:IPV6-ICMP-MIB:IPV6-MIB:IPV6-TCP-MIB:IPV6-UDP-MIB:IP-FORWARD-MIB:NET-SNMP-PASS-MIB:NET-SNMP-EXTEND-MIB:UCD-DLMOD-MIB:SNMP-NOTIFICATION-MIB:SNMPv2-TM:NET-SNMP-VACM-MIB ;; --default-mibdirs|--mibdirs|--MIBDIRS) echo $HOME/.snmp/mibs:/usr/share/snmp/mibs ;; --env-separator) echo ":" ;; --exeext) echo "" ;; --snmpconfpath|--SNMPCONFPATH) echo "/etc/snmp:/usr/share/snmp:/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) check_devel_files echo -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -Ulinux -Dlinux=linux -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/CORE -I/usr/include/libnl3 -I${NSC_INCLUDEDIR} ;; --cflags|--cf*) check_devel_files echo -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -Ulinux -Dlinux=linux -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/CORE -I/usr/include/libnl3 -I. -I${NSC_INCLUDEDIR} ;; --srcdir) echo $NSC_SRCDIR ;; #################################################### linking --libdir|--lib-dir) echo $NSC_LIBDIR ;; --ldflags|--ld*) check_devel_files 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 -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -DNETSNMP_ENABLE_IPV6 -fno-strict-aliasing -DNETSNMP_REMOVE_U64 -O2 -g -m64 -fmessage-length=0 -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -fcommon -Ulinux -Dlinux=linux -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/CORE -I/usr/include/libnl3 " ;; #################################################### client lib --libs) # use this one == --netsnmp-libs + --external-libs check_devel_files echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS ;; --netsnmp-libs) check_devel_files echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS ;; --external-libs) check_devel_files echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.38.2/x86_64-linux-thread-multi/CORE ;; #################################################### agent lib --base-agent-libs) check_devel_files echo $NSC_BASE_AGENT_LIBS ;; --base-subagent-libs) check_devel_files echo $NSC_BASE_SUBAGENT_LIBS ;; --agent-libs) # use this one == --netsnmp-agent-libs + --external-libs check_devel_files echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS ;; --netsnmp-agent-libs) check_devel_files echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS ;; --external-agent-libs) check_devel_files echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS ;; #################################################### --version|--ver*) echo 5.9.4.pre2 ;; --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) check_devel_files 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 < #ifdef HAVE_SIGNAL #include #endif /* HAVE_SIGNAL */ #ifdef HAVE_SYS_STAT_H #include #endif /* HAVE_SYS_STAT_H */ #ifdef HAVE_FCNTL_H #include #endif /* HAVE_FCNTL_H */ #include #include 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 <> $tmpfile fi done # handle the main loop cat >> $tmpfile <> $tmpfile fi i=`expr $i - 1` done # finish file cat >> $tmpfile <