From 713295f1e07ad8d6ae6140821e90c33ccb70abea Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 30 Jan 2013 16:29:43 +0100 Subject: [PATCH] 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 Acked-by: Thomas Monjalon --- doc/build-sdk-quick.txt | 4 ++-- mk/rte.sdkinstall.mk | 15 +++++++-------- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/doc/build-sdk-quick.txt b/doc/build-sdk-quick.txt index 3780dec393..51784e8d53 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 @@ -15,7 +15,7 @@ Build variables RTE_KERNELDIR linux headers path 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: templates in config/defconfig_* diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk index bbcc5f251a..00cb616bf1 100644 --- a/mk/rte.sdkinstall.mk +++ b/mk/rte.sdkinstall.mk @@ -29,10 +29,11 @@ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # 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 @@ -55,8 +56,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 @@ -69,6 +70,4 @@ uninstall: $(UNINSTALL_TARGETS) %_uninstall: @echo ================== Uninstalling $* - $(Q)rm -rf $* - - + $(Q)rm -rf $(BUILD_DIR)/$* -- 2.20.1