GNU make 3.81 apparently does not support order-only prerequisites with pattern rules, and thus fails to create the tools directory if it is missing. Naming the objects explicitly in the rule makes it work properly.
Signed-off-by: Mans Rullgard <[email protected]> --- Makefile | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 3510a1e..cdedc0e 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,6 @@ PROGS-$(CONFIG_FFSERVER) += ffserver PROGS := $(PROGS-yes:%=%$(EXESUF)) OBJS = $(PROGS-yes:%=%.o) cmdutils.o -TOOLS = $(addprefix tools/, $(addsuffix $(EXESUF), cws2fws graph2dot lavfi-showfiltfmts pktdumper probetest qt-faststart trasher)) TESTTOOLS = audiogen videogen rotozoom tiny_psnr base64 HOSTPROGS := $(TESTTOOLS:%=tests/%) @@ -117,12 +116,16 @@ ffserver$(EXESUF): FF_LDFLAGS += $(FFSERVERLDFLAGS) $(PROGS): %$(EXESUF): %.o cmdutils.o $(FF_DEP_LIBS) $(LD) $(FF_LDFLAGS) -o $@ $< cmdutils.o $(FF_EXTRALIBS) +TOOLS = cws2fws graph2dot lavfi-showfiltfmts pktdumper probetest qt-faststart trasher +TOOLOBJS := $(TOOLS:%=tools/%.o) +TOOLS := $(TOOLS:%=tools/%$(EXESUF)) + alltools: $(TOOLS) tools/%$(EXESUF): tools/%.o $(LD) $(FF_LDFLAGS) -o $@ $< $(FF_EXTRALIBS) -tools/%.o: tools/%.c | tools +$(TOOLOBJS): %.o: %.c | tools $(CC) $(CPPFLAGS) $(CFLAGS) -c $(CC_O) $< OBJDIRS += tools -- 1.7.6 _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
