diff --git a/doc/build-sdk-quick.txt b/doc/build-sdk-quick.txt index 51784e8d53..8989a32a60 100644 --- a/doc/build-sdk-quick.txt +++ b/doc/build-sdk-quick.txt @@ -5,17 +5,18 @@ Build commands all same as build (default rule) build build in a configured directory clean remove files but keep configuration - install build many targets (wildcard allowed) + install build many targets (wildcard allowed) and install in DESTDIR uninstall remove all installed targets Build variables - CROSS toolchain prefix EXTRA_CPPFLAGS preprocessor options EXTRA_CFLAGS compiler options EXTRA_LDFLAGS linker options RTE_KERNELDIR linux headers path - V verbose - D debug dependencies - O output directory (default: build/ - install default: ./) - T target template (install default: *) - used with config or install + CROSS toolchain prefix + V verbose + D debug dependencies + O build directory (default: build/ - install default: ./) + DESTDIR second-stage install directory + T target template (install default: *) - used with config or install format: templates in config/defconfig_* diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk index b188d64241..2975ee413b 100644 --- a/mk/rte.sdkbuild.mk +++ b/mk/rte.sdkbuild.mk @@ -29,6 +29,8 @@ # (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 # @@ -59,6 +61,20 @@ CLEANDIRS = $(addsuffix _clean,$(ROOTDIRS-y) $(ROOTDIRS-n) $(ROOTDIRS-)) .PHONY: build build: $(ROOTDIRS-y) @echo Build complete +ifneq ($(DESTDIR),) + $(Q)mkdir -p $(DESTDIR) + $(Q)tar -C $(RTE_SDK) -cf - mk | 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)