From 1fa0fd9d6b420c010fdf5b2f014f9a4e8d8f7e4a Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 30 Jan 2013 16:32:15 +0100 Subject: [PATCH] mk: allow to specify DESTDIR in build rule This will install the binary sdk (bin + modules + libs + headers + mk) in the specified directory. This directory can be used as RTE_SDK by external applications. Signed-off-by: Olivier Matz Acked-by: Thomas Monjalon --- doc/build-sdk-quick.txt | 13 +++++++------ mk/rte.sdkbuild.mk | 16 ++++++++++++++++ 2 files changed, 23 insertions(+), 6 deletions(-) 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) -- 2.20.1