Skip to content

Commit

Permalink
build: removed makefile build system
Browse files Browse the repository at this point in the history
  • Loading branch information
tridge committed Dec 22, 2018
1 parent 7c5d82e commit 0884428
Show file tree
Hide file tree
Showing 38 changed files with 79 additions and 1,008 deletions.
1 change: 0 additions & 1 deletion APMrover2/Makefile

This file was deleted.

54 changes: 0 additions & 54 deletions APMrover2/make.inc

This file was deleted.

1 change: 0 additions & 1 deletion AntennaTracker/Makefile

This file was deleted.

34 changes: 0 additions & 34 deletions AntennaTracker/make.inc

This file was deleted.

2 changes: 0 additions & 2 deletions ArduCopter/Makefile

This file was deleted.

64 changes: 0 additions & 64 deletions ArduCopter/make.inc

This file was deleted.

2 changes: 0 additions & 2 deletions ArduPlane/Makefile

This file was deleted.

60 changes: 0 additions & 60 deletions ArduPlane/make.inc

This file was deleted.

2 changes: 0 additions & 2 deletions ArduSub/Makefile

This file was deleted.

50 changes: 0 additions & 50 deletions ArduSub/make.inc

This file was deleted.

99 changes: 79 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,30 +1,89 @@
# top level makefile to build SITL for primary vehicle targets.
# Useful for static analysis tools
ROOT = $(dir $(lastword $(MAKEFILE_LIST)))

all: sitl
WAF_BINARY = $(realpath $(ROOT)/modules/waf/waf-light)
WAF = $(WAF_BINARY) $(WAF_FLAGS)

sitl: TARGET=sitl
sitl: plane copter rover sub antennatracker
EXPLICIT_COMMANDS = check check-all clean list_boards

linux: TARGET=linux
linux: plane copter rover sub antennatracker
VEHICLES = copter plane rover

clean: TARGET=clean
clean: plane copter rover sub antennatracker
all: $(WAF_BINARY)
@$(WAF) build

.PHONY: plane copter rover sub antennatracker
$(WAF_BINARY):
@git submodule init && git submodule update

plane:
$(MAKE) -C ArduPlane $(TARGET)
waf-%: $(WAF_BINARY)
@$(WAF) $*

copter:
$(MAKE) -C ArduCopter $(TARGET)
%-configure: $(WAF_BINARY)
@$(WAF) configure --board $*

rover:
$(MAKE) -C APMrover2 $(TARGET)
$(EXPLICIT_COMMANDS): $(WAF_BINARY)
@$(WAF) $@

sub:
$(MAKE) -C ArduSub $(TARGET)
$(VEHICLES): $(WAF_BINARY)
@echo Build for vehicle $@
@$(WAF) $@

antennatracker:
$(MAKE) -C AntennaTracker $(TARGET)
.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:
Loading

0 comments on commit 0884428

Please sign in to comment.