[dm-devel] [PATCH 3/3] multipath-tools: add dependency tracking to Makefiles
Martin Wilck
mwilck at suse.com
Fri Jan 19 00:19:44 UTC 2018
Signed-off-by: Martin Wilck <mwilck at suse.com>
---
.gitignore | 1 +
Makefile.inc | 2 +-
kpartx/Makefile | 7 ++++++-
libdmmp/Makefile | 7 ++++++-
libdmmp/test/Makefile | 9 ++++++++-
libmpathcmd/Makefile | 10 ++++++++--
libmpathpersist/Makefile | 8 +++++++-
libmultipath/Makefile | 7 ++++++-
libmultipath/checkers/Makefile | 8 +++++++-
libmultipath/prioritizers/Makefile | 8 +++++++-
mpathpersist/Makefile | 7 ++++++-
multipath/Makefile | 7 ++++++-
multipathd/Makefile | 7 ++++++-
tests/Makefile | 9 ++++++++-
14 files changed, 83 insertions(+), 14 deletions(-)
diff --git a/.gitignore b/.gitignore
index 371b8758c0a1..35c59a7e2d51 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,6 +5,7 @@
*.so.0
*.a
*.gz
+*.d
kpartx/kpartx
multipath/multipath
multipathd/multipathd
diff --git a/Makefile.inc b/Makefile.inc
index d82d3b5df3fe..eb99c36010c1 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -91,7 +91,7 @@ OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
--param=ssp-buffer-size=4
CFLAGS := $(OPTFLAGS) -DBIN_DIR=\"$(bindir)\" -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\" \
- $(CFLAGS)
+ -MMD -MP $(CFLAGS)
BIN_CFLAGS = -fPIE -DPIE
LIB_CFLAGS = -fPIC
SHARED_FLAGS = -shared
diff --git a/kpartx/Makefile b/kpartx/Makefile
index bf7362d95efd..7eb467ee3efb 100644
--- a/kpartx/Makefile
+++ b/kpartx/Makefile
@@ -44,5 +44,10 @@ uninstall:
$(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
$(RM) $(DESTDIR)$(libudevdir)/rules.d/68-del-part-nodes.rules
-clean:
+clean: dep_clean
$(RM) core *.o $(EXEC) *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libdmmp/Makefile b/libdmmp/Makefile
index bf231ace1a1b..1dd3f34069b9 100644
--- a/libdmmp/Makefile
+++ b/libdmmp/Makefile
@@ -56,11 +56,13 @@ uninstall:
$(RM) $(DESTDIR)$(man3dir)/libdmmp.h*
$(RM) $(DESTDIR)$(pkgconfdir)/$(PKGFILE)
-clean:
+clean: dep_clean
$(RM) core *.a *.o *.gz *.so *.so.*
$(RM) -r docs/man
$(MAKE) -C test clean
+include $(wildcard $(OBJS:.o=.d))
+
check: all
$(MAKE) -C test check
@@ -84,3 +86,6 @@ docs/man/$(EXTRA_MAN_FILES).gz: $(HEADERS)
gzip -f $$file; \
done
find docs/man -type f -name \*[0-9].gz
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libdmmp/test/Makefile b/libdmmp/test/Makefile
index acfb3bffb7f5..20b394587c4a 100644
--- a/libdmmp/test/Makefile
+++ b/libdmmp/test/Makefile
@@ -26,5 +26,12 @@ speed_test: $(SPD_TEST_EXEC)
sudo env LD_LIBRARY_PATH=$(_libdmmpdir):$(_mpathcmddir) \
time -p ./$(SPD_TEST_EXEC)
-clean:
+clean: dep_clean
rm -f $(TEST_EXEC) $(SPD_TEST_EXEC)
+
+OBJS = $(TEST_EXEC).o $(SPD_TEST_EXEC).o
+include $(wildcard $(OBJS:.o=.d))
+
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libmpathcmd/Makefile b/libmpathcmd/Makefile
index 4f321017361d..53c08992420b 100644
--- a/libmpathcmd/Makefile
+++ b/libmpathcmd/Makefile
@@ -26,5 +26,11 @@ uninstall:
$(RM) $(DESTDIR)$(syslibdir)/$(DEVLIB)
$(RM) $(DESTDIR)$(includedir)/mpath_cmd.h
-clean:
- $(RM) core *.a *.o *.so *.so.* *.gz
+clean: dep_clean
+ $(RM) core *.a *.o *.so *.so.* *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libmpathpersist/Makefile b/libmpathpersist/Makefile
index 1b4ec16a18f7..21fdad805f10 100644
--- a/libmpathpersist/Makefile
+++ b/libmpathpersist/Makefile
@@ -37,5 +37,11 @@ uninstall:
$(RM) $(DESTDIR)$(includedir)/mpath_persist.h
$(RM) $(DESTDIR)$(syslibdir)/$(DEVLIB)
-clean:
+clean: dep_clean
$(RM) core *.a *.o *.so *.so.* *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libmultipath/Makefile b/libmultipath/Makefile
index 6447d8dafb4f..25b052729d48 100644
--- a/libmultipath/Makefile
+++ b/libmultipath/Makefile
@@ -61,5 +61,10 @@ uninstall:
$(RM) $(DESTDIR)$(syslibdir)/$(LIBS)
$(RM) $(DESTDIR)$(syslibdir)/$(DEVLIB)
-clean:
+clean: dep_clean
$(RM) core *.a *.o *.so *.so.* *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
index bce6b8b7be75..9559038a770d 100644
--- a/libmultipath/checkers/Makefile
+++ b/libmultipath/checkers/Makefile
@@ -36,5 +36,11 @@ install:
uninstall:
for file in $(LIBS); do $(RM) $(DESTDIR)$(libdir)/$$file; done
-clean:
+clean: dep_clean
$(RM) core *.a *.o *.gz *.so
+
+OBJS := $(LIBS:libcheck%.so=%.o) libsg.o directio.o
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/libmultipath/prioritizers/Makefile b/libmultipath/prioritizers/Makefile
index 0c71e6334473..b3cc944c810d 100644
--- a/libmultipath/prioritizers/Makefile
+++ b/libmultipath/prioritizers/Makefile
@@ -38,5 +38,11 @@ install: $(LIBS)
uninstall:
for file in $(LIBS); do $(RM) $(DESTDIR)$(libdir)/$$file; done
-clean:
+clean: dep_clean
$(RM) core *.a *.o *.gz *.so
+
+OBJS = $(LIBS:libprio%.so=%.o) alua_rtpg.o
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/mpathpersist/Makefile b/mpathpersist/Makefile
index 6e5acd3b751e..51268010b31d 100644
--- a/mpathpersist/Makefile
+++ b/mpathpersist/Makefile
@@ -22,9 +22,14 @@ install:
$(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
$(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
-clean:
+clean: dep_clean
$(RM) core *.o $(EXEC) *.gz
+include $(wildcard $(OBJS:.o=.d))
+
uninstall:
$(RM) $(DESTDIR)$(bindir)/$(EXEC)
$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/multipath/Makefile b/multipath/Makefile
index 468c056d49d0..654568af3576 100644
--- a/multipath/Makefile
+++ b/multipath/Makefile
@@ -37,5 +37,10 @@ uninstall:
$(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
$(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5.gz
-clean:
+clean: dep_clean
$(RM) core *.o $(EXEC) *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/multipathd/Makefile b/multipathd/Makefile
index e6f140bf3b91..251690ec5e2a 100644
--- a/multipathd/Makefile
+++ b/multipathd/Makefile
@@ -49,5 +49,10 @@ uninstall:
$(RM) $(DESTDIR)$(unitdir)/$(EXEC).service
$(RM) $(DESTDIR)$(unitdir)/$(EXEC).socket
-clean:
+clean: dep_clean
$(RM) core *.o $(EXEC) *.gz
+
+include $(wildcard $(OBJS:.o=.d))
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
diff --git a/tests/Makefile b/tests/Makefile
index ff58cb8bb207..f6b55836a434 100644
--- a/tests/Makefile
+++ b/tests/Makefile
@@ -17,7 +17,14 @@ TESTS := uevent
all: $(TESTS:%=%.out)
-clean:
+clean: dep_clean
rm -f $(TESTS:%=%-test) $(TESTS:%=%.out) $(TESTS:%=%.o)
+OBJS = $(TESTS:%=%.o)
+include $(wildcard $(OBJS:.o=.d))
+
+
+
+dep_clean:
+ $(RM) $(OBJS:.o=.d)
--
2.15.1
More information about the dm-devel
mailing list