[dpdk-dev] [PATCH 3/3] mk: allow to specify DESTDIR in build rule
Thomas Monjalon
thomas.monjalon at 6wind.com
Fri Jul 26 15:13:45 CEST 2013
From: Olivier Matz <olivier.matz at 6wind.com>
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 <olivier.matz at 6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
---
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 d66f0d5..18b0ee6 100644
--- a/doc/build-sdk-quick.txt
+++ b/doc/build-sdk-quick.txt
@@ -5,16 +5,17 @@ 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
- 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: <arch-machine-execenv-toolchain>
templates in config/defconfig_*
diff --git a/mk/rte.sdkbuild.mk b/mk/rte.sdkbuild.mk
index 5ea4202..087d3ab 100644
--- a/mk/rte.sdkbuild.mk
+++ b/mk/rte.sdkbuild.mk
@@ -30,6 +30,8 @@
# 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
#
@@ -60,6 +62,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)
--
1.7.10.4
More information about the dev
mailing list