#!/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.
+# 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.
SHELL = /bin/sh
r = debian/$(package)
-TMP = $(PWD)/$(r)
+r_data = debian/$(package)-data
+r_doc = debian/$(package)-doc
d = usr/share/doc/$(package)
-TELY_FILES := $(notdir $(wildcard Documentation/user/*.tely))
-DVI_FILES = $(addprefix Documentation/user/out/, $(TELY_FILES:.tely=.dvi))
-PS_FILES = $(DVI_FILES:.dvi=.ps)
-export MODE=ljfour
-export BDPI=600
+# since I'm building this a few times on my 8-way machine, try to
+# build it faster
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+ MAKEFLAGS += -j$(NUMJOBS) CPU_COUNT=$(NUMJOBS)
+endif
+
+
+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
+
+# fontconfig blows chunks if it can't write $HOME; and some buildd's
+# set it to a bogus value.
+export HOME = /tmp
# 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-stamp:
dh_testdir
- ./configure --enable-checking --disable-debugging \
- --enable-printing --prefix=/usr --enable-optimise \
- --enable-shared \
+ cp -f /usr/share/misc/config.guess /usr/share/misc/config.sub ./stepmake/bin/
+ ./configure --disable-checking --enable-debugging \
+ --prefix=/usr --enable-optimising \
--infodir='$${prefix}/share/info' \
--mandir='$${prefix}/share/man'
- $(MAKE) USER_CFLAGS=-DDEBIAN all
- $(MAKE) -C Documentation/user dvi ps
- $(MAKE) -C Documentation/pictures pngs
+ $(MAKE)
+ # ignore test failures on architectures which aren't i386 or
+ # amd64 until we properly fix failures when /dev/tty doesn't
+ # exist (#572290)
+ if dpkg-architecture -eamd64 || dpkg-architecture -ei386; then \
+ $(MAKE) test; \
+ else \
+ $(MAKE) test || true; \
+ fi;
touch build-stamp
+build-doc: build build-doc-stamp
+build-doc-stamp:
+ dh_testdir
+
+ # make html
+ # unfortunatly, this does not work well with multiple processors
+ $(MAKE) -j1 doc WEB_TARGETS="offline"
+ # make info
+ $(MAKE) info
+
+ touch build-doc-stamp
+
clean:
dh_testdir
dh_testroot
- rm -f build-stamp
- -$(MAKE) distclean
- dh_clean
+ rm -f build-stamp build-doc-stamp
+ [ ! -f Makefile ] || $(MAKE) web-clean
+ [ ! -f Makefile ] || $(MAKE) distclean
+ rm -f lib/python
+ rm -f ./stepmake/bin/config.guess ./stepmake/bin/config.guess.sub
+
+ # Still not clean enough? Let's use... BRUTE STRENGTH! :-)
+ find . -type d -name 'out' -o -name 'out-www' | xargs rm -rf
+ rm -f buildscripts/*.pyc
+ 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
+ rm -f debian/lilypond-data.doc-base debian/lilypond.doc-base
+ rm -f GNUmakefile config.log config.make config.status config.hh
- # Correct the owner of the out/dummy.dep files when built with sudo.
- if [ -n "$$SUDO_USER" -a -n "$$SUDO_GID" ]; then \
- find . -user root | xargs -r chown --dereference $$SUDO_USER.$$SUDO_GID; \
- fi
+ dh_clean
install: DH_OPTIONS=
install: build
dh_testdir
dh_testroot
dh_clean -k
- dh_installdirs usr/share/doc/texmf \
- $(d)/examples \
- usr/share/emacs/site-lisp \
- usr/share/texmf/tex \
- usr/share/texmf/fonts/source/public \
- usr/share/texmf/fonts/afm/public \
- usr/share/texmf/fonts/tfm/public
- ln -fs ../$(package) $(r)/usr/share/doc/texmf/lilypond
-
- $(MAKE) prefix=$(TMP)/usr USER_CFLAGS=-DDEBIAN install
-
- ln -s ../../lilypond/tex $(r)/usr/share/texmf/tex/lilypond
- ln -s ../../../../lilypond/mf $(r)/usr/share/texmf/fonts/source/public/lilypond
- ln -s ../../../../lilypond/afm $(r)/usr/share/texmf/fonts/afm/public/lilypond
- ln -s ../../../../lilypond/tfm $(r)/usr/share/texmf/fonts/tfm/public/lilypond
-
- # 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
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp.
+ $(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
+
+ dh_install --sourcedir=debian/tmp --list-missing
# Build architecture-independent files here.
binary-indep: DH_OPTIONS=-i
-binary-indep: build install
+binary-indep: build-doc install
dh_testdir
dh_testroot
+ # Install LilyPond web documentation...
+ $(MAKE) install-doc prefix=$(CURDIR)/debian/lilypond-doc/usr/
+ # it installs a random dir-dep file for no reason
+ rm -f $(CURDIR)/debian/lilypond-doc/usr/share/info/*-dir-dep*
+
dh_installdocs
+ find $(CURDIR)/debian/lilypond-doc/usr/share/doc/lilypond/html \
+ -type d -empty -delete
+ dh_installemacsen
+
+ #find input \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \) ! -regex '.*/out-www/.*' \
+ # -exec cp -a --parents '{}' $(r_data)/$(d)/examples ';'
+ install -m 644 debian/xiao-haizi-guai-guai.ly debian/sakura-sakura.ly \
+ $(r_data)/$(d)/examples
dh_installchangelogs
- dh_link
- dh_compress
+
+# mv $(r_data)/usr/share/lilypond/$(VERSION)/fonts/map/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_pysupport /usr/share/lilypond/${VERSION}/python
+
+ dh_compress -X$(d)/html/
dh_fixperms
dh_installdeb
dh_gencontrol
dh_md5sums
dh_builddeb
-binary-arch: DH_OPTIONS=-a
+binary-arch: DH_OPTIONS=-s
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 \
- 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_installdocs AUTHORS.txt NEWS.txt README.txt \
+ DEDICATION THANKS
+
+
dh_installemacsen
-# dh_installcron
-# dh_installmanpages
-# dh_undocumented
- dh_installchangelogs -k CHANGES
- dh_link
+ dh_installchangelogs Documentation/misc/CHANGES* Documentation/misc/ChangeLog*
+
dh_strip
dh_compress
dh_fixperms
dh_installdeb
dh_shlibdeps
dh_gencontrol
-# dh_makeshlibs
dh_md5sums
dh_builddeb