File: rules

package info (click to toggle)
lilypond 2.24.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 70,260 kB
  • sloc: cpp: 87,910; lisp: 43,322; xml: 31,269; python: 22,956; sh: 4,090; yacc: 4,080; perl: 2,873; lex: 1,387; makefile: 76
file content (138 lines) | stat: -rwxr-xr-x 5,722 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/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.
#

include VERSION

export MAILADDRESS = lilypond@packages.debian.org

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),))
#  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

ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
	CPU_COUNT := $(firstword $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))))
	DOC_OPTIONS := -j$(CPU_COUNT) CPU_COUNT=$(CPU_COUNT)
endif
DOC_OPTIONS += WEB_TARGETS="offline"

# Do not use debhelper's autoreconf, the build currently
# fails with this option and we take care of that
# ourselves anyway.
%:
	dh $@ --without autoreconf --with python3

override_dh_auto_configure:
	./autogen.sh --noconfigure
	dh_auto_configure -- --disable-checking --enable-debugging $(config_opt)

execute_after_dh_auto_build-arch:
	$(MAKE) bytecode

execute_after_dh_auto_build-indep:
	$(MAKE) $(DOC_OPTIONS) doc

ifneq (,$(filter $(DEB_HOST_ARCH), hppa hurd-i386 kfreebsd-amd64 kfreebsd-i386))
override_dh_auto_test-arch:
	# Allow tests to fail on select architectures (since 2.20.0):
	#  * hppa: fails at snippet-names-e9c0d84b44e6ce39576ac3a756562e43.ly
	#  * kfreebsd-amd64 and kfreebsd-i386: missing imagemagick.q16 etc.
	#  * hurd-i386: certain tests fail with guile-1.8?
	-dh_auto_test -a
endif

## 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
	$(MAKE) --no-builtin-rules PACKAGE=LILYPOND package=lilypond -C scm install-bytecode $(DOC_OPTIONS) prefix=$(CURDIR)/debian/tmp/usr; \

## We need the non-Documentation arch-independent files installed by
## the arch-dependent "$(MAKE) install" too, hence the dependency
## on override_dh_auto_install-arch
override_dh_auto_install-indep: override_dh_auto_install-arch
	$(MAKE) install-doc $(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
	# It seems debian/move_info_images_from_html_doc and
	# debian/symlink_html_images_to_info_images are no longer needed
	# for LilyPond 2.21.82 and 2.22?
	#perl debian/move_info_images_from_html_doc $(CURDIR)/debian/tmp/usr/share/info/ $(CURDIR)/debian/tmp/usr/share/doc/lilypond/html/Documentation/
	#perl debian/symlink_html_images_to_info_images $(CURDIR)/debian/tmp/usr/share/info/lilypond
	perl debian/remove_w3c_callback $(CURDIR)/debian/tmp/usr/share/doc/lilypond/ $(CURDIR)/debian/tmp/usr/share/info/

## we need to install only the 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
execute_before_dh_install-indep:
	# Generate debian/lilypond-doc-html.install
	/bin/echo '# Generated during Debian package build; do not commit to git!' \
		> $(CURDIR)/debian/lilypond-doc-html.install
	/bin/echo -e 'usr/share/doc/lilypond/html/*/*/*.ly' \
		> $(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
	# Generate debian/lilypond-doc-pdf.install
	/bin/echo '# Generated during Debian package build; do not commit to git!' \
		> $(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

override_dh_python3:
	/usr/share/dh-python/dh_python3 --verbose
	/usr/share/dh-python/dh_python3 --verbose usr/share/lilypond/$(MAJOR_VERSION).$(MINOR_VERSION).$(PATCH_LEVEL)/python/

override_dh_compress:
	dh_compress -X.ly -X.pdf

override_dh_dwz-arch:
	dh_dwz -a -X/ccache/lily/

override_dh_strip-arch:
	dh_strip -a -X/ccache/lily/

execute_after_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

override_dh_auto_clean:
	dh_auto_clean --no-parallel
	-git restore configure || rm -f configure

## 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