]> granicus.if.org Git - sysstat/blob - Makefile.in
simtest: Add 32-bit versions of sar and sadc
[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 TGLIB32 = @TGLIB32@
120 NLS = @NLS@
121 LFLAGS += @LFINTL@
122 ifeq ($(NLS),y)
123 REQUIRE_NLS = -DUSE_NLS -DPACKAGE=\"$(PACKAGE)\" -DLOCALEDIR=\"$(NLS_DIR)\"
124 endif
125 ifdef REQUIRE_NLS
126         DFLAGS += $(REQUIRE_NLS)
127 endif
128 INSTALL_CRON = @INSTALL_CRON@
129 CRON_OWNER = @CRON_OWNER@
130
131 MAN_GROUP = @MAN_GROUP@
132 ifndef IGNORE_FILE_ATTRIBUTES
133 IGNORE_FILE_ATTRIBUTES = @IGNORE_FILE_ATTRIBUTES@
134 endif
135 ifeq ($(IGNORE_FILE_ATTRIBUTES),y)
136 MANGRPARG =
137 else
138 MANGRPARG = -g $(MAN_GROUP)
139 endif
140 ifndef CLEAN_SA_DIR
141 CLEAN_SA_DIR = @CLEAN_SA_DIR@
142 endif
143 ifndef COMPRESS_MANPG
144 COMPRESS_MANPG = @COMPRESS_MANPG@
145 endif
146 ifndef INSTALL_DOC
147 INSTALL_DOC = @INSTALL_DOC@
148 endif
149 ifndef COPY_ONLY
150 COPY_ONLY = @COPY_ONLY@
151 endif
152
153 # Systemd
154 SYSTEMCTL = @SYSTEMCTL@
155 SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
156 SYSTEMD_SLEEP_DIR = @SYSTEMD_SLEEP_DIR@
157
158 ifndef USE_CROND
159 USE_CROND = @USE_CROND@
160 endif
161 ifeq ($(USE_CROND),y)
162 SYSTEMD_UNIT_DIR =
163 endif
164
165 # Run-command directories
166 ifndef RC_DIR
167 RC_DIR = @RC_DIR@
168 endif
169 RC0_DIR = $(RC_DIR)/rc0.d
170 RC1_DIR = $(RC_DIR)/rc1.d
171 RC2_DIR = $(RC_DIR)/rc2.d
172 RC3_DIR = $(RC_DIR)/rc3.d
173 RC4_DIR = $(RC_DIR)/rc4.d
174 RC5_DIR = $(RC_DIR)/rc5.d
175 RC6_DIR = $(RC_DIR)/rc6.d
176 ifndef INIT_DIR
177 INIT_DIR = @INIT_DIR@
178 endif
179 ifndef INITD_DIR
180 INITD_DIR = @INITD_DIR@
181 endif
182
183 SOURCE_CODE= $(wildcard *.c *.h)
184
185 NLSPO= $(wildcard nls/*.po)
186 NLSGMO= $(NLSPO:.po=.gmo)
187 NLSPOT= $(NLSPO:.po=.pot)
188
189 %.gmo: %.po
190         $(MSGFMT) -o $@ $<
191
192 %.pot: %.po
193         $(MSGMERGE) -U $< nls/sysstat.pot
194
195 %.o: %.c
196         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
197
198 % : %.o
199         $(CC) -o $@ $(CFLAGS) $^ $(LFLAGS)
200
201 all: sadc sar sadf iostat tapestat mpstat pidstat cifsiostat locales
202
203 common_light.o: common.c version.h common.h
204         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
205
206 common.o: common.c version.h common.h
207
208 systest.o: systest.c systest.h
209
210 sa_common_light.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
211         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
212
213 sa_common.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
214
215 ioconf.o: ioconf.c ioconf.h common.h sysconfig.h
216
217 act_sadc.o: activity.c sa.h common.h rd_stats.h rd_sensors.h
218         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
219
220 act_sar.o: activity.c sa.h common.h rd_stats.h rd_sensors.h pr_stats.h
221         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
222
223 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
224         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
225
226 rd_stats.o: rd_stats.c common.h rd_stats.h
227         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
228
229 rd_stats_light.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
230         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
231
232 count.o: count.c common.h rd_stats.h
233         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
234
235 count_light.o: count.c common.h rd_stats.h
236         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
237
238 rd_sensors.o: rd_sensors.c common.h rd_sensors.h rd_stats.h
239
240 pr_stats.o: pr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h pr_stats.h
241
242 rndr_stats.o: rndr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h rndr_stats.h
243
244 xml_stats.o: xml_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h xml_stats.h
245
246 json_stats.o: json_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h json_stats.h
247
248 svg_stats.o: svg_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h svg_stats.h
249
250 raw_stats.o: raw_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h raw_stats.h
251
252 pcp_stats.o: pcp_stats.c sa.h pcp_stats.h
253
254 sa_wrap.o: sa_wrap.c sa.h common.h rd_stats.h count.h rd_sensors.h
255         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
256
257 format_sadf.o: format.c sadf.h sa.h common.h rd_stats.h rd_sensors.h
258         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
259
260 format_sar.o: format.c sa.h common.h rd_stats.h rd_sensors.h
261         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
262
263 pcp_def_metrics.o: pcp_def_metrics.c
264
265 sadf_misc.o: sadf_misc.c sadf.h pcp_def_metrics.h sa.h common.h rd_stats.h rd_sensors.h
266
267 sa_conv.o: sa_conv.c version.h sadf.h sa.h common.h rd_stats.h rd_sensors.h sa_conv.h
268
269 # Explicit rules needed to prevent possible file corruption
270 # when using parallel execution.
271 libsyscom.a: common.o ioconf.o systest.o
272         $(AR) rvs $@ $?
273
274 # Ditto
275 librdstats.a: rd_stats.o count.o
276         $(AR) rvs $@ $?
277
278 librdstats_light.a: rd_stats_light.o count_light.o
279         $(AR) rvs $@ $?
280
281 # librdsensors.a: librdsensors.a(rd_sensors.o)
282 librdsensors.a: rd_sensors.o
283         $(AR) rvs $@ $?
284
285 sadc.o: sadc.c sa.h version.h common.h rd_stats.h rd_sensors.h
286
287 sadc: LFLAGS += $(LFSENSORS)
288
289 sadc: sadc.o act_sadc.o sa_wrap.o sa_common_light.o common_light.o systest.o librdstats.a librdsensors.a
290
291 sar.o: sar.c sa.h version.h common.h rd_stats.h rd_sensors.h
292
293 sar: sar.o act_sar.o format_sar.o sa_common.o pr_stats.o librdstats_light.a libsyscom.a
294
295 sadf.o: sadf.c sadf.h version.h sa.h common.h rd_stats.h rd_sensors.h
296
297 sadf: LFLAGS += $(LFPCP)
298
299 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
300
301 iostat.o: iostat.c iostat.h version.h common.h ioconf.h sysconfig.h rd_stats.h count.h
302
303 iostat: iostat.o librdstats_light.a libsyscom.a
304
305 tapestat.o: tapestat.c tapestat.h version.h common.h count.h rd_stats.h
306
307 tapestat: tapestat.o librdstats_light.a libsyscom.a
308
309 pidstat.o: pidstat.c pidstat.h version.h common.h rd_stats.h count.h
310
311 pidstat: pidstat.o librdstats_light.a libsyscom.a
312
313 mpstat.o: mpstat.c mpstat.h version.h common.h rd_stats.h count.h
314
315 mpstat: mpstat.o librdstats_light.a libsyscom.a
316
317 cifsiostat.o: cifsiostat.c cifsiostat.h count.h rd_stats.h version.h common.h
318
319 cifsiostat: cifsiostat.o librdstats_light.a libsyscom.a
320
321 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
322
323 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
324         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
325
326 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
327         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
328
329 tests/ini/count_light.o: tests/ini/count.c tests/ini/common.h tests/ini/rd_stats.h
330         $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
331
332 tests/ini/libsyscom.a: tests/ini/common.o tests/ini/ioconf.o
333         $(AR) rvs $@ $?
334
335 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
336         $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
337
338 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
339
340 tests/ini/librdstats_light.a: tests/ini/rd_stats_light.o tests/ini/count_light.o
341         $(AR) rvs $@ $?
342
343 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
344
345 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
346
347 tests/32bits/sadc32.o: sadc.c sa.h version.h common.h rd_stats.h rd_sensors.h
348         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
349
350 tests/32bits/sadc32: LFLAGS += $(LFSENSORS)
351
352 tests/32bits/sadc32: tests/32bits/sadc32.o tests/32bits/act_sadc32.o tests/32bits/sa_wrap32.o tests/32bits/sa_common_light32.o tests/32bits/common_light32.o tests/32bits/systest32.o tests/32bits/librdstats32.a tests/32bits/librdsensors32.a
353         $(CC) -m32 -o $@ $(CFLAGS) $^ $(LFLAGS)
354
355 tests/32bits/sar32.o: sar.c sa.h version.h common.h rd_stats.h rd_sensors.h
356         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
357
358 tests/32bits/sar32: tests/32bits/sar32.o tests/32bits/act_sar32.o tests/32bits/format_sar32.o tests/32bits/sa_common32.o tests/32bits/pr_stats32.o tests/32bits/librdstats_light32.a tests/32bits/libsyscom32.a
359         $(CC) -m32 -o $@ $(CFLAGS) $^ $(LFLAGS)
360
361 tests/32bits/act_sadc32.o: activity.c sa.h common.h rd_stats.h rd_sensors.h
362         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
363
364 tests/32bits/act_sar32.o: activity.c sa.h common.h rd_stats.h rd_sensors.h pr_stats.h
365         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
366
367 tests/32bits/sa_wrap32.o: sa_wrap.c sa.h common.h rd_stats.h count.h rd_sensors.h
368         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
369
370 tests/32bits/sa_common_light32.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
371         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
372
373 tests/32bits/sa_common32.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
374         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
375
376 tests/32bits/common_light32.o: common.c version.h common.h
377         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
378
379 tests/32bits/systest32.o: systest.c systest.h
380         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
381
382 tests/32bits/libsyscom32.a: tests/32bits/common32.o tests/32bits/ioconf32.o tests/32bits/systest32.o
383         $(AR) rvs $@ $?
384
385 tests/32bits/librdstats32.a: tests/32bits/rd_stats32.o tests/32bits/count32.o
386         $(AR) rvs $@ $?
387
388 tests/32bits/librdstats_light32.a: tests/32bits/rd_stats_light32.o tests/32bits/count_light32.o
389         $(AR) rvs $@ $?
390
391 tests/32bits/librdsensors32.a: tests/32bits/rd_sensors32.o
392         $(AR) rvs $@ $?
393
394 tests/32bits/rd_stats32.o: rd_stats.c common.h rd_stats.h
395         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
396
397 tests/32bits/rd_stats_light32.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
398         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
399
400 tests/32bits/count32.o: count.c common.h rd_stats.h
401         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
402
403 tests/32bits/count_light32.o: count.c common.h rd_stats.h
404         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
405
406 tests/32bits/format_sar32.o: format.c sa.h common.h rd_stats.h rd_sensors.h
407         $(CC) -m32 -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
408
409 tests/32bits/pr_stats32.o: pr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h pr_stats.h
410         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
411
412 tests/32bits/common32.o: common.c version.h common.h
413         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
414
415 tests/32bits/ioconf32.o: ioconf.c ioconf.h common.h sysconfig.h
416         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
417
418 tests/32bits/rd_sensors32.o: rd_sensors.c common.h rd_sensors.h rd_stats.h
419         $(CC) -m32 -o $@ -c $(CFLAGS) $(DFLAGS) $<
420
421 ifdef REQUIRE_NLS
422 locales: $(NLSGMO)
423 else
424 locales:
425 endif
426
427 nls/sysstat.pot: $(wildcard *.c)
428         $(XGETTEXT) -o $@ -k_ --msgid-bugs-address="sysstat <at> orange.fr" $^
429
430 # Phony targets
431 .PHONY: clean distclean install install_base install_all uninstall \
432         uninstall_base uninstall_all dist bdist xdist gitdist squeeze simtest
433
434 install_man: man/sadc.8 man/sar.1 man/sadf.1 man/sa1.8 man/sa2.8 man/sysstat.5
435 ifeq ($(INSTALL_DOC),y)
436         mkdir -p $(DESTDIR)$(MAN1_DIR)
437         mkdir -p $(DESTDIR)$(MAN5_DIR)
438         mkdir -p $(DESTDIR)$(MAN8_DIR)
439         rm -f $(DESTDIR)$(MAN8_DIR)/sa1.8*
440         $(INSTALL_DATA) $(MANGRPARG) man/sa1.8 $(DESTDIR)$(MAN8_DIR)
441         rm -f $(DESTDIR)$(MAN8_DIR)/sa2.8*
442         $(INSTALL_DATA) $(MANGRPARG) man/sa2.8 $(DESTDIR)$(MAN8_DIR)
443         rm -f $(DESTDIR)$(MAN8_DIR)/sadc.8*
444         $(INSTALL_DATA) $(MANGRPARG) man/sadc.8 $(DESTDIR)$(MAN8_DIR)
445         rm -f $(DESTDIR)$(MAN1_DIR)/sar.1*
446         $(INSTALL_DATA) $(MANGRPARG) man/sar.1 $(DESTDIR)$(MAN1_DIR)
447         rm -f $(DESTDIR)$(MAN1_DIR)/sadf.1*
448         $(INSTALL_DATA) $(MANGRPARG) man/sadf.1 $(DESTDIR)$(MAN1_DIR)
449         rm -f $(DESTDIR)$(MAN5_DIR)/sysstat.5*
450         $(INSTALL_DATA) $(MANGRPARG) man/sysstat.5 $(DESTDIR)$(MAN5_DIR)
451         rm -f $(DESTDIR)$(MAN1_DIR)/iostat.1*
452         $(INSTALL_DATA) $(MANGRPARG) man/iostat.1 $(DESTDIR)$(MAN1_DIR)
453         rm -f $(DESTDIR)$(MAN1_DIR)/tapestat.1*
454         $(INSTALL_DATA) $(MANGRPARG) man/tapestat.1 $(DESTDIR)$(MAN1_DIR)
455         rm -f $(DESTDIR)$(MAN1_DIR)/mpstat.1*
456         $(INSTALL_DATA) $(MANGRPARG) man/mpstat.1 $(DESTDIR)$(MAN1_DIR)
457         rm -f $(DESTDIR)$(MAN1_DIR)/pidstat.1*
458         $(INSTALL_DATA) $(MANGRPARG) man/pidstat.1 $(DESTDIR)$(MAN1_DIR)
459         rm -f $(DESTDIR)$(MAN1_DIR)/cifsiostat.1*
460         $(INSTALL_DATA) $(MANGRPARG) man/cifsiostat.1 $(DESTDIR)$(MAN1_DIR)
461 ifeq ($(COMPRESS_MANPG),y)
462         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sa1.8
463         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sa2.8
464         $(ZIP) $(DESTDIR)$(MAN8_DIR)/sadc.8
465         $(ZIP) $(DESTDIR)$(MAN1_DIR)/sar.1
466         $(ZIP) $(DESTDIR)$(MAN1_DIR)/sadf.1
467         $(ZIP) $(DESTDIR)$(MAN5_DIR)/sysstat.5
468         $(ZIP) $(DESTDIR)$(MAN1_DIR)/iostat.1
469         $(ZIP) $(DESTDIR)$(MAN1_DIR)/tapestat.1
470         $(ZIP) $(DESTDIR)$(MAN1_DIR)/mpstat.1
471         $(ZIP) $(DESTDIR)$(MAN1_DIR)/pidstat.1
472         $(ZIP) $(DESTDIR)$(MAN1_DIR)/cifsiostat.1
473 endif
474 endif
475
476 squeeze:
477         catalogs="$(SOURCE_CODE)"; \
478         for c in $$catalogs; do \
479                 echo "Squeezing file: $$c"; \
480                 sed 's/[\t ]*$$//g' $$c > squeeze.tmp; \
481                 mv squeeze.tmp $$c; \
482         done
483
484 install_nls: locales
485 ifdef REQUIRE_NLS
486         catalogs='$(NLSGMO)'; \
487         for c in $$catalogs; do \
488                 c=`basename $$c`; \
489                 c=`echo $$c | sed 's/\.gmo$$//'`; \
490                 mkdir -p $(DESTDIR)$(NLS_DIR)/$$c/LC_MESSAGES; \
491                 echo "NLS: Installing $$c file..." ; \
492                 $(INSTALL_DATA) nls/$$c.gmo $(DESTDIR)$(NLS_DIR)/$$c/LC_MESSAGES/$(PACKAGE).mo; \
493         done
494 endif
495
496 install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls
497         mkdir -p $(DESTDIR)$(SA_LIB_DIR)
498         mkdir -p $(DESTDIR)$(SA_DIR)
499 ifeq ($(CLEAN_SA_DIR),y)
500         find $(DESTDIR)$(SA_DIR) -type f | egrep "/sar?[0-9]{2,8}(\.(Z|gz|bz2|xz|lz|lzo))?$$" | xargs rm -f
501         find $(DESTDIR)$(SA_DIR) -type f | egrep "/sar?[0-9]{2,8}$$" | xargs rm -f
502 endif
503         mkdir -p $(DESTDIR)$(BIN_DIR)
504         mkdir -p $(DESTDIR)$(DOC_DIR)
505         mkdir -p $(DESTDIR)$(SYSCONFIG_DIR)
506         $(INSTALL_BIN) sa1 $(DESTDIR)$(SA_LIB_DIR)
507         $(INSTALL_BIN) sa2 $(DESTDIR)$(SA_LIB_DIR)
508         $(INSTALL_BIN) sadc $(DESTDIR)$(SA_LIB_DIR)
509         $(INSTALL_BIN) sar $(DESTDIR)$(BIN_DIR)
510         $(INSTALL_BIN) sadf $(DESTDIR)$(BIN_DIR)
511         $(INSTALL_BIN) iostat $(DESTDIR)$(BIN_DIR)
512         $(INSTALL_BIN) tapestat $(DESTDIR)$(BIN_DIR)
513         $(INSTALL_BIN) mpstat $(DESTDIR)$(BIN_DIR)
514         $(INSTALL_BIN) pidstat $(DESTDIR)$(BIN_DIR)
515         $(INSTALL_BIN) cifsiostat $(DESTDIR)$(BIN_DIR)
516         $(INSTALL_DATA) sysstat.ioconf $(DESTDIR)$(SYSCONFIG_DIR)
517         $(INSTALL_DATA) sysstat.sysconfig $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
518 ifeq ($(INSTALL_DOC),y)
519         $(INSTALL_DATA) CHANGES $(DESTDIR)$(DOC_DIR)
520         $(INSTALL_DATA) COPYING $(DESTDIR)$(DOC_DIR)
521         $(INSTALL_DATA) CREDITS $(DESTDIR)$(DOC_DIR)
522         $(INSTALL_DATA) README.md $(DESTDIR)$(DOC_DIR)
523         $(INSTALL_DATA) FAQ.md $(DESTDIR)$(DOC_DIR)
524         $(INSTALL_DATA) *.lsm $(DESTDIR)$(DOC_DIR)
525 endif
526
527 ifdef SYSTEMD_UNIT_DIR
528 install_all: install_base cron/sysstat-collect.service cron/sysstat-collect.timer \
529         cron/sysstat.sleep cron/sysstat-summary.service cron/sysstat-summary.timer
530 else
531 install_all: install_base cron/crontab sysstat \
532         cron/sysstat.crond cron/sysstat.cron.daily cron/sysstat.cron.hourly
533 endif
534
535 ifneq ($(IGNORE_FILE_ATTRIBUTES),y)
536         $(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
537 endif
538 ifdef SYSTEMD_UNIT_DIR
539         mkdir -p $(DESTDIR)$(SYSTEMD_UNIT_DIR)
540 else
541         if [ -d /etc/cron.d ]; then \
542                 mkdir -p $(DESTDIR)/etc/cron.d; \
543         elif [ -d /etc/cron.hourly -a -d /etc/cron.daily ]; then \
544                 mkdir -p $(DESTDIR)/etc/cron.hourly $(DESTDIR)/etc/cron.daily; \
545         fi
546         if [ -d $(INIT_DIR) ]; then \
547                 mkdir -p $(DESTDIR)$(INIT_DIR); \
548         elif [ -d $(RC_DIR) ]; then \
549                 mkdir -p $(DESTDIR)$(RC_DIR); \
550         fi
551 endif
552
553 ifdef SYSTEMD_SLEEP_DIR
554         mkdir -p $(DESTDIR)$(SYSTEMD_SLEEP_DIR)
555 endif
556
557         if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
558                 if [ -d $(DESTDIR)/etc/cron.d ]; then \
559                         $(INSTALL_DATA) cron/sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
560                 elif [ -d $(DESTDIR)/etc/cron.hourly -a -d $(DESTDIR)/etc/cron.daily ]; then \
561                         $(INSTALL_BIN) cron/sysstat.cron.hourly $(DESTDIR)/etc/cron.hourly/sysstat; \
562                         $(INSTALL_BIN) cron/sysstat.cron.daily $(DESTDIR)/etc/cron.daily/sysstat; \
563                 fi \
564         fi
565 ifeq ($(COPY_ONLY),n)
566         if [ \( -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" \) -a ! -d $(DESTDIR)/etc/cron.d ]; then \
567                 if [ ! -d $(DESTDIR)/etc/cron.hourly -o ! -d $(DESTDIR)/etc/cron.daily ]; then \
568                         su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).save"; \
569                         $(CP) -a /tmp/crontab-$(CRON_OWNER).save ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.save; \
570                         echo "USER'S PREVIOUS CRONTAB SAVED IN CURRENT DIRECTORY (USING .save SUFFIX)."; \
571                         su $(CRON_OWNER) -c "crontab cron/crontab"; \
572                 fi \
573         fi
574 endif
575         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
576                 $(INSTALL_DATA) sysstat.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
577                 $(INSTALL_DATA) cron/sysstat-collect.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
578                 $(INSTALL_DATA) cron/sysstat-collect.timer $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
579                 $(INSTALL_DATA) cron/sysstat-summary.service $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
580                 $(INSTALL_DATA) cron/sysstat-summary.timer $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
581         elif [ -d $(DESTDIR)$(INIT_DIR) ]; then \
582                 $(INSTALL_BIN) sysstat $(DESTDIR)$(INIT_DIR)/sysstat; \
583                 if [ "$(COPY_ONLY)" = "n" ]; then \
584                         if [ -x "$(CHKCONFIG)" ]; then \
585                                 cd $(DESTDIR)$(INIT_DIR) && $(CHKCONFIG) --add sysstat; \
586                         else \
587                                 [ -d $(DESTDIR)$(RC2_DIR) ] || mkdir -p $(DESTDIR)$(RC2_DIR); \
588                                 [ -d $(DESTDIR)$(RC3_DIR) ] || mkdir -p $(DESTDIR)$(RC3_DIR); \
589                                 [ -d $(DESTDIR)$(RC5_DIR) ] || mkdir -p $(DESTDIR)$(RC5_DIR); \
590                                 cd $(DESTDIR)$(RC2_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
591                                 cd $(DESTDIR)$(RC3_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
592                                 cd $(DESTDIR)$(RC5_DIR) && $(LN_S) -f ../$(INITD_DIR)/sysstat S01sysstat; \
593                         fi \
594                 fi \
595         elif [ -d $(DESTDIR)$(RC_DIR) ]; then \
596                 $(INSTALL_BIN) sysstat $(DESTDIR)$(RC_DIR)/rc.sysstat; \
597                 if [ "$(COPY_ONLY)" = "n" ]; then \
598                         if [ -x "$(CHKCONFIG)" ]; then \
599                                 cd $(DESTDIR)$(RC_DIR) && $(CHKCONFIG) --add rc.sysstat; \
600                         else \
601                                 [ -d $(DESTDIR)$(RC2_DIR) ] || mkdir -p $(DESTDIR)$(RC2_DIR); \
602                                 [ -d $(DESTDIR)$(RC3_DIR) ] || mkdir -p $(DESTDIR)$(RC3_DIR); \
603                                 [ -d $(DESTDIR)$(RC5_DIR) ] || mkdir -p $(DESTDIR)$(RC5_DIR); \
604                                 cd $(DESTDIR)$(RC2_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
605                                 cd $(DESTDIR)$(RC3_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
606                                 cd $(DESTDIR)$(RC5_DIR) && $(LN_S) -f ../rc.sysstat S01sysstat; \
607                         fi \
608                 fi \
609         fi
610         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
611                 $(INSTALL_BIN) cron/sysstat.sleep $(DESTDIR)$(SYSTEMD_SLEEP_DIR); \
612         fi
613
614 ifeq ($(COPY_ONLY),n)
615         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
616                 $(SYSTEMCTL) enable sysstat.service; \
617         fi
618 endif
619
620 uninstall_man:
621 ifeq ($(INSTALL_DOC),y)
622         rm -f $(DESTDIR)$(MAN8_DIR)/sadc.8*
623         rm -f $(DESTDIR)$(MAN8_DIR)/sa1.8*
624         rm -f $(DESTDIR)$(MAN8_DIR)/sa2.8*
625         rm -f $(DESTDIR)$(MAN1_DIR)/sar.1*
626         rm -f $(DESTDIR)$(MAN1_DIR)/sadf.1*
627         rm -f $(DESTDIR)$(MAN5_DIR)/sysstat.5*
628         rm -f $(DESTDIR)$(MAN1_DIR)/iostat.1*
629         rm -f $(DESTDIR)$(MAN1_DIR)/tapestat.1*
630         rm -f $(DESTDIR)$(MAN1_DIR)/mpstat.1*
631         rm -f $(DESTDIR)$(MAN1_DIR)/pidstat.1*
632         rm -f $(DESTDIR)$(MAN1_DIR)/cifsiostat.1*
633 endif
634
635 uninstall_nls:
636 ifdef REQUIRE_NLS
637         -catalogs='$(NLSGMO)'; \
638         for c in $$catalogs; do \
639                 c=`basename $$c`; \
640                 c=`echo $$c | sed 's/\.gmo$$//'`; \
641                 rm -f $(DESTDIR)$(PREFIX)/share/locale/$$c/LC_MESSAGES/$(PACKAGE).mo; \
642                 rmdir --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/locale/$$c/LC_MESSAGES 2>/dev/null; \
643                 rmdir --ignore-fail-on-non-empty $(DESTDIR)$(PREFIX)/share/locale/$$c 2>/dev/null; \
644         done
645 endif
646
647 uninstall_base: uninstall_man uninstall_nls
648         rm -f $(DESTDIR)$(SA_LIB_DIR)/sadc
649         rm -f $(DESTDIR)$(SA_LIB_DIR)/sa1
650         rm -f $(DESTDIR)$(SA_LIB_DIR)/sa2
651         rm -f $(DESTDIR)$(BIN_DIR)/sar
652         rm -f $(DESTDIR)$(BIN_DIR)/sadf
653         rm -f $(DESTDIR)$(BIN_DIR)/iostat
654         rm -f $(DESTDIR)$(BIN_DIR)/tapestat
655         rm -f $(DESTDIR)$(BIN_DIR)/mpstat
656         rm -f $(DESTDIR)$(BIN_DIR)/pidstat
657         rm -f $(DESTDIR)$(BIN_DIR)/cifsiostat
658         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_LIB_DIR)
659         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)/[0-9]?????
660         -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)
661 #               No need to keep sysstat scripts, config files and links since
662 #               the binaries have been deleted.
663         rm -f $(DESTDIR)$(INIT_DIR)/sysstat
664         rm -f $(DESTDIR)$(RC_DIR)/rc.sysstat
665         rm -f $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
666         rm -f $(DESTDIR)$(SYSCONFIG_DIR)/sysstat.ioconf
667         rm -f $(DESTDIR)$(RC2_DIR)/S??sysstat
668         rm -f $(DESTDIR)$(RC2_DIR)/S??rc.sysstat
669         rm -f $(DESTDIR)$(RC3_DIR)/S??sysstat
670         rm -f $(DESTDIR)$(RC3_DIR)/S??rc.sysstat
671         rm -f $(DESTDIR)$(RC5_DIR)/S??sysstat
672         rm -f $(DESTDIR)$(RC5_DIR)/S??rc.sysstat
673 #               Delete possible kill entries installed by chkconfig
674         rm -f $(DESTDIR)$(RC0_DIR)/K??sysstat
675         rm -f $(DESTDIR)$(RC0_DIR)/K??rc.sysstat
676         rm -f $(DESTDIR)$(RC1_DIR)/K??sysstat
677         rm -f $(DESTDIR)$(RC1_DIR)/K??rc.sysstat
678         rm -f $(DESTDIR)$(RC4_DIR)/K??sysstat
679         rm -f $(DESTDIR)$(RC4_DIR)/K??rc.sysstat
680         rm -f $(DESTDIR)$(RC6_DIR)/K??sysstat
681         rm -f $(DESTDIR)$(RC6_DIR)/K??rc.sysstat
682 #               Vixie cron entries also can be safely deleted here
683         rm -f $(DESTDIR)/etc/cron.d/sysstat
684 #               Id. for Slackware cron entries
685         rm -f $(DESTDIR)/etc/cron.hourly/sysstat
686         rm -f $(DESTDIR)/etc/cron.daily/sysstat
687 ifeq ($(INSTALL_DOC),y)
688         rm -f $(DESTDIR)$(DOC_DIR)/*
689         -rmdir $(DESTDIR)$(DOC_DIR)
690 endif
691         @echo "Please ignore the errors above, if any."
692
693 uninstall_all: uninstall_base
694 ifeq ($(COPY_ONLY),n)
695         -if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
696                 su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).old" ; \
697                 $(CP) -a /tmp/crontab-$(CRON_OWNER).old ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.old ; \
698                 echo "USER'S CRONTAB SAVED IN CURRENT DIRECTORY (USING .old SUFFIX)." ; \
699                 su $(CRON_OWNER) -c "crontab -r" ; \
700         fi
701         -if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
702                 $(SYSTEMCTL) disable sysstat.service; \
703         fi
704 endif
705         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
706                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat.service; \
707                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.service; \
708                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.timer; \
709                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.service; \
710                 rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.timer; \
711         fi
712         if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
713                 rm -f $(DESTDIR)$(SYSTEMD_SLEEP_DIR)/sysstat.sleep; \
714         fi
715
716 ifeq ($(INSTALL_CRON),y)
717 uninstall: uninstall_all
718 else
719 uninstall: uninstall_base
720 endif
721
722 ifeq ($(INSTALL_CRON),y)
723 install: install_all
724 else
725 install: install_base
726 endif
727
728 ifdef REQUIRE_NLS
729 po-files: nls/sysstat.pot $(NLSPOT)
730 else
731 po-files:
732 endif
733
734 TESTDIR="tests"
735 TESTRUN="/bin/sh"
736 TESTLIST:=$(shell ls $(TESTDIR) | egrep '^[0-9]+$$' | sort -n)
737
738 testcomp: tests/ini/inisar sa32bit
739
740 ifeq ($(TGLIB32),yes)
741 sa32bit: tests/32bits/sadc32 tests/32bits/sar32
742 else
743 sa32bit:
744 endif
745
746 unit:
747         @echo $(X) 2>&1
748         @cat $(TESTDIR)/$(X) | $(TESTRUN)
749
750 # Use "do_test" script to make the following target
751 simtest: all testcomp
752         @$(foreach x, $(TESTLIST), $(MAKE) X=$x unit || exit;)
753         rm -f tests/root
754         ln -s root1 tests/root
755         @echo Simulation tests: Success!
756
757 clean:
758         rm -f sadc sar sadf iostat tapestat mpstat pidstat cifsiostat *.o *.a core TAGS tests/*.tmp
759         rm -f nfsiostat* man/nfsiostat*
760         rm -f tests/sa[012]*
761         rm -f tests/root
762         ln -s root1 tests/root
763         rm -f tests/ini/inisar tests/32bits/sadc32 tests/32bits/sar32
764         rm -f tests/ini/*.o tests/ini/*.a tests/ini/core tests/pcpar.*
765         rm -f tests/32bits/*.o tests/32bits/*.a tests/32bits/core
766         find nls -name "*.gmo" -exec rm -f {} \;
767
768 almost-distclean: clean nls/sysstat.pot
769         rm -f sa1 sa2 sysstat cron/crontab version.h sysconfig.h
770         rm -f sysstat.sysconfig cron/sysstat.crond cron/sysstat.cron.daily sysstat.service
771         rm -f cron/sysstat-collect.service cron/sysstat-collect.timer
772         rm -f cron/sysstat-summary.service cron/sysstat-summary.timer cron/sysstat.sleep
773         rm -f cron/sysstat.cron.hourly cron/sysstat.crond.sample cron/sysstat.crond.sample.in
774         rm -f man/sa1.8 man/sa2.8 man/sadc.8 man/sadf.1 man/sar.1 man/iostat.1 man/sysstat.5
775         rm -f tests/variables tests/data
776         rm -f man/cifsiostat.1
777         rm -f *.log config.status
778         rm -rf autom4te.cache
779         rm -f *.save *.old .*.swp data
780         find . -name "*~" -exec rm -f {} \;
781
782 distclean: almost-distclean
783         rm -f Makefile
784
785 maintainer-clean: distclean
786         rm -f configure
787
788 dist: almost-distclean
789         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | gzip -v9 > sysstat-$(VERSION).tar.gz)
790
791 bdist: almost-distclean
792         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION).tar.bz2)
793
794 xdist: almost-distclean
795         cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | xz > sysstat-$(VERSION).tar.xz)
796
797 gitdist: almost-distclean
798         cd .. && (tar --exclude=Makefile -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION)-git.tar.bz2)
799
800 tags:
801         etags ./*.[hc]
802