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