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
)
74 LLDLIBS
+= $(LIBHANDLE
) $(LIBFROG
) $(LIBPTHREAD
) $(LIBICU_LIBS
) $(LIBRT
)
75 LTDEPENDENCIES
+= $(LIBHANDLE
) $(LIBFROG
)
78 ifeq ($(HAVE_MALLINFO
),yes
)
79 LCFLAGS
+= -DHAVE_MALLINFO
82 ifeq ($(HAVE_SYNCFS
),yes
)
83 LCFLAGS
+= -DHAVE_SYNCFS
86 ifeq ($(HAVE_LIBATTR
),yes
)
87 LCFLAGS
+= -DHAVE_LIBATTR
90 ifeq ($(HAVE_LIBICU
),yes
)
92 LCFLAGS
+= -DHAVE_LIBICU
$(LIBICU_CFLAGS
)
95 ifeq ($(HAVE_SG_IO
),yes
)
96 LCFLAGS
+= -DHAVE_SG_IO
99 ifeq ($(HAVE_HDIO_GETGEO
),yes
)
100 LCFLAGS
+= -DHAVE_HDIO_GETGEO
103 LDIRT
= $(XFS_SCRUB_ALL_PROG
) *.service
*.cron
105 default
: depend
$(LTCOMMAND
) $(XFS_SCRUB_ALL_PROG
) $(OPTIONAL_TARGETS
)
107 xfs_scrub_all
: xfs_scrub_all.in
$(builddefs
)
109 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
110 -e
"s|@pkg_version@|$(PKG_VERSION)|g" \
111 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
114 phase5.o unicrash.o xfs.o
: $(builddefs
)
116 include $(BUILDRULES
)
118 install: $(INSTALL_SCRUB
)
120 %.service
: %.service.in
$(builddefs
)
122 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
123 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
124 -e
"s|@pkg_lib_dir@|$(PKG_LIB_DIR)|g" \
125 -e
"s|@pkg_name@|$(PKG_NAME)|g" < $< > $@
127 %.cron
: %.cron.in
$(builddefs
)
129 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
131 install-systemd
: default
$(SYSTEMD_SERVICES
)
132 $(INSTALL
) -m
755 -d
$(SYSTEMD_SYSTEM_UNIT_DIR
)
133 $(INSTALL
) -m
644 $(SYSTEMD_SERVICES
) $(SYSTEMD_SYSTEM_UNIT_DIR
)
134 $(INSTALL
) -m
755 -d
$(PKG_LIB_DIR
)/$(PKG_NAME
)
135 $(INSTALL
) -m
755 xfs_scrub_fail
$(PKG_LIB_DIR
)/$(PKG_NAME
)
137 install-crond
: default
$(CRONTABS
)
138 $(INSTALL
) -m
755 -d
$(CROND_DIR
)
139 $(INSTALL
) -m
644 $(CRONTABS
) $(CROND_DIR
)
141 install-scrub
: default
142 $(INSTALL
) -m
755 -d
$(PKG_SBIN_DIR
)
143 $(LTINSTALL
) -m
755 $(LTCOMMAND
) $(PKG_SBIN_DIR
)
144 $(INSTALL
) -m
755 $(XFS_SCRUB_ALL_PROG
) $(PKG_SBIN_DIR
)