#
TOPDIR = ..
-include $(TOPDIR)/include/builddefs
+builddefs=$(TOPDIR)/include/builddefs
+include $(builddefs)
-# On linux we get fsmap from the system or define it ourselves
-# so include this based on platform type. If this reverts to only
-# the autoconf check w/o local definition, change to testing HAVE_GETFSMAP
-SCRUB_PREREQS=$(PKG_PLATFORM)$(HAVE_OPENAT)$(HAVE_FSTATAT)
+SCRUB_PREREQS=$(HAVE_OPENAT)$(HAVE_FSTATAT)$(HAVE_GETFSMAP)
-ifeq ($(SCRUB_PREREQS),linuxyesyes)
+ifeq ($(SCRUB_PREREQS),yesyesyes)
LTCOMMAND = xfs_scrub
INSTALL_SCRUB = install-scrub
XFS_SCRUB_ALL_PROG = xfs_scrub_all
CRONTABS = xfs_scrub_all.cron
OPTIONAL_TARGETS += $(CRONTABS)
# Don't enable the crontab by default for now
-CROND_DIR = $(PKG_LIB_DIR)/$(PKG_NAME)
+CROND_DIR = $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
endif
endif # scrub_prereqs
+UDEV_RULES = xfs.rules
+ifeq ($(HAVE_UDEV),yes)
+ INSTALL_SCRUB += install-udev
+endif
+
HFILES = \
-bitmap.h \
common.h \
counter.h \
+descr.h \
disk.h \
filemap.h \
fscounters.h \
xfs_scrub.h
CFILES = \
-bitmap.c \
common.c \
counter.c \
+descr.c \
disk.c \
filemap.c \
fscounters.c \
vfs.c \
xfs_scrub.c
-LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBPTHREAD) $(LIBICU_LIBS) $(LIBRT)
+LLDLIBS += $(LIBHANDLE) $(LIBFROG) $(LIBICU_LIBS) $(LIBRT) $(LIBURCU) \
+ $(LIBPTHREAD)
LTDEPENDENCIES += $(LIBHANDLE) $(LIBFROG)
LLDFLAGS = -static
LCFLAGS += -DHAVE_MALLINFO
endif
+ifeq ($(HAVE_MALLINFO2),yes)
+LCFLAGS += -DHAVE_MALLINFO2
+endif
+
ifeq ($(HAVE_SYNCFS),yes)
LCFLAGS += -DHAVE_SYNCFS
endif
LCFLAGS += -DHAVE_HDIO_GETGEO
endif
+LDIRT = $(XFS_SCRUB_ALL_PROG) *.service *.cron
+
default: depend $(LTCOMMAND) $(XFS_SCRUB_ALL_PROG) $(OPTIONAL_TARGETS)
-xfs_scrub_all: xfs_scrub_all.in
+xfs_scrub_all: xfs_scrub_all.in $(builddefs)
@echo " [SED] $@"
- $(Q)$(SED) -e "s|@sbindir@|$(PKG_ROOT_SBIN_DIR)|g" \
+ $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
-e "s|@pkg_version@|$(PKG_VERSION)|g" \
-e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" < $< > $@
$(Q)chmod a+x $@
-phase5.o unicrash.o xfs.o: $(TOPDIR)/include/builddefs
+phase5.o unicrash.o xfs.o: $(builddefs)
include $(BUILDRULES)
install: $(INSTALL_SCRUB)
-%.service: %.service.in
+%.service: %.service.in $(builddefs)
@echo " [SED] $@"
- $(Q)$(SED) -e "s|@sbindir@|$(PKG_ROOT_SBIN_DIR)|g" \
+ $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" \
-e "s|@scrub_args@|$(XFS_SCRUB_ARGS)|g" \
- -e "s|@pkg_lib_dir@|$(PKG_LIB_DIR)|g" \
- -e "s|@pkg_name@|$(PKG_NAME)|g" < $< > $@
+ -e "s|@pkg_lib_dir@|$(PKG_LIB_SCRIPT_DIR)|g" \
+ -e "s|@pkg_name@|$(PKG_NAME)|g" \
+ < $< > $@
-%.cron: %.cron.in
+%.cron: %.cron.in $(builddefs)
@echo " [SED] $@"
- $(Q)$(SED) -e "s|@sbindir@|$(PKG_ROOT_SBIN_DIR)|g" < $< > $@
+ $(Q)$(SED) -e "s|@sbindir@|$(PKG_SBIN_DIR)|g" < $< > $@
install-systemd: default $(SYSTEMD_SERVICES)
$(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
$(INSTALL) -m 644 $(SYSTEMD_SERVICES) $(SYSTEMD_SYSTEM_UNIT_DIR)
- $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/$(PKG_NAME)
- $(INSTALL) -m 755 xfs_scrub_fail $(PKG_LIB_DIR)/$(PKG_NAME)
+ $(INSTALL) -m 755 -d $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
+ $(INSTALL) -m 755 xfs_scrub_fail $(PKG_LIB_SCRIPT_DIR)/$(PKG_NAME)
install-crond: default $(CRONTABS)
$(INSTALL) -m 755 -d $(CROND_DIR)
$(INSTALL) -m 644 $(CRONTABS) $(CROND_DIR)
install-scrub: default
- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
- $(INSTALL) -m 755 $(XFS_SCRUB_ALL_PROG) $(PKG_ROOT_SBIN_DIR)
+ $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
+ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
+ $(INSTALL) -m 755 $(XFS_SCRUB_ALL_PROG) $(PKG_SBIN_DIR)
+
+install-udev: $(UDEV_RULES)
+ $(INSTALL) -m 755 -d $(UDEV_RULE_DIR)
+ for i in $(UDEV_RULES); do \
+ $(INSTALL) -m 644 $$i $(UDEV_RULE_DIR)/64-$$i; \
+ done
install-dev: