tile: fix build
[dpdk.git] / mk / rte.sdkdepdirs.mk
index bebaf2a..38fd863 100644 (file)
@@ -36,19 +36,18 @@ ifeq (,$(wildcard $(RTE_OUTPUT)/Makefile))
   $(error "need a make config first")
 endif
 
-# use a "for" in a shell to process dependencies: we don't want this
-# task to be run in parallel.
+DEPDIR_FILES = $(addsuffix /.depdirs, $(addprefix $(BUILDDIR)/,$(ROOTDIRS-y)))
+
 .PHONY: depdirs
 depdirs: $(RTE_OUTPUT)/.depdirs
-$(RTE_OUTPUT)/.depdirs: $(RTE_OUTPUT)/.config
-       @rm -f $(RTE_OUTPUT)/.depdirs ; \
-       for d in $(ROOTDIRS-y); do \
-               if [ -f $(RTE_SRCDIR)/$$d/Makefile ]; then \
-                       [ -d $(BUILDDIR)/$$d ] || mkdir -p $(BUILDDIR)/$$d ; \
-                       $(MAKE) S=$$d -f $(RTE_SRCDIR)/$$d/Makefile depdirs \
-                               >> $(RTE_OUTPUT)/.depdirs ; \
-               fi ; \
-       done
+$(RTE_OUTPUT)/.depdirs: $(DEPDIR_FILES)
+       @rm -f $@
+       @sort -u -o $@ $(DEPDIR_FILES)
+
+$(DEPDIR_FILES): $(RTE_OUTPUT)/.config
+       @dir=$(notdir $(@D)); \
+       [ -d $(BUILDDIR)/$$dir ] || mkdir -p $(BUILDDIR)/$$dir; \
+       $(MAKE) S=$$dir -f $(RTE_SRCDIR)/$$dir/Makefile depdirs > $@
 
 .PHONY: depgraph
 depgraph: