summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOlivier Matz <olivier.matz@6wind.com>2013-01-30 16:29:43 +0100
committerThomas Monjalon <thomas.monjalon@6wind.com>2013-09-17 14:16:11 +0200
commit54c78a5ea390a125ce7ad12ad8610e386a36ecef (patch)
tree396b373cfdc0b7062c771cb47612189ada4d9ae0
parent0a621a3f8e390215e65f1c0fdb39b23102bc35df (diff)
downloaddpdk-54c78a5ea390a125ce7ad12ad8610e386a36ecef.zip
dpdk-54c78a5ea390a125ce7ad12ad8610e386a36ecef.tar.gz
dpdk-54c78a5ea390a125ce7ad12ad8610e386a36ecef.tar.xz
mk: allow to specify O= in install rule
This variable $(O) can be used to specify a build directory when doing an "install" procedure. The default is ".", which means that targets will be built in the source dpdk. This option is useful to compile outside of the source tree that may be read-only. Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
-rw-r--r--doc/build-sdk-quick.txt4
-rw-r--r--mk/rte.sdkinstall.mk15
2 files changed, 9 insertions, 10 deletions
diff --git a/doc/build-sdk-quick.txt b/doc/build-sdk-quick.txt
index c839676..d66f0d5 100644
--- a/doc/build-sdk-quick.txt
+++ b/doc/build-sdk-quick.txt
@@ -5,7 +5,7 @@ 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) in fixed directories
+ install build many targets (wildcard allowed)
uninstall remove all installed targets
Build variables
CROSS toolchain prefix
@@ -14,7 +14,7 @@ Build variables
EXTRA_LDFLAGS linker options
V verbose
D debug dependencies
- O output directory (default: build/) - cannot be used with install
+ O output directory (default: build/ - install default: ./)
T target template (install default: *) - used with config or install
format: <arch-machine-execenv-toolchain>
templates in config/defconfig_*
diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
index 022cd70..a280234 100644
--- a/mk/rte.sdkinstall.mk
+++ b/mk/rte.sdkinstall.mk
@@ -30,10 +30,11 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
+# Build directory is given with O=
ifdef O
-ifeq ("$(origin O)", "command line")
-$(error "Cannot use O= with install target")
-endif
+BUILD_DIR=$(O)
+else
+BUILD_DIR=.
endif
# Targets to install can be specified in command line. It can be a
@@ -56,8 +57,8 @@ install: $(INSTALL_TARGETS)
%_install:
@echo ================== Installing $*
- $(Q)$(MAKE) config T=$* O=$*
- $(Q)$(MAKE) all O=$*
+ $(Q)$(MAKE) config T=$* O=$(BUILD_DIR)/$*
+ $(Q)$(MAKE) all O=$(BUILD_DIR)/$*
#
# uninstall: remove all built sdk
@@ -70,6 +71,4 @@ uninstall: $(UNINSTALL_TARGETS)
%_uninstall:
@echo ================== Uninstalling $*
- $(Q)rm -rf $*
-
-
+ $(Q)rm -rf $(BUILD_DIR)/$*