mirror of https://github.com/ArduPilot/ardupilot
264 lines
13 KiB
Makefile
264 lines
13 KiB
Makefile
# VRBRAIN build is via external build system
|
|
|
|
ifneq ($(VRBRAIN_ROOT),)
|
|
$(error VRBRAIN_ROOT found in config.mk - Please see http://dev.ardupilot.org/wiki/git-submodules/)
|
|
endif
|
|
|
|
ifneq ($(NUTTX_SRC),)
|
|
$(error NUTTX_SRC found in config.mk - Please see http://dev.ardupilot.org/wiki/git-submodules/)
|
|
endif
|
|
|
|
ifneq ($(UAVCAN_DIR),)
|
|
$(error UAVCAN_DIR found in config.mk - Please see http://dev.ardupilot.org/wiki/git-submodules/)
|
|
endif
|
|
|
|
# these can be overridden in developer.mk
|
|
VRBRAINFIRMWARE_DIRECTORY ?= $(SKETCHBOOK)/modules/PX4Firmware
|
|
VRBRAINNUTTX_DIRECTORY ?= $(SKETCHBOOK)/modules/PX4NuttX
|
|
UAVCAN_DIRECTORY ?= $(SKETCHBOOK)/modules/uavcan
|
|
|
|
VRBRAIN_ROOT := $(shell cd $(VRBRAINFIRMWARE_DIRECTORY) && pwd)
|
|
NUTTX_ROOT := $(shell cd $(VRBRAINNUTTX_DIRECTORY) && pwd)
|
|
NUTTX_SRC := $(NUTTX_ROOT)/nuttx/
|
|
UAVCAN_DIR=$(shell cd $(UAVCAN_DIRECTORY) && pwd)/
|
|
|
|
# warn if user has old PX4Firmware or PX4NuttX trees
|
|
ifneq ($(wildcard $(SKETCHBOOK)/../PX4Firmware),)
|
|
$(warning *** You have an old PX4Firmware tree - see http://dev.ardupilot.com/wiki/git-submodules/)
|
|
endif
|
|
ifneq ($(wildcard $(SKETCHBOOK)/../PX4NuttX),)
|
|
$(warning *** You have an old PX4NuttX tree - see http://dev.ardupilot.com/wiki/git-submodules/)
|
|
endif
|
|
ifneq ($(wildcard $(SKETCHBOOK)/../uavcan),)
|
|
$(warning *** You have an old uavcan tree - see http://dev.ardupilot.com/wiki/git-submodules/)
|
|
endif
|
|
|
|
NUTTX_GIT_VERSION ?= $(shell cd $(NUTTX_SRC) && git rev-parse HEAD | cut -c1-8)
|
|
PX4_GIT_VERSION ?= $(shell cd $(VRBRAIN_ROOT) && git rev-parse HEAD | cut -c1-8)
|
|
|
|
EXTRAFLAGS += -DNUTTX_GIT_VERSION="\"$(NUTTX_GIT_VERSION)\""
|
|
EXTRAFLAGS += -DPX4_GIT_VERSION="\"$(PX4_GIT_VERSION)\""
|
|
EXTRAFLAGS += -DUAVCAN=1
|
|
|
|
# Add missing parts from libc and libstdc++
|
|
EXTRAFLAGS += -DHAVE_STD_NULLPTR_T=0
|
|
|
|
EXTRAFLAGS += -I$(BUILDROOT)/libraries/GCS_MAVLink/include/mavlink
|
|
|
|
# we have different config files for vrbrain_v52, vrbrain_v54
|
|
VRBRAIN_MK_DIR=$(MK_DIR)/VRBRAIN
|
|
|
|
VRBRAIN_V51_CONFIG_FILE=config_vrbrain-v51_APM.mk
|
|
VRBRAIN_V52_CONFIG_FILE=config_vrbrain-v52_APM.mk
|
|
VRBRAIN_V54_CONFIG_FILE=config_vrbrain-v54_APM.mk
|
|
VRCORE_V10_CONFIG_FILE=config_vrcore-v10_APM.mk
|
|
VRUBRAIN_V51_CONFIG_FILE=config_vrubrain-v51_APM.mk
|
|
|
|
SKETCHFLAGS=$(SKETCHLIBINCLUDES) -DARDUPILOT_BUILD -DTESTS_MATHLIB_DISABLE -DCONFIG_HAL_BOARD=HAL_BOARD_VRBRAIN -DSKETCHNAME="\\\"$(SKETCH)\\\"" -DSKETCH_MAIN=ArduPilot_main -DAPM_BUILD_DIRECTORY=APM_BUILD_$(SKETCH)
|
|
|
|
WARNFLAGS = -Wall -Wextra -Wlogical-op -Werror -Wno-unknown-pragmas -Wno-redundant-decls -Wno-psabi -Wno-packed -Wno-error=double-promotion -Wno-error=unused-variable -Wno-error=reorder -Wno-error=float-equal -Wno-error=pmf-conversions -Wno-error=missing-declarations -Wno-error=unused-function
|
|
OPTFLAGS = -fsingle-precision-constant
|
|
|
|
# avoid VRBRAIN submodules
|
|
export GIT_SUBMODULES_ARE_EVIL = 1
|
|
|
|
PYTHONPATH=$(SKETCHBOOK)/mk/VRBRAIN/Tools/genmsg/src:$(SKETCHBOOK)/mk/VRBRAIN/Tools/gencpp/src
|
|
export PYTHONPATH
|
|
|
|
VRBRAIN_MAKE = $(v)+ GIT_SUBMODULES_ARE_EVIL=1 ARDUPILOT_BUILD=1 $(MAKE) -C $(SKETCHBOOK) -f $(VRBRAIN_ROOT)/Makefile.make EXTRADEFINES="$(SKETCHFLAGS) $(WARNFLAGS) $(OPTFLAGS) "'$(EXTRAFLAGS)' APM_MODULE_DIR=$(SKETCHBOOK) SKETCHBOOK=$(SKETCHBOOK) CCACHE=$(CCACHE) VRBRAIN_ROOT=$(VRBRAIN_ROOT) NUTTX_SRC=$(NUTTX_SRC) MAXOPTIMIZATION="-Os" UAVCAN_DIR=$(UAVCAN_DIR)
|
|
VRBRAIN_MAKE_ARCHIVES = $(MAKE) -C $(VRBRAIN_ROOT) -f $(VRBRAIN_ROOT)/Makefile.make NUTTX_SRC=$(NUTTX_SRC) CCACHE=$(CCACHE) archives MAXOPTIMIZATION="-Os"
|
|
|
|
HASHADDER_FLAGS += --ardupilot "$(SKETCHBOOK)"
|
|
|
|
ifneq ($(wildcard $(VRBRAIN_ROOT)),)
|
|
HASHADDER_FLAGS += --px4 "$(VRBRAIN_ROOT)/"
|
|
endif
|
|
ifneq ($(wildcard $(NUTTX_SRC)/..),)
|
|
HASHADDER_FLAGS += --nuttx "$(NUTTX_SRC)../"
|
|
endif
|
|
HASHADDER_FLAGS += --uavcan "$(UAVCAN_DIR)"
|
|
|
|
.PHONY: module_mk
|
|
module_mk:
|
|
$(v) echo "Building $(SKETCHBOOK)/module.mk"
|
|
$(RULEHDR)
|
|
$(v) echo "# Auto-generated file - do not edit" > $(SKETCHBOOK)/module.mk.new
|
|
$(v) echo "MODULE_COMMAND = ArduPilot" >> $(SKETCHBOOK)/module.mk.new
|
|
$(v) echo "SRCS = $(subst $(SKETCHBOOK)/,,$(wildcard $(SRCROOT)/*.cpp)) $(SKETCHLIBSRCSRELATIVE)" >> $(SKETCHBOOK)/module.mk.new
|
|
$(v) echo "MODULE_STACKSIZE = 4096" >> $(SKETCHBOOK)/module.mk.new
|
|
$(v) echo "EXTRACXXFLAGS = -Wframe-larger-than=1300" >> $(SKETCHBOOK)/module.mk.new
|
|
$(v) cmp $(SKETCHBOOK)/module.mk $(SKETCHBOOK)/module.mk.new 2>/dev/null || mv $(SKETCHBOOK)/module.mk.new $(SKETCHBOOK)/module.mk
|
|
$(v) rm -f $(SKETCHBOOK)/module.mk.new
|
|
|
|
vrbrain-v51: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrbrain-v51.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V51_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRBRAIN_V51_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v51_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V51_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrbrain-v51.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrbrain-v51_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrbrain-v51_APM.px4 $(SKETCH)-vrbrain-v51.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrbrain-v51.vrx" "$(SKETCH)-vrbrain-v51.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrbrain-v51.vrx"
|
|
|
|
vrbrain-v52: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrbrain-v52.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V52_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRBRAIN_V52_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v52_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V52_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrbrain-v52.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrbrain-v52_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrbrain-v52_APM.px4 $(SKETCH)-vrbrain-v52.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrbrain-v52.vrx" "$(SKETCH)-vrbrain-v52.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrbrain-v52.vrx"
|
|
|
|
vrbrain-v54: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrbrain-v54.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V54_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRBRAIN_V54_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v54_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRBRAIN_V54_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrbrain-v54.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrbrain-v54_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrbrain-v54_APM.px4 $(SKETCH)-vrbrain-v54.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrbrain-v54.vrx" "$(SKETCH)-vrbrain-v54.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrbrain-v54.vrx"
|
|
|
|
vrcore-v10: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrcore-v10.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRCORE_V10_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRCORE_V10_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrcore-v10_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRCORE_V10_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrcore-v10.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrcore-v10_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrcore-v10_APM.px4 $(SKETCH)-vrcore-v10.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrcore-v10.vrx" "$(SKETCH)-vrcore-v10.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrcore-v10.vrx"
|
|
|
|
vrubrain-v51: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrubrain-v51.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRUBRAIN_V51_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRUBRAIN_V51_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrubrain-v51_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRUBRAIN_V51_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrubrain-v51.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrubrain-v51_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrubrain-v51_APM.px4 $(SKETCH)-vrubrain-v51.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrubrain-v51.vrx" "$(SKETCH)-vrubrain-v51.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrubrain-v51.vrx"
|
|
|
|
vrubrain-v52: $(BUILDROOT)/make.flags CHECK_MODULES $(MAVLINK_HEADERS) $(VRBRAIN_ROOT)/Archives/vrubrain-v52.export $(SKETCHCPP) module_mk
|
|
$(RULEHDR)
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRUBRAIN_V52_CONFIG_FILE)
|
|
$(v) cp $(VRBRAIN_MK_DIR)/$(VRUBRAIN_V52_CONFIG_FILE) $(VRBRAIN_ROOT)/makefiles/nuttx/
|
|
$(v) $(VRBRAIN_MAKE) vrubrain-v52_APM
|
|
$(v) rm -f $(VRBRAIN_ROOT)/makefiles/nuttx/$(VRUBRAIN_V52_CONFIG_FILE)
|
|
$(v) rm -f $(SKETCH)-vrubrain-v52.vrx
|
|
$(v) arm-none-eabi-size $(VRBRAIN_ROOT)/Build/vrubrain-v52_APM.build/firmware.elf
|
|
$(v) cp $(VRBRAIN_ROOT)/Images/vrubrain-v52_APM.px4 $(SKETCH)-vrubrain-v52.vrx
|
|
$(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-vrubrain-v52.vrx" "$(SKETCH)-vrubrain-v52.vrx"
|
|
$(v) echo "VRBRAIN $(SKETCH) Firmware is in $(SKETCH)-vrubrain-v52.vrx"
|
|
|
|
|
|
|
|
vrbrainStd: vrbrain-v51 vrbrain-v52 vrbrain-v54 vrcore-v10 vrubrain-v51 vrubrain-v52
|
|
vrbrainStdP:
|
|
vrbrainPro:
|
|
vrbrainProP:
|
|
|
|
vrbrain: vrbrainStd vrbrainStdP vrbrainPro vrbrainProP
|
|
|
|
vrbrain-clean: clean CHECK_MODULES vrbrain-archives-clean vrbrain-cleandep
|
|
$(v) /bin/rm -rf $(VRBRAIN_ROOT)/makefiles/build $(VRBRAIN_ROOT)/Build $(VRBRAIN_ROOT)/Images/*.px4 $(VRBRAIN_ROOT)/Images/*.bin
|
|
$(v) /bin/rm -rf $(VRBRAIN_ROOT)/src/modules/uORB/topics $(VRBRAIN_ROOT)/src/platforms/nuttx/px4_messages
|
|
|
|
vrbrain-cleandep: clean
|
|
$(v) mkdir -p $(VRBRAIN_ROOT)/Build
|
|
$(v) find $(VRBRAIN_ROOT)/Build -type f -name '*.d' | xargs rm -f
|
|
$(v) find $(UAVCAN_DIRECTORY) -type f -name '*.d' | xargs rm -f
|
|
$(v) find $(SKETCHBOOK)/$(SKETCH) -type f -name '*.d' | xargs rm -f
|
|
|
|
vrbrain-v51-upload: vrbrain-v51
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v51_APM upload
|
|
|
|
vrbrain-v52-upload: vrbrain-v52
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v52_APM upload
|
|
|
|
vrbrain-v54-upload: vrbrain-v54
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrbrain-v54_APM upload
|
|
|
|
vrcore-v10-upload: vrcore-v10
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrcore-v10_APM upload
|
|
|
|
vrubrain-v51-upload: vrubrain-v51
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrubrain-v51_APM upload
|
|
|
|
vrubrain-v52-upload: vrubrain-v52
|
|
$(RULEHDR)
|
|
$(v) $(VRBRAIN_MAKE) vrubrain-v52_APM upload
|
|
|
|
vrbrain-upload: vrbrain-v52-upload
|
|
|
|
vrbrain-archives-clean:
|
|
$(v) /bin/rm -rf $(VRBRAIN_ROOT)/Archives
|
|
|
|
# These targets can't run in parallel because they all need to generate a tool
|
|
# to generate the config.h inside them. This could trigger races if done in
|
|
# parallel, trying to generate the tool and replacing it while the header is already
|
|
# being generated
|
|
#
|
|
# We could serialize inside PX4Firmware, but it's easier to serialize here
|
|
# while maintaining the rest of the build parallelized
|
|
|
|
.NOTPARALLEL: \
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v51.export \
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v52.export \
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v54.export \
|
|
$(VRBRAIN_ROOT)/Archives/vrcore-v10.export \
|
|
$(VRBRAIN_ROOT)/Archives/vrubrain-v51.export \
|
|
$(VRBRAIN_ROOT)/Archives/vrubrain-v52.export
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v51.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrbrain-v51"
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v52.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrbrain-v52"
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrbrain-v54.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrbrain-v54"
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrcore-v10.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrcore-v10"
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrubrain-v51.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrubrain-v51"
|
|
|
|
$(VRBRAIN_ROOT)/Archives/vrubrain-v52.export:
|
|
$(v) $(VRBRAIN_MAKE_ARCHIVES) BOARDS="vrubrain-v52"
|
|
|
|
vrbrain-archives:
|
|
$(v) $(PX4_MAKE_ARCHIVES) BOARDS="vrbrain-v51 vrbrain-v52 vrbrain-v54 vrcore-v10 vrubrain-v51 vrubrain-v52"
|
|
|
|
vrbrain-info: module_mk
|
|
@echo "VRBRAINFIRMWARE_DIRECTORY $(VRBRAINFIRMWARE_DIRECTORY)"
|
|
@echo "VRBRAINNUTTX_DIRECTORY $(VRBRAINNUTTX_DIRECTORY)"
|
|
@echo "NUTTX_ROOT $(NUTTX_ROOT)"
|
|
@echo "VRBRAIN_ROOT $(VRBRAIN_ROOT)"
|
|
@echo "NUTTX_SRC $(NUTTX_SRC)"
|
|
@echo "SKETCHLIBS $(SKETCHLIBS)"
|
|
@echo "SKETCHLIBNAMES $(SKETCHLIBNAMES)"
|
|
@echo "SKETCHLIBSRCDIRS $(SKETCHLIBSRCDIRS)"
|
|
@echo "SKETCHLIBSRCS $(SKETCHLIBSRCS)"
|
|
@echo "SKETCHLIBOBJS $(SKETCHLIBOBJS)"
|
|
@echo "SKETCHLIBINCLUDES $(SKETCHLIBINCLUDES)"
|
|
@echo "SKETCHLIBSRCSRELATIVE $(SKETCHLIBSRCSRELATIVE)"
|
|
@echo "SRCS $(subst $(SKETCHBOOK)/,,$(wildcard $(SRCROOT)/*.cpp))"
|
|
@echo "HASHADDER_FLAGS $(HASHADDER_FLAGS)"
|