#!/usr/bin/make -f
# Made with the aid of debhelper by Joey Hess,
# based on the sample debian/rules file for GNU hello by Ian Jackson.
#
# This is free software; see the GNU General Public Licence
# version 2 or later for copying conditions.  There is NO warranty.
#
# Currently maintained by Anthony Fok <foka@debian.org>
# for Debian GNU/Linux.

package = lilypond

SHELL = /bin/sh
r = debian/$(package)
r_doc = debian/$(package)-doc
d = usr/share/doc/$(package)

# "main_memory = 263000" in /etc/texmf/texmf.cnf isn't large enough
# for latex to process standchen.dvi.latex, so adding extra_mem_* ...
export extra_mem_top = 100000
export extra_mem_bot = 100000
export MODE = ljfour
export BDPI = 600
export USER_CFLAGS = -DDEBIAN
export DEB_BUILD = yes
export MAILADDRESS = lilypond@packages.debian.org

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

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

# This has to be exported to make some magic below work.
export DH_OPTIONS

build: build-stamp
build-stamp:
	dh_testdir

	./configure --enable-checking --disable-debugging \
		--prefix=/usr --enable-optimise \
		--infodir='$${prefix}/share/info' \
		--mandir='$${prefix}/share/man'
	$(MAKE)

	touch build-stamp

build-doc: build build-doc-stamp
build-doc-stamp:
	dh_testdir

	$(MAKE) -C Documentation
	$(MAKE) web

	touch build-doc-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp build-doc-stamp
	-$(MAKE) WWW-clean top-WWW-clean
	-$(MAKE) distclean

	# Still not clean enough?  Let's use... BRUTE STRENGTH!  :-)
	find . -type d -name 'out' -o -name 'out-www' | xargs rm -rf
	rm -f debian/doc-base debian/TODO

	dh_clean

install: DH_OPTIONS=
install: build
	dh_testdir
	dh_testroot
	dh_clean -k

	# Add here commands to install the package into debian/tmp.
	dh_installdirs
	$(MAKE) prefix=$(PWD)/$(r)/usr install

	# Change from an absolute symlink to a relative symlink (Lintian)
	if [ -L $(r)/usr/share/lilypond/cmtfm ]; then \
		rm -f $(r)/usr/share/lilypond/cmtfm; \
		ln -s ../texmf/fonts/tfm/public/cm $(r)/usr/share/lilypond/cmtfm; \
	fi

# Build architecture-independent files here.
binary-indep: DH_OPTIONS=-i
binary-indep: build-doc install
	dh_testdir
	dh_testroot
	# Extract LilyPond website tarball ...
	tar -C $(r_doc)/$(d)/html -xvzf out/web.tar.gz
	# Add symlinks to the PostScript docs and LilyPond logo PNGs ...
	cd $(r_doc)/$(d) \
	    && cp -s `find html/Documentation -name '*.ps.gz'` . \
	    && cp -s html/Documentation/pictures/out-www/*.png .
	# Copy the DVI docs too ...
	cp -a `find Documentation -name '*.dvi' ! -name 'lily-[0-9]*.dvi'` \
		$(r_doc)/$(d)/
	dh_installdocs
	dh_installchangelogs
	dh_link
	dh_compress -Xusr/share/doc/lilypond/html/
	dh_fixperms
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-arch: DH_OPTIONS=-a
binary-arch: build install
	dh_testdir
	dh_testroot
	cp -av lilypond-mode.el lilypond-font-lock.el \
		$(r)/usr/share/emacs/site-lisp/
	dh_installdocs DEDICATION NEWS ROADMAP *.txt

#	dh_installdocs DEDICATION NEWS ROADMAP *.txt \
#		Documentation/pictures/out/*.png
#		Documentation/out/*.txt
#		$(DVI_FILES) $(PS_FILES)
#	mkdir $(r)/$(d)/bibliography $(r)/$(d)/misc
#	cp -a Documentation/bibliography/*.bib $(r)/$(d)/bibliography/
#	cp -a Documentation/misc/[ACN]* $(r)/$(d)/misc/

#	dh_installexamples input
	cp -aP `find input mutopia \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \)` \
		$(r)/$(d)/examples
	for i in `find $(r)/$(d)/examples/ -type d -name out`; do \
		mv -fv $$i/* $$i/..; rmdir $$i; done
#	dh_installmenu
	dh_installemacsen
#	dh_installcron
#	dh_installman
#	dh_undocumented
	dh_installchangelogs -k CHANGES
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_installdeb
	dh_shlibdeps
	dh_gencontrol
#	dh_makeshlibs
	dh_md5sums
	dh_builddeb

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