#!/usr/bin/make -f
#
# Copyright 2000,2001,2002,2003,2005,2006 by Stefan Hornburg (Racke) <racke@linuxia.de>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA  02111-1307  USA.

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

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

ifndef PERL
	PERL = /usr/bin/perl
endif
TMP = $(shell pwd)/debian/tmp

APXS=/usr/bin/apxs

# (From mod-perl packaging)
DEV_DPKG_VERSION := $(shell dpkg -s apache-dev | awk '/Version:/ {print $2}')
DEV_VERSION := $(shell echo $(DEV_DPKG_VERSION) | sed "s/^Version: \(.*\)-.*$$/\1/")
IC_VERSION := $(shell dpkg-parsechangelog | perl -ne 'print $$1 if /^Version: (.*?)-(.*)$$/')
IC_MAJOR_VERSION := $(shell dpkg-parsechangelog | perl -ne 'print $$1 if /^Version: (\d+\.\d+)(.*?)-(.*)$$/')

build: build-stamp
build-stamp:
	dh_testdir

# Compile main stuff
	touch _allow_threads
	env $(PERL) Makefile.PL force=1 \
		INTERCHANGE_USER=interchange \
		PREFIX=/usr/lib/interchange
	$(MAKE)
	pod2man	debian/interchangeconfig > blib/man1/interchangeconfig.1p
	pod2man eg/te > blib/man1/te.1p

# Compile mod_interchange
	$(MAKE) -C dist/src/mod_interchange

	touch build-stamp

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

	# Add here commands to clean up after the build process.
	-$(MAKE) clean
	-$(MAKE) -C dist/src/mod_interchange clean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

# Add here commands to install the package into debian/tmp.
	env MINIVEND_FORCE_THREADS=1 $(MAKE) install PREFIX=$(TMP)/usr INSTALLARCHLIB=$(TMP)/usr/lib/interchange INSTALLPRIVLIB=$(TMP)/usr/lib/interchange INSTALLMAN1DIR=$(TMP)/usr/share/man/man1 INSTALLMAN3DIR=$(TMP)/usr/share/man/man3 INSTALLSCRIPT=$(TMP)/usr/lib/interchange/bin NOCPANINSTALL=1 INTERCHANGE_USER=interchange

# Sample configuration file not needed (code in interchange.PL
# to determine configuration file location will stop to work too)
	rm $(TMP)/usr/lib/interchange/interchange.cfg.dist
# Create symbolic link for the configuration files. Makes
# more sense than script hacking.
	ln -s /etc/interchange/interchange.cfg $(TMP)/usr/lib/interchange
	mkdir -p $(TMP)/etc/interchange
	mv $(TMP)/usr/lib/interchange/etc/jobs $(TMP)/etc/interchange/jobs
	rm -r $(TMP)/usr/lib/interchange/etc
	ln -s /etc/interchange $(TMP)/usr/lib/interchange/etc
# Setup wrapper and config script
	mkdir -p $(TMP)/usr/sbin
	cp debian/interchange.wrapper $(TMP)/usr/sbin/interchange
	cp debian/interchangeconfig $(TMP)/usr/sbin/interchangeconfig
	mkdir -p $(TMP)/usr/bin
	cp debian/makecat.wrapper $(TMP)/usr/bin/makecat
	cp eg/te $(TMP)/usr/bin
	chmod +x $(TMP)/usr/sbin/interchange $(TMP)/usr/sbin/interchangeconfig \
		$(TMP)/usr/bin/makecat $(TMP)/usr/bin/te
# Setup configuration directory
	mkdir -p $(TMP)/etc/interchange/
	cp debian/interchange.cfg debian/catalogs.cfg debian/makecat.cfg \
		debian/robots.cfg $(TMP)/etc/interchange    
# build Interchange control program(s)
	mkdir -p $(TMP)/usr/lib/cgi-bin/ic
	$(PERL) scripts/compile_link \
		--socket=/var/run/interchange/interchange.sock \
		--port=7786 \
		--host=127.0.0.1 \
		--source=dist/src \
		--build=$(TMP)/usr/lib/cgi-bin/ic
	cd $(TMP)/usr/lib/cgi-bin/ic; rm compile.pl config* mod_perl_tlink.pl mvctl.c syscfg* testcgi tlink.* vlink.* cpan_local_install
# Add link sources
	mkdir -p $(TMP)/usr/lib/interchange/src
	for file in dist/src/*; do if test -f $$file; then cp $$file $(TMP)/usr/lib/interchange/src; fi; done
# UI images and stuff
	mkdir -p $(TMP)/var/www/interchange-5
	for dir in $(TMP)/usr/lib/interchange/share/interchange-5/*; do mv $$dir $(TMP)/var/www/interchange-5; done
	chmod -x -R $(TMP)/var/www/interchange-5
	rm -r $(TMP)/usr/lib/interchange/share/interchange-5
# mod_interchange
	mkdir -p $(TMP)/usr/lib/apache/1.3
	(cd dist/src/mod_interchange; $(APXS) -i -S LIBEXECDIR=$(TMP)/usr/lib/apache/1.3 -n interchange mod_interchange.so)
	cp debian/400mod_interchange.info $(TMP)/usr/lib/apache/1.3
# remove unneeded stuff
	rm $(TMP)/usr/lib/interchange/error.log
	rm $(TMP)/usr/lib/interchange/*.pl
	rm $(TMP)/usr/lib/interchange/_session_storable
	rm $(TMP)/usr/lib/interchange/_uid
	rm -rf $(TMP)/usr/lib/interchange/auto/Interchange
# install logrotate configuration file
	install -m 0755 -d $(TMP)/etc/logrotate.d/
	install -m 0644 debian/interchange.logrotate $(TMP)/etc/logrotate.d/interchange
# install global usertags for standard demo
	mkdir -p $(TMP)/usr/lib/interchange/usertag/standard
	install -m 0755 dist/standard/config/*.tag $(TMP)/usr/lib/interchange/usertag/standard

# make VERSION file
	echo 'Variable MAJOR_VERSION $(IC_MAJOR_VERSION)' > $(TMP)/usr/lib/interchange/VERSION
	echo 'Variable VERSION $(IC_VERSION)' >> $(TMP)/usr/lib/interchange/VERSION
	dh_movefiles
	touch install-stamp

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot
	dh_installdebconf -i
	dh_installdocs -i -A README.debian
# no init.d script
# no cron scripts
	dh_installchangelogs -i
	dh_compress -i
	dh_fixperms -i
	dh_installdeb -i
	dh_shlibdeps -i
	dh_perl -i usr/lib/interchange
	dh_gencontrol -i -- -VTHISDEV="$(DEV_VERSION)"
	dh_md5sums -i
	dh_builddeb -i

# Build architecture-dependent files here.
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdebconf -a
	dh_installdocs -a -A README.debian
# install init.d script
	dh_installinit -a -- defaults 21 19
# install cron script
	dh_installcron -a
	dh_installchangelogs -a
	dh_strip -a
	dh_compress -a
	dh_fixperms -a
	# You may want to make some executables suid here.
	dh_installdeb -a
	dh_shlibdeps -a
	dh_perl -a usr/lib/interchange
	dh_gencontrol -a -- -VTHISDEV="$(DEV_VERSION)"
	dh_md5sums -a
	dh_builddeb -a

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