# # Makefile.in (at the root of net-snmp) # top_builddir = . VPATH = @srcdir@ SUBDIRS = snmplib @MAINSUBS@ FTSUBDIRS = @FTMAINSUBS@ snmplib TESTDIRS = testing CPP = @CPP@ \ -Iinclude -I$(srcdir)/include -I$(srcdir)/agent/mibgroup -I. -I$(srcdir) \ -DDONT_INC_STRUCTS -DBINDIR=$(bindir) \ $(EXTRACPPFLAGS) INSTALLHEADERS=version.h net-snmp-features.h INCLUDESUBDIR=system INCLUDESUBDIRHEADERS= aix.h bsd.h bsdi3.h bsdi4.h bsdi.h cygwin.h \ darwin.h darwin7.h darwin8.h darwin9.h darwin10.h dragonfly.h dynix.h \ freebsd2.h freebsd3.h freebsd4.h freebsd5.h freebsd6.h \ freebsd7.h freebsd8.h freebsd9.h freebsd10.h freebsd.h \ generic.h \ hpux.h irix.h linux.h mingw32.h mips.h netbsd.h osf5.h \ openbsd.h openbsd5.h openbsd4.h \ solaris2.3.h solaris2.4.h solaris2.5.h solaris2.6.h \ solaris.h sunos.h svr5.h sysv.h ultrix4.h INCLUDESUBDIR2=machine INCLUDESUBDIRHEADERS2=generic.h INSTALLBUILTHEADERS=include/net-snmp/net-snmp-config.h INSTALLBUILTINCLUDEHEADERS=@FEATUREHEADERS@ INSTALLBINSCRIPTS=net-snmp-config net-snmp-create-v3-user INSTALLUCDHEADERS=ucd-snmp-config.h version.h mib_module_config.h # # other install rules. # OTHERINSTALL=copypersistentfiles @PERLINSTALLTARGS@ @PYTHONINSTALLTARGS@ OTHERUNINSTALL=@PERLUNINSTALLTARGS@ @PYTHONUNINSTALLTARGS@ COPY_PERSISTENT_FILES=@COPY_PERSISTENT_FILES@ PERSISTENT_DIRECTORY=@PERSISTENT_DIRECTORY@ UCDPERSISTENT_DIRECTORY=@UCDPERSISTENT_DIRECTORY@ # # perl specific # # yes, order matters here. default_store must occur before anything else PERLMODULES=default_store SNMP ASN OID agent TrapReceiver PERLMODULEFTS=perl/default_store/netsnmp-feature-definitions.ft \ perl/SNMP/netsnmp-feature-definitions.ft \ perl/ASN/netsnmp-feature-definitions.ft \ perl/OID/netsnmp-feature-definitions.ft \ perl/agent/netsnmp-feature-definitions.ft \ perl/TrapReceiver/netsnmp-feature-definitions.ft PERLARGS=@PERLARGS@ # # python specific # PYTHONARGS=@PYTHONARGS@ PYTHONMODULEFTS=python/netsnmp/netsnmp-feature-definitions.ft # # libtool # LIBTOOL_DEPS = @LIBTOOL_DEPS@ # # feature checks for optional components # FTOTHERTARGS=@PERLFEATURES@ @PYTHONFEATURES@ # # targets # all: sedscript EXAMPLE.conf @FEATURETARGS@ standardall net-snmp-config-x net-snmp-create-v3-user @PERLTARGS@ @PYTHONTARGS@ start-flag: @touch build-in-progress-flag end-flag: @rm -f build-in-progress-flag > /dev/null 2>&1 libtool: $(LIBTOOL_DEPS) $(SHELL) ./config.status --recheck snmplib: @FEATURETARGS@ @(cd snmplib; $(MAKE) ) agent: @FEATURETARGS@ @(cd snmplib; $(MAKE) ) @(cd agent; $(MAKE) ) apps: @FEATURETARGS@ @(cd snmplib; $(MAKE) ) @(cd agent; $(MAKE) libs) @(cd apps; $(MAKE) ) snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext encode_keychange snmpdf snmptrap snmptls: @FEATURETARGS@ @(cd snmplib; $(MAKE) ) @(cd apps; $(MAKE) $@ ) agentxtrap snmptrapd: @FEATURETARGS@ @(cd snmplib; $(MAKE) ) @(cd agent; $(MAKE) libs) @(cd apps; $(MAKE) $@ ) # # local build rules # sedscript: sedscript.in include/net-snmp/net-snmp-config.h $(srcdir)/agent/mibgroup/mibdefs.h $(CPP) $(srcdir)/sedscript.in | egrep '^s[/#]' | sed 's/REMOVEME//g;s# */#/#g;s/ *#/#/g;s#/ *#/#g;s/# g/#g/;' > sedscript echo 's/VERSIONINFO/$(VERSION)/g' >> sedscript echo 's#DATADIR#$(datadir)#g' >> sedscript echo 's#LIBDIR#$(libdir)#g' >> sedscript echo 's#BINDIR#$(bindir)#g' >> sedscript echo 's#PERSISTENT_DIRECTORY#$(PERSISTENT_DIRECTORY)#g' >> sedscript echo 's#SYSCONFDIR#@sysconfdir@#g' >> sedscript EXAMPLE.conf: sedscript EXAMPLE.conf.def $(SED) -f sedscript $(srcdir)/EXAMPLE.conf.def > EXAMPLE.conf docs: docsdir docsdir: docsdox docsdox: doxygen.conf srcdir=$(srcdir) VERSION=$(VERSION) doxygen $(srcdir)/doxygen.conf net-snmp-config-x: net-snmp-config chmod a+x net-snmp-config touch net-snmp-config-x net-snmp-create-v3-user-x: net-snmp-create-v3-user chmod a+x net-snmp-create-v3-user touch net-snmp-create-v3-user-x # # extra install rules # copypersistentfiles: @if test "$(COPY_PERSISTENT_FILES)" = "yes" -a -d $(UCDPERSISTENT_DIRECTORY) -a ! -d $(PERSISTENT_DIRECTORY) ; then \ cp -pr $(UCDPERSISTENT_DIRECTORY) $(PERSISTENT_DIRECTORY) ; \ echo "copying $(UCDPERSISTENT_DIRECTORY) to $(PERSISTENT_DIRECTORY)" ; \ fi # # test targets # test test-mibs testall testfailed testsimple: all testdirs ( cd testing; $(MAKE) $@ ) testdirs: for i in $(TESTDIRS) ; do \ ( cd $$i ; $(MAKE) ) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi \ done distall: ${srcdir}/configure ${srcdir}/include/net-snmp/net-snmp-config.h OTHERCLEANTARGETS=EXAMPLE.conf sedscript OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pythoncleanfeatures # # perl specific build rules # # override LD_RUN_PATH to avoid dependencies on the build directory perlmodules: perlmakefiles subdirs @(cd perl ; $(MAKE) LD_RUN_PATH="$(libdir):`$(PERL) -e 'use Config; print qq($$Config{archlibexp}/CORE);'`") ; \ if test $$? != 0 ; then \ exit 1 ; \ fi perlmakefiles: net-snmp-config-x @if test ! -f perl/Makefile; then \ (dir=`pwd`; \ cd perl ; \ $(PERL) Makefile.PL -NET-SNMP-IN-SOURCE=true -NET-SNMP-CONFIG="sh $$dir/net-snmp-config" $(PERLARGS) ) ; \ fi perlinstall: @(cd perl ; $(MAKE) install) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi perluninstall: @(cd perl ; $(MAKE) uninstall) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi perltest: @(cd perl ; $(MAKE) test) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi perlclean: @if test -f perl/Makefile; then \ ( cd perl ; $(MAKE) clean ) ; \ fi perlrealclean: @if test -f perl/Makefile; then \ ( cd perl ; $(MAKE) realclean ) ; \ fi .h.ft: $(FEATURECHECK) --feature-global $(top_builddir)/include/net-snmp/feature-details.h `dirname $<` $< $@ $(CC) -I $(top_builddir)/include -I $(top_srcdir)/include -E $(CPPFLAGS) $(CFLAGS) -c perlfeatures: $(PERLMODULEFTS) perlcleanfeatures: $(RM) $(PERLMODULEFTS) # python specific build rules # PYMAKE=$(PYTHON) setup.py $(PYTHONARGS) pythonmodules: subdirs @(dir=`pwd`; cd python; $(PYMAKE) build --basedir=$$dir) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi pythoninstall: @(dir=`pwd`; cd python; $(PYMAKE) install --basedir=$$dir) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi pythonuninstall: echo "WARNING: python doesn't support uninstall" pythontest: @(dir=`pwd`; cd python; $(PYMAKE) test --basedir=$$dir) ; \ if test $$? != 0 ; then \ exit 1 ; \ fi pythonclean: @(dir=`pwd`; cd python; $(PYMAKE) clean --basedir=$$dir) pythonfeatures: $(PYTHONMODULEFTS) pythoncleanfeatures: $(RM) $(PYTHONMODULEFTS) # # make distclean completely removes all traces of building including # any files generated by configure itself. # distclean: perlrealclean clean configclean tarclean makefileclean: rm -f Makefile snmplib/Makefile \ agent/Makefile agent/mibgroup/Makefile \ agent/helpers/Makefile \ apps/Makefile apps/snmpnetstat/Makefile \ man/Makefile mibs/Makefile ov/Makefile \ local/Makefile testing/Makefile configclean: makefileclean rm -f config.cache config.status config.log \ libtool include/net-snmp/net-snmp-config.h \ net-snmp-config net-snmp-config-x configure-summary \ net-snmp-create-v3-user net-snmp-create-v3-user-x rm -f mibs/.index rm -f include/net-snmp/agent/mib_module_config.h \ include/net-snmp/agent/agent_module_config.h \ include/net-snmp/library/snmpv3-security-includes.h \ include/net-snmp/feature-details.h \ snmplib/snmpsm_init.h snmplib/snmpsm_shutdown.h \ snmplib/transports/snmp_transport_inits.h \ agent/mibgroup/agent_module_includes.h \ agent/mibgroup/agent_module_inits.h \ agent/mibgroup/agent_module_shutdown.h \ agent/mibgroup/agent_module_dot_conf.h \ agent/mibgroup/mib_module_includes.h \ agent/mibgroup/mib_module_inits.h \ agent/mibgroup/mib_module_shutdown.h \ agent/mibgroup/mib_module_dot_conf.h rm -rf mk rm -f *.core # # Configure script related targets # touchit: touch configure include/net-snmp/net-snmp-config.h.in touch config.status touch stamp-h stamp-h.in Makefile: Makefile.in config.status Makefile.rules Makefile.top @if test "x$(NOAUTODEPS)" = "x"; then \ echo "running config.status because the following file(s) changed:"; \ echo " $?"; \ ./config.status; \ else \ echo "WARNING: not running config.status"; \ fi configure_ac = configure.ac \ configure.d/config_modules_agent \ configure.d/config_modules_lib \ configure.d/config_os_functions \ configure.d/config_os_headers \ configure.d/config_os_libs1 \ configure.d/config_os_libs2 \ configure.d/config_os_misc1 \ configure.d/config_os_misc2 \ configure.d/config_os_misc3 \ configure.d/config_os_misc4 \ configure.d/config_os_progs \ configure.d/config_os_struct_members \ configure.d/config_project_ipv6_types \ configure.d/config_project_manual \ configure.d/config_project_paths \ configure.d/config_project_perl_python \ configure.d/config_project_types \ configure.d/config_project_with_enable $(srcdir)/include/net-snmp/net-snmp-config.h.in: stamp-h.in $(srcdir)/stamp-h.in: $(configure_ac) acconfig.h @if test "x$(NOAUTODEPS)" = "x" -a "x$(AUTOHEADER)" != "x:"; then \ cd ${srcdir} && LC_COLLATE=C $(AUTOHEADER); \ echo timestamp > ${srcdir}/stamp-h.in; \ else \ echo "WARNING: not running autoheader"; \ fi include/net-snmp/net-snmp-config.h: stamp-h stamp-h: include/net-snmp/net-snmp-config.h.in config.status @if test "x$(NOAUTODEPS)" = "x"; then \ echo "running config.status because the following file(s) changed:"; \ echo " $?"; \ ./config.status; \ echo timestamp > stamp-h; \ else \ echo "WARNING: not running config.status"; \ fi $(srcdir)/configure: $(configure_ac) aclocal.m4 @if test "x$(NOAUTODEPS)" = "x" -a "x$(AUTOCONF)" != "x:"; then \ cd ${srcdir} && $(AUTOCONF); \ echo "Please run configure now."; \ sh -c exit 2; \ else \ echo "WARNING: not running autoconf"; \ fi gendir=dist/generation-scripts generation-scripts: generation-scripts-dirs $(gendir)/gen-transport-headers $(gendir)/gen-security-headers $(gendir)/gen-variables: $(gendir)/gen-variables.in ./config.status generation-scripts-dirs: @if [ ! -d dist ] ; then \ mkdir dist ; \ fi @if [ ! -d dist/generation-scripts ] ; then \ mkdir dist/generation-scripts ; \ fi $(gendir)/gen-transport-headers: $(gendir)/gen-transport-headers.in $(gendir)/gen-variables rm -f $@ autoconf -o $@ $< chmod a+x $@ $(gendir)/gen-security-headers: $(gendir)/gen-security-headers.in $(gendir)/gen-variables rm -f $@ autoconf -o $@ $< chmod a+x $@ config.status: configure @if test "x$(NOAUTODEPS)" = "x"; then \ echo "running config.status because $? changed"; \ ./config.status --recheck; \ else \ echo "WARNING: not running config.status --recheck"; \ fi # # Emacs TAGS file # TAGS: $(FIND) $(srcdir) -path $(srcdir)/dist/rpm -prune -o -name '*.[ch]' -print | etags - # # Internal distribution packaging, etc. # #tag: # @if test "x$(VERSION)" = "x"; then \ # echo "you need to supply a VERSION string."; \ # exit 2; \ # fi # ${srcdir}/agent/mibgroup/versiontag $(VERSION) tag tar: @if test "x$(VERSION)" = "x"; then \ echo "you need to supply a VERSION string."; \ exit 2; \ fi ${srcdir}/agent/mibgroup/versiontag $(VERSION) tar tarclean: @if test -x ${srcdir}/agent/mibgroup/versiontag ; then \ ${srcdir}/agent/mibgroup/versiontag Ext clean ; \ fi checks: $(MAKE) -k makefilecheck commentcheck warningcheck dependcheck \ assertcheck perlcalloccheck dependcheck: @echo "Checking for full paths in dependency files..." @if grep -n -E "^/" `$(FIND) $(top_srcdir) -name Makefile.depend`; then false; fi warningcheck: @echo "Checking for cpp warnings..." @if grep -n "#warning" `$(FIND) $(top_srcdir) -name \*.\[ch\]`; then false; fi assertcheck: @echo "Checking for non-snmp asserts..." @if grep -n -w "assert" `$(FIND) $(top_srcdir) -name \*.\[ch\] | grep -v snmp_assert.h | egrep -v 'perl/.*c' | grep -v openssl`; then false; fi commentcheck: @echo "Checking for C++ style comments..." @if grep -n -E "([^:)n]|^)//" `$(FIND) $(top_srcdir) -path './win32' -prune -o -name \*.\[ch\] | grep -v agent/mibgroup/winExtDLL.c`; then false; fi makefilecheck: @echo "Checking for non-portable Makefile constructs..." @if grep -n "\.c=" `$(FIND) $(top_srcdir) -name .svn -prune -o -path ./Makefile.in -prune -o -name "Makefile.*" -print`; then false; fi # Invoking calloc() directly or indirectly from a Perl XSUB and freeing that # memory by calling free() from the XSUB is a sure way to trigger "Free to # wrong pool" errors on Windows. perlcalloccheck: @echo "Checking for calloc() in Perl's external subroutines ..." @if grep -nwE 'calloc|SNMP_MALLOC_STRUCT|SNMP_MALLOC_TYPEDEF' `$(FIND) $(top_srcdir) -name '*.xs'`; then false; fi dist: tar FAQ.html: local/FAQ2HTML FAQ .PHONY: docs docsdir mancp testdirs test TAGS # note: tags and docs are phony to force rebulding .PHONY: snmplib agent apps \ snmpget snmpbulkget snmpwalk snmpbulkwalk snmptranslate snmpstatus \ snmpdelta snmptable snmptest snmpset snmpusm snmpvacm snmpgetnext \ encode_keychange snmpdf snmptrap snmptrapd .PHONY: perlfeatures pythonfeatures