path: root/mk
diff options
authorThomas Monjalon <>2015-12-01 15:04:01 +0100
committerThomas Monjalon <>2015-12-06 15:41:04 +0100
commitfae202e2e21cb50cd4df4b1f5688eb5bfeb4a771 (patch)
tree09739831054907424b30e0de0cfdb0557bf1507c /mk
parent6b62a72a70d012aeaca40e5054feb556175c2c07 (diff)
mk: introduce new install syntax
The old install command was: make install T=x86_64-native-linuxapp-gcc DESTDIR=install It still works and can be replaced by these more standard commands: make config T=x86_64-native-linuxapp-gcc 0=x86_64-native-linuxapp-gcc make O=x86_64-native-linuxapp-gcc make install O=x86_64-native-linuxapp-gcc prefix= DESTDIR=install It means the "make install" do not perform any compilation anymore when T is not used. It is done only in pre_install to keep compatibility with the old syntax based on T= option. The default prefix /usr/local is empty in the T= case which is used only for a local install. Signed-off-by: Thomas Monjalon <> Acked-by: Panu Matilainen <>
Diffstat (limited to 'mk')
1 files changed, 12 insertions, 0 deletions
diff --git a/mk/ b/mk/
index 3201b5b..dc57baf 100644
--- a/mk/
+++ b/mk/
@@ -33,11 +33,21 @@
# Configuration, compilation and installation can be done at once
# with make install T=<config>
+ifdef T # config, build and install combined
# The build directory is T and may be prepended with O
O ?= .
+else # standard install
+# Build directory is given with O=
+O ?= build
+ifdef T # defaults with T= will install an almost flat staging tree
+export prefix ?=
prefix ?= /usr/local
exec_prefix ?= $(prefix)
bindir ?= $(exec_prefix)/bin
libdir ?= $(exec_prefix)/lib
@@ -58,6 +68,7 @@ rte_symlink = ln -snf $$($(RTE_SDK)/scripts/ $1 $(dir $2)) $2
.PHONY: pre_install
+ifdef T
$(Q)if [ ! -f $(RTE_OUTPUT)/.config ]; then \
$(MAKE) config O=$(RTE_OUTPUT); \
elif cmp -s $(RTE_OUTPUT)/.config.orig $(RTE_OUTPUT)/.config; then \
@@ -74,6 +85,7 @@ pre_install:
echo "Using local configuration"; \
$(Q)$(MAKE) all O=$(RTE_OUTPUT)
.PHONY: install