]> granicus.if.org Git - sysstat/blobdiff - Makefile.in
sar/sadc: Dereference nr array pointer in struct activity
[sysstat] / Makefile.in
index 3a85497d72c93c95f431b62efabb405d226f8285..be4049cf6289e077f7d1aa52d3841b7a54c6d656 100644 (file)
@@ -1,5 +1,5 @@
 # Makefile to build sysstat commands
-# (C) 1999-2016 Sebastien GODARD (sysstat <at> orange.fr)
+# (C) 1999-2020 Sebastien GODARD (sysstat <at> orange.fr)
 
 # Version and package name
 VERSION = @PACKAGE_VERSION@
@@ -23,13 +23,32 @@ INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_BIN = @INSTALL_BIN@
 
+ifndef HAVE_SENSORS
 HAVE_SENSORS = @HAVE_SENSORS@
+endif
 LFSENSORS =
 DFSENSORS =
 ifeq ($(HAVE_SENSORS),y)
 LFSENSORS = @LFSENSORS@
 DFSENSORS = @DFSENSORS@
 endif
+ifndef HAVE_SENSORS32
+HAVE_SENSORS32 = @HAVE_SENSORS32@
+endif
+LFSENSORS32 =
+DFSENSORS32 =
+ifeq ($(HAVE_SENSORS32),y)
+LFSENSORS32 = @LFSENSORS32@
+DFSENSORS32 = @DFSENSORS32@
+endif
+
+HAVE_PCP = @HAVE_PCP@
+LFPCP =
+DFPCP =
+ifeq ($(HAVE_PCP),y)
+LFPCP = @LFPCP@
+DFPCP = @DFPCP@
+endif
 
 # Directories
 ifndef PREFIX
@@ -66,14 +85,33 @@ DOC_DIR = @docdir@
 endif
 
 NLS_DIR = $(PREFIX)/share/locale
+
+ifndef SYSCONFIG_DIR
 SYSCONFIG_DIR = @SYSCONFIG_DIR@
+endif
+ifndef SYSCONFIG_FILE
+SYSCONFIG_FILE = @SYSCONFIG_FILE@
+endif
 
 # Compiler flags
-CFLAGS = @CFLAGS@ -Wall -Wstrict-prototypes -pipe -O2
+ifndef CFLAGS
+CFLAGS = @CFLAGS@
+endif
+CFLAGS += -Wall -Wstrict-prototypes -pipe -O2
+
+ifndef DFLAGS
 DFLAGS = @DFLAGS@
-LFLAGS = @STRIP@
+endif
 DFLAGS += -DSA_DIR=\"$(SA_DIR)\" -DSADC_PATH=\"$(SADC_PATH)\"
-DFLAGS += $(DFSENSORS)
+DFLAGS += $(DFSENSORS) $(DFSENSORS32)
+DFLAGS += $(DFPCP)
+ifdef TFLAGS
+DFLAGS += $(TFLAGS)
+endif
+
+ifndef LFLAGS
+LFLAGS = @STRIP@
+endif
 
 # Commands
 ifndef MSGFMT
@@ -94,19 +132,40 @@ SYSMACROS = @SYSMACROS@
 ifeq ($(SYSMACROS),y)
        DFLAGS += -DHAVE_SYS_SYSMACROS_H
 endif
+LINUX_SCHED = @LINUX_SCHED@
+ifeq ($(LINUX_SCHED),y)
+       DFLAGS += -DHAVE_LINUX_SCHED_H
+endif
+PCP_IMPL = @PCP_IMPL@
+ifeq ($(PCP_IMPL),y)
+       DFLAGS += -DHAVE_PCP_IMPL_H
+endif
 SYSPARAM = @SYSPARAM@
 ifeq ($(SYSPARAM),y)
        DFLAGS += -DHAVE_SYS_PARAM_H
 endif
+
+ifndef TGLIB32
+TGLIB32 = @TGLIB32@
+endif
+
+ifndef NLS
 NLS = @NLS@
+endif
+LFLAGS += @LFINTL@
 ifeq ($(NLS),y)
 REQUIRE_NLS = -DUSE_NLS -DPACKAGE=\"$(PACKAGE)\" -DLOCALEDIR=\"$(NLS_DIR)\"
 endif
 ifdef REQUIRE_NLS
        DFLAGS += $(REQUIRE_NLS)
 endif
+
+ifndef INSTALL_CRON
 INSTALL_CRON = @INSTALL_CRON@
+endif
+ifndef CRON_OWNER
 CRON_OWNER = @CRON_OWNER@
+endif
 
 MAN_GROUP = @MAN_GROUP@
 ifndef IGNORE_FILE_ATTRIBUTES
@@ -133,6 +192,14 @@ endif
 # Systemd
 SYSTEMCTL = @SYSTEMCTL@
 SYSTEMD_UNIT_DIR = @SYSTEMD_UNIT_DIR@
+SYSTEMD_SLEEP_DIR = @SYSTEMD_SLEEP_DIR@
+
+ifndef USE_CROND
+USE_CROND = @USE_CROND@
+endif
+ifeq ($(USE_CROND),y)
+SYSTEMD_UNIT_DIR =
+endif
 
 # Run-command directories
 ifndef RC_DIR
@@ -172,22 +239,30 @@ NLSPOT= $(NLSPO:.po=.pot)
 
 all: sadc sar sadf iostat tapestat mpstat pidstat cifsiostat locales
 
-common.o: common.c version.h common.h ioconf.h sysconfig.h
+common_light.o: common.c version.h common.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+common.o: common.c version.h common.h
 
-sa_common.o: sa_common.c sa.h common.h ioconf.h sysconfig.h rd_stats.h
+systest.o: systest.c systest.h
+
+sa_common_light.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+sa_common.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
 
 ioconf.o: ioconf.c ioconf.h common.h sysconfig.h
 
-act_sadc.o: activity.c sa.h rd_stats.h rd_sensors.h
+act_sadc.o: activity.c sa.h common.h rd_stats.h rd_sensors.h
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
 
-act_sar.o: activity.c sa.h pr_stats.h
+act_sar.o: activity.c sa.h common.h rd_stats.h rd_sensors.h pr_stats.h
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
 
-act_sadf.o: activity.c sa.h rndr_stats.h xml_stats.h json_stats.h svg_stats.h raw_stats.h
+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
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
 
-rd_stats.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
+rd_stats.o: rd_stats.c common.h rd_stats.h
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
 
 rd_stats_light.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
@@ -199,35 +274,40 @@ count.o: count.c common.h rd_stats.h
 count_light.o: count.c common.h rd_stats.h
        $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
 
-rd_sensors.o: rd_sensors.c common.h rd_sensors.h sysconfig.h
+rd_sensors.o: rd_sensors.c common.h rd_sensors.h rd_stats.h
+
+pr_stats.o: pr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h pr_stats.h
 
-pr_stats.o: pr_stats.c sa.h ioconf.h sysconfig.h pr_stats.h
+rndr_stats.o: rndr_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h rndr_stats.h
 
-rndr_stats.o: rndr_stats.c sa.h ioconf.h sysconfig.h rndr_stats.h
+xml_stats.o: xml_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h xml_stats.h
 
-xml_stats.o: xml_stats.c sa.h sadf.h ioconf.h sysconfig.h xml_stats.h
+json_stats.o: json_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h json_stats.h
 
-json_stats.o: json_stats.c sa.h sadf.h ioconf.h sysconfig.h json_stats.h
+svg_stats.o: svg_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h svg_stats.h
 
-svg_stats.o: svg_stats.c sa.h sadf.h ioconf.h sysconfig.h svg_stats.h
+raw_stats.o: raw_stats.c sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h raw_stats.h
 
-raw_stats.o: raw_stats.c sa.h sadf.h ioconf.h sysconfig.h raw_stats.h
+pcp_stats.o: pcp_stats.c sa.h pcp_stats.h
 
-sa_wrap.o: sa_wrap.c sa.h rd_stats.h count.h rd_sensors.h prealloc.h
+sa_wrap.o: sa_wrap.c sa.h common.h rd_stats.h count.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
 
-format_sadf.o: format.c sadf.h
+format_sadf.o: format.c sadf.h sa.h common.h rd_stats.h rd_sensors.h
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADF $(DFLAGS) $<
 
-format_sar.o: format.c sa.h
+format_sar.o: format.c sa.h common.h rd_stats.h rd_sensors.h
        $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
 
-sadf_misc.o: sadf_misc.c sadf.h sa.h
+pcp_def_metrics.o: pcp_def_metrics.c
+
+sadf_misc.o: sadf_misc.c sadf.h pcp_def_metrics.h sa.h common.h rd_stats.h rd_sensors.h
 
-sa_conv.o: sa_conv.c sadf.h sa.h sa_conv.h
+sa_conv.o: sa_conv.c version.h sadf.h sa.h common.h rd_stats.h rd_sensors.h sa_conv.h
 
 # Explicit rules needed to prevent possible file corruption
 # when using parallel execution.
-libsyscom.a: common.o ioconf.o
+libsyscom.a: common.o ioconf.o systest.o
        $(AR) rvs $@ $?
 
 # Ditto
@@ -241,24 +321,27 @@ librdstats_light.a: rd_stats_light.o count_light.o
 librdsensors.a: rd_sensors.o
        $(AR) rvs $@ $?
 
-sadc.o: sadc.c sa.h version.h common.h ioconf.h sysconfig.h rd_stats.h rd_sensors.h
+sadc.o: sadc.c sa.h version.h common.h rd_stats.h rd_sensors.h
 
 sadc: LFLAGS += $(LFSENSORS)
-sadc: sadc.o act_sadc.o sa_wrap.o sa_common.o librdstats.a librdsensors.a libsyscom.a
 
-sar.o: sar.c sa.h version.h common.h ioconf.h pr_stats.h sysconfig.h
+sadc: sadc.o act_sadc.o sa_wrap.o sa_common_light.o common_light.o systest.o librdstats.a librdsensors.a
+
+sar.o: sar.c sa.h version.h common.h rd_stats.h rd_sensors.h
+
+sar: sar.o act_sar.o format_sar.o sa_common.o pr_stats.o librdstats_light.a libsyscom.a
 
-sar: sar.o act_sar.o format_sar.o sa_common.o pr_stats.o libsyscom.a
+sadf.o: sadf.c sadf.h version.h sa.h common.h rd_stats.h rd_sensors.h
 
-sadf.o: sadf.c sadf.h version.h sa.h common.h ioconf.h sysconfig.h
+sadf: LFLAGS += $(LFPCP)
 
-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 libsyscom.a
+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
 
 iostat.o: iostat.c iostat.h version.h common.h ioconf.h sysconfig.h rd_stats.h count.h
 
 iostat: iostat.o librdstats_light.a libsyscom.a
 
-tapestat.o: tapestat.c tapestat.h version.h common.h count.h
+tapestat.o: tapestat.c tapestat.h version.h common.h count.h rd_stats.h
 
 tapestat: tapestat.o librdstats_light.a libsyscom.a
 
@@ -270,10 +353,111 @@ mpstat.o: mpstat.c mpstat.h version.h common.h rd_stats.h count.h
 
 mpstat: mpstat.o librdstats_light.a libsyscom.a
 
-cifsiostat.o: cifsiostat.c cifsiostat.h count.h version.h common.h
+cifsiostat.o: cifsiostat.c cifsiostat.h count.h rd_stats.h version.h common.h
 
 cifsiostat: cifsiostat.o librdstats_light.a libsyscom.a
 
+# inisar: Old sar version
+
+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
+
+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
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
+
+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
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/ini/count_light.o: tests/ini/count.c tests/ini/common.h tests/ini/rd_stats.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/ini/libsyscom.a: tests/ini/common.o tests/ini/ioconf.o
+       $(AR) rvs $@ $?
+
+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
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
+
+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
+
+tests/ini/librdstats_light.a: tests/ini/rd_stats_light.o tests/ini/count_light.o
+       $(AR) rvs $@ $?
+
+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
+
+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
+
+# sar32/sadc32: 32-bit versions of sar/sadc
+tests/32bits/sadc32.o: sadc.c sa.h version.h common.h rd_stats.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/sar32.o: sar.c sa.h version.h common.h rd_stats.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/act_sadc32.o: activity.c sa.h common.h rd_stats.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+tests/32bits/act_sar32.o: activity.c sa.h common.h rd_stats.h rd_sensors.h pr_stats.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
+
+tests/32bits/sa_wrap32.o: sa_wrap.c sa.h common.h rd_stats.h count.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+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
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+tests/32bits/sa_common32.o: sa_common.c version.h sa.h common.h rd_stats.h rd_sensors.h ioconf.h sysconfig.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/common_light32.o: common.c version.h common.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+tests/32bits/systest32.o: systest.c systest.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/libsyscom32.a: tests/32bits/common32.o tests/32bits/ioconf32.o tests/32bits/systest32.o
+       $(AR) rvs $@ $?
+
+tests/32bits/librdstats32.a: tests/32bits/rd_stats32.o tests/32bits/count32.o
+       $(AR) rvs $@ $?
+
+tests/32bits/librdstats_light32.a: tests/32bits/rd_stats_light32.o tests/32bits/count_light32.o
+       $(AR) rvs $@ $?
+
+tests/32bits/librdsensors32.a: tests/32bits/rd_sensors32.o
+       $(AR) rvs $@ $?
+
+tests/32bits/rd_stats32.o: rd_stats.c common.h rd_stats.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+tests/32bits/rd_stats_light32.o: rd_stats.c common.h rd_stats.h ioconf.h sysconfig.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/count32.o: count.c common.h rd_stats.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SADC $(DFLAGS) $<
+
+tests/32bits/count_light32.o: count.c common.h rd_stats.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/format_sar32.o: format.c sa.h common.h rd_stats.h rd_sensors.h
+       $(CC) -o $@ -c $(CFLAGS) -DSOURCE_SAR $(DFLAGS) $<
+
+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
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/common32.o: common.c version.h common.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/ioconf32.o: ioconf.c ioconf.h common.h sysconfig.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/rd_sensors32.o: rd_sensors.c common.h rd_sensors.h rd_stats.h
+       $(CC) -o $@ -c $(CFLAGS) $(DFLAGS) $<
+
+tests/32bits/sadc32: LFLAGS += $(LFSENSORS32)
+
+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
+
+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
+
 ifdef REQUIRE_NLS
 locales: $(NLSGMO)
 else
@@ -285,7 +469,7 @@ nls/sysstat.pot: $(wildcard *.c)
 
 # Phony targets
 .PHONY: clean distclean install install_base install_all uninstall \
-       uninstall_base uninstall_all dist bdist xdist gitdist squeeze
+       uninstall_base uninstall_all dist bdist xdist gitdist squeeze simtest
 
 install_man: man/sadc.8 man/sar.1 man/sadf.1 man/sa1.8 man/sa2.8 man/sysstat.5
 ifeq ($(INSTALL_DOC),y)
@@ -353,9 +537,8 @@ install_base: all sa1 sa2 sysstat.sysconfig install_man install_nls
        mkdir -p $(DESTDIR)$(SA_LIB_DIR)
        mkdir -p $(DESTDIR)$(SA_DIR)
 ifeq ($(CLEAN_SA_DIR),y)
-       find $(DESTDIR)$(SA_DIR) \( -name 'sar??' -o -name 'sa??' -o -name 'sar??.gz' -o -name 'sa??.gz' \) \
-               -exec rm -f {} \;
-       -rmdir --ignore-fail-on-non-empty $(DESTDIR)$(SA_DIR)/[0-9]?????
+       find $(DESTDIR)$(SA_DIR) -type f | egrep "/sar?[0-9]{2,8}(\.(Z|gz|bz2|xz|lz|lzo))?$$" | xargs rm -f
+       find $(DESTDIR)$(SA_DIR) -type f | egrep "/sar?[0-9]{2,8}$$" | xargs rm -f
 endif
        mkdir -p $(DESTDIR)$(BIN_DIR)
        mkdir -p $(DESTDIR)$(DOC_DIR)
@@ -371,18 +554,24 @@ endif
        $(INSTALL_BIN) pidstat $(DESTDIR)$(BIN_DIR)
        $(INSTALL_BIN) cifsiostat $(DESTDIR)$(BIN_DIR)
        $(INSTALL_DATA) sysstat.ioconf $(DESTDIR)$(SYSCONFIG_DIR)
-       $(INSTALL_DATA) sysstat.sysconfig $(DESTDIR)$(SYSCONFIG_DIR)/sysstat
+       $(INSTALL_DATA) sysstat.sysconfig $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
 ifeq ($(INSTALL_DOC),y)
        $(INSTALL_DATA) CHANGES $(DESTDIR)$(DOC_DIR)
        $(INSTALL_DATA) COPYING $(DESTDIR)$(DOC_DIR)
        $(INSTALL_DATA) CREDITS $(DESTDIR)$(DOC_DIR)
        $(INSTALL_DATA) README.md $(DESTDIR)$(DOC_DIR)
-       $(INSTALL_DATA) FAQ $(DESTDIR)$(DOC_DIR)
+       $(INSTALL_DATA) FAQ.md $(DESTDIR)$(DOC_DIR)
        $(INSTALL_DATA) *.lsm $(DESTDIR)$(DOC_DIR)
 endif
 
+ifdef SYSTEMD_UNIT_DIR
+install_all: install_base cron/sysstat-collect.service cron/sysstat-collect.timer \
+       cron/sysstat.sleep cron/sysstat-summary.service cron/sysstat-summary.timer
+else
 install_all: install_base cron/crontab sysstat \
        cron/sysstat.crond cron/sysstat.cron.daily cron/sysstat.cron.hourly
+endif
+
 ifneq ($(IGNORE_FILE_ATTRIBUTES),y)
        $(CHOWN) $(CRON_OWNER) $(DESTDIR)$(SA_DIR)
 endif
@@ -400,6 +589,11 @@ else
                mkdir -p $(DESTDIR)$(RC_DIR); \
        fi
 endif
+
+ifdef SYSTEMD_SLEEP_DIR
+       mkdir -p $(DESTDIR)$(SYSTEMD_SLEEP_DIR)
+endif
+
        if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
                if [ -d $(DESTDIR)/etc/cron.d ]; then \
                        $(INSTALL_DATA) cron/sysstat.crond $(DESTDIR)/etc/cron.d/sysstat; \
@@ -426,7 +620,7 @@ endif
                $(INSTALL_DATA) cron/sysstat-summary.timer $(DESTDIR)$(SYSTEMD_UNIT_DIR); \
        elif [ -d $(DESTDIR)$(INIT_DIR) ]; then \
                $(INSTALL_BIN) sysstat $(DESTDIR)$(INIT_DIR)/sysstat; \
-               if [ "$(COPY_ONLY)" == "n" ]; then \
+               if [ "$(COPY_ONLY)" = "n" ]; then \
                        if [ -x "$(CHKCONFIG)" ]; then \
                                cd $(DESTDIR)$(INIT_DIR) && $(CHKCONFIG) --add sysstat; \
                        else \
@@ -440,7 +634,7 @@ endif
                fi \
        elif [ -d $(DESTDIR)$(RC_DIR) ]; then \
                $(INSTALL_BIN) sysstat $(DESTDIR)$(RC_DIR)/rc.sysstat; \
-               if [ "$(COPY_ONLY)" == "n" ]; then \
+               if [ "$(COPY_ONLY)" = "n" ]; then \
                        if [ -x "$(CHKCONFIG)" ]; then \
                                cd $(DESTDIR)$(RC_DIR) && $(CHKCONFIG) --add rc.sysstat; \
                        else \
@@ -453,8 +647,12 @@ endif
                        fi \
                fi \
        fi
+       if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
+               $(INSTALL_BIN) cron/sysstat.sleep $(DESTDIR)$(SYSTEMD_SLEEP_DIR); \
+       fi
+
 ifeq ($(COPY_ONLY),n)
-       if [ -x "$(SYSTEMCTL)" ]; then \
+       if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
                $(SYSTEMCTL) enable sysstat.service; \
        fi
 endif
@@ -504,7 +702,7 @@ uninstall_base: uninstall_man uninstall_nls
 #              the binaries have been deleted.
        rm -f $(DESTDIR)$(INIT_DIR)/sysstat
        rm -f $(DESTDIR)$(RC_DIR)/rc.sysstat
-       rm -f $(DESTDIR)$(SYSCONFIG_DIR)/sysstat
+       rm -f $(DESTDIR)$(SYSCONFIG_DIR)/$(SYSCONFIG_FILE)
        rm -f $(DESTDIR)$(SYSCONFIG_DIR)/sysstat.ioconf
        rm -f $(DESTDIR)$(RC2_DIR)/S??sysstat
        rm -f $(DESTDIR)$(RC2_DIR)/S??rc.sysstat
@@ -534,23 +732,26 @@ endif
 
 uninstall_all: uninstall_base
 ifeq ($(COPY_ONLY),n)
-       if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d $(DESTDIR)$(SYSTEMD_UNIT_DIR) ]; then \
-               -su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).old" ; \
-               -$(CP) -a /tmp/crontab-$(CRON_OWNER).old ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.old ; \
-               @echo "USER'S CRONTAB SAVED IN CURRENT DIRECTORY (USING .old SUFFIX)." ; \
-               -su $(CRON_OWNER) -c "crontab -r" ; \
+       -if [ -z "$(SYSTEMD_UNIT_DIR)" -o ! -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
+               su $(CRON_OWNER) -c "crontab -l > /tmp/crontab-$(CRON_OWNER).old" ; \
+               $(CP) -a /tmp/crontab-$(CRON_OWNER).old ./crontab-$(CRON_OWNER).`date '+%Y%m%d.%H%M%S'`.old ; \
+               echo "USER'S CRONTAB SAVED IN CURRENT DIRECTORY (USING .old SUFFIX)." ; \
+               su $(CRON_OWNER) -c "crontab -r" ; \
        fi
-       if [ -x $(SYSTEMCTL) ]; then \
+       -if [ -n "$(SYSTEMD_UNIT_DIR)" -a -x "$(SYSTEMCTL)" ]; then \
                $(SYSTEMCTL) disable sysstat.service; \
        fi
 endif
-       if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d $(DESTDIR)$(SYSTEMD_UNIT_DIR) ]; then \
+       if [ -n "$(SYSTEMD_UNIT_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_UNIT_DIR)" ]; then \
                rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat.service; \
                rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.service; \
                rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-collect.timer; \
                rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.service; \
                rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/sysstat-summary.timer; \
        fi
+       if [ -n "$(SYSTEMD_UNIT_DIR)" -a -n "$(SYSTEMD_SLEEP_DIR)" -a -d "$(DESTDIR)$(SYSTEMD_SLEEP_DIR)" ]; then \
+               rm -f $(DESTDIR)$(SYSTEMD_SLEEP_DIR)/sysstat.sleep; \
+       fi
 
 ifeq ($(INSTALL_CRON),y)
 uninstall: uninstall_all
@@ -574,23 +775,48 @@ TESTDIR="tests"
 TESTRUN="/bin/sh"
 TESTLIST:=$(shell ls $(TESTDIR) | egrep '^[0-9]+$$' | sort -n)
 
+testcomp: tests/ini/inisar sa32bit
+
+ifeq ($(TGLIB32),yes)
+sa32bit: DFLAGS += -DARCH32
+
+sa32bit: CFLAGS += -m32
+
+sa32bit: tests/32bits/sadc32 tests/32bits/sar32
+else
+sa32bit:
+endif
+
 unit:
        @echo $(X) 2>&1
        @cat $(TESTDIR)/$(X) | $(TESTRUN)
 
-test: all
-       @$(foreach x, $(TESTLIST), $(MAKE) X=$x unit;)
+# Use "do_test" script to make the following target
+simtest: all testcomp
+       @$(foreach x, $(TESTLIST), $(MAKE) X=$x unit || exit;)
+       rm -f tests/root
+       ln -s root1 tests/root
+       @echo Simulation tests: Success!
 
 clean:
-       rm -f sadc sar sadf iostat tapestat mpstat pidstat cifsiostat *.o *.a core TAGS
+       rm -f sadc sar sadf iostat tapestat mpstat pidstat cifsiostat *.o *.a core TAGS tests/*.tmp
+       rm -f nfsiostat* man/nfsiostat*
+       rm -f tests/sa[012]*
+       rm -f tests/root
+       ln -s root1 tests/root
+       rm -f tests/ini/inisar tests/32bits/sadc32 tests/32bits/sar32
+       rm -f tests/ini/*.o tests/ini/*.a tests/ini/core tests/pcpar.*
+       rm -f tests/32bits/*.o tests/32bits/*.a tests/32bits/core
        find nls -name "*.gmo" -exec rm -f {} \;
 
 almost-distclean: clean nls/sysstat.pot
-       rm -f sa1 sa2 sysstat cron/crontab version.h sysconfig.h prealloc.h
+       rm -f sa1 sa2 sysstat cron/crontab version.h sysconfig.h
        rm -f sysstat.sysconfig cron/sysstat.crond cron/sysstat.cron.daily sysstat.service
-       rm -f cron/sysstat-collect.service cron/sysstat-collect.timer cron/sysstat-summary.service cron/sysstat-summary.timer
+       rm -f cron/sysstat-collect.service cron/sysstat-collect.timer
+       rm -f cron/sysstat-summary.service cron/sysstat-summary.timer cron/sysstat.sleep
        rm -f cron/sysstat.cron.hourly cron/sysstat.crond.sample cron/sysstat.crond.sample.in
        rm -f man/sa1.8 man/sa2.8 man/sadc.8 man/sadf.1 man/sar.1 man/iostat.1 man/sysstat.5
+       rm -f tests/variables tests/data
        rm -f man/cifsiostat.1
        rm -f *.log config.status
        rm -rf autom4te.cache
@@ -604,16 +830,16 @@ maintainer-clean: distclean
        rm -f configure
 
 dist: almost-distclean
-       cd .. && (tar --exclude=Makefile --exclude=.git --dereference -cvf - sysstat-$(VERSION) | gzip -v9 > sysstat-$(VERSION).tar.gz)
+       cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | gzip -v9 > sysstat-$(VERSION).tar.gz)
 
 bdist: almost-distclean
-       cd .. && (tar --exclude=Makefile --exclude=.git --dereference -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION).tar.bz2)
+       cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION).tar.bz2)
 
 xdist: almost-distclean
-       cd .. && (tar --exclude=Makefile --exclude=.git --dereference -cvf - sysstat-$(VERSION) | xz > sysstat-$(VERSION).tar.xz)
+       cd .. && (tar --exclude=Makefile --exclude=.git -cvf - sysstat-$(VERSION) | xz > sysstat-$(VERSION).tar.xz)
 
 gitdist: almost-distclean
-       cd .. && (tar --exclude=Makefile --dereference -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION)-git.tar.bz2)
+       cd .. && (tar --exclude=Makefile -cvf - sysstat-$(VERSION) | bzip2 > sysstat-$(VERSION)-git.tar.bz2)
 
 tags:
        etags ./*.[hc]