#!/usr/bin/make -f

# $Id: rules,v 1.11 2004/07/23 03:23:20 shaftoe Exp $

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

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

# Added to move the JAVA_HOME check up top
FIXIT=$(shell chmod o+x debian/getjava)
JAVA_HOME=$(sh debian/getjava)
export JAVA_HOME

export BUILDDEFINES=\
	-Dinstall.dir=/usr/share/opennms \
	-Dinstall.init.dir=/etc/init.d \
	-Dinstall.rrdtool.bin=/usr/bin/rrdtool \
	-Dinstall.share.dir=/var/lib/opennms \
	-Dinstall.servlet.dir=/usr/share/java/webapps/opennms \
	-Dinstall.logs.dir=/var/log/opennms \
	-Dinstall.pid.file=/var/run/opennms.pid \
	-Dinstall.postgresql.dir=/usr/lib/postgresql/lib/opennms \
	-Dbuild.postgresql.include.dir=/usr/include/postgresql/server

VER=1.1.3
TMP=$(CURDIR)/debian/tmp
ONMSCOM=$(CURDIR)/debian/opennms-common
ONMSCTR=$(CURDIR)/debian/opennms-contrib
ONMSDB=$(CURDIR)/debian/opennms-db
ONMSDOC=$(CURDIR)/debian/opennms-doc
ONMSSVR=$(CURDIR)/debian/opennms-server
ONMSWEB=$(CURDIR)/debian/opennms-webapp
LIBIPLK=$(CURDIR)/debian/libiplike-pgsql
LIBICMP=$(CURDIR)/debian/libicmp-jni
LIBRRD0=$(CURDIR)/debian/librrd0-jni
LIBONMS=$(CURDIR)/debian/libopennms-java


configure: configure-stamp
configure-stamp:
	dh_testdir

	touch configure-stamp

build: configure-stamp build-stamp
build-stamp:
	dh_testdir

	sh ./build.sh $(BUILDDEFINES) compile
	sh ./build.sh $(BUILDDEFINES) jar
	sh ./build.sh $(BUILDDEFINES) docs

	touch build-stamp

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

	sh ./build.sh -Dinstall.prefix=$(TMP) clean

	rm -rf work
	rm -f debian/conffiles

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	sh ./build.sh $(BUILDDEFINES) -Dinstall.prefix=$(TMP) install

	##
	## Setup the libiplike-pgsql package
	##
	install -m 644  $(CURDIR)/debian/libiplike-pgsql.overrides \
		$(LIBIPLK)/usr/share/lintian/overrides/libiplike-pgsql
	mv $(TMP)/usr/lib/postgresql/lib/opennms/iplike.so* \
		$(LIBIPLK)/usr/lib/postgresql/lib/opennms/

	##
	## Setup the libicmp-jni package
	##
	install -m 644  $(CURDIR)/debian/libicmp-jni.overrides \
		$(LIBICMP)/usr/share/lintian/overrides/libicmp-jni
	mv $(TMP)/usr/share/opennms/lib/libjicmp.so \
		$(LIBICMP)/usr/lib/libjicmp.so.$(VER)
	chmod 644 $(LIBICMP)/usr/lib/libjicmp.so.*

	##
	## Setup the librrd0-jni package
	##
	install -m 644 $(CURDIR)/debian/librrd0-jni.overrides \
		$(LIBRRD0)/usr/share/lintian/overrides/librrd0-jni
	mv $(TMP)/usr/share/opennms/lib/libjrrd.so \
		$(LIBRRD0)/usr/lib/libjrrd.so.$(VER)
	chmod 644 $(LIBRRD0)/usr/lib/libjrrd.so.*

	##
	## Setup the libopennms-java package
	##
	mv $(TMP)/usr/share/opennms/lib/opennms*.jar \
		$(LIBONMS)/usr/share/java/
	mv $(TMP)/usr/share/opennms/lib/postgresql.jar \
		$(LIBONMS)/usr/share/java/
	chmod 644 $(LIBONMS)/usr/share/java/*.jar

	##
	## Setup the opennms-db package
	##
	install -m 644 $(CURDIR)/debian/opennms-db.overrides \
		$(ONMSDB)/usr/share/lintian/overrides/opennms-db
	mv $(TMP)/usr/share/opennms/etc/*.sql \
		$(ONMSDB)/etc/opennms/
	chgrp nogroup $(ONMSDB)/etc/opennms
	chmod 2775 $(ONMSDB)/etc/opennms
	chmod 644 $(ONMSDB)/etc/opennms/*.sql

	##
	## Setup the opennms-common package
	##
	cp $(CURDIR)/debian/opennms-common.overrides \
		$(ONMSCOM)/usr/share/lintian/overrides/opennms-common
	mv $(TMP)/usr/share/opennms/bin/* \
		$(ONMSCOM)/usr/share/opennms/bin/
	sed -e 's/opt\/OpenNMS/usr\/share\/opennms/g' \
		$(ONMSCOM)/usr/share/opennms/bin/opennms.sh > \
		$(ONMSCOM)/usr/share/opennms/bin/opennms.sh.tmp
	mv $(ONMSCOM)/usr/share/opennms/bin/opennms.sh.tmp \
		$(ONMSCOM)/usr/share/opennms/bin/opennms.sh
	mv $(TMP)/usr/share/opennms/lib/scripts/* \
		$(ONMSCOM)/usr/share/opennms/lib/scripts/
	mv $(TMP)/usr/share/opennms/lib/updates/* \
		$(ONMSCOM)/usr/share/opennms/lib/updates/
	mv $(TMP)/var/lib/opennms/* \
		$(ONMSCOM)/var/lib/opennms/
	chgrp -R nogroup $(ONMSCOM)/etc/opennms $(ONMSCOM)/var/lib/opennms/* \
		$(ONMSCOM)/var/log/opennms
	chmod 2775 $(ONMSCOM)/etc/opennms $(ONMSCOM)/var/lib/opennms/* \
		$(ONMSCOM)/var/log/opennms
	chmod 755 $(ONMSCOM)/usr/share/opennms/bin/opennms.sh
	chmod 644 $(ONMSCOM)/usr/share/opennms/lib/updates/README.updates

	##
	## Setup the opennms-contrib package
	##
	install -m 644 $(CURDIR)/debian/opennms-contrib.overrides \
		$(ONMSCTR)/usr/share/lintian/overrides/opennms-contrib
	mv $(TMP)/usr/share/opennms/contrib/* \
		$(ONMSCTR)/usr/share/opennms/contrib/
	chmod 755 $(ONMSCTR)/usr/share/opennms/contrib/*.pl \
		$(ONMSCTR)/usr/share/opennms/contrib/downOpenNMS \
		$(ONMSCTR)/usr/share/opennms/contrib/mib2opennms/install-sh \
		$(ONMSCTR)/usr/share/opennms/contrib/mib2opennms/configure \
		$(ONMSCTR)/usr/share/opennms/contrib/mib2opennms/mkinstalldirs \
		$(ONMSCTR)/usr/share/opennms/contrib/mib2opennms/missing

	##
	## Setup the opennms-server package
	##

	install -m 755 $(CURDIR)/debian/opennms.binscript \
		$(ONMSSVR)/usr/sbin/opennms
	install -m 644 $(CURDIR)/debian/opennms-server.overrides \
		$(ONMSSVR)/usr/share/lintian/overrides/opennms-server
	mv $(TMP)/usr/share/opennms/etc/* $(ONMSSVR)/etc/opennms/
	mv $(TMP)/usr/share/opennms/lib/*.jar \
		$(ONMSSVR)/usr/share/opennms/lib/

	# Fix up some of the scripts and configs for Debian file/dir locations
	sed -e 's/bin\/mail/usr\/bin\/mail/' \
		$(ONMSSVR)/etc/opennms/notificationCommands.xml >\
		$(ONMSSVR)/etc/opennms/notificationCommands.xml.tmp
	mv $(ONMSSVR)/etc/opennms/notificationCommands.xml.tmp \
		$(ONMSSVR)/etc/opennms/notificationCommands.xml

	# Also fix the service configuration to now run HttpAdaptor on port 8280
	sed -e 's/8180/8280/' \
		$(ONMSSVR)/etc/opennms/service-configuration.xml >\
		$(ONMSSVR)/etc/opennms/service-configuration.xml.tmp
	mv $(ONMSSVR)/etc/opennms/service-configuration.xml.tmp \
		$(ONMSSVR)/etc/opennms/service-configuration.xml

	# Fix permissions and ownership
	chgrp -R nogroup $(ONMSSVR)/etc/opennms
	chmod 664 $(ONMSSVR)/etc/opennms/*
	chmod 660 $(ONMSSVR)/etc/opennms/users.xml \
		$(ONMSSVR)/etc/opennms/groups.xml \
		$(ONMSSVR)/etc/opennms/snmp-config.xml \
		$(ONMSSVR)/etc/opennms/opennms-database.xml \
		$(ONMSSVR)/etc/opennms/magic-users.properties \
		$(ONMSSVR)/etc/opennms/vulnscand-configuration.xml
	chmod 2775 $(ONMSSVR)/etc/opennms $(ONMSSVR)/etc/opennms/events
	chmod 755 $(ONMSSVR)/usr/sbin/opennms
	chmod 644 $(ONMSSVR)/usr/share/opennms/lib/*.jar

	##
	## Setup the opennms-webapp package
	##
	mv $(TMP)/usr/share/java/webapps/opennms \
		$(ONMSWEB)/usr/share/java/webapps/
#	mv $(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml \
#		$(ONMSWEB)/etc/opennms/
	install -m 644 $(CURDIR)/debian/opennms-webapp.overrides \
		$(ONMSWEB)/usr/share/lintian/overrides/opennms-webapp
	install -m 644 $(CURDIR)/debian/tomcat.policy \
		$(ONMSWEB)/etc/tomcat4/policy.d/opennms.policy

	# Fix tomcat port number for Debian standard tomcat4 8180
#	sed -e 's/localhost:8080/localhost:8180/g' \
#		$(ONMSWEB)/etc/opennms/web.xml > \
#		$(ONMSWEB)/etc/opennms/web.xml.tmp
#	mv $(ONMSWEB)/etc/opennms/web.xml.tmp $(ONMSWEB)/etc/opennms/web.xml
	sed -e 's/localhost:8080/localhost:8180/g' \
		$(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml > \
		$(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml.tmp
	mv $(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml.tmp \
		$(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml

	# Fix permissions and ownership
	chgrp -R nogroup $(ONMSWEB)/etc/opennms
	chmod 2775 $(ONMSWEB)/etc/opennms
	chmod 660 $(ONMSWEB)/usr/share/java/webapps/opennms/WEB-INF/web.xml
	chmod 644 $(ONMSWEB)/etc/tomcat4/policy.d/opennms.policy

	##
	## Setup the opennms-doc package
	##
	cp -a $(CURDIR)/work/docs/* $(ONMSDOC)/usr/share/doc/opennms-doc/


# Build architecture-independent files here.
binary-indep: build install
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
#	dh_installdebconf	
	dh_installdocs
	dh_installinit -n --init-script=opennms
	dh_installman
	dh_installchangelogs CHANGELOG
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs -n
	dh_installdeb
	dh_perl debian/opennms-common/usr/share/opennms/bin debian/opennms-contrib/usr/share/opennms/contrib
	-dh_shlibdeps
	dh_gencontrol
	dh_md5sums
	dh_builddeb

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