multipath-tools: build: prevent intermediate file deletion
authorMartin Wilck <mwilck@suse.com>
Wed, 7 Mar 2018 23:08:59 +0000 (00:08 +0100)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Sat, 10 Mar 2018 07:22:18 +0000 (08:22 +0100)
By default, "make" removes intermediate files from implicit rules
if they are the only dependency. Prevent that by using .SECONDARY.
Otherwise some files will be re-built upon second invocation of "make".

Fixes: e39283ebd79b "multipath-tools: add dependency tracking to Makefiles"
Reported-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Makefile.inc
libmultipath/checkers/Makefile
libmultipath/foreign/Makefile
libmultipath/prioritizers/Makefile
tests/Makefile

index a5b9d4e..5d6123d 100644 (file)
@@ -127,4 +127,5 @@ check_file = $(shell        \
        )
 
 %.o:   %.c
+       @echo building $@ because of $?
        $(CC) $(CFLAGS) -c -o $@ $<
index 9559038..87c15bd 100644 (file)
@@ -40,6 +40,8 @@ clean: dep_clean
        $(RM) core *.a *.o *.gz *.so
 
 OBJS := $(LIBS:libcheck%.so=%.o) libsg.o directio.o
+.SECONDARY: $(OBJS)
+
 include $(wildcard $(OBJS:.o=.d))
 
 dep_clean:
index dfba11e..fe98ddf 100644 (file)
@@ -24,6 +24,8 @@ clean: dep_clean
        $(RM) core *.a *.o *.gz *.so
 
 OBJS := $(LIBS:libforeign-%.so=%.o)
+.SECONDARY: $(OBJS)
+
 include $(wildcard $(OBJS:.o=.d))
 
 dep_clean:
index b3cc944..ab7bc07 100644 (file)
@@ -42,6 +42,8 @@ clean: dep_clean
        $(RM) core *.a *.o *.gz *.so
 
 OBJS = $(LIBS:libprio%.so=%.o) alua_rtpg.o
+.SECONDARY: $(OBJS)
+
 include $(wildcard $(OBJS:.o=.d))
 
 dep_clean:
index f6b5583..7ae6b90 100644 (file)
@@ -21,10 +21,9 @@ clean: dep_clean
        rm -f $(TESTS:%=%-test) $(TESTS:%=%.out) $(TESTS:%=%.o)
 
 OBJS = $(TESTS:%=%.o)
-include $(wildcard $(OBJS:.o=.d))
-
-
+.SECONDARY: $(OBJS)
 
+include $(wildcard $(OBJS:.o=.d))
 
 dep_clean:
        $(RM) $(OBJS:.o=.d)