1 # SPDX-License-Identifier: GPL-2.0
2 # Copyright (C) 2018 Oracle. All Rights Reserved.
6 builddefs
=$(TOPDIR
)/include/builddefs
9 # On linux we get fsmap from the system or define it ourselves
10 # so include this based on platform type. If this reverts to only
11 # the autoconf check w/o local definition, change to testing HAVE_GETFSMAP
12 SCRUB_PREREQS
=$(HAVE_OPENAT
)$(HAVE_FSTATAT
)
14 ifeq ($(SCRUB_PREREQS
),yesyes
)
16 INSTALL_SCRUB
= install-scrub
17 XFS_SCRUB_ALL_PROG
= xfs_scrub_all
18 XFS_SCRUB_ARGS
= -b
-n
19 ifeq ($(HAVE_SYSTEMD
),yes
)
20 INSTALL_SCRUB
+= install-systemd
21 SYSTEMD_SERVICES
= xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
22 OPTIONAL_TARGETS
+= $(SYSTEMD_SERVICES
)
24 ifeq ($(HAVE_CROND
),yes
)
25 INSTALL_SCRUB
+= install-crond
26 CRONTABS
= xfs_scrub_all.cron
27 OPTIONAL_TARGETS
+= $(CRONTABS
)
28 # Don't enable the crontab by default for now
29 CROND_DIR
= $(PKG_LIB_DIR
)/$(PKG_NAME
)
72 LLDLIBS
+= $(LIBHANDLE
) $(LIBFROG
) $(LIBPTHREAD
) $(LIBICU_LIBS
) $(LIBRT
)
73 LTDEPENDENCIES
+= $(LIBHANDLE
) $(LIBFROG
)
76 ifeq ($(HAVE_MALLINFO
),yes
)
77 LCFLAGS
+= -DHAVE_MALLINFO
80 ifeq ($(HAVE_SYNCFS
),yes
)
81 LCFLAGS
+= -DHAVE_SYNCFS
84 ifeq ($(HAVE_LIBATTR
),yes
)
85 LCFLAGS
+= -DHAVE_LIBATTR
88 ifeq ($(HAVE_LIBICU
),yes
)
90 LCFLAGS
+= -DHAVE_LIBICU
$(LIBICU_CFLAGS
)
93 ifeq ($(HAVE_SG_IO
),yes
)
94 LCFLAGS
+= -DHAVE_SG_IO
97 ifeq ($(HAVE_HDIO_GETGEO
),yes
)
98 LCFLAGS
+= -DHAVE_HDIO_GETGEO
101 LDIRT
= $(XFS_SCRUB_ALL_PROG
) *.service
*.cron
103 default
: depend
$(LTCOMMAND
) $(XFS_SCRUB_ALL_PROG
) $(OPTIONAL_TARGETS
)
105 xfs_scrub_all
: xfs_scrub_all.in
$(builddefs
)
107 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
108 -e
"s|@pkg_version@|$(PKG_VERSION)|g" \
109 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
112 phase5.o unicrash.o xfs.o
: $(builddefs
)
114 include $(BUILDRULES
)
116 install: $(INSTALL_SCRUB
)
118 %.service
: %.service.in
$(builddefs
)
120 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
121 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
122 -e
"s|@pkg_lib_dir@|$(PKG_LIB_DIR)|g" \
123 -e
"s|@pkg_name@|$(PKG_NAME)|g" < $< > $@
125 %.cron
: %.cron.in
$(builddefs
)
127 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
129 install-systemd
: default
$(SYSTEMD_SERVICES
)
130 $(INSTALL
) -m
755 -d
$(SYSTEMD_SYSTEM_UNIT_DIR
)
131 $(INSTALL
) -m
644 $(SYSTEMD_SERVICES
) $(SYSTEMD_SYSTEM_UNIT_DIR
)
132 $(INSTALL
) -m
755 -d
$(PKG_LIB_DIR
)/$(PKG_NAME
)
133 $(INSTALL
) -m
755 xfs_scrub_fail
$(PKG_LIB_DIR
)/$(PKG_NAME
)
135 install-crond
: default
$(CRONTABS
)
136 $(INSTALL
) -m
755 -d
$(CROND_DIR
)
137 $(INSTALL
) -m
644 $(CRONTABS
) $(CROND_DIR
)
139 install-scrub
: default
140 $(INSTALL
) -m
755 -d
$(PKG_SBIN_DIR
)
141 $(LTINSTALL
) -m
755 $(LTCOMMAND
) $(PKG_SBIN_DIR
)
142 $(INSTALL
) -m
755 $(XFS_SCRUB_ALL_PROG
) $(PKG_SBIN_DIR
)