mirror of https://github.com/ArduPilot/ardupilot
waf: add a make wrappers
This commit is contained in:
parent
6856950bd3
commit
7837bbfd81
|
@ -0,0 +1,2 @@
|
|||
BUILD_VEHICLE = rover
|
||||
include ../Makefile.waf
|
|
@ -0,0 +1,2 @@
|
|||
BUILD_VEHICLE = copter
|
||||
include ../Makefile.waf
|
|
@ -0,0 +1,2 @@
|
|||
BUILD_VEHICLE = plane
|
||||
include ../Makefile.waf
|
|
@ -0,0 +1,90 @@
|
|||
ROOT = $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
|
||||
WAF_BINARY = $(realpath $(ROOT)/modules/waf/waf-light)
|
||||
WAF = $(WAF_BINARY) $(WAF_FLAGS)
|
||||
|
||||
EXPLICIT_COMMANDS = check clean list_boards
|
||||
|
||||
VEHICLES = copter plane rover
|
||||
|
||||
copter_DIR = ArduCopter
|
||||
plane_DIR = ArduPlane
|
||||
rover_DIR = APMrover2
|
||||
|
||||
ifneq ($(BUILD_VEHICLE),)
|
||||
all: $(BUILD_VEHICLE)
|
||||
else
|
||||
all: $(WAF_BINARY)
|
||||
@$(WAF) build
|
||||
endif
|
||||
|
||||
$(WAF_BINARY):
|
||||
@git submodule init && git submodule update
|
||||
|
||||
waf-%: $(WAF_BINARY)
|
||||
@$(WAF) $*
|
||||
|
||||
%-configure: $(WAF_BINARY)
|
||||
@$(WAF) configure --board $*
|
||||
|
||||
$(EXPLICIT_COMMANDS): $(WAF_BINARY)
|
||||
@$(WAF) $@
|
||||
|
||||
$(VEHICLES): $(WAF_BINARY)
|
||||
@echo Build for vehicle $@
|
||||
@cd $(ROOT)/$($@_DIR) && $(WAF) build
|
||||
|
||||
.DEFAULT: %-configure
|
||||
@$(WAF) configure --board $@ build
|
||||
|
||||
help:
|
||||
@echo "Ardupilot Building"
|
||||
@echo "=================="
|
||||
@echo "This is a make wrapper for Ardupilot's Waf build system. This wrapper is"
|
||||
@echo "intended to provide convenience for basic and common build tasks. If you need"
|
||||
@echo "more than what this wrapper provides, it's a good idea to use waf directly."
|
||||
@echo "The waf executable is at '$(WAF_BINARY)'."
|
||||
@echo ""
|
||||
@echo "WARNING: Ardupilot's Waf build system is still a work in progress, it's still"
|
||||
@echo "missing features from the current official build system."
|
||||
@echo ""
|
||||
@echo "Note: The examples in this help consider this wrapper being named as Makefile"
|
||||
@echo "or makefile. In a Linux environment, alias make='make -f THIS_MAKEFILE'"
|
||||
@echo "should make them work."
|
||||
@echo ""
|
||||
@echo "Boards"
|
||||
@echo "------"
|
||||
@echo "In order to trigger the build for a board/platform, the name of the board is"
|
||||
@echo "used as the target. Example: make linux"
|
||||
@echo "If no target is passed, then the build will be triggered for the last board"
|
||||
@echo "used. You can suffix the board/platform with '-configure' in order to just "
|
||||
@echo "configure without triggering a build command."
|
||||
@echo ""
|
||||
@echo "Vehicles"
|
||||
@echo "--------"
|
||||
@echo "It's possible to build for a specific vehicle by defining the target as one of:"
|
||||
@echo " $(VEHICLES)"
|
||||
@echo ""
|
||||
@echo "Not that if it's your first time building or you want to change the target "
|
||||
@echo "board/platform, you'll need to configure the build before (e.g"
|
||||
@echo "make linux-configure)"
|
||||
@echo ""
|
||||
@echo "Waf commands"
|
||||
@echo "------------"
|
||||
@echo "Waf commands can be explicitly called with targets prefixed by 'waf-'. Example:"
|
||||
@echo " make waf-clean"
|
||||
@echo " make waf-build"
|
||||
@echo ""
|
||||
@echo "Common commands"
|
||||
@echo "---------------"
|
||||
@echo "Some Waf commands can be executed without the need of prefixing the target name"
|
||||
@echo "with 'waf-'. They are: $(EXPLICIT_COMMANDS)"
|
||||
@echo ""
|
||||
@echo "Waf flags"
|
||||
@echo "---------"
|
||||
@echo "The variable WAF_FLAGS can be used to set any waf command line options that"
|
||||
@echo "come to be necessary. Ex: make linux WAF_FLAGS='-c no'"
|
||||
@echo ""
|
||||
|
||||
# Don't run in parallel, let waf take care of that.
|
||||
.NOTPARALLEL:
|
Loading…
Reference in New Issue