]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blame - scrub/Makefile
xfs_scrub: fix pathname escaping across all service definitions
[thirdparty/xfsprogs-dev.git] / scrub / Makefile
CommitLineData
959ef981 1# SPDX-License-Identifier: GPL-2.0
52520522 2# Copyright (C) 2018-2024 Oracle. All Rights Reserved.
95b1e505
DW
3#
4
5TOPDIR = ..
02d21c44
DW
6builddefs=$(TOPDIR)/include/builddefs
7include $(builddefs)
95b1e505 8
9b72515a 9SCRUB_PREREQS=$(HAVE_OPENAT)$(HAVE_FSTATAT)$(HAVE_GETFSMAP)
95b1e505 10
595874f2
DW
11scrub_svcname=xfs_scrub@.service
12
9b72515a 13ifeq ($(SCRUB_PREREQS),yesyesyes)
95b1e505
DW
14LTCOMMAND = xfs_scrub
15INSTALL_SCRUB = install-scrub
f1dca11c 16XFS_SCRUB_ALL_PROG = xfs_scrub_all
595874f2 17XFS_SCRUB_FAIL_PROG = xfs_scrub_fail
f1dca11c 18XFS_SCRUB_ARGS = -b -n
824b5807
DW
19ifeq ($(HAVE_SYSTEMD),yes)
20INSTALL_SCRUB += install-systemd
595874f2 21SYSTEMD_SERVICES = $(scrub_svcname) xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service
824b5807
DW
22OPTIONAL_TARGETS += $(SYSTEMD_SERVICES)
23endif
24ifeq ($(HAVE_CROND),yes)
25INSTALL_SCRUB += install-crond
26CRONTABS = xfs_scrub_all.cron
27OPTIONAL_TARGETS += $(CRONTABS)
28# Don't enable the crontab by default for now
e63257c0 29CROND_DIR = $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
824b5807
DW
30endif
31
95b1e505
DW
32endif # scrub_prereqs
33
8105f53e
DW
34UDEV_RULES = xfs.rules
35ifeq ($(HAVE_UDEV),yes)
36 INSTALL_SCRUB += install-udev
37endif
38
95b1e505
DW
39HFILES = \
40common.h \
d11cc69e 41counter.h \
b3f76f94 42descr.h \
a555a1f4 43disk.h \
c6eb0ff2 44filemap.h \
604dd334 45fscounters.h \
372d4ba9 46inodes.h \
ed60d210 47progress.h \
2000470d 48read_verify.h \
ee310b0c 49repair.h \
fd7d73c0 50scrub.h \
bc94c5d6 51spacemap.h \
4bbed4ec 52unicrash.h \
b364a9c0 53vfs.h \
95b1e505
DW
54xfs_scrub.h
55
56CFILES = \
57common.c \
d11cc69e 58counter.c \
b3f76f94 59descr.c \
a555a1f4 60disk.c \
c6eb0ff2 61filemap.c \
604dd334 62fscounters.c \
372d4ba9 63inodes.c \
50a573a7 64phase1.c \
e758ad01 65phase2.c \
fa16b376 66phase3.c \
7e36bc0f 67phase4.c \
c4892e76 68phase5.c \
b364a9c0 69phase6.c \
698c6c7c 70phase7.c \
ed60d210 71progress.c \
2000470d 72read_verify.c \
ee310b0c 73repair.c \
fd7d73c0 74scrub.c \
bc94c5d6 75spacemap.c \
b364a9c0 76vfs.c \
95b1e505
DW
77xfs_scrub.c
78
b3aba575
TT
79LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBICU_LIBS) $(LIBRT) $(LIBURCU) \
80 $(LIBPTHREAD)
bff5d1a4 81LTDEPENDENCIES += $(LIBHANDLE) $(LIBFROG)
95b1e505
DW
82LLDFLAGS = -static
83
173a0283
DW
84ifeq ($(HAVE_MALLINFO),yes)
85LCFLAGS += -DHAVE_MALLINFO
86endif
87
c74f0468
DW
88ifeq ($(HAVE_MALLINFO2),yes)
89LCFLAGS += -DHAVE_MALLINFO2
90endif
91
50a573a7
DW
92ifeq ($(HAVE_SYNCFS),yes)
93LCFLAGS += -DHAVE_SYNCFS
94endif
95
396cd022
DW
96ifeq ($(HAVE_LIBATTR),yes)
97LCFLAGS += -DHAVE_LIBATTR
98endif
99
bff5d1a4 100ifeq ($(HAVE_LIBICU),yes)
4bbed4ec 101CFILES += unicrash.c
bff5d1a4 102LCFLAGS += -DHAVE_LIBICU $(LIBICU_CFLAGS)
4bbed4ec
DW
103endif
104
03c0cd8f
DW
105ifeq ($(HAVE_SG_IO),yes)
106LCFLAGS += -DHAVE_SG_IO
107endif
108
109ifeq ($(HAVE_HDIO_GETGEO),yes)
110LCFLAGS += -DHAVE_HDIO_GETGEO
111endif
112
595874f2 113LDIRT = $(XFS_SCRUB_ALL_PROG) $(XFS_SCRUB_FAIL_PROG) *.service *.cron
17728a41 114
595874f2 115default: depend $(LTCOMMAND) $(XFS_SCRUB_ALL_PROG) $(XFS_SCRUB_FAIL_PROG) $(OPTIONAL_TARGETS)
f1dca11c 116
02d21c44 117xfs_scrub_all: xfs_scrub_all.in $(builddefs)
f1dca11c 118 @echo " [SED] $@"
f26db477 119 $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
595874f2 120 -e "s|@scrub_svcname@|$(scrub_svcname)|g" \
3dd91472 121 -e "s|@pkg_version@|$(PKG_VERSION)|g" \
f1dca11c
DW
122 -e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
123 $(Q)chmod a+x $@
95b1e505 124
595874f2
DW
125xfs_scrub_fail: xfs_scrub_fail.in $(builddefs)
126 @echo " [SED] $@"
127 $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
128 -e "s|@scrub_svcname@|$(scrub_svcname)|g" \
129 -e "s|@pkg_version@|$(PKG_VERSION)|g" < $< > $@
130 $(Q)chmod a+x $@
131
02d21c44 132phase5.o unicrash.o xfs.o: $(builddefs)
396cd022 133
95b1e505
DW
134include $(BUILDRULES)
135
f1dca11c 136install: $(INSTALL_SCRUB)
95b1e505 137
02d21c44 138%.service: %.service.in $(builddefs)
824b5807 139 @echo " [SED] $@"
f26db477 140 $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
824b5807 141 -e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
e63257c0
DW
142 -e "s|@pkg_lib_dir@|$(PKG_LIB_SCRIPT_DIR)|g" \
143 -e "s|@pkg_name@|$(PKG_NAME)|g" \
144 < $< > $@
824b5807 145
02d21c44 146%.cron: %.cron.in $(builddefs)
824b5807 147 @echo " [SED] $@"
f26db477 148 $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
824b5807
DW
149
150install-systemd: default $(SYSTEMD_SERVICES)
151 $(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
152 $(INSTALL) -m 644 $(SYSTEMD_SERVICES) $(SYSTEMD_SYSTEM_UNIT_DIR)
e63257c0 153 $(INSTALL) -m 755 -d $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
595874f2 154 $(INSTALL) -m 755 $(XFS_SCRUB_FAIL_PROG) $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
824b5807
DW
155
156install-crond: default $(CRONTABS)
157 $(INSTALL) -m 755 -d $(CROND_DIR)
158 $(INSTALL) -m 644 $(CRONTABS) $(CROND_DIR)
159
f1dca11c 160install-scrub: default
f26db477
DW
161 $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
162 $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
163 $(INSTALL) -m 755 $(XFS_SCRUB_ALL_PROG) $(PKG_SBIN_DIR)
95b1e505 164
8105f53e
DW
165install-udev: $(UDEV_RULES)
166 $(INSTALL) -m 755 -d $(UDEV_RULE_DIR)
167 for i in $(UDEV_RULES); do \
168 $(INSTALL) -m 644 $$i $(UDEV_RULE_DIR)/64-$$i; \
169 done
170
95b1e505
DW
171install-dev:
172
173-include .dep