]>
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 DW |
8 | |
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 | |
bf64c900 | 12 | SCRUB_PREREQS=$(HAVE_OPENAT)$(HAVE_FSTATAT) |
95b1e505 | 13 | |
bf64c900 | 14 | ifeq ($(SCRUB_PREREQS),yesyes) |
95b1e505 DW |
15 | LTCOMMAND = xfs_scrub |
16 | INSTALL_SCRUB = install-scrub | |
f1dca11c DW |
17 | XFS_SCRUB_ALL_PROG = xfs_scrub_all |
18 | XFS_SCRUB_ARGS = -b -n | |
824b5807 DW |
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) | |
23 | endif | |
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) | |
30 | endif | |
31 | ||
95b1e505 DW |
32 | endif # scrub_prereqs |
33 | ||
34 | HFILES = \ | |
35 | common.h \ | |
d11cc69e | 36 | counter.h \ |
a555a1f4 | 37 | disk.h \ |
c6eb0ff2 | 38 | filemap.h \ |
604dd334 | 39 | fscounters.h \ |
372d4ba9 | 40 | inodes.h \ |
ed60d210 | 41 | progress.h \ |
2000470d | 42 | read_verify.h \ |
ee310b0c | 43 | repair.h \ |
fd7d73c0 | 44 | scrub.h \ |
bc94c5d6 | 45 | spacemap.h \ |
4bbed4ec | 46 | unicrash.h \ |
b364a9c0 | 47 | vfs.h \ |
95b1e505 DW |
48 | xfs_scrub.h |
49 | ||
50 | CFILES = \ | |
51 | common.c \ | |
d11cc69e | 52 | counter.c \ |
a555a1f4 | 53 | disk.c \ |
c6eb0ff2 | 54 | filemap.c \ |
604dd334 | 55 | fscounters.c \ |
372d4ba9 | 56 | inodes.c \ |
50a573a7 | 57 | phase1.c \ |
e758ad01 | 58 | phase2.c \ |
fa16b376 | 59 | phase3.c \ |
7e36bc0f | 60 | phase4.c \ |
c4892e76 | 61 | phase5.c \ |
b364a9c0 | 62 | phase6.c \ |
698c6c7c | 63 | phase7.c \ |
ed60d210 | 64 | progress.c \ |
2000470d | 65 | read_verify.c \ |
ee310b0c | 66 | repair.c \ |
fd7d73c0 | 67 | scrub.c \ |
bc94c5d6 | 68 | spacemap.c \ |
b364a9c0 | 69 | vfs.c \ |
95b1e505 DW |
70 | xfs_scrub.c |
71 | ||
bff5d1a4 DW |
72 | LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBPTHREAD) $(LIBICU_LIBS) $(LIBRT) |
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 |