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 <olivier.matz@6wind.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
This commit is contained in:
Olivier Matz 2013-01-30 16:32:15 +01:00 committed by David Marchand
parent 1c858a7dfe
commit 1fa0fd9d6b
2 changed files with 23 additions and 6 deletions

View File

@ -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
CROSS toolchain prefix
V verbose
D debug dependencies
O output directory (default: build/ - install default: ./)
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_*

View File

@ -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)