a898afa0c41d5bdca1134dce14666fef3cfed666Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# CDDL HEADER START
a898afa0c41d5bdca1134dce14666fef3cfed666Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# The contents of this file are subject to the terms of the
a898afa0c41d5bdca1134dce14666fef3cfed666Andrew Forrest# Common Development and Distribution License (the "License").
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# You may not use this file except in compliance with the License.
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# or http://www.opensolaris.org/os/licensing.
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# See the License for the specific language governing permissions
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# and limitations under the License.
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# When distributing Covered Code, include this CDDL HEADER in each
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# If applicable, add the following below this CDDL HEADER, with the
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# fields enclosed by brackets "[]" replaced with your own identifying
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# information: Portions Copyright [yyyy] [name of copyright owner]
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# CDDL HEADER END
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestinclude ../../make-rules/shared-macros.mk
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestPATH=$(SPRO_VROOT)/bin:/usr/gnu/bin:/usr/bin
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestDOXYGEN=/usr/bin/doxygen
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_NAME= net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_VERSION= 5.4.1
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_PROJECT_URL= http://www.net-snmp.org/
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_ARCHIVE_HASH= \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest sha256:0ea976722c993c87dede8eb6348e6feb059e3851bbef2de824bf18ac97cdb565
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest#COMPONENT_ARCHIVE_URL= http://ftp.ntua.gr/mirror/net-snmp/net-snmp/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_ARCHIVE_URL= http://ftp.ntua.gr/mirror/net-snmp/OldFiles/net-snmp-5.4.x/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_BUGDB= service/net-snmp utility/net-snmp library/net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestTPNO= 5702
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestinclude $(WS_MAKE_RULES)/prep.mk
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestinclude $(WS_MAKE_RULES)/configure.mk
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestinclude $(WS_MAKE_RULES)/ips.mk
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCFLAGS += $(studio_C99_ENABLE)
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCPPFLAGS += "-DFALSE_SHARING_ALIGN=64"
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# After Python 2.6 goes away, the COMPONENT_POST_{CONFIGURE,INSTALL}_ACTIONs
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# below can go away as well (for INSTALL_ACTION, 32-bit goes away; 64-bit
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# remains).
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestPYTHON_VERSION=2.6
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_ENV += PYTHONPROG=$(PYTHON.$(BITS))
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-default-snmp-version=3
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-sys-contact="root@localhost"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-sys-location=Unknown
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-logfile=/var/log/snmpd.log
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-persistent-directory=/var/net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-mibdirs=/etc/net-snmp/snmp/mibs
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --datadir=/etc/net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --enable-agentx-dom-sock-only
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --enable-ucd-snmp-compatibility
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --enable-ipv6
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --enable-mfd-rewrites
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-pkcs
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-transports="UDP TCP UDPIPv6 TCPIPv6"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --sysconfdir=/etc/net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# Which MIB modules do we want to build
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestMIB_MOBULES.sparc = ucd-snmp/lmSensors
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestMIB_MODULES = host disman/event-mib ucd-snmp/diskio udp-mib tcp-mib if-mib
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestMIB_MOBULES += $(MIB_MODULES.$(MACH))
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-mib-modules="$(MIB_MODULES)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# Python bindings support.
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestPYTHON_ARGS = --basedir=/usr/bin
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += --with-python-modules="$(PYTHON_ARGS)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# Only build 32 bit Perl support
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestPERL_ARGS = DESTDIR=$(PROTO_DIR) INSTALLDIRS=vendor
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS.32 += PERLPROG="$(PERL)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS.32 += --with-perl-modules="$(PERL_ARGS)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS.32 += --disable-perl-cc-checks
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS.64 += --disable-embedded-perl
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS.64 += --without-perl-modules
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCONFIGURE_OPTIONS += CC="$(CC)"
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestPKG_MACROS += BUILD_DIR=$(BUILD_DIR)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_PRE_CONFIGURE_ACTION = \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest ($(CLONEY) $(SOURCE_DIR) $(@D); $(CLONEY) $(COMPONENT_DIR)/sun $(@D)/sun)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# After we have configured, make a copy of the python bits so we
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# can build separate python 2.7 support.
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCOMPONENT_POST_CONFIGURE_ACTION = (cd $(@D) ; cp -rp python python2.7)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# for the goofy definition of ARCH in the extra Makefiles
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestARCH=32
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestARCH=$(BITS:64=$(MACH64))
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCCSMAKE_ARGS = CC="$(CC)" CFGPREFIX=/usr CFGLIB64=/usr/lib/$(MACH64)
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestCCSMAKE_ARGS += CFGLIB=/usr/lib ARCH=$(ARCH) ROOT=$(PROTO_DIR)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(BUILD_32): COMPONENT_POST_BUILD_ACTION= \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest (cd $(BUILD_DIR)/$(MACH32)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS))
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(BUILD_64): COMPONENT_POST_BUILD_ACTION= \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest (cd $(BUILD_DIR)/$(MACH64)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS))
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(INSTALL_32): COMPONENT_INSTALL_ARGS += PYTHON_VENDOR_PACKAGES=$(PYTHON_VENDOR_PACKAGES)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(INSTALL_32): COMPONENT_POST_INSTALL_ACTION= \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest ($(MKDIR) -p $(BUILD_DIR)/prototype/$(MACH)/etc/net-snmp/snmp/mibs; \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest cd $(BUILD_DIR)/$(MACH32)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS) install) ; \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest (cd $(@D)/python2.7 ; env PYTHON=$(PYTHON.2.7.$(BITS)) \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest $(PYTHON.2.7.$(BITS)) ./setup.py install \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest --root $(PROTO_DIR) \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest --install-lib=$(PYTHON.2.7.VENDOR_PACKAGES))
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(INSTALL_64): COMPONENT_POST_INSTALL_ACTION= \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest ($(MKDIR) -p $(BUILD_DIR)/prototype/$(MACH64)/etc/net-snmp/snmp/mibs; \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest cd $(BUILD_DIR)/$(MACH64)/sun ; ls agent; $(CCSMAKE) -e $(CCSMAKE_ARGS) install)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# common targets
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestbuild: $(BUILD_32_and_64) $(BUILD_DIR_32)/.docs
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(INSTALL_64): COMPONENT_INSTALL_ARGS += DESTDIR=$(BUILD_DIR)/prototype/$(MACH64)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrestinstall: build $(INSTALL_32_and_64)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forresttest: $(BUILD_32)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest $(KSH93) ./run-tests $(BUILD_DIR) $(MACH32) $(MACH64)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest# build the docs
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest$(BUILD_DIR_32)/.docs:
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest (cd $(@D) ; $(ENV) srcdir=$(@D) $(DOXYGEN) -u $(@D)/doxygen.conf ; \
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest $(ENV) srcdir=$(@D) $(DOXYGEN) $(@D)/doxygen.conf)
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest $(TOUCH) $@
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += runtime/perl-512
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += runtime/python-26
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += runtime/python-27
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += shell/bash
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += shell/ksh93
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/core-os
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/library
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/library/security/pkcs11
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/linker
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/management/snmp/net-snmp
402cd5da45d9182b81c16a13c3568faf78701827Andrew ForrestREQUIRED_PACKAGES += system/network
402cd5da45d9182b81c16a13c3568faf78701827Andrew Forrest