[dpdk-dev] [PATCH v2 06/12] mk: split install rule

Thomas Monjalon thomas.monjalon at 6wind.com
Thu Dec 3 06:02:03 CET 2015


Provides new sub-rules to install runtime and sdk separately.

The build directory must be changed from BUILD_DIR to O in install
rules to avoid a bad recursive effect (O being BUILD_DIR being O + T).

Suggested-by: Mario Carrillo <mario.alfredo.c.arevalo at intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
 mk/rte.sdkinstall.mk | 18 ++++++++++++------
 mk/rte.sdkroot.mk    |  2 ++
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
index 6a7aedd..509b50e 100644
--- a/mk/rte.sdkinstall.mk
+++ b/mk/rte.sdkinstall.mk
@@ -93,25 +93,31 @@ ifeq ($(DESTDIR)$(if $T,,+),)
 	@echo Installation cannot run with T defined and DESTDIR undefined
 else
 	@echo ================== Installing $(DESTDIR)$(prefix)/
+	$(Q)$(MAKE) O=$(BUILD_DIR) install-runtime
+	$(Q)$(MAKE) O=$(BUILD_DIR) install-sdk
+	@echo Installation in $(DESTDIR)$(prefix)/ complete
+endif
+
+install-runtime:
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(libdir))
-	$(Q)cp -a $(BUILD_DIR)/lib/* $(DESTDIR)$(libdir)
+	$(Q)cp -a    $O/lib/* $(DESTDIR)$(libdir)
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))
-	$(Q)tar -cf -      -C $(BUILD_DIR) app  --exclude 'app/*.map' \
+	$(Q)tar -cf -      -C $O app  --exclude 'app/*.map' \
 		--exclude 'app/cmdline*' --exclude app/test \
 		--exclude app/testacl --exclude app/testpipeline | \
 	    tar -xf -      -C $(DESTDIR)$(bindir) --strip-components=1 \
 		--keep-newer-files --warning=no-ignore-newer
 	$(Q)$(call rte_mkdir,      $(DESTDIR)$(datadir))
 	$(Q)cp -a $(RTE_SDK)/tools $(DESTDIR)$(datadir)
+
+install-sdk:
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(includedir))
-	$(Q)tar -chf -     -C $(BUILD_DIR) include | \
+	$(Q)tar -chf -     -C $O include | \
 	    tar -xf -      -C $(DESTDIR)$(includedir) --strip-components=1 \
 		--keep-newer-files --warning=no-ignore-newer
 	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(sdkdir))
 	$(Q)cp -a               $(RTE_SDK)/{mk,scripts}  $(DESTDIR)$(sdkdir)
 	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(targetdir))
-	$(Q)cp -a               $(BUILD_DIR)/.config     $(DESTDIR)$(targetdir)
+	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
 	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
 	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
-	@echo Installation in $(DESTDIR)$(prefix)/ complete
-endif
diff --git a/mk/rte.sdkroot.mk b/mk/rte.sdkroot.mk
index 9fdecf4..ce6b0fc 100644
--- a/mk/rte.sdkroot.mk
+++ b/mk/rte.sdkroot.mk
@@ -96,6 +96,8 @@ test fast_test ring_test mempool_test perf_test coverage:
 .PHONY: install
 install:
 	$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
+install-%:
+	$(Q)$(MAKE) -f $(RTE_SDK)/mk/rte.sdkinstall.mk $@
 
 .PHONY: doc help
 doc: doc-all
-- 
2.5.2



More information about the dev mailing list