1 # SPDX-License-Identifier: GPL-2.0
2 # Copyright (C) 2018-2024 Oracle. All Rights Reserved.
6 builddefs
=$(TOPDIR
)/include/builddefs
9 SCRUB_PREREQS
=$(HAVE_GETFSMAP
)
11 scrub_svcname
=xfs_scrub@.service
13 ifeq ($(SCRUB_PREREQS
),yes
)
15 INSTALL_SCRUB
= install-scrub
16 XFS_SCRUB_ALL_PROG
= xfs_scrub_all
17 XFS_SCRUB_FAIL_PROG
= xfs_scrub_fail
18 XFS_SCRUB_ARGS
= -b
-n
19 ifeq ($(HAVE_SYSTEMD
),yes
)
20 INSTALL_SCRUB
+= install-systemd
21 SYSTEMD_SERVICES
= $(scrub_svcname
) 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_DATA_DIR
)
34 UDEV_RULES
= xfs.rules
35 ifeq ($(HAVE_UDEV
),yes
)
36 INSTALL_SCRUB
+= install-udev
79 LLDLIBS
+= $(LIBHANDLE
) $(LIBFROG
) $(LIBICU_LIBS
) $(LIBRT
) $(LIBURCU
) \
81 LTDEPENDENCIES
+= $(LIBHANDLE
) $(LIBFROG
)
84 ifeq ($(HAVE_MALLINFO
),yes
)
85 LCFLAGS
+= -DHAVE_MALLINFO
88 ifeq ($(HAVE_MALLINFO2
),yes
)
89 LCFLAGS
+= -DHAVE_MALLINFO2
92 ifeq ($(HAVE_LIBATTR
),yes
)
93 LCFLAGS
+= -DHAVE_LIBATTR
96 ifeq ($(HAVE_LIBICU
),yes
)
98 LCFLAGS
+= -DHAVE_LIBICU
$(LIBICU_CFLAGS
)
101 ifeq ($(HAVE_HDIO_GETGEO
),yes
)
102 LCFLAGS
+= -DHAVE_HDIO_GETGEO
105 LDIRT
= $(XFS_SCRUB_ALL_PROG
) $(XFS_SCRUB_FAIL_PROG
) *.service
*.cron
107 default
: depend
$(LTCOMMAND
) $(XFS_SCRUB_ALL_PROG
) $(XFS_SCRUB_FAIL_PROG
) $(OPTIONAL_TARGETS
)
109 xfs_scrub_all
: xfs_scrub_all.in
$(builddefs
)
111 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
112 -e
"s|@scrub_svcname@|$(scrub_svcname)|g" \
113 -e
"s|@pkg_version@|$(PKG_VERSION)|g" \
114 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
117 xfs_scrub_fail
: xfs_scrub_fail.in
$(builddefs
)
119 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
120 -e
"s|@scrub_svcname@|$(scrub_svcname)|g" \
121 -e
"s|@pkg_version@|$(PKG_VERSION)|g" < $< > $@
124 phase5.o unicrash.o xfs.o
: $(builddefs
)
126 include $(BUILDRULES
)
128 install: $(INSTALL_SCRUB
)
130 %.service
: %.service.in
$(builddefs
)
132 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" \
133 -e
"s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
134 -e
"s|@pkg_libexec_dir@|$(PKG_LIBEXEC_DIR)|g" \
137 %.cron
: %.cron.in
$(builddefs
)
139 $(Q
)$(SED
) -e
"s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
141 install-systemd
: default
$(SYSTEMD_SERVICES
)
142 $(INSTALL
) -m
755 -d
$(SYSTEMD_SYSTEM_UNIT_DIR
)
143 $(INSTALL
) -m
644 $(SYSTEMD_SERVICES
) $(SYSTEMD_SYSTEM_UNIT_DIR
)
144 $(INSTALL
) -m
755 -d
$(PKG_LIBEXEC_DIR
)
145 $(INSTALL
) -m
755 $(XFS_SCRUB_FAIL_PROG
) $(PKG_LIBEXEC_DIR
)
147 install-crond
: default
$(CRONTABS
)
148 $(INSTALL
) -m
755 -d
$(CROND_DIR
)
149 $(INSTALL
) -m
644 $(CRONTABS
) $(CROND_DIR
)
151 install-scrub
: default
152 $(INSTALL
) -m
755 -d
$(PKG_SBIN_DIR
)
153 $(LTINSTALL
) -m
755 $(LTCOMMAND
) $(PKG_SBIN_DIR
)
154 $(INSTALL
) -m
755 $(XFS_SCRUB_ALL_PROG
) $(PKG_SBIN_DIR
)
156 install-udev
: $(UDEV_RULES
)
157 $(INSTALL
) -m
755 -d
$(UDEV_RULE_DIR
)
158 for i in
$(UDEV_RULES
); do \
159 $(INSTALL
) -m
644 $$i $(UDEV_RULE_DIR
)/64-$$i; \