chiark / gitweb /
regress/Makefile.in: Declare <client>_c.o as .SECONDARY
[adns.git] / regress / Makefile.in
index d41cf29eee8c0eb545e1f0775b6fbacf486f305f..94017cc9964a071a6dad068f6bfa98e0654d39c9 100644 (file)
@@ -28,10 +28,10 @@ PROGS_SYSDEP=       @PROGS_HAVE_TSEARCH@
 CLIENTS=       adnstest adnshost adnslogres $(PROGS_SYSDEP)
 AUTOCHDRS=     harness.h hsyscalls.h hredirect.h
 AUTOCSRCS=     hrecord.c hplayback.c hcommon.c
-include                $(srcdir)/../settings.make
+include                ../settings.make
 include                $(srcdir)/../src/adns.make
 
-DIRCFLAGS=     -I$(srcdir)/../src
+DIRCFLAGS=     -I../src -I$(srcdir) -I$(srcdir)/../src
 
 HCPPFLAGS=     -DADNS_REGRESS_TEST -I.
 
@@ -46,7 +46,7 @@ ALL_OBJS=     $(HARNLOBJS) dtest.o hrecord.o hplayback.o
 all install uninstall: $(TARGETS)
 
 check:         $(TARGETS)
-               ./checkall
+               srcdir=$(srcdir) $(srcdir)/checkall
 
 LINK_CMD=      $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
 
@@ -56,6 +56,16 @@ LINK_CMD=    $(CC) $(LDFLAGS) $^ $(LDLIBS) -o $@
 %_playback:    %_c.o hplayback.o $(HARNLOBJS)
                $(LINK_CMD)
 
+.SECONDARY: $(addsuffix _c.o, $(CLIENTS))
+# Without this, make will remove <client>_c.o after building <client>.
+# This wastes effort.  (Debian bug #4073.)
+#
+# Also, it exposes us to a bug (in make 3.81, at least) which can
+# cause make to run the rule for building <client> without building
+# <client>_c.o!  (Debian #756123.)
+#
+# See also Savannah #29620, http://savannah.gnu.org/bugs/index.php?29620
+
 adnshost_%:    $(ADH_OBJS) h%.o $(HARNLOBJS)
                $(LINK_CMD)
 
@@ -70,6 +80,6 @@ $(ALL_OBJS):  harness.h hsyscalls.h
 $(ADH_OBJS):   $(srcdir)/../client/adnshost.h
 
 %::    %.m4 hmacros.i4 hsyscalls.i4
-       $(M4) -P $< >$@-a.new
+       $(M4) -P -I$(srcdir) $< >$@-a.new
        sed -e 's/hm_comma/,/g; s/hm_squote/'\''/g; /^[  ]*$$/d' <$@-a.new >$@-b.new
-       @mv -f $@-b.new $@; rm -f $@-a.new
+       @mv -f $@-b.new $(srcdir)/$@; rm -f $@-a.new