X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Frules;h=bf8c1b240e3fefe0ee3571d0937bebfd3942304f;hb=e4998f970a834a267672b13e6636ebb81f96e961;hp=a1f112f953a9b2b72f8b6eddce633a29633241c3;hpb=0ba6b09d5fa86ccb3650888f0e92ddc8cc915007;p=lilypond.git diff --git a/debian/rules b/debian/rules index a1f112f953..bf8c1b240e 100755 --- a/debian/rules +++ b/debian/rules @@ -1,114 +1,112 @@ #!/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. # -# Currently maintained by Anthony Fok -# for Debian GNU/Linux. - -package = lilypond1.3 - -SHELL = /bin/sh -r = debian/tmp -TMP = `pwd`/debian/tmp -d = usr/share/doc/$(package) - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - -# This is the debhelper compatability version to use. -export DH_COMPAT=1 - -build: build-stamp -build-stamp: - dh_testdir - - ./configure --disable-checking --disable-debugging \ - --enable-printing --prefix=/usr --disable-optimise \ - --enable-shared \ - --infodir='$${prefix}/share/info' \ - --mandir='$${prefix}/share/man' - $(MAKE) all - $(MAKE) -C Documentation -# $(MAKE) -C Documentation/programmer ps - $(MAKE) -C Documentation/user ps - $(MAKE) -C Documentation/pictures pngs - - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp install-stamp - -$(MAKE) distclean - rm -f stepmake/stepmake/aclocal.m4 - dh_clean - - # 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 - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs usr/share/doc/texmf \ - usr/share/emacs/site-lisp \ - $(d)/examples \ - 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 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 - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -binary-arch: build install - dh_testdir - dh_testroot - cp -av lilypond-mode.el $(r)/usr/share/emacs/site-lisp - dh_installdocs DEDICATION TODO *.txt \ - Documentation/pictures/out/*.png \ - Documentation/out/*.txt \ - Documentation/*/out/[a-z]*.dvi \ - Documentation/*/out/*.ps - 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_installmanpages -# dh_undocumented - dh_installchangelogs -k CHANGES - dh_link - dh_strip - dh_compress - dh_fixperms -# dh_suidregister - 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 + +export MAILADDRESS = lilypond@packages.debian.org + +# fontconfig blows chunks if it can't write to $HOME; and some +# buildds set it to a bogus value. +export HOME = /tmp + +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) +CFLAGS := $(shell dpkg-buildflags --get CFLAGS) +CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) +ifneq (,$(filter $(DEB_HOST_ARCH), i386 kfreebsd-i386)) + config_opt = --disable-optimising + CFLAGS := $(filter-out -O%, $(CFLAGS)) + CXXFLAGS := $(filter-out -O%, $(CXXFLAGS)) +else +ifneq (,$(filter $(DEB_BUILD_OPTIONS),noopt)) + config_opt = --disable-optimising +else + config_opt = --enable-optimising +endif +endif + +DOC_OPTIONS := WEB_TARGETS="offline" +ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) + DOC_OPTIONS := $(DOC_OPTIONS) CPU_COUNT=$(firstword $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))) +endif + +%: + dh $@ --parallel --with autotools-dev --with python2 --with quilt + + +## we need to nuke the parser files, because if there is a mistmatch +## between upstreams bison and our bison, the build will fail epically +override_dh_auto_configure: + rm -f lily/out/parser.* + dh_auto_configure -- --disable-checking --enable-debugging $(config_opt) + +override_dh_auto_build-indep: + dh_auto_build + $(MAKE) doc $(DOC_OPTIONS) + +override_dh_auto_install-indep: + $(MAKE) install-doc $(DOC_OPTIONS) prefix=$(CURDIR)/debian/tmp/usr/ + $(MAKE) install-info $(DOC_OPTIONS) prefix=$(CURDIR)/debian/tmp/usr + rm -rf $(CURDIR)/debian/tmp/usr/share/omf + rm -rf $(CURDIR)/debian/tmp/usr/share/doc/lilypond/html/input + +## Unfortunately, lilypond is kind of broken, and installs the wrong +## info documentation (missing images) if we call their makefile +## directly. They also don't provide an install rule which doesn't +## install the documentation, which we don't care about for the +## architecture dependent build +override_dh_auto_install-arch: + for dir in `echo */*makefile|xargs -n 1 dirname|grep -v Documentation`; do \ + $(MAKE) --no-builtin-rules PACKAGE=LILYPOND package=lilypond -C $$dir install $(DOC_OPTIONS) prefix=$(CURDIR)/debian/tmp/usr/; \ + done; + +## we need to nuke the parser files, because if there is a mistmatch +## between upstreams bison and our bison, the build will fail epically +override_dh_auto_clean: + rm -f lily/out/parser.* + dh_auto_clean + +## we need to install only the png, jpg, css, ly and english html +## files into the doc-html package, and only the english pdfs into the +## doc-pdf package. Because dh_install doesn't support regexes, we'll +## use find to replace the contents of the .install file before we +## call dh_install +override_dh_install: + /bin/echo -e 'usr/share/doc/lilypond/html/*/*/*.ly\nusr/share/doc/lilypond/html/*/*/*.png' \ + > $(CURDIR)/debian/lilypond-doc-html.install + /bin/echo -e 'usr/share/doc/lilypond/html/*/*/*.jpg\nusr/share/doc/lilypond/html/*/*/*.css' \ + >> $(CURDIR)/debian/lilypond-doc-html.install + find $(CURDIR)/debian/tmp/ -type f \ + -regex '.*usr/share/doc/lilypond/.*/[^\.]+.html' \ + -printf '%P\n' >> $(CURDIR)/debian/lilypond-doc-html.install + /bin/echo -e ''> $(CURDIR)/debian/lilypond-doc-pdf.install + find $(CURDIR)/debian/tmp/ -type f \ + -regex '.*usr/share/doc/lilypond/.*/[^\.]+.pdf' \ + -printf '%P\n' >> $(CURDIR)/debian/lilypond-doc-pdf.install + find $(CURDIR)/debian/tmp/ -type f \ + -regex '.*usr/share/doc/lilypond/.*/[^\.]+.preview.pdf' \ + -printf '%P\n' >> $(CURDIR)/debian/lilypond-doc-pdf.install + dh_install --list-missing + +override_dh_python2: + dh_python2 + dh_python2 usr/share/lilypond/*/python/ + +override_dh_compress: + dh_compress -X.ly + +override_dh_installdocs: + dh_installdocs + for a in $(wildcard $(CURDIR)/debian/*.doc-base-special); do \ + package=`basename $$a .doc-base-special`; \ + install -d debian/$$package/usr/share/doc-base; \ + install -m0644 $$a debian/$$package/usr/share/doc-base/$$package; \ + done; + +## this rule will update debian/control and the per-language install +## files; all of the files it generates/modifies should be included in +## the Debian package and should not need to be regenerated or +## modified. +update-doc-packages: + perl debian/update_doc_packages