#!/usr/bin/make -f
# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
# This version is for a hypothetical package that builds an
# architecture-dependant package, as well as an architecture-independent
# package.

# Uncomment this to turn on verbose mode. 
#export DH_VERBOSE=1

# This is the debhelper compatability version to use.
export DH_COMPAT=4

v = 5

tmp=$(shell pwd)/debian/tmp

ifndef PERL
PERL=/usr/bin/perl
endif

ARCH = $(shell dpkg --print-architecture)

CFLAGS = -O2 -D_REENTRANT
ifneq "$(findstring debug,$(DEB_BUILD_OPTIONS))" ""
CFLAGS += -g
endif

MIB_MODULES = host smux ucd-snmp/dlmod

#lm-sensors support seems to be still too broken for a stable release :-(
#ifeq "$(ARCH)" "i386"
#MIB_MODULES +=  ucd-snmp/lmSensors
#LIBSENSORS = -lsensors
#endif

build: build-stamp
build-stamp:
	dh_testdir

	# Add here commands to compile the package.
	libtoolize --force --copy
	aclocal
	autoconf
	LC_COLLATE=C autoheader
	echo timestamp >stamp-h.in
	./configure --prefix=/usr --sysconfdir=/etc --mandir=/usr/share/man \
	  --with-persistent-directory=/var/lib/snmp \
	  --enable-ucd-snmp-compatibility \
	  --enable-shared --with-cflags="$(CFLAGS)" \
	  --with-perl-modules="INSTALLDIRS=vendor" \
	  --enable-ipv6 --with-logfile=none \
	  --without-rpm --with-libwrap --with-openssl \
	  --without-dmalloc --without-efence --without-rsaref \
	  --with-sys-contact="root" --with-sys-location="Unknown" \
	  --with-mib-modules="$(MIB_MODULES)" \
	  --with-defaults
	$(MAKE) LIBSENSORS=$(LIBSENSORS) LD_RUN_PATH=

	# Relink libs to resolve dependencies
	# Make sure NOT to include circular dependencies or
	# relinking during install will fail
	rm -f agent/libnetsnmpmibs.la
	$(MAKE) -C agent MIBS_RELINK_LIBS="../snmplib/libnetsnmp.la libnetsnmpagent.la -lwrap" AGENT_RELINK_LIBS="../snmplib/libnetsnmp.la" LIBSENSORS=$(LIBSENSORS) LD_RUN_PATH=
	rm -f agent/helpers/libnetsnmphelpers.la
	$(MAKE) -C agent/helpers HELPERS_RELINK_LIBS="../../snmplib/libnetsnmp.la ../libnetsnmpagent.la ../libnetsnmpmibs.la -lwrap" LD_RUN_PATH=
	rm -f apps/libnetsnmptrapd.la
	$(MAKE) -C apps TRAPD_RELINK_LIBS="../snmplib/libnetsnmp.la ../agent/libnetsnmpagent.la ../agent/libnetsnmpmibs.la ../agent/helpers/libnetsnmphelpers.la -lwrap" LD_RUN_PATH=
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp install-stamp

	# Add here commands to clean up after the build process.
	-$(MAKE) perlrealclean distclean

	dh_clean EXAMPLE.conf configure net-snmp-config sedscript \
	  stamp-h stamp-h.in include/net-snmp/net-snmp-config.h.in \
	  include/net-snmp/library/snmpv3-security-includes.h \
	  perl/SNMP/t/snmptest.cmd perl/blib/lib/.exists \
	  perl/blib/lib/NetSNMP/.exists perl/blib/lib/NetSNMP/agent/.exists \
	  perl/SNMP/SNMP.pod aclocal.m4 config.guess config.sub ltmain.sh \
	  $(shell find -type f -name '*.o')

install: install-stamp
install-stamp: build-stamp
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	# Add here commands to install the package into debian/tmp.
	$(MAKE) prefix=`pwd`/debian/tmp/usr exec_prefix=`pwd`/debian/tmp/usr \
	  mandir=`pwd`/debian/tmp/usr/share/man \
	  persistentdir=`pwd`/debian/tmp/var/lib/snmp \
	  PREFIX=`pwd`/debian/tmp/usr install
	# Install the "broke" headers
	cp agent/mibgroup/struct.h debian/tmp/usr/include/net-snmp/agent
	cp agent/mibgroup/util_funcs.h debian/tmp/usr/include/net-snmp
	cp agent/mibgroup/mibincl.h debian/tmp/usr/include/net-snmp/library
	cp agent/mibgroup/header_complex.h debian/tmp/usr/include/net-snmp/agent
	# Remove the snmpcheck program since we don't support it (yet).
	rm debian/tmp/usr/bin/snmpcheck
	# Copy the .conf files.
	mkdir -p debian/tmp/etc/snmp
	cp EXAMPLE.conf debian/tmp/etc/snmp/snmpd.conf
	cp EXAMPLE-trap.conf debian/tmp/etc/snmp/snmptrapd.conf
	mv debian/tmp/usr/share/snmp/mib2c*.conf debian/tmp/etc/snmp
	mkdir -p debian/tmp/etc/default
	cp debian/snmpd.default debian/tmp/etc/default/snmpd
	# Perform other man pages fixups.
	bash ./debian/fixman
	## Copy the autoconf files.
	#mkdir -p debian/tmp/usr/share/aclocal
	#cp net-snmp.m4 debian/tmp/usr/share/aclocal

	dh_movefiles
	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir -i
	dh_testroot -i
	dh_installdocs -i
	dh_installexamples -i
	#dh_installmenu -i
	#dh_installemacsen -i
	#dh_installpam -i
	#dh_installinit -i
	#dh_installcron -i
	dh_installman -i
	#dh_installinfo -i
	dh_installchangelogs -i -k ChangeLog
	#dh_link -i
	dh_compress -i
	dh_fixperms -i
	# You may want to make some executables suid here.
	#dh_suidregister -i
	dh_installdeb -i
	dh_perl -i
	dh_gencontrol -i
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir -a
	dh_testroot -a
	dh_installdocs -a
	for f in libsnmp$(v)-dev ; do \
	  rm -rf debian/$$f/usr/share/doc/$$f ; \
	  ln -sf libsnmp$(v) debian/$$f/usr/share/doc/$$f ; \
	done
	#dh_installexamples -a
	dh_installexamples -plibsnmp-perl $(shell ls -d perl/SNMP/examples/* | grep -v SCCS)
	#dh_installmenu -a
	#dh_installemacsen -a
	#dh_installpam -a
	dh_installinit -a
	#dh_installcron -a
	dh_installman -a
	#dh_installinfo -a
	#dh_installchangelogs -a
	dh_installchangelogs -plibsnmp$(v) -k ChangeLog
	dh_installchangelogs -plibsnmp-perl -k ChangeLog
	dh_installchangelogs -psnmp -k ChangeLog
	dh_installchangelogs -psnmpd -k ChangeLog
	dh_strip -a
	#dh_link -a
	dh_compress -a
	dh_fixperms -a
	chmod 600 debian/snmpd/etc/snmp/snmp*d.conf
	# You may want to make some executables suid here.
	#dh_suidregister -a
	dh_installdeb -a
	#dh_makeshlibs -a
	dh_makeshlibs -plibsnmp$(v) -V "libsnmp$(v) (>= 5.1)"
	dh_makeshlibs -plibsnmp-perl
	dh_perl -a
	dh_shlibdeps -a -ldebian/libsnmp$(v)/usr/lib -Llibsnmp$(v)
	dh_gencontrol -a
	dh_md5sums -a
	dh_builddeb -a

source diff:
	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install
