diff options
| -rw-r--r-- | make/netsnmp.mk | 121 | 
1 files changed, 121 insertions, 0 deletions
diff --git a/make/netsnmp.mk b/make/netsnmp.mk new file mode 100644 index 000000000..1707e0920 --- /dev/null +++ b/make/netsnmp.mk @@ -0,0 +1,121 @@ +############################################################# +# +# netsnmp +# +############################################################# + +NETSNMP_URL:=http://aleron.dl.sourceforge.net/sourceforge/net-snmp/ +NETSNMP_DIR:=$(BUILD_DIR)/net-snmp-5.0.7 +NETSNMP_SOURCE:=net-snmp-5.0.7.tar.gz +NETSNMP_PATCH1:=net-snmp_5.0.7-1.1.diff.gz +NETSNMP_PATCH1_URL:=http://ftp.debian.org/debian/pool/main/n/net-snmp/ +NETSNMP_PATCH2:=$(SOURCE_DIR)/netsnmp.patch + +$(DL_DIR)/$(NETSNMP_SOURCE): +	$(WGET) -P $(DL_DIR) $(NETSNMP_URL)/$(NETSNMP_SOURCE) + +$(DL_DIR)/$(NETSNMP_PATCH1): +	$(WGET) -P $(DL_DIR) $(NETSNMP_PATCH1_URL)/$(NETSNMP_PATCH1) + +$(NETSNMP_DIR)/.unpacked: $(DL_DIR)/$(NETSNMP_SOURCE) $(DL_DIR)/$(NETSNMP_PATCH1) +	zcat $(DL_DIR)/$(NETSNMP_SOURCE) | tar -C $(BUILD_DIR) -xvf - +	zcat $(DL_DIR)/$(NETSNMP_PATCH1) | patch -p1 -d $(NETSNMP_DIR) +	cat $(NETSNMP_PATCH2) | patch -p1 -d $(NETSNMP_DIR) +	touch  $(NETSNMP_DIR)/.unpacked + +# We set CAN_USE_SYSCTL to no and use /proc since the +# sysctl code in this thing is apparently intended for +# freebsd or some such thing... +$(NETSNMP_DIR)/.configured: $(NETSNMP_DIR)/.unpacked +	(cd $(NETSNMP_DIR); autoconf; \ +		ac_cv_CAN_USE_SYSCTL=no \ +		PATH=$(TARGET_PATH) \ +		./configure \ +		--with-cc=$(TARGET_CROSS)gcc \ +		--with-ar=$(TARGET_CROSS)ar \ +		--target=$(GNU_TARGET_NAME) \ +		--host=$(GNU_TARGET_NAME) \ +		--build=$(GNU_HOST_NAME) \ +		--with-endianness=little \ +		--with-persistent-directory=/var/lib/snmp \ +		--enable-ucd-snmp-compatibility \ +		--enable-shared \ +		--disable-static \ +		--with-logfile=none \ +		--without-rpm \ +		--with-openssl \ +		--without-dmalloc \ +		--without-efence \ +		--without-rsaref \ +		--with-sys-contact="root" \ +		--with-sys-location="Unknown" \ +		--with-mib-modules="host smux ucd-snmp/dlmod" \ +		--with-defaults \ +		--prefix=/usr \ +		--sysconfdir=/etc \ +		--mandir=/usr/man \ +		--infodir=/usr/info \ +	); +	touch  $(NETSNMP_DIR)/.configured + +$(NETSNMP_DIR)/agent/snmpd: $(NETSNMP_DIR)/.configured +	$(MAKE) -C $(NETSNMP_DIR) + +$(TARGET_DIR)/usr/sbin/snmpd: $(NETSNMP_DIR)/agent/snmpd +	#$(MAKE) DESTDIR=$(TARGET_DIR) -C $(NETSNMP_DIR) install +	$(MAKE) PREFIX=$(TARGET_DIR)/usr \ +	    prefix=$(TARGET_DIR)/usr \ +	    exec_prefix=$(TARGET_DIR)/usr \ +	    persistentdir=$(TARGET_DIR)/var/lib/snmp \ +	    infodir=$(TARGET_DIR)/usr/info \ +	    mandir=$(TARGET_DIR)/usr/man \ +	    -C $(NETSNMP_DIR) install; +	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ +		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc +	# Copy the .conf files. +	mkdir -p $(TARGET_DIR)/etc/snmp +	cp $(NETSNMP_DIR)/EXAMPLE.conf $(TARGET_DIR)/etc/snmp/snmpd.conf +	cp $(NETSNMP_DIR)/EXAMPLE-trap.conf $(TARGET_DIR)/etc/snmp/snmptrapd.conf +	-mv $(TARGET_DIR)/usr/share/snmp/mib2c*.conf $(TARGET_DIR)/etc/snmp +	mkdir -p $(TARGET_DIR)/etc/default +	cp $(NETSNMP_DIR)/debian/snmpd.default $(TARGET_DIR)/etc/default/snmpd +	# Remove the unsupported snmpcheck program +	rm $(TARGET_DIR)/usr/bin/snmpcheck +	# Remove the unwanted header files +	rm -rf $(TARGET_DIR)/usr/include/net-snmp +	rm -rf $(TARGET_DIR)/usr/include/ucd-snmp + +netsnmp: $(TARGET_DIR)/usr/sbin/snmpd + +netsnmp-headers: $(TARGET_DIR)/usr/include/net-snmp/net-snmp-config.h +	#Seems easiest to just install everything... +	$(MAKE) PREFIX=$(TARGET_DIR)/usr \ +	    prefix=$(TARGET_DIR)/usr \ +	    exec_prefix=$(TARGET_DIR)/usr \ +	    persistentdir=$(TARGET_DIR)/var/lib/snmp \ +	    infodir=$(TARGET_DIR)/usr/info \ +	    mandir=$(TARGET_DIR)/usr/man \ +	    -C $(NETSNMP_DIR) install; +	rm -rf $(TARGET_DIR)/share/locale $(TARGET_DIR)/usr/info \ +		$(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/doc +	# Copy the .conf files. +	mkdir -p $(TARGET_DIR)/etc/snmp +	cp $(NETSNMP_DIR)/EXAMPLE.conf $(TARGET_DIR)/etc/snmp/snmpd.conf +	cp $(NETSNMP_DIR)/EXAMPLE-trap.conf $(TARGET_DIR)/etc/snmp/snmptrapd.conf +	-mv $(TARGET_DIR)/usr/share/snmp/mib2c*.conf $(TARGET_DIR)/etc/snmp +	mkdir -p $(TARGET_DIR)/etc/default +	cp $(NETSNMP_DIR)/debian/snmpd.default $(TARGET_DIR)/etc/default/snmpd +	# Remove the unsupported snmpcheck program +	rm $(TARGET_DIR)/usr/bin/snmpcheck +	# Install the "broken" headers +	cp $(NETSNMP_DIR)/agent/mibgroup/struct.h $(TARGET_DIR)/usr/include/net-snmp/agent +	cp $(NETSNMP_DIR)/agent/mibgroup/util_funcs.h $(TARGET_DIR)/usr/include/net-snmp +	cp $(NETSNMP_DIR)/agent/mibgroup/mibincl.h $(TARGET_DIR)/usr/include/net-snmp/library +	cp $(NETSNMP_DIR)/agent/mibgroup/header_complex.h $(TARGET_DIR)/usr/include/net-snmp/agent + +netsnmp-clean:  +	$(MAKE) -C $(NETSNMP_DIR) clean + +netsnmp-dirclean:  +	rm -rf $(NETSNMP_DIR) +  | 
