The real installation was called "binary install" and was done after the build when DESTDIR was specified. Remove this limitation and move the code in install rule only.
Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com> --- mk/rte.sdkbuild.mk | 16 ---------------- mk/rte.sdkinstall.mk | 21 ++++++++++++++++++--- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk index 38ec7bd..85f603c 100644 --- a/mk/rte.sdkbuild.mk +++ b/mk/rte.sdkbuild.mk @@ -29,8 +29,6 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# If DESTDIR variable is given, install binary dpdk - # # include rte.vars.mk if config file exists # @@ -61,20 +59,6 @@ CLEANDIRS = $(addsuffix _clean,$(ROOTDIRS-y) $(ROOTDIRS-n) $(ROOTDIRS-)) .PHONY: build build: $(ROOTDIRS-y) @echo "Build complete [$(RTE_TARGET)]" -ifneq ($(DESTDIR),) - $(Q)mkdir -p $(DESTDIR) - $(Q)tar -C $(RTE_SDK) -cf - mk scripts/*.sh | tar -C $(DESTDIR) -x \ - --keep-newer-files --warning=no-ignore-newer -f - - $(Q)mkdir -p $(DESTDIR)/`basename $(RTE_OUTPUT)` - $(Q)tar -C $(RTE_OUTPUT) -chf - \ - --exclude app --exclude hostapp --exclude build \ - --exclude Makefile --exclude .depdirs . | \ - tar -C $(DESTDIR)/`basename $(RTE_OUTPUT)` -x --keep-newer-files \ - --warning=no-ignore-newer -f - - $(Q)install -D $(RTE_OUTPUT)/app/testpmd \ - $(DESTDIR)/`basename $(RTE_OUTPUT)`/app/testpmd - @echo Installation in $(DESTDIR) complete -endif .PHONY: clean clean: $(CLEANDIRS) diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk index 3e6e8ca..54ea501 100644 --- a/mk/rte.sdkinstall.mk +++ b/mk/rte.sdkinstall.mk @@ -36,9 +36,8 @@ O ?= . BUILD_DIR := $O/$T -.PHONY: install -install: - @echo ================== Installing $T +.PHONY: pre_install +pre_install: $(Q)if [ ! -f $(BUILD_DIR)/.config ]; then \ $(MAKE) config T=$T O=$(BUILD_DIR); \ elif cmp -s $(BUILD_DIR)/.config.orig $(BUILD_DIR)/.config; then \ @@ -55,3 +54,19 @@ install: echo "Using local configuration"; \ fi $(Q)$(MAKE) all O=$(BUILD_DIR) + +.PHONY: install +install: pre_install + @echo ================== Installing $(DESTDIR) + $(Q)mkdir -p $(DESTDIR) + $(Q)tar -C $(RTE_SDK) -cf - mk scripts/*.sh | tar -C $(DESTDIR) -x \ + --keep-newer-files --warning=no-ignore-newer -f - + $(Q)mkdir -p $(DESTDIR)/$T + $(Q)tar -C $(BUILD_DIR) -chf - \ + --exclude app --exclude hostapp --exclude build \ + --exclude Makefile --exclude .depdirs . | \ + tar -C $(DESTDIR)/$T -x --keep-newer-files \ + --warning=no-ignore-newer -f - + $(Q)install -D $(BUILD_DIR)/app/testpmd \ + $(DESTDIR)/$T/app/testpmd + @echo Installation in $(DESTDIR) complete -- 2.5.2