X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=debian%2Frules;h=fa4981a5ed2e5dca8c0e1020c8290dda36eedd01;hb=b4754939cc2c9aba292c9f29300893d89b6acd83;hp=bc9808489db94b52175f1079ff5527e3da24010e;hpb=e94d43329751aec3cfd2bd33a46ff437a3ba576a;p=lilypond.git diff --git a/debian/rules b/debian/rules old mode 100644 new mode 100755 index bc9808489d..fa4981a5ed --- a/debian/rules +++ b/debian/rules @@ -1,175 +1,100 @@ #!/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 = lilypond - -SHELL = /bin/sh -r = debian/$(package) -r_doc = debian/$(package)-doc -d = usr/share/doc/$(package) - -include VERSION -VERSION = $(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL) - -#export CC = gcc-3.2 -#export CXX = g++-3.2 -gcc_version = $(shell g++ --version 2>&1 \ - | grep '[0-9]\.[0-9]' | head -1 \ - | sed -e 's/.*[^-.0-9]\([0-9][0-9]*\.[0-9][.0-9]*\).*/\1/' \ - -e 's/^\([0-9]\+\).*/\1/') - -# "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 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 - - if [ "$(gcc_version)" = "3" ]; then ./lexer-gcc-3.1.sh; fi - CPPFLAGS=-I`pwd`/lily/out \ - ./configure --enable-checking --enable-debugging \ - --prefix=/usr --enable-optimise \ - --infodir='$${prefix}/share/info' \ - --mandir='$${prefix}/share/man' - if [ "$(gcc_version)" = "3" ]; then ./lexer-gcc-3.1.sh; fi - $(MAKE) MAKE_PFA_FILES=1 - - 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/lilypond.links - - 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 MAKE_PFA_FILES=1 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)/ +# 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 + config_opt = --enable-optimising +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 + + +override_dh_auto_configure: + 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 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/2.16.0/python/ + +override_dh_compress: + dh_compress -X.ly + +override_dh_installdocs: 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=-s -binary-arch: build install - dh_testdir - dh_testroot - cp -av lilypond-mode.el lilypond-font-lock.el lilypond-indent.el \ - lilypond.words $(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 - find input \( -name '*.*ly' -o -name '*.abc' -o -name '*.tex' -o -name 'TODO' \) \ - -exec cp -a --parents '{}' $(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 ChangeLog - 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)/dvips/lilypond.map \ - usr/share/texmf/dvips/config/lilypond.map - 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 + 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