You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
3.0 KiB
92 lines
3.0 KiB
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 |
|
|
|
all: $(WAF_BINARY) |
|
@$(WAF) build |
|
|
|
check-all: $(WAF_BINARY) |
|
@$(WAF) check --alltests |
|
|
|
$(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 $@ |
|
@$(WAF) $@ |
|
|
|
.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 "Check" |
|
@echo "-----" |
|
@echo "Check targets are used for running tests. There are two targets available:" |
|
@echo " check: for running tests that are still failing or that are new or" |
|
@echo " have been modified" |
|
@echo " check-all: to run all tests" |
|
@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:
|
|
|