pmval: improve handling of shifting metric instances
[pcp.git] / debian / rules
blob6d4db96d7a18626ef5a0bfeb11af350a4c8721cd
1 #!/usr/bin/make -f
3 pcp = pcp
4 pcpcfg = pcp-conf
5 libpcp = libpcp3
6 libpcpdev = libpcp3-dev
7 libpcp_pmda = libpcp-pmda3
8 libpcp_pmdadev = libpcp-pmda3-dev
9 libpcp_pmda_perl = libpcp-pmda-perl
10 libpcp_import_perl = libpcp-import-perl
11 pcp_logsummary_perl = libpcp-logsummary-perl
12 libpcp_gui = libpcp-gui2
13 libpcp_guidev = libpcp-gui2-dev
14 libpcp_mmv = libpcp-mmv1
15 libpcp_mmvdev = libpcp-mmv1-dev
16 libpcp_mmv_perl = libpcp-mmv-perl
17 libpcp_trace = libpcp-trace2
18 libpcp_tracedev = libpcp-trace2-dev
19 libpcp_import = libpcp-import1
20 libpcp_importdev = libpcp-import1-dev
21 libpcp_web = libpcp_web1
22 libpcp_webdev = libpcp_web1-dev
23 pcp_import_sar = pcp-import-sar2pcp
24 pcp_import_ganglia = pcp-import-ganglia2pcp
25 pcp_import_mrtg = pcp-import-mrtg2pcp
26 pcp_import_sheet = pcp-import-sheet2pcp
27 pcp_import_iostat = pcp-import-iostat2pcp
28 pcp_import_collectl = pcp-import-collectl2pcp
29 pcp_export_graphite = pcp-export-pcp2graphite
30 pcp_export_influxdb = pcp-export-pcp2influxdb
31 pcp_export_zabbix = pcp-export-zabbix-agent
32 pcp_pmda_infiniband = pcp-pmda-infiniband
33 pcp_testsuite = pcp-testsuite
34 pcp_manager = pcp-manager
35 pcp_webapi = pcp-webapi
36 pcp_python2 = python-pcp
37 pcp_python3 = python3-pcp
38 pcpgui = pcp-gui
39 pcpdoc = pcp-doc
41 dirpcp = debian/$(pcp)
42 dirpcpcfg = debian/$(pcpcfg)
43 dirlibpcp = debian/$(libpcp)
44 dirlibpcpdev = debian/$(libpcpdev)
45 dirlibpcp_pmda = debian/$(libpcp_pmda)
46 dirlibpcp_pmdadev = debian/$(libpcp_pmdadev)
47 dirlibpcp_pmda_perl = debian/$(libpcp_pmda_perl)
48 dirlibpcp_import_perl = debian/$(libpcp_import_perl)
49 dirpcp_logsummary_perl = debian/$(pcp_logsummary_perl)
50 dirlibpcp_gui = debian/$(libpcp_gui)
51 dirlibpcp_guidev = debian/$(libpcp_guidev)
52 dirlibpcp_mmv = debian/$(libpcp_mmv)
53 dirlibpcp_mmvdev = debian/$(libpcp_mmvdev)
54 dirlibpcp_mmv_perl = debian/$(libpcp_mmv_perl)
55 dirlibpcp_trace = debian/$(libpcp_trace)
56 dirlibpcp_tracedev = debian/$(libpcp_tracedev)
57 dirlibpcp_import = debian/$(libpcp_import)
58 dirlibpcp_importdev = debian/$(libpcp_importdev)
59 dirlibpcp_web = debian/$(libpcp_web)
60 dirlibpcp_webdev = debian/$(libpcp_webdev)
61 dirpcp_import_sar = debian/$(pcp_import_sar)
62 dirpcp_import_ganglia = debian/$(pcp_import_ganglia)
63 dirpcp_import_mrtg = debian/$(pcp_import_mrtg)
64 dirpcp_import_sheet = debian/$(pcp_import_sheet)
65 dirpcp_import_iostat = debian/$(pcp_import_iostat)
66 dirpcp_import_collectl = debian/$(pcp_import_collectl)
67 dirpcp_export_graphite = debian/$(pcp_export_graphite)
68 dirpcp_export_influxdb = debian/$(pcp_export_influxdb)
69 dirpcp_export_zabbix = debian/$(pcp_export_zabbix)
70 dirpcp_pmda_infiniband = debian/$(pcp_pmda_infiniband)
71 dirpcp_testsuite = debian/$(pcp_testsuite)
72 dirpcp_manager = debian/$(pcp_manager)
73 dirpcp_webapi = debian/$(pcp_webapi)
74 dirpcp_python2 = debian/$(pcp_python2)
75 dirpcp_python3 = debian/$(pcp_python3)
76 dirgui = debian/$(pcpgui)
77 dirdoc = debian/$(pcpdoc)
78 allperldir = $(dirlibpcp_pmda_perl) $(dirlibpcp_import_perl) \
79 $(dirpcp_logsummary_perl) $(dirlibpcp_mmv_perl)
80 alldir = $(dirpcp) $(dirpcpcfg) \
81 $(dirlibpcp) $(dirlibpcpdev) \
82 $(dirlibpcp_pmda) $(dirlibpcp_pmdadev) \
83 $(dirlibpcp_trace) $(dirlibpcp_tracedev) \
84 $(dirlibpcp_gui) $(dirlibpcp_guidev) \
85 $(dirlibpcp_import) $(dirlibpcp_importdev) \
86 $(dirlibpcp_web) $(dirlibpcp_webdev) \
87 $(dirlibpcp_mmv) $(dirlibpcp_mmvdev) \
88 $(dirpcp_import_sar) $(dirpcp_import_mrtg) \
89 $(dirpcp_import_ganglia) \
90 $(dirpcp_import_sheet) $(dirpcp_import_iostat) \
91 $(dirpcp_import_collectl) $(dirpcp_testsuite) \
92 $(dirpcp_pmda_infiniband) $(allperldir) \
93 $(dirpcp_manager) $(dirpcp_webapi) \
94 $(dirpcp_python2) $(dirpcp_python3)
96 zip = export GZIP=-9qn
97 pkgpcp = $(zip) NO_CHOWN=true DIST_ROOT=`pwd`/$(dirpcp);
98 pkgpcpgui = $(zip) DIST_ROOT=`pwd`/$(dirgui);
99 pkgpcpdoc = $(zip) DIST_ROOT=`pwd`/$(dirdoc);
100 pkgpcpcfg = $(zip) DIST_ROOT=`pwd`/$(dirpcpcfg);
101 pkglibpcp = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp);
102 pkglibpcp_gui = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_gui);
103 pkglibpcp_mmv = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_mmv);
104 pkglibpcp_pmda = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_pmda);
105 pkglibpcp_trace = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_trace);
106 pkglibpcp_import = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_import);
107 pkglibpcp_web = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_web);
108 pkglibpcp_mmv_perl = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_mmv_perl);
109 pkglibpcp_pmda_perl = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_pmda_perl);
110 pkglibpcp_import_perl = $(zip) DIST_ROOT=`pwd`/$(dirlibpcp_import_perl);
111 pkgpcp_logsummary_perl = $(zip) DIST_ROOT=`pwd`/$(dirpcp_logsummary_perl);
112 pkgpcp_import_sar = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_sar);
113 pkgpcp_import_ganglia = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_ganglia);
114 pkgpcp_import_mrtg = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_mrtg);
115 pkgpcp_import_sheet = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_sheet);
116 pkgpcp_import_iostat = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_iostat);
117 pkgpcp_import_collectl = $(zip) DIST_ROOT=`pwd`/$(dirpcp_import_collectl);
118 pkgpcp_export_graphite = $(zip) DIST_ROOT=`pwd`/$(dirpcp_export_graphite);
119 pkgpcp_export_influxdb = $(zip) DIST_ROOT=`pwd`/$(dirpcp_export_influxdb);
120 pkgpcp_export_zabbix = $(zip) DIST_ROOT=`pwd`/$(dirpcp_export_zabbix);
121 pkgpcp_pmda_infiniband = $(zip) DIST_ROOT=`pwd`/$(dirpcp_pmda_infiniband);
122 pkgpcp_testsuite = $(zip) DIST_ROOT=`pwd`/$(dirpcp_testsuite);
123 pkgpcp_manager = $(zip) NO_CHOWN=true DIST_ROOT=`pwd`/$(dirpcp_manager);
124 pkgpcp_webapi = $(zip) NO_CHOWN=true DIST_ROOT=`pwd`/$(dirpcp_webapi);
125 pkgpcp_python2 = $(zip) DIST_ROOT=`pwd`/$(dirpcp_python2);
126 pkgpcp_python3 = $(zip) DIST_ROOT=`pwd`/$(dirpcp_python3);
128 configure_tools = export DEBUG=-DNDEBUG;
129 # Note: configure options come from $(configure_paths) here, _plus_
130 # any passed in from the environment via $(configure_opts)
131 # ... Makepkgs uses the latter mechanism to refine the configure
132 # options
134 configure_paths = --prefix=/usr --libexecdir=/usr/lib --sysconfdir=/etc --localstatedir=/var --with-rcdir=/etc/init.d --with-sysconfigdir=/etc/default --without-systemd
136 checkdir = test -f debian/rules
137 uninstall = cat debian/*.install | sed -e "s,^,debian/$(pcp)/," | xargs rm -f
138 uninstallpy = cat python*-pcp.list | sed -e "s,^,debian/$(pcp)/," | xargs rm -fr
139 uninstallpydir = ls -d debian/$(pcp)/usr/lib*/python* | xargs rm -fr
140 uninstalltest = cat debian/$(pcp_testsuite).dirs | sed -e "s,^,debian/$(pcp)/," | xargs rm -fr
141 uninstalldirs = rmdir debian/$(pcp)/usr/include/pcp debian/$(pcp)/usr/include debian/$(pcp)/usr/share/man/man3
142 uninstallib = cat debian/$(pcp_pmda_infiniband).dirs | sed -e "s,^,debian/$(pcp)/," | xargs rm -fr
143 uninstallgui = cat debian/$(pcpgui).dirs | sed -e "s,^,debian/$(pcp)/," | xargs rm -fr
144 uninstallweb = find debian/$(pcp) -iname \*pmweb\* | xargs rm -fr
145 uninstallmgr = find debian/$(pcp) -name \*pmmgr\* | xargs rm -fr
146 unrpathperl = find $(allperldir) -name \*.so | xargs chrpath -d
148 build: build-arch build-indep
149 build-arch: build-stamp
150 build-indep: build-stamp
151 build-stamp: config
152 @echo "== dpkg-buildpackage: build" 1>&2
153 $(MAKE) default
154 touch build-stamp
156 config: .census
157 .census:
158 @echo "== dpkg-buildpackage: configure" 1>&2
159 $(checkdir)
160 autoconf
161 dh_autotools-dev_updateconfig
162 $(configure_tools) ./configure $(configure_paths) $(configure_opts)
163 touch .census
165 clean:
166 @echo "== dpkg-buildpackage: clean" 1>&2
167 $(checkdir)
168 -rm -f build-stamp .census
169 $(MAKE) realclean
170 -rm -rf $(alldir)
171 -rm -f debian/*substvars debian/files* debian/*.debhelper
172 dh_autotools-dev_restoreconfig
173 dh_clean
175 binary-indep:
177 binary-arch: checkroot build-stamp
178 @echo "== dpkg-buildpackage: binary-arch" 1>&2
179 $(checkdir)
180 -rm -rf $(alldir)
181 $(pkgpcp) $(MAKE) -C . install
182 $(pkgpcp_testsuite) $(MAKE) -C qa install
183 $(pkgpcp_manager) $(MAKE) -C src/pmmgr install
184 $(pkgpcp_webapi) $(MAKE) -C src/pmwebapi install
185 $(pkglibpcp_mmv_perl) $(MAKE) -C src/perl/MMV install_perl
186 $(pkglibpcp_pmda_perl) $(MAKE) -C src/perl/PMDA install_perl
187 $(pkglibpcp_import_perl) $(MAKE) -C src/perl/LogImport install_perl
188 $(pkgpcp_logsummary_perl) $(MAKE) -C src/perl/LogSummary install_perl
189 $(pkgpcp_import_sar) $(MAKE) -C src/sar2pcp install
190 $(pkgpcp_import_ganglia) $(MAKE) -C src/ganglia2pcp install
191 $(pkgpcp_import_mrtg) $(MAKE) -C src/mrtg2pcp install
192 $(pkgpcp_import_sheet) $(MAKE) -C src/sheet2pcp install
193 $(pkgpcp_import_iostat) $(MAKE) -C src/iostat2pcp install
194 $(pkgpcp_import_collectl) $(MAKE) -C src/collectl2pcp install
195 $(pkgpcp_export_graphite) $(MAKE) -C src/pcp2graphite install
196 $(pkgpcp_export_influxdb) $(MAKE) -C src/pcp2influxdb install
197 $(pkgpcp_export_zabbix) $(MAKE) -C src/zabbix-agent install
198 $(pkgpcp_pmda_infiniband) $(MAKE) -C src/pmdas/infiniband install
199 # need the make clean when more than one version of Python installed
200 # to ensure make install after the first version works
201 for V in $(shell pyversions -vr); do \
202 $(MAKE) -C src/python clean; \
203 $(pkgpcp_python2) $(MAKE) PYTHON=python$$V -C src/python install_python2; \
204 done
205 for V in $(shell py3versions -vr); do \
206 $(MAKE) -C src/python clean; \
207 $(pkgpcp_python3) $(MAKE) PYTHON=python$$V -C src/python install_python3; \
208 done
210 dh_installdocs
211 dh_installchangelogs
212 dh_link
213 # Note: --no-automatic-dbgsym not defined for all releases up to
214 # and including Debian 8 (jessie), but defined after that
215 # ... expect a warning on older releases, but no other ill
216 # effects from the unknown option
217 dh_strip --no-automatic-dbgsym
218 dh_compress
219 # pmcd.stp added to dh_fixperms because on Ubuntu 16.04
220 # $(PCP_SHARE_DIR)/../systemtap/tapset/pmcd.stp was getting an
221 # unwanted mode change from 444 to 644
222 dh_fixperms -X/tmp -Xpmcd.stp
223 dh_installdirs
224 dh_install --sourcedir=debian/$(pcp)
225 @$(uninstall)
226 @$(uninstallib)
227 @$(uninstallgui)
228 @$(uninstalldirs)
229 @$(uninstalltest)
230 @$(uninstallmgr)
231 @$(uninstallweb)
232 @$(uninstallpydir)
233 @$(uninstallpy)
234 @$(unrpathperl)
235 dh_makeshlibs -N $(libpcp)
236 dh_makeshlibs --package $(libpcp)
237 dh_makeshlibs -N $(libpcp_pmda)
238 dh_makeshlibs --package $(libpcp_pmda)
239 dh_makeshlibs -N $(libpcp_trace)
240 dh_makeshlibs --package $(libpcp_trace)
241 dh_makeshlibs -N $(libpcp_import)
242 dh_makeshlibs --package $(libpcp_import)
243 dh_makeshlibs -N $(libpcp_web)
244 dh_makeshlibs --package $(libpcp_web)
245 dh_makeshlibs -N $(libpcp_gui)
246 dh_makeshlibs --package $(libpcp_gui)
247 dh_makeshlibs -N $(libpcp_mmv)
248 dh_makeshlibs --package $(libpcp_mmv)
249 dh_python2 --package $(pcp_python2)
250 dh_python3 --package $(pcp_python3)
251 dh_perl -p $(libpcp_mmv_perl)
252 dh_perl -p $(libpcp_pmda_perl)
253 dh_perl -p $(libpcp_import_perl)
254 dh_perl -p $(pcp_logsummary_perl)
255 dh_perl -p $(pcp_import_sar)
256 dh_perl -p $(pcp_import_ganglia)
257 dh_perl -p $(pcp_import_mrtg)
258 dh_perl -p $(pcp_import_sheet)
259 dh_perl -p $(pcp_import_iostat)
260 dh_installdeb
261 dh_shlibdeps 2>/dev/null # qmake doesn't allow a library list
262 dh_gencontrol $(SUBSTVARS) 2>/dev/null # squash the python:Versions warning
263 dh_md5sums
264 dh_builddeb
266 binary: binary-indep binary-arch
268 checkroot:
269 test 0 -eq `id -u`
271 .PHONY: binary binary-arch binary-indep clean checkroot