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