fd63991f0783e9aeecd7ede8409482c23f93ea00
[services/dpkg.git] / scripts / Makefile.am
1 ## Process this file with automake to produce Makefile.in
2
3 SUBDIRS = mk po
4
5 bin_SCRIPTS = \
6         dpkg-architecture \
7         dpkg-buildflags \
8         dpkg-buildpackage \
9         dpkg-checkbuilddeps \
10         dpkg-distaddfile \
11         dpkg-genchanges \
12         dpkg-gencontrol \
13         dpkg-gensymbols \
14         dpkg-maintscript-helper \
15         dpkg-mergechangelogs \
16         dpkg-name \
17         dpkg-parsechangelog \
18         dpkg-scanpackages \
19         dpkg-scansources \
20         dpkg-shlibdeps \
21         dpkg-source \
22         dpkg-vendor
23
24 changelogdir = $(pkglibdir)/parsechangelog
25 changelog_SCRIPTS = \
26         changelog/debian
27
28 EXTRA_DIST = \
29         dpkg-architecture.pl \
30         dpkg-buildflags.pl \
31         dpkg-buildpackage.pl \
32         dpkg-checkbuilddeps.pl \
33         dpkg-distaddfile.pl \
34         dpkg-genchanges.pl \
35         dpkg-gencontrol.pl \
36         dpkg-gensymbols.pl \
37         dpkg-maintscript-helper.sh \
38         dpkg-mergechangelogs.pl \
39         dpkg-name.pl \
40         dpkg-parsechangelog.pl \
41         dpkg-scanpackages.pl \
42         dpkg-scansources.pl \
43         dpkg-shlibdeps.pl \
44         dpkg-source.pl \
45         dpkg-vendor.pl \
46         changelog/debian.pl \
47         $(test_cases) \
48         $(test_data)
49
50
51 CLEANFILES = \
52         $(test_data_objects) \
53         $(bin_SCRIPTS) $(changelog_SCRIPTS)
54
55 perllibdir = $(PERL_LIBDIR)
56 nobase_dist_perllib_DATA = \
57         Dpkg/Arch.pm \
58         Dpkg/BuildEnv.pm \
59         Dpkg/BuildFlags.pm \
60         Dpkg/BuildOptions.pm \
61         Dpkg/Changelog.pm \
62         Dpkg/Changelog/Debian.pm \
63         Dpkg/Changelog/Entry.pm \
64         Dpkg/Changelog/Entry/Debian.pm \
65         Dpkg/Changelog/Parse.pm \
66         Dpkg/Checksums.pm \
67         Dpkg/Compression.pm \
68         Dpkg/Compression/FileHandle.pm \
69         Dpkg/Compression/Process.pm \
70         Dpkg/Conf.pm \
71         Dpkg/Control.pm \
72         Dpkg/Control/Changelog.pm \
73         Dpkg/Control/Fields.pm \
74         Dpkg/Control/Info.pm \
75         Dpkg/Control/Hash.pm \
76         Dpkg/Control/Types.pm \
77         Dpkg/Deps.pm \
78         Dpkg/ErrorHandling.pm \
79         Dpkg/Exit.pm \
80         Dpkg/File.pm \
81         Dpkg/Gettext.pm \
82         Dpkg/Index.pm \
83         Dpkg/Interface/Storable.pm \
84         Dpkg/IPC.pm \
85         Dpkg/Package.pm \
86         Dpkg/Path.pm \
87         Dpkg/Shlibs.pm \
88         Dpkg/Shlibs/Objdump.pm \
89         Dpkg/Shlibs/Symbol.pm \
90         Dpkg/Shlibs/SymbolFile.pm \
91         Dpkg/Shlibs/Cppfilt.pm \
92         Dpkg/Source/Archive.pm \
93         Dpkg/Source/Functions.pm \
94         Dpkg/Source/Package.pm \
95         Dpkg/Source/Package/V1.pm \
96         Dpkg/Source/Package/V2.pm \
97         Dpkg/Source/Package/V3/bzr.pm \
98         Dpkg/Source/Package/V3/custom.pm \
99         Dpkg/Source/Package/V3/native.pm \
100         Dpkg/Source/Package/V3/git.pm \
101         Dpkg/Source/Package/V3/quilt.pm \
102         Dpkg/Source/Patch.pm \
103         Dpkg/Source/Quilt.pm \
104         Dpkg/Substvars.pm \
105         Dpkg/Vars.pm \
106         Dpkg/Vendor.pm \
107         Dpkg/Vendor/Debian.pm \
108         Dpkg/Vendor/Default.pm \
109         Dpkg/Vendor/Ubuntu.pm \
110         Dpkg/Version.pm \
111         Dpkg.pm
112
113 # Keep it even if empty to have man3dir correctly set
114 man3_MANS =
115
116 do_perl_subst = $(AM_V_GEN) \
117                 sed -e "s:^\#![[:space:]]*/usr/bin/perl:\#!$(PERL):" \
118                     -e "s:\$$dpkglibdir[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$dpkglibdir=\"$(pkglibdir)\":" \
119                     -e "s:\$$pkgdatadir[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$pkgdatadir=\"$(pkgdatadir)\":" \
120                     -e "s:\$$admindir[[:space:]]*=[[:space:]]*['\"][^'\"]*['\"]:\$$admindir=\"$(admindir)\":" \
121                     -e "s:\$$version[[:space:]]*=[[:space:]]*['\"][^'\"]*[\"']:\$$version=\"$(PACKAGE_VERSION)\":"
122
123 do_shell_subst = $(AM_V_GEN) \
124                  sed -e "s:^version[[:space:]]*=[[:space:]]*['\"][^'\"]*[\"']:version=\"$(PACKAGE_VERSION)\":"
125
126 %: %.pl Makefile
127         @test -d `dirname $@` || $(MKDIR_P) `dirname $@`
128         $(do_perl_subst) <$< >$@
129         $(AM_V_at) chmod +x $@
130
131 %: %.sh Makefile
132         @test -d `dirname $@` || $(MKDIR_P) `dirname $@`
133         $(do_shell_subst) <$< >$@
134         $(AM_V_at) chmod +x $@
135
136 install-data-local:
137 if BUILD_POD_DOC
138 # Install manual pages for perl modules manually as make can't deal
139 # properly with filenames containing colons
140 # Remove empty manual pages (perl modules not documented)
141         $(MKDIR_P) $(DESTDIR)$(man3dir)
142         for module in $(nobase_dist_perllib_DATA); do \
143             name=`echo $$module | sed -e 's|/|::|g' -e 's/\.pm$$//'`; \
144             $(POD2MAN) --center=libdpkg-perl --release=$(VERSION) \
145                 --name="$$name" --section=3 $(srcdir)/$$module \
146                 >$(DESTDIR)$(man3dir)/$$name.3; \
147             test -s $(DESTDIR)$(man3dir)/$$name.3 || \
148                 rm -f $(DESTDIR)$(man3dir)/$$name.3; \
149         done
150 endif
151
152 # Ideally we'd use 'sed -i', but unfortunately that's not portable.
153 install-data-hook:
154         cp -p $(DESTDIR)$(perllibdir)/Dpkg.pm \
155               $(DESTDIR)$(perllibdir)/Dpkg.pm.tmp
156         $(do_perl_subst) <$(DESTDIR)$(perllibdir)/Dpkg.pm.tmp \
157                          >$(DESTDIR)$(perllibdir)/Dpkg.pm
158         rm $(DESTDIR)$(perllibdir)/Dpkg.pm.tmp
159
160 uninstall-local:
161 if BUILD_POD_DOC
162         for module in $(nobase_dist_perllib_DATA); do \
163             rm -f $(DESTDIR)$(man3dir)/`echo $$module | sed -e 's|/|::|g' -e 's/\.pm$$/.3/'`; \
164         done
165 endif
166
167 coverage: check
168         $(PERL_COVER) -silent \
169           -ignore_re '^t/.*\.t' \
170           -outputdir $(top_builddir)/doc/coverage/scripts
171
172 coverage-clean:
173         rm -rf cover_db
174
175 TEST_VERBOSE= 0
176 TEST_ENV_VARS = \
177         DPKG_DATADIR=$(srcdir)/.. \
178         DPKG_ORIGINS_DIR=$(srcdir)/t/origins
179 TEST_COVERAGE = $(PERL_COVERAGE)
180
181 test_tmpdir = t.tmp
182
183 test_cases = \
184         t/000_pod.t \
185         t/100_Dpkg_Version.t \
186         t/150_Dpkg_Package.t \
187         t/190_Dpkg_Shlibs_Cppfilt.t \
188         t/200_Dpkg_Shlibs.t \
189         t/300_Dpkg_BuildOptions.t \
190         t/400_Dpkg_Deps.t \
191         t/500_Dpkg_Path.t \
192         t/600_Dpkg_Changelog.t \
193         t/600_Dpkg_Changelog_Ubuntu.t \
194         t/700_Dpkg_Control.t \
195         t/750_Dpkg_Substvars.t \
196         t/800_Dpkg_IPC.t \
197         t/850_Dpkg_Compression.t \
198         t/910_merge_changelogs.t
199
200 test_data = \
201         t/200_Dpkg_Shlibs/symbols.fake-1 \
202         t/200_Dpkg_Shlibs/symbols.fake-2 \
203         t/200_Dpkg_Shlibs/symbols.fake-3 \
204         t/200_Dpkg_Shlibs/symbols.include-1 \
205         t/200_Dpkg_Shlibs/symbols.include-2 \
206         t/200_Dpkg_Shlibs/symbols.include-3 \
207         t/200_Dpkg_Shlibs/basictags.symbols \
208         t/200_Dpkg_Shlibs/basictags.c \
209         t/200_Dpkg_Shlibs/patterns.symbols \
210         t/200_Dpkg_Shlibs/patterns.cpp \
211         t/200_Dpkg_Shlibs/patterns.map \
212         t/200_Dpkg_Shlibs/ld.so.conf \
213         t/200_Dpkg_Shlibs/ld.so.conf_2 \
214         t/200_Dpkg_Shlibs/ld.so.conf.d/normal.conf \
215         t/200_Dpkg_Shlibs/ld.so.conf.d/inf_recurse.conf \
216         t/200_Dpkg_Shlibs/ld.so.conf.d/recursive.conf \
217         t/200_Dpkg_Shlibs/objdump.space \
218         t/200_Dpkg_Shlibs/objdump.basictags-amd64 \
219         t/200_Dpkg_Shlibs/objdump.basictags-i386 \
220         t/200_Dpkg_Shlibs/objdump.patterns \
221         t/200_Dpkg_Shlibs/objdump.glib-ia64 \
222         t/200_Dpkg_Shlibs/objdump.libc6-2.3 \
223         t/200_Dpkg_Shlibs/objdump.libc6-2.6 \
224         t/200_Dpkg_Shlibs/objdump.dbd-pg \
225         t/200_Dpkg_Shlibs/objdump.ls \
226         t/600_Dpkg_Changelog/countme \
227         t/600_Dpkg_Changelog/fields \
228         t/600_Dpkg_Changelog/misplaced-tz \
229         t/600_Dpkg_Changelog/regressions \
230         t/600_Dpkg_Changelog/shadow \
231         t/700_Dpkg_Control/control-1 \
232         t/700_Dpkg_Control/bogus-unsigned.dsc \
233         t/700_Dpkg_Control/bogus-armor-double.dsc \
234         t/700_Dpkg_Control/bogus-armor-no-sig.dsc \
235         t/700_Dpkg_Control/bogus-armor-trail.dsc \
236         t/700_Dpkg_Control/bogus-armor-inline.dsc \
237         t/700_Dpkg_Control/bogus-armor-nested.dsc \
238         t/700_Dpkg_Control/bogus-armor-spaces.dsc \
239         t/750_Dpkg_Substvars/substvars1 \
240         t/910_merge_changelogs/ch-old \
241         t/910_merge_changelogs/ch-a \
242         t/910_merge_changelogs/ch-b \
243         t/910_merge_changelogs/ch-badver-a \
244         t/910_merge_changelogs/ch-badver-b \
245         t/910_merge_changelogs/ch-badver-merged \
246         t/910_merge_changelogs/ch-badver-old \
247         t/910_merge_changelogs/ch-merged \
248         t/910_merge_changelogs/ch-merged-basic \
249         t/910_merge_changelogs/ch-merged-pr \
250         t/910_merge_changelogs/ch-merged-pr-basic \
251         t/origins/debian \
252         t/origins/default \
253         t/origins/ubuntu
254
255 test_data_objects = \
256         t/200_Dpkg_Shlibs/libobjdump.basictags-amd64.so \
257         t/200_Dpkg_Shlibs/libobjdump.basictags-i386.so \
258         t/200_Dpkg_Shlibs/libobjdump.patterns.so
259
260 $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.basictags-amd64.so: $(srcdir)/t/200_Dpkg_Shlibs/basictags.c
261         $(CC) $(CFLAGS) -shared -fPIC -Wl,-soname -Wl,libbasictags.so.1 $< \
262           -DAMD64 -o $@
263
264 $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.basictags-i386.so: $(srcdir)/t/200_Dpkg_Shlibs/basictags.c
265         $(CC) $(CFLAGS) -shared -fPIC -Wl,-soname -Wl,libbasictags.so.1 $< \
266           -o $@
267
268 $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.patterns.so: $(srcdir)/t/200_Dpkg_Shlibs/patterns.cpp $(srcdir)/t/200_Dpkg_Shlibs/patterns.map
269         $(CXX) $(CXXFLAGS) -shared -fPIC -Wl,-soname -Wl,libpatterns.so.1 \
270             -Wl,--version-script=$(srcdir)/t/200_Dpkg_Shlibs/patterns.map $< \
271             -o $@
272
273 .PHONY: refresh-test-data
274
275 OBJDUMP = objdump -w -f -p -T -R
276
277 refresh-test-data: $(test_data_objects)
278         $(OBJDUMP) $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.basictags-amd64.so \
279           >$(srcdir)/t/200_Dpkg_Shlibs/objdump.basictags-amd64
280         $(OBJDUMP) $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.basictags-i386.so \
281           >$(srcdir)/t/200_Dpkg_Shlibs/objdump.basictags-i386
282         $(OBJDUMP) $(srcdir)/t/200_Dpkg_Shlibs/libobjdump.patterns.so \
283           >$(srcdir)/t/200_Dpkg_Shlibs/objdump.patterns
284         $(OBJDUMP) `which ls` >$(srcdir)/t/200_Dpkg_Shlibs/objdump.ls
285
286 include $(top_srcdir)/Makecheck.am
287
288 clean-local: check-clean coverage-clean
289         rm -fr man