#!/usr/bin/make -f
# debian/rules for LilyPond in Debian.
#
# 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_data = debian/$(package)-data
r_doc = debian/$(package)-doc
d = usr/share/doc/$(package)

include VERSION
VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)

# "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
# But now, building lilypond.dvi requires increased pool_size (2002-02-18)
# export pool_size = 500000
# But now, it seems that none of the above is needed in 1.4.11  (2002-02-24)
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 has to be exported to make some magic below work.
export DH_OPTIONS

build: build-stamp
build-stamp:
	dh_testdir

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

	touch build-stamp

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

	# make info
	$(MAKE) -C Documentation
	# make html
	$(MAKE) web
	$(MAKE) -C Documentation/user omf
#	find . -type d -name 'out-www' | xargs rm -rf

	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 lib/lilypond/python examples.html
	rm -f debian/emacsen-startup
	rm -f debian/lilypond1.7*.dirs debian/lilypond.dirs
	rm -f debian/postinst debian/prerm debian/postrm

	dh_clean

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

	# Add here commands to install the package into debian/tmp.
	$(MAKE) install prefix=$(CURDIR)/debian/tmp/usr MAKE_PFA_FILES=1

	dh_install --sourcedir=debian/tmp --list-missing

#	# 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
	# Install LilyPond web documentation...
	$(MAKE) prefix=$(PWD)/$(r_doc)/usr webdir=$(PWD)/$(r_doc)/$(d)/html out=www web-install
	# 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_installemacsen
	dh_scrollkeeper

	find input \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \) ! -regex '.*/out-www/.*' \
		-exec cp -a --parents '{}' $(r_data)/$(d)/examples ';'
	dh_installchangelogs

	mv $(r_data)/usr/share/lilypond/$(VERSION)/dvips/lilypond.map \
	   $(r_data)/etc/texmf/dvips/lilypond.map

	dh_link	usr/share/lilypond/$(VERSION)/tex \
			usr/share/texmf/tex/lilypond \
		usr/share/lilypond/$(VERSION)/fonts/source \
			usr/share/texmf/fonts/source/public/lilypond \
		usr/share/lilypond/$(VERSION)/fonts/afm \
			usr/share/texmf/fonts/afm/public/lilypond \
		usr/share/lilypond/$(VERSION)/fonts/tfm \
			usr/share/texmf/fonts/tfm/public/lilypond \
		usr/share/lilypond/$(VERSION)/fonts/type1 \
			usr/share/texmf/fonts/type1/public/lilypond \
		etc/texmf/dvips/lilypond.map \
			usr/share/lilypond/$(VERSION)/dvips/lilypond.map

	dh_compress -X$(d)/html/
	dh_fixperms
	dh_installdeb
	dh_gencontrol
	dh_md5sums
	dh_builddeb

binary-arch: DH_OPTIONS=-s
binary-arch: build install
	dh_testdir
	dh_testroot
	dh_installdocs AUTHORS.txt NEWS.txt README.txt \
		DEDICATION THANKS 

#	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

#	for i in `find $(r)/$(d)/examples/ -type d -name out`; do \
#		mv -fv $$i/* $$i/..; rmdir $$i; done

#	dh_installmenu
	dh_installemacsen
	dh_scrollkeeper
#	dh_installcron
#	dh_installman
#	dh_undocumented
	dh_installchangelogs ChangeLog

	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
