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