1 # SPDX-License-Identifier: GPL-2.0
2 # Copyright (C) 2018 Oracle. All Rights Reserved.
6 include $(TOPDIR
)/include/builddefs
8 # On linux we get fsmap from the system or define it ourselves
9 # so include this based on platform type. If this reverts to only
10 # the autoconf check w/o local definition, change to testing HAVE_GETFSMAP
11 SCRUB_PREREQS
=$(HAVE_OPENAT
)$(HAVE_FSTATAT
)
13 ifeq ($(SCRUB_PREREQS
),yesyes
)
15 INSTALL_SCRUB
= install-scrub
16 XFS_SCRUB_ALL_PROG
= xfs_scrub_all
17 XFS_SCRUB_ARGS
= -b
-n
18 ifeq ($(HAVE_SYSTEMD
),yes
)
19 INSTALL_SCRUB
+= install-systemd
20 SYSTEMD_SERVICES
= xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
21 OPTIONAL_TARGETS
+= $(SYSTEMD_SERVICES
)
23 ifeq ($(HAVE_CROND
),yes
)
24 INSTALL_SCRUB
+= install-crond
25 CRONTABS
= xfs_scrub_all.cron
26 OPTIONAL_TARGETS
+= $(CRONTABS
)
27 # Don't enable the crontab by default for now
28 CROND_DIR
= $(PKG_LIB_DIR
)/$(PKG_NAME
)
73 LLDLIBS
+= $(LIBHANDLE
) $(LIBFROG
) $(LIBPTHREAD
) $(LIBICU_LIBS
) $(LIBRT
)
74 LTDEPENDENCIES
+= $(LIBHANDLE
) $(LIBFROG
)
77 ifeq ($(HAVE_MALLINFO
),yes
)
78 LCFLAGS
+= -DHAVE_MALLINFO
81 ifeq ($(HAVE_SYNCFS
),yes
)
82 LCFLAGS
+= -DHAVE_SYNCFS
85 ifeq ($(HAVE_LIBATTR
),yes
)
86 LCFLAGS
+= -DHAVE_LIBATTR
89 ifeq ($(HAVE_LIBICU
),yes
)
91 LCFLAGS
+= -DHAVE_LIBICU
$(LIBICU_CFLAGS
)
94 ifeq ($(HAVE_SG_IO
),yes
)
95 LCFLAGS
+= -DHAVE_SG_IO
98 ifeq ($(HAVE_HDIO_GETGEO
),yes
)
99 LCFLAGS
+= -DHAVE_HDIO_GETGEO
102 LDIRT
= $(XFS_SCRUB_ALL_PROG
) *.service
*.cron
104 default
: depend
$(LTCOMMAND
) $(XFS_SCRUB_ALL_PROG
) $(OPTIONAL_TARGETS
)
106 xfs_scrub_all
: xfs_scrub_all.in
108 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
109 -e
"s|@pkg_version@|$(PKG_VERSION)|g" \
110 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
113 phase5.o unicrash.o xfs.o
: $(TOPDIR
)/include/builddefs
115 include $(BUILDRULES
)
117 install: $(INSTALL_SCRUB
)
119 %.service
: %.service.in
121 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
122 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
123 -e
"s|@pkg_lib_dir@|$(PKG_LIB_DIR)|g" \
124 -e
"s|@pkg_name@|$(PKG_NAME)|g" < $< > $@
128 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
130 install-systemd
: default
$(SYSTEMD_SERVICES
)
131 $(INSTALL
) -m
755 -d
$(SYSTEMD_SYSTEM_UNIT_DIR
)
132 $(INSTALL
) -m
644 $(SYSTEMD_SERVICES
) $(SYSTEMD_SYSTEM_UNIT_DIR
)
133 $(INSTALL
) -m
755 -d
$(PKG_LIB_DIR
)/$(PKG_NAME
)
134 $(INSTALL
) -m
755 xfs_scrub_fail
$(PKG_LIB_DIR
)/$(PKG_NAME
)
136 install-crond
: default
$(CRONTABS
)
137 $(INSTALL
) -m
755 -d
$(CROND_DIR
)
138 $(INSTALL
) -m
644 $(CRONTABS
) $(CROND_DIR
)
140 install-scrub
: default
141 $(INSTALL
) -m
755 -d
$(PKG_SBIN_DIR
)
142 $(LTINSTALL
) -m
755 $(LTCOMMAND
) $(PKG_SBIN_DIR
)
143 $(INSTALL
) -m
755 $(XFS_SCRUB_ALL_PROG
) $(PKG_SBIN_DIR
)