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>
This commit is contained in:
Olivier Matz 2013-01-30 16:29:43 +01:00 committed by David Marchand
parent 4403715ec6
commit 713295f1e0
2 changed files with 9 additions and 10 deletions

View File

@ -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: <arch-machine-execenv-toolchain>
templates in config/defconfig_*

View File

@ -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)/$*