#!/usr/bin/make -f
# -*- mode: makefile; coding: utf-8 -*-
# Copyright © 2010, 2011 Jonas Smedegaard <dr@jones.dk>
# Description: Main Debian packaging script for Hydrogen
#
# 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, 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, see <http://www.gnu.org/licenses/>.

include /usr/share/cdbs/1/rules/upstream-tarball.mk
include /usr/share/cdbs/1/rules/utils.mk
include /usr/share/cdbs/1/class/scons.mk
include /usr/share/cdbs/1/rules/debhelper.mk

DEB_UPSTREAM_URL = http://downloads.sourceforge.net/hydrogen

DEB_COPYRIGHT_CHECK_IGNORE_REGEX = ^.*\.(flac|png|qm)|debian/(changelog|copyright(|_hints|_newhints))$

# according to upstream INSTALL.txt this avoids potential clash with Qt3
export QTDIR=/usr/share/qt4

DEB_SCONS_OPTIONS = libarchive=1 portaudio=1 portmidi=1 lash=1 prefix=/usr
DEB_SCONS_OPTIONS += optflags="$(CXXFLAGS)"

DEB_SCONS_INSTALL_OPTIONS = DESTDIR=$(DEB_DESTDIR)

DEB_INSTALL_MANPAGES_hydrogen = debian/hydrogen.1
DEB_INSTALL_EXAMPLES_hydrogen = extra/serverTools

# Put aside upstream-shipped autogenerated files during build
upstreamtmpfiles = $(wildcard data/doc/*.html data/doc/*.docbook)
upstreamtmpfiles_ = $(patsubst %.upstream,%,$(wildcard data/doc/*.html.upstream data/doc/*.docbook.upstream))
pre-build:: debian/stamp-upstreamtmpstuff
debian/stamp-upstreamtmpstuff: debian/stamp-copyright-check
	for file in $(upstreamtmpfiles); do \
		[ ! -e $$file ] || [ -e $$file.upstream ] || mv $$file $$file.upstream; \
	done
	touch $@
clean::
	for file in $(upstreamtmpfiles_); do \
		[ ! -e $$file.upstream ] || mv -f $$file.upstream $$file; \
	done
	rm -f debian/stamp-upstreamtmpstuff

common-build-indep:: debian/docs.stamp
debian/docs.stamp:
	$(MAKE) -C data/doc
	touch $@
clean::
	rm -f debian/docs.stamp

imgstub = data/img/gray/h2-icon
common-build-arch::
	#inkscape -z -e$(imgstub).png -D -w32 -h32 --export-area-snap $(imgstub).svg
	rsvg -w32 -h32 $(imgstub).svg $(imgstub).png
	pngtopnm -alpha $(imgstub).png > $(imgstub).alpha.pgm
	pngtopnm $(imgstub).png | ppmtoxpm -alphamask=$(imgstub).alpha.pgm > $(imgstub).xpm
	rm -f $(imgstub).png $(imgstub).alpha.pgm
clean::
	rm -f $(imgstub).xpm

# generate manpage based on --help of script itself
# TODO: make below rule work as part of main build
#common-post-build-arch:: debian/hydrogen.1
debian/hydrogen.1: hydrogen
	help2man --name="simple drum machine/step sequencer" --no-info --output=$@ $(DEB_SRCDIR)/$<
#clean::
#	rm -f debian/hydrogen.1

clean::
	rm -f qt4.pyc version.cpp config.h scache.conf
	rm -rf scons_cache

# Needed by upstream build process
CDBS_BUILD_DEPENDS += , libqt4-dev, libz-dev, pkg-config, libarchive-dev
CDBS_BUILD_DEPENDS += , docbook-utils, poxml, xmlto, libxml2-utils
CDBS_BUILD_DEPENDS += , libasound2-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386]
CDBS_BUILD_DEPENDS += , libaudiofile-dev, libjack-dev, liblrdf-dev, libsndfile1-dev (>= 1.0.18), portaudio19-dev, libportmidi-dev, liblash-dev

# Needed for our packaging
# TODO: build-depend on help2man when solved using it with normal builds
#CDBS_BUILD_DEPENDS += , librsvg2-bin, netpbm, help2man
CDBS_BUILD_DEPENDS += , librsvg2-bin, netpbm
