]>
Commit | Line | Data |
---|---|---|
959ef981 | 1 | # SPDX-License-Identifier: GPL-2.0 |
95b1e505 DW |
2 | # Copyright (C) 2018 Oracle. All Rights Reserved. |
3 | # | |
4 | ||
5 | TOPDIR = .. | |
02d21c44 DW |
6 | builddefs=$(TOPDIR)/include/builddefs |
7 | include $(builddefs) | |
95b1e505 | 8 | |
9b72515a | 9 | SCRUB_PREREQS=$(HAVE_OPENAT)$(HAVE_FSTATAT)$(HAVE_GETFSMAP) |
95b1e505 | 10 | |
9b72515a | 11 | ifeq ($(SCRUB_PREREQS),yesyesyes) |
95b1e505 DW |
12 | LTCOMMAND = xfs_scrub |
13 | INSTALL_SCRUB = install-scrub | |
f1dca11c DW |
14 | XFS_SCRUB_ALL_PROG = xfs_scrub_all |
15 | XFS_SCRUB_ARGS = -b -n | |
824b5807 DW |
16 | ifeq ($(HAVE_SYSTEMD),yes) |
17 | INSTALL_SCRUB += install-systemd | |
18 | SYSTEMD_SERVICES = xfs_scrub@.service xfs_scrub_all.service xfs_scrub_all.timer xfs_scrub_fail@.service | |
19 | OPTIONAL_TARGETS += $(SYSTEMD_SERVICES) | |
20 | endif | |
21 | ifeq ($(HAVE_CROND),yes) | |
22 | INSTALL_SCRUB += install-crond | |
23 | CRONTABS = xfs_scrub_all.cron | |
24 | OPTIONAL_TARGETS += $(CRONTABS) | |
25 | # Don't enable the crontab by default for now | |
26 | CROND_DIR = $(PKG_LIB_DIR)/$(PKG_NAME) | |
27 | endif | |
28 | ||
95b1e505 DW |
29 | endif # scrub_prereqs |
30 | ||
31 | HFILES = \ | |
32 | common.h \ | |
d11cc69e | 33 | counter.h \ |
b3f76f94 | 34 | descr.h \ |
a555a1f4 | 35 | disk.h \ |
c6eb0ff2 | 36 | filemap.h \ |
604dd334 | 37 | fscounters.h \ |
372d4ba9 | 38 | inodes.h \ |
ed60d210 | 39 | progress.h \ |
2000470d | 40 | read_verify.h \ |
ee310b0c | 41 | repair.h \ |
fd7d73c0 | 42 | scrub.h \ |
bc94c5d6 | 43 | spacemap.h \ |
4bbed4ec | 44 | unicrash.h \ |
b364a9c0 | 45 | vfs.h \ |
95b1e505 DW |
46 | xfs_scrub.h |
47 | ||
48 | CFILES = \ | |
49 | common.c \ | |
d11cc69e | 50 | counter.c \ |
b3f76f94 | 51 | descr.c \ |
a555a1f4 | 52 | disk.c \ |
c6eb0ff2 | 53 | filemap.c \ |
604dd334 | 54 | fscounters.c \ |
372d4ba9 | 55 | inodes.c \ |
50a573a7 | 56 | phase1.c \ |
e758ad01 | 57 | phase2.c \ |
fa16b376 | 58 | phase3.c \ |
7e36bc0f | 59 | phase4.c \ |
c4892e76 | 60 | phase5.c \ |
b364a9c0 | 61 | phase6.c \ |
698c6c7c | 62 | phase7.c \ |
ed60d210 | 63 | progress.c \ |
2000470d | 64 | read_verify.c \ |
ee310b0c | 65 | repair.c \ |
fd7d73c0 | 66 | scrub.c \ |
bc94c5d6 | 67 | spacemap.c \ |
b364a9c0 | 68 | vfs.c \ |
95b1e505 DW |
69 | xfs_scrub.c |
70 | ||
b3aba575 TT |
71 | LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBICU_LIBS) $(LIBRT) $(LIBURCU) \ |
72 | $(LIBPTHREAD) | |
bff5d1a4 | 73 | LTDEPENDENCIES += $(LIBHANDLE) $(LIBFROG) |
95b1e505 DW |
74 | LLDFLAGS = -static |
75 | ||
173a0283 DW |
76 | ifeq ($(HAVE_MALLINFO),yes) |
77 | LCFLAGS += -DHAVE_MALLINFO | |
78 | endif | |
79 | ||
50a573a7 DW |
80 | ifeq ($(HAVE_SYNCFS),yes) |
81 | LCFLAGS += -DHAVE_SYNCFS | |
82 | endif | |
83 | ||
396cd022 DW |
84 | ifeq ($(HAVE_LIBATTR),yes) |
85 | LCFLAGS += -DHAVE_LIBATTR | |
86 | endif | |
87 | ||
bff5d1a4 | 88 | ifeq ($(HAVE_LIBICU),yes) |
4bbed4ec | 89 | CFILES += unicrash.c |
bff5d1a4 | 90 | LCFLAGS += -DHAVE_LIBICU $(LIBICU_CFLAGS) |
4bbed4ec DW |
91 | endif |
92 | ||
03c0cd8f DW |
93 | ifeq ($(HAVE_SG_IO),yes) |
94 | LCFLAGS += -DHAVE_SG_IO | |
95 | endif | |
96 | ||
97 | ifeq ($(HAVE_HDIO_GETGEO),yes) | |
98 | LCFLAGS += -DHAVE_HDIO_GETGEO | |
99 | endif | |
100 | ||
17728a41 ES |
101 | LDIRT = $(XFS_SCRUB_ALL_PROG) *.service *.cron |
102 | ||
824b5807 | 103 | default: depend $(LTCOMMAND) $(XFS_SCRUB_ALL_PROG) $(OPTIONAL_TARGETS) |
f1dca11c | 104 | |
02d21c44 | 105 | xfs_scrub_all: xfs_scrub_all.in $(builddefs) |
f1dca11c | 106 | @echo " [SED] $@" |
f26db477 | 107 | $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \ |
3dd91472 | 108 | -e "s|@pkg_version@|$(PKG_VERSION)|g" \ |
f1dca11c DW |
109 | -e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@ |
110 | $(Q)chmod a+x $@ | |
95b1e505 | 111 | |
02d21c44 | 112 | phase5.o unicrash.o xfs.o: $(builddefs) |
396cd022 | 113 | |
95b1e505 DW |
114 | include $(BUILDRULES) |
115 | ||
f1dca11c | 116 | install: $(INSTALL_SCRUB) |
95b1e505 | 117 | |
02d21c44 | 118 | %.service: %.service.in $(builddefs) |
824b5807 | 119 | @echo " [SED] $@" |
f26db477 | 120 | $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \ |
824b5807 DW |
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" < $< > $@ | |
124 | ||
02d21c44 | 125 | %.cron: %.cron.in $(builddefs) |
824b5807 | 126 | @echo " [SED] $@" |
f26db477 | 127 | $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@ |
824b5807 DW |
128 | |
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) | |
134 | ||
135 | install-crond: default $(CRONTABS) | |
136 | $(INSTALL) -m 755 -d $(CROND_DIR) | |
137 | $(INSTALL) -m 644 $(CRONTABS) $(CROND_DIR) | |
138 | ||
f1dca11c | 139 | install-scrub: default |
f26db477 DW |
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) | |
95b1e505 DW |
143 | |
144 | install-dev: | |
145 | ||
146 | -include .dep |