]> granicus.if.org Git - sysstat/blob - Makefile.in
Compress manual pages by default when installed
[sysstat] / Makefile.in
1 # Makefile to build sysstat commands
2 # (C) 1999-2020 Sebastien GODARD (sysstat <at> orange.fr)
3
4 # Version and package name
5 VERSION = @PACKAGE_VERSION@
6 PACKAGE = @PACKAGE_NAME@
7 # Needed by docdir
8 PACKAGE_TARNAME = $(PACKAGE)-$(VERSION)
9
10 # Compiler to use
11 CC = @CC@
12
13 # Other commands
14 CHMOD = @CHMOD@
15 CHOWN = @CHOWN@
16 LN_S = @LN_S@
17 AR = @AR@
18 # Full path to prevent from using aliases
19 CP = @PATH_CP@
20
21 CHKCONFIG = @PATH_CHKCONFIG@
22 INSTALL = @INSTALL@
23 INSTALL_DATA = @INSTALL_DATA@
24 INSTALL_BIN = @INSTALL_BIN@
25
26 HAVE_SENSORS = @HAVE_SENSORS@
27 LFSENSORS =
28 DFSENSORS =
29 ifeq ($(HAVE_SENSORS),y)
30 LFSENSORS = @LFSENSORS@
31 DFSENSORS = @DFSENSORS@
32 endif
33
34 HAVE_PCP = @HAVE_PCP@
35 LFPCP =
36 DFPCP =
37 ifeq ($(HAVE_PCP),y)
38 LFPCP = @LFPCP@
39 DFPCP = @DFPCP@
40 endif
41
42 # Directories
43 ifndef PREFIX
44 PREFIX = @prefix@
45 endif
46 ifndef DESTDIR
47 DESTDIR = $(RPM_BUILD_ROOT)
48 endif
49 # These two variables are needed by other ones (eg bindir)
50 prefix = $(PREFIX)
51 exec_prefix = @exec_prefix@
52 datarootdir = @datarootdir@
53
54 ifndef SA_LIB_DIR
55 SA_LIB_DIR = @SA_LIB_DIR@
56 endif
57 SADC_PATH = $(SA_LIB_DIR)/sadc
58 ifndef SA_DIR
59 SA_DIR = @SA_DIR@
60 endif
61 BIN_DIR = @bindir@
62
63 ifndef MAN_DIR
64 # With recent versions of autoconf, mandir defaults to ${datarootdir}/man
65 # (i.e. $prefix/share/man)
66 MAN_DIR = @mandir@
67 endif
68 MAN1_DIR = $(MAN_DIR)/man1
69 MAN5_DIR = $(MAN_DIR)/man5
70 MAN8_DIR = $(MAN_DIR)/man8
71
72 ifndef DOC_DIR
73 DOC_DIR = @docdir@
74 endif
75
76 NLS_DIR = $(PREFIX)/share/locale
77 SYSCONFIG_DIR = @SYSCONFIG_DIR@
78 SYSCONFIG_FILE = @SYSCONFIG_FILE@
79
80 # Compiler flags
81 CFLAGS = @CFLAGS@ -Wall -Wstrict-prototypes -pipe -O2
82 DFLAGS = @DFLAGS@
83 LFLAGS = @STRIP@
84 DFLAGS += -DSA_DIR=\"$(SA_DIR)\" -DSADC_PATH=\"$(SADC_PATH)\"
85 DFLAGS += $(DFSENSORS)
86 DFLAGS += $(DFPCP)
87
88 # Commands
89 ifndef MSGFMT
90 MSGFMT = @MSGFMT@
91 endif
92 ifndef XGETTEXT
93 XGETTEXT = @XGETTEXT@
94 endif
95 ifndef MSGMERGE
96 MSGMERGE = @MSGMERGE@
97 endif
98 ifndef ZIP
99 ZIP = @ZIP@
100 endif
101
102 # Settings
103 SYSMACROS = @SYSMACROS@
104 ifeq ($(SYSMACROS),y)
105         DFLAGS += -DHAVE_SYS_SYSMACROS_H
106 endif
107 LINUX_SCHED = @LINUX_SCHED@
108 ifeq ($(LINUX_SCHED),y)
109         DFLAGS += -DHAVE_LINUX_SCHED_H
110 endif
111 PCP_IMPL = @PCP_IMPL@
112 ifeq ($(PCP_IMPL),y)
113         DFLAGS += -DHAVE_PCP_IMPL_H
114 endif
115 SYSPARAM = @SYSPARAM@
116 ifeq ($(SYSPARAM),y)
117         DFLAGS += -DHAVE_SYS_PARAM_H
118 endif
119 NLS = @NLS@
120 LFLAGS += @LFINTL@
121 ifeq ($(NLS),y)
122 REQUIRE_NLS = -DUSE_NLS -DPACKAGE=\"$(PACKAGE)\" -DLOCALEDIR=\"$(NLS_DIR)\"
123 endif
124 ifdef REQUIRE_NLS
125         DFLAGS += $(REQUIRE_NLS)
126 endif
127 INSTALL_CRON = @INSTALL_CRON@
128 CRON_OWNER = @CRON_OWNER@
129
130 MAN_GROUP = @MAN_GROUP@
131 ifndef IGNORE_FILE_ATTRIBUTES
132 IGNORE_FILE_ATTRIBUTES = @IGNORE_FILE_ATTRIBUTES@
133 endif
134 ifeq ($(IGNORE_FILE_ATTRIBUTES),y)
135 MANGRPARG =
136 else
137 MANGRPARG = -g $(MAN_GROUP)
138 endif
139 ifndef CLEAN_SA_DIR
140 CLEAN_SA_DIR = @CLEAN_SA_DIR@
141 endif
142 ifndef COMPRESS_MANPG
143 COMPRESS_MANPG = @COMPRESS_MANPG@
144 endif
145 ifndef INSTALL_DOC
146 INSTALL_DOC = @INSTALL_DOC@
147 endif
148 ifndef COPY_ONLY
149 COPY_ONLY = @COPY_ONLY@
150 endif
151
152 # Systemd
153 SYSTEMCTL = @SYSTEMCTL@
154 SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
155 SYSTEMD_SLEEP_DIR = @SYSTEMD_SLEEP_DIR@
156
157 ifndef USE_CROND
158 USE_CROND = @USE_CROND@
159 endif
160 ifeq ($(USE_CROND),y)
161 SYSTEMD_UNIT_DIR =
162 endif
163
164 # Run-command directories
165 ifndef RC_DIR
166 RC_DIR = @RC_DIR@
167 endif
168 RC0_DIR = $(RC_DIR)/rc0.d
169 RC1_DIR = $(RC_DIR)/rc1.d
170 RC2_DIR = $(RC_DIR)/rc2.d
171 RC3_DIR = $(RC_DIR)/rc3.d
172 RC4_DIR = $(RC_DIR)/rc4.d
173 RC5_DIR = $(RC_DIR)/rc5.d
174 RC6_DIR = $(RC_DIR)/rc6.d
175 ifndef INIT_DIR
176 INIT_DIR = @INIT_DIR@
177 endif
178 ifndef INITD_DIR
179 INITD_DIR = @INITD_DIR@
180 endif
181
182 SOURCE_CODE= $(wildcard *.c *.h)
183
184 NLSPO= $(wildcard nls/*.po)
185 NLSGMO= $(NLSPO:.po=.gmo)
186 NLSPOT= $(NLSPO:.po=.pot)
187
188 %.gmo: %.po
189         $(MSGFMT) -o $@ $<
190
191 %.pot: %.po
192         $(MSGMERGE) -U $< nls/sysstat.pot
193
194 %.o: %.c
195         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
196
197 % : %.o
198         $(CC) -o $@ $(CFLAGS) $^ $(LFLAGS)
199
200 all: sadc sar sadf iostat tapestat mpstat pidstat cifsiostat locales
201
202 common_sadc.o: common.c version.h common.h
203         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
204
205 common.o: common.c version.h common.h
206
207 systest.o: systest.c systest.h
208
209 sa_common_sadc.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
210         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
211
212 sa_common.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
213
214 ioconf.o: ioconf.c ioconf.h common.h sysconfig.h
215
216 act_sadc.o: activity.c sa.h common.h rd_stats.h rd_sensors.h
217         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
218
219 act_sar.o: activity.c sa.h common.h rd_stats.h rd_sensors.h pr_stats.h
220         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
221
222 act_sadf.o: activity.c sa.h common.h rd_stats.h rd_sensors.h rndr_stats.h xml_stats.h json_stats.h svg_stats.h raw_stats.h pcp_stats.h
223         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
224
225 rd_stats.o: rd_stats.c common.h rd_stats.h
226         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
227
228 rd_stats_light.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
229         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
230
231 count.o: count.c common.h rd_stats.h
232         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
233
234 count_light.o: count.c common.h rd_stats.h
235         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
236
237 rd_sensors.o: rd_sensors.c common.h rd_sensors.h rd_stats.h
238
239 pr_stats.o: pr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h pr_stats.h
240
241 rndr_stats.o: rndr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h rndr_stats.h
242
243 xml_stats.o: xml_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h xml_stats.h
244
245 json_stats.o: json_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h json_stats.h
246
247 svg_stats.o: svg_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h svg_stats.h
248
249 raw_stats.o: raw_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h raw_stats.h
250
251 pcp_stats.o: pcp_stats.c sa.h pcp_stats.h
252
253 sa_wrap.o: sa_wrap.c sa.h common.h rd_stats.h count.h rd_sensors.h
254         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
255
256 format_sadf.o: format.c sadf.h sa.h common.h rd_stats.h rd_sensors.h
257         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
258
259 format_sar.o: format.c sa.h common.h rd_stats.h rd_sensors.h
260         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
261
262 pcp_def_metrics.o: pcp_def_metrics.c
263
264 sadf_misc.o: sadf_misc.c sadf.h pcp_def_metrics.h sa.h common.h rd_stats.h rd_sensors.h
265
266 sa_conv.o: sa_conv.c version.h sadf.h sa.h common.h rd_stats.h rd_sensors.h sa_conv.h
267
268 # Explicit rules needed to prevent possible file corruption
269 # when using parallel execution.
270 libsyscom.a: common.o ioconf.o systest.o
271         $(AR) rvs $@ $?
272
273 # Ditto
274 librdstats.a: rd_stats.o count.o
275         $(AR) rvs $@ $?
276
277 librdstats_light.a: rd_stats_light.o count_light.o
278         $(AR) rvs $@ $?
279
280 # librdsensors.a: librdsensors.a(rd_sensors.o)
281 librdsensors.a: rd_sensors.o
282         $(AR) rvs $@ $?
283
284 sadc.o: sadc.c sa.h version.h common.h rd_stats.h rd_sensors.h
285
286 sadc: LFLAGS += $(LFSENSORS)
287
288 sadc: sadc.o act_sadc.o sa_wrap.o sa_common_sadc.o common_sadc.o systest.o librdstats.a librdsensors.a
289
290 sar.o: sar.c sa.h version.h common.h rd_stats.h rd_sensors.h
291
292 sar: sar.o act_sar.o format_sar.o sa_common.o pr_stats.o librdstats_light.a libsyscom.a
293
294 sadf.o: sadf.c sadf.h version.h sa.h common.h rd_stats.h rd_sensors.h
295
296 sadf: LFLAGS += $(LFPCP)
297
298 sadf: sadf.o act_sadf.o format_sadf.o sadf_misc.o pcp_def_metrics.o sa_conv.o rndr_stats.o xml_stats.o json_stats.o svg_stats.o raw_stats.o pcp_stats.o sa_common.o librdstats_light.a libsyscom.a
299
300 iostat.o: iostat.c iostat.h version.h common.h ioconf.h sysconfig.h rd_stats.h count.h
301
302 iostat: iostat.o librdstats_light.a libsyscom.a
303
304 tapestat.o: tapestat.c tapestat.h version.h common.h count.h rd_stats.h
305
306 tapestat: tapestat.o librdstats_light.a libsyscom.a
307
308 pidstat.o: pidstat.c pidstat.h version.h common.h rd_stats.h count.h
309
310 pidstat: pidstat.o librdstats_light.a libsyscom.a
311
312 mpstat.o: mpstat.c mpstat.h version.h common.h rd_stats.h count.h
313
314 mpstat: mpstat.o librdstats_light.a libsyscom.a
315
316 cifsiostat.o: cifsiostat.c cifsiostat.h count.h rd_stats.h version.h common.h
317
318 cifsiostat: cifsiostat.o librdstats_light.a libsyscom.a
319
320 tests/ini/sa_common.o: tests/ini/sa_common.c tests/ini/iniversion.h tests/ini/sa.h tests/ini/common.h tests/ini/rd_stats.h tests/ini/rd_sensors.h tests/ini/ioconf.h tests/ini/inisysconfig.h
321
322 tests/ini/act_sar.o: tests/ini/activity.c tests/ini/sa.h tests/ini/common.h tests/ini/rd_stats.h tests/ini/rd_sensors.h tests/ini/pr_stats.h
323         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
324
325 tests/ini/rd_stats_light.o: tests/ini/rd_stats.c tests/ini/common.h tests/ini/rd_stats.h tests/ini/ioconf.h tests/ini/inisysconfig.h
326         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
327
328 tests/ini/count_light.o: tests/ini/count.c tests/ini/common.h tests/ini/rd_stats.h
329         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
330
331 tests/ini/libsyscom.a: tests/ini/common.o tests/ini/ioconf.o
332         $(AR) rvs $@ $?
333
334 tests/ini/format_sar.o: tests/ini/format.c tests/ini/sa.h tests/ini/common.h tests/ini/rd_stats.h tests/ini/rd_sensors.h
335         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
336
337 tests/ini/pr_stats.o: tests/ini/pr_stats.c tests/ini/sa.h tests/ini/common.h tests/ini/rd_stats.h tests/ini/rd_sensors.h tests/ini/ioconf.h tests/ini/inisysconfig.h tests/ini/pr_stats.h
338
339 tests/ini/librdstats_light.a: tests/ini/rd_stats_light.o tests/ini/count_light.o
340         $(AR) rvs $@ $?
341
342 tests/ini/inisar.o: tests/ini/inisar.c tests/ini/sa.h tests/ini/iniversion.h tests/ini/common.h tests/ini/rd_stats.h tests/ini/rd_sensors.h
343
344 tests/ini/inisar: tests/ini/inisar.o tests/ini/act_sar.o tests/ini/format_sar.o tests/ini/sa_common.o tests/ini/pr_stats.o tests/ini/librdstats_light.a tests/ini/libsyscom.a
345
346 ifdef REQUIRE_NLS
347 locales: $(NLSGMO)
348 else
349 locales:
350 endif
351
352 nls/sysstat.pot: $(wildcard *.c)
353         $(XGETTEXT) -o $@ -k_ --msgid-bugs-address="sysstat <at> orange.fr" $^
354
355 # Phony targets
356 .PHONY: clean distclean install install_base install_all uninstall \
357         uninstall_base uninstall_all dist bdist xdist gitdist squeeze simtest
358
359 install_man: man/sadc.8 man/sar.1 man/sadf.1 man/sa1.8 man/sa2.8 man/sysstat.5
360 ifeq ($(INSTALL_DOC),y)
361         mkdir -p $(DESTDIR)$(MAN1_DIR)
362         mkdir -p $(DESTDIR)$(MAN5_DIR)
363         mkdir -p $(DESTDIR)$(MAN8_DIR)
364         rm -f $(DESTDIR)$(MAN8_DIR)/sa1.8*
365         $(INSTALL_DATA) $(MANGRPARG) man/sa1.8 $(DESTDIR)$(MAN8_DIR)
366         rm -f $(DESTDIR)$(MAN8_DIR)/sa2.8*
367         $(INSTALL_DATA) $(MANGRPARG) man/sa2.8 $(DESTDIR)$(MAN8_DIR)
368         rm -f $(DESTDIR)$(MAN8_DIR)/sadc.8*
369         $(INSTALL_DATA) $(MANGRPARG) man/sadc.8 $(DESTDIR)$(MAN8_DIR)
370         rm -f $(DESTDIR)$(MAN1_DIR)/sar.1*
371         $(INSTALL_DATA) $(MANGRPARG) man/sar.1 $(DESTDIR)$(MAN1_DIR)
372         rm -f $(DESTDIR)$(MAN1_DIR)/sadf.1*
373         $(INSTALL_DATA) $(MANGRPARG) man/sadf.1 $(DESTDIR)$(MAN1_DIR)
374         rm -f $(DESTDIR)$(MAN5_DIR)/sysstat.5*
375         $(INSTALL_DATA) $(MANGRPARG) man/sysstat.5 $(DESTDIR)$(MAN5_DIR)
376         rm -f $(DESTDIR)$(MAN1_DIR)/iostat.1*
377         $(INSTALL_DATA) $(MANGRPARG) man/iostat.1 $(DESTDIR)$(MAN1_DIR)
378         rm -f $(DESTDIR)$(MAN1_DIR)/tapestat.1*
379         $(INSTALL_DATA) $(MANGRPARG) man/tapestat.1 $(DESTDIR)$(MAN1_DIR)
380         rm -f $(DESTDIR)$(MAN1_DIR)/mpstat.1*
381         $(INSTALL_DATA) $(MANGRPARG) man/mpstat.1 $(DESTDIR)$(MAN1_DIR)
382         rm -f $(DESTDIR)$(MAN1_DIR)/pidstat.1*
383         $(INSTALL_DATA) $(MANGRPARG) man/pidstat.1 $(DESTDIR)$(MAN1_DIR)
384         rm -f $(DESTDIR)$(MAN1_DIR)/cifsiostat.1*
385         $(INSTALL_DATA) $(MANGRPARG) man/cifsiostat.1 $(DESTDIR)$(MAN1_DIR)
386 ifeq ($(COMPRESS_MANPG),n)
387         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sa1.8
388         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sa2.8
389         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sadc.8
390         $(ZIP) $(DESTDIR)$(MAN1_DIR)/sar.1
391         $(ZIP) $(DESTDIR)$(MAN1_DIR)/sadf.1
392         $(ZIP) $(DESTDIR)$(MAN5_DIR)/sysstat.5
393         $(ZIP) $(DESTDIR)$(MAN1_DIR)/iostat.1
394         $(ZIP) $(DESTDIR)$(MAN1_DIR)/tapestat.1
395         $(ZIP) $(DESTDIR)$(MAN1_DIR)/mpstat.1
396         $(ZIP) $(DESTDIR)$(MAN1_DIR)/pidstat.1
397         $(ZIP) $(DESTDIR)$(MAN1_DIR)/cifsiostat.1
398 endif
399 endif
400
401 squeeze:
402         catalogs="$(SOURCE_CODE)"; \
403         for c in $$catalogs; do \
404                 echo "Squeezing file: $$c"; \
405                 sed 's/[\t ]*$$//g' $$c > squeeze.tmp; \
406                 mv squeeze.tmp $$c; \
407         done
408
409 install_nls: locales
410 ifdef REQUIRE_NLS
411         catalogs='$(NLSGMO)'; \
412         for c in $$catalogs; do \
413                 c=`basename $$c`; \
414                 c=`echo $$c | sed 's/\.gmo$$//'`; \
415                 mkdir -p $(DESTDIR)$(NLS_DIR)/$$c/LC_MESSAGES; \
416                 echo "NLS: Installing $$c file..." ; \
417                 $(INSTALL_DATA) nls/$$c.gmo $(DESTDIR)$(NLS_DIR)/$$c/LC_MESSAGES/$(PACKAGE).mo; \
418         done
419 endif
420
421 install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls
422         mkdir -p $(DESTDIR)$(SA_LIB_DIR)
423         mkdir -p $(DESTDIR)$(SA_DIR)
424 ifeq ($(CLEAN_SA_DIR),y)
425         find $(DESTDIR)$(SA_DIR) \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' \) \
426                 -exec rm -f {} \;
427         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)/[0-9]?????
428 endif
429         mkdir -p $(DESTDIR)$(BIN_DIR)
430         mkdir -p $(DESTDIR)$(DOC_DIR)
431         mkdir -p $(DESTDIR)$(SYSCONFIG_DIR)
432         $(INSTALL_BIN) sa1 $(DESTDIR)$(SA_LIB_DIR)
433         $(INSTALL_BIN) sa2 $(DESTDIR)$(SA_LIB_DIR)
434         $(INSTALL_BIN) sadc $(DESTDIR)$(SA_LIB_DIR)
435         $(INSTALL_BIN) sar $(DESTDIR)$(BIN_DIR)
436         $(INSTALL_BIN) sadf $(DESTDIR)$(BIN_DIR)
437         $(INSTALL_BIN) iostat $(DESTDIR)$(BIN_DIR)
438         $(INSTALL_BIN) tapestat $(DESTDIR)$(BIN_DIR)
439         $(INSTALL_BIN) mpstat $(DESTDIR)$(BIN_DIR)
440         $(INSTALL_BIN) pidstat $(DESTDIR)$(BIN_DIR)
441         $(INSTALL_BIN) cifsiostat $(DESTDIR)$(BIN_DIR)
442         $(INSTALL_DATA) sysstat.ioconf $(DESTDIR)$(SYSCONFIG_DIR)
443         $(INSTALL_DATA) sysstat.sysconfig $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
444 ifeq ($(INSTALL_DOC),y)
445         $(INSTALL_DATA) CHANGES $(DESTDIR)$(DOC_DIR)
446         $(INSTALL_DATA) COPYING $(DESTDIR)$(DOC_DIR)
447         $(INSTALL_DATA) CREDITS $(DESTDIR)$(DOC_DIR)
448         $(INSTALL_DATA) README.md $(DESTDIR)$(DOC_DIR)
449         $(INSTALL_DATA) FAQ.md $(DESTDIR)$(DOC_DIR)
450         $(INSTALL_DATA) *.lsm $(DESTDIR)$(DOC_DIR)
451 endif
452
453 ifdef SYSTEMD_UNIT_DIR
454 install_all: install_base cron/sysstat-collect.service cron/sysstat-collect.timer \
455         cron/sysstat.sleep cron/sysstat-summary.service cron/sysstat-summary.timer
456 else
457 install_all: install_base cron/crontab sysstat \
458         cron/sysstat.crond cron/sysstat.cron.daily cron/sysstat.cron.hourly
459 endif
460
461 ifneq ($(IGNORE_FILE_ATTRIBUTES),y)
462         $(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
463 endif
464 ifdef SYSTEMD_UNIT_DIR
465         mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR)
466 else
467         if [ -d /etc/cron.d ]; then \
468                 mkdir -p $(DESTDIR)/etc/cron.d; \
469         elif [ -d /etc/cron.hourly -a -d /etc/cron.daily ]; then \
470                 mkdir -p $(DESTDIR)/etc/cron.hourly $(DESTDIR)/etc/cron.daily; \
471         fi
472         if [ -d $(INIT_DIR) ]; then \
473                 mkdir -p $(DESTDIR)$(INIT_DIR); \
474         elif [ -d $(RC_DIR) ]; then \
475                 mkdir -p $(DESTDIR)$(RC_DIR); \
476         fi
477 endif
478
479 ifdef SYSTEMD_SLEEP_DIR
480         mkdir -p $(DESTDIR)$(SYSTEMD_SLEEP_DIR)
481 endif
482
483         if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
484                 if [ -d $(DESTDIR)/etc/cron.d ]; then \
485                         $(INSTALL_DATA) cron/sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
486                 elif [ -d $(DESTDIR)/etc/cron.hourly -a -d $(DESTDIR)/etc/cron.daily ]; then \
487                         $(INSTALL_BIN) cron/sysstat.cron.hourly $(DESTDIR)/etc/cron.hourly/sysstat; \
488                         $(INSTALL_BIN) cron/sysstat.cron.daily $(DESTDIR)/etc/cron.daily/sysstat; \
489                 fi \
490         fi
491 ifeq ($(COPY_ONLY),n)
492         if [ \( -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" \) -a ! -d $(DESTDIR)/etc/cron.d ]; then \
493                 if [ ! -d $(DESTDIR)/etc/cron.hourly -o ! -d $(DESTDIR)/etc/cron.daily ]; then \
494                         su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).save"; \
495                         $(CP) -a /tmp/crontab-$(CRON_OWNER).save ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.save; \
496                         echo "USER'S PREVIOUS CRONTAB SAVED IN CURRENT DIRECTORY (USING .save SUFFIX)."; \
497                         su $(CRON_OWNER) -c "crontab cron/crontab"; \
498                 fi \
499         fi
500 endif
501         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
502                 $(INSTALL_DATA) sysstat.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
503                 $(INSTALL_DATA) cron/sysstat-collect.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
504                 $(INSTALL_DATA) cron/sysstat-collect.timer $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
505                 $(INSTALL_DATA) cron/sysstat-summary.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
506                 $(INSTALL_DATA) cron/sysstat-summary.timer $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
507         elif [ -d $(DESTDIR)$(INIT_DIR) ]; then \
508                 $(INSTALL_BIN) sysstat $(DESTDIR)$(INIT_DIR)/sysstat; \
509                 if [ "$(COPY_ONLY)" = "n" ]; then \
510                         if [ -x "$(CHKCONFIG)" ]; then \
511                                 cd $(DESTDIR)$(INIT_DIR) && $(CHKCONFIG) --add sysstat; \
512                         else \
513                                 [ -d $(DESTDIR)$(RC2_DIR) ] || mkdir -p $(DESTDIR)$(RC2_DIR); \
514                                 [ -d $(DESTDIR)$(RC3_DIR) ] || mkdir -p $(DESTDIR)$(RC3_DIR); \
515                                 [ -d $(DESTDIR)$(RC5_DIR) ] || mkdir -p $(DESTDIR)$(RC5_DIR); \
516                                 cd $(DESTDIR)$(RC2_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
517                                 cd $(DESTDIR)$(RC3_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
518                                 cd $(DESTDIR)$(RC5_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
519                         fi \
520                 fi \
521         elif [ -d $(DESTDIR)$(RC_DIR) ]; then \
522                 $(INSTALL_BIN) sysstat $(DESTDIR)$(RC_DIR)/rc.sysstat; \
523                 if [ "$(COPY_ONLY)" = "n" ]; then \
524                         if [ -x "$(CHKCONFIG)" ]; then \
525                                 cd $(DESTDIR)$(RC_DIR) && $(CHKCONFIG) --add rc.sysstat; \
526                         else \
527                                 [ -d $(DESTDIR)$(RC2_DIR) ] || mkdir -p $(DESTDIR)$(RC2_DIR); \
528                                 [ -d $(DESTDIR)$(RC3_DIR) ] || mkdir -p $(DESTDIR)$(RC3_DIR); \
529                                 [ -d $(DESTDIR)$(RC5_DIR) ] || mkdir -p $(DESTDIR)$(RC5_DIR); \
530                                 cd $(DESTDIR)$(RC2_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
531                                 cd $(DESTDIR)$(RC3_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
532                                 cd $(DESTDIR)$(RC5_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
533                         fi \
534                 fi \
535         fi
536         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
537                 $(INSTALL_BIN) cron/sysstat.sleep $(DESTDIR)$(SYSTEMD_SLEEP_DIR); \
538         fi
539
540 ifeq ($(COPY_ONLY),n)
541         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
542                 $(SYSTEMCTL) enable sysstat.service; \
543         fi
544 endif
545
546 uninstall_man:
547 ifeq ($(INSTALL_DOC),y)
548         rm -f $(DESTDIR)$(MAN8_DIR)/sadc.8*
549         rm -f $(DESTDIR)$(MAN8_DIR)/sa1.8*
550         rm -f $(DESTDIR)$(MAN8_DIR)/sa2.8*
551         rm -f $(DESTDIR)$(MAN1_DIR)/sar.1*
552         rm -f $(DESTDIR)$(MAN1_DIR)/sadf.1*
553         rm -f $(DESTDIR)$(MAN5_DIR)/sysstat.5*
554         rm -f $(DESTDIR)$(MAN1_DIR)/iostat.1*
555         rm -f $(DESTDIR)$(MAN1_DIR)/tapestat.1*
556         rm -f $(DESTDIR)$(MAN1_DIR)/mpstat.1*
557         rm -f $(DESTDIR)$(MAN1_DIR)/pidstat.1*
558         rm -f $(DESTDIR)$(MAN1_DIR)/cifsiostat.1*
559 endif
560
561 uninstall_nls:
562 ifdef REQUIRE_NLS
563         -catalogs='$(NLSGMO)'; \
564         for c in $$catalogs; do \
565                 c=`basename $$c`; \
566                 c=`echo $$c | sed 's/\.gmo$$//'`; \
567                 rm -f $(DESTDIR)$(PREFIX)/share/locale/$$c/LC_MESSAGES/$(PACKAGE).mo; \
568                 rmdir --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/locale/$$c/LC_MESSAGES 2>/dev/null; \
569                 rmdir --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/locale/$$c 2>/dev/null; \
570         done
571 endif
572
573 uninstall_base: uninstall_man uninstall_nls
574         rm -f $(DESTDIR)$(SA_LIB_DIR)/sadc
575         rm -f $(DESTDIR)$(SA_LIB_DIR)/sa1
576         rm -f $(DESTDIR)$(SA_LIB_DIR)/sa2
577         rm -f $(DESTDIR)$(BIN_DIR)/sar
578         rm -f $(DESTDIR)$(BIN_DIR)/sadf
579         rm -f $(DESTDIR)$(BIN_DIR)/iostat
580         rm -f $(DESTDIR)$(BIN_DIR)/tapestat
581         rm -f $(DESTDIR)$(BIN_DIR)/mpstat
582         rm -f $(DESTDIR)$(BIN_DIR)/pidstat
583         rm -f $(DESTDIR)$(BIN_DIR)/cifsiostat
584         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_LIB_DIR)
585         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)/[0-9]?????
586         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)
587 #               No need to keep sysstat scripts, config files and links since
588 #               the binaries have been deleted.
589         rm -f $(DESTDIR)$(INIT_DIR)/sysstat
590         rm -f $(DESTDIR)$(RC_DIR)/rc.sysstat
591         rm -f $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
592         rm -f $(DESTDIR)$(SYSCONFIG_DIR)/sysstat.ioconf
593         rm -f $(DESTDIR)$(RC2_DIR)/S??sysstat
594         rm -f $(DESTDIR)$(RC2_DIR)/S??rc.sysstat
595         rm -f $(DESTDIR)$(RC3_DIR)/S??sysstat
596         rm -f $(DESTDIR)$(RC3_DIR)/S??rc.sysstat
597         rm -f $(DESTDIR)$(RC5_DIR)/S??sysstat
598         rm -f $(DESTDIR)$(RC5_DIR)/S??rc.sysstat
599 #               Delete possible kill entries installed by chkconfig
600         rm -f $(DESTDIR)$(RC0_DIR)/K??sysstat
601         rm -f $(DESTDIR)$(RC0_DIR)/K??rc.sysstat
602         rm -f $(DESTDIR)$(RC1_DIR)/K??sysstat
603         rm -f $(DESTDIR)$(RC1_DIR)/K??rc.sysstat
604         rm -f $(DESTDIR)$(RC4_DIR)/K??sysstat
605         rm -f $(DESTDIR)$(RC4_DIR)/K??rc.sysstat
606         rm -f $(DESTDIR)$(RC6_DIR)/K??sysstat
607         rm -f $(DESTDIR)$(RC6_DIR)/K??rc.sysstat
608 #               Vixie cron entries also can be safely deleted here
609         rm -f $(DESTDIR)/etc/cron.d/sysstat
610 #               Id. for Slackware cron entries
611         rm -f $(DESTDIR)/etc/cron.hourly/sysstat
612         rm -f $(DESTDIR)/etc/cron.daily/sysstat
613 ifeq ($(INSTALL_DOC),y)
614         rm -f $(DESTDIR)$(DOC_DIR)/*
615         -rmdir $(DESTDIR)$(DOC_DIR)
616 endif
617         @echo "Please ignore the errors above, if any."
618
619 uninstall_all: uninstall_base
620 ifeq ($(COPY_ONLY),n)
621         -if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
622                 su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).old" ; \
623                 $(CP) -a /tmp/crontab-$(CRON_OWNER).old ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.old ; \
624                 echo "USER'S CRONTAB SAVED IN CURRENT DIRECTORY (USING .old SUFFIX)." ; \
625                 su $(CRON_OWNER) -c "crontab -r" ; \
626         fi
627         -if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
628                 $(SYSTEMCTL) disable sysstat.service; \
629         fi
630 endif
631         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
632                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat.service; \
633                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.service; \
634                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.timer; \
635                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.service; \
636                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.timer; \
637         fi
638         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
639                 rm -f $(DESTDIR)$(SYSTEMD_SLEEP_DIR)/sysstat.sleep; \
640         fi
641
642 ifeq ($(INSTALL_CRON),y)
643 uninstall: uninstall_all
644 else
645 uninstall: uninstall_base
646 endif
647
648 ifeq ($(INSTALL_CRON),y)
649 install: install_all
650 else
651 install: install_base
652 endif
653
654 ifdef REQUIRE_NLS
655 po-files: nls/sysstat.pot $(NLSPOT)
656 else
657 po-files:
658 endif
659
660 TESTDIR="tests"
661 TESTRUN="/bin/sh"
662 TESTLIST:=$(shell ls $(TESTDIR) | egrep '^[0-9]+$$' | sort -n)
663
664 testcomp: tests/ini/inisar
665
666 unit:
667         @echo $(X) 2>&1
668         @cat $(TESTDIR)/$(X) | $(TESTRUN)
669
670 # Use "do_test" script to make the following target
671 simtest: all testcomp
672         @$(foreach x, $(TESTLIST), $(MAKE) X=$x unit || exit;)
673         rm -f tests/root
674         ln -s root1 tests/root
675         @echo Simulation tests: Success!
676
677 clean:
678         rm -f sadc sar sadf iostat tapestat mpstat pidstat cifsiostat *.o *.a core TAGS tests/*.tmp
679         rm -f nfsiostat* man/nfsiostat*
680         rm -f tests/sa[012]*
681         rm -f tests/root
682         ln -s root1 tests/root
683         rm -f tests/ini/inisar
684         rm -f tests/ini/*.o tests/ini/*.a tests/ini/core tests/pcpar.*
685         find nls -name "*.gmo" -exec rm -f {} \;
686
687 almost-distclean: clean nls/sysstat.pot
688         rm -f sa1 sa2 sysstat cron/crontab version.h sysconfig.h
689         rm -f sysstat.sysconfig cron/sysstat.crond cron/sysstat.cron.daily sysstat.service
690         rm -f cron/sysstat-collect.service cron/sysstat-collect.timer
691         rm -f cron/sysstat-summary.service cron/sysstat-summary.timer cron/sysstat.sleep
692         rm -f cron/sysstat.cron.hourly cron/sysstat.crond.sample cron/sysstat.crond.sample.in
693         rm -f man/sa1.8 man/sa2.8 man/sadc.8 man/sadf.1 man/sar.1 man/iostat.1 man/sysstat.5
694         rm -f tests/variables tests/data
695         rm -f man/cifsiostat.1
696         rm -f *.log config.status
697         rm -rf autom4te.cache
698         rm -f *.save *.old .*.swp data
699         find . -name "*~" -exec rm -f {} \;
700
701 distclean: almost-distclean
702         rm -f Makefile
703
704 maintainer-clean: distclean
705         rm -f configure
706
707 dist: almost-distclean
708         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | gzip -v9 > sysstat-$(VERSION).tar.gz)
709
710 bdist: almost-distclean
711         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION).tar.bz2)
712
713 xdist: almost-distclean
714         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | xz > sysstat-$(VERSION).tar.xz)
715
716 gitdist: almost-distclean
717         cd .. && (tar --exclude=Makefile -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION)-git.tar.bz2)
718
719 tags:
720         etags ./*.[hc]
721