diff --git a/Makefile b/Makefile
index 8a55572e8..f55524cc4 100644
--- a/Makefile
+++ b/Makefile
@@ -518,6 +518,7 @@ uavobjects_clean:
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
# $(2) = Name of board used in source tree (e.g. CopterControl)
+# $(3) = Short name for board (e.g CC)
define FW_TEMPLATE
.PHONY: $(1) fw_$(1)
$(1): fw_$(1)_opfw
@@ -528,6 +529,8 @@ fw_$(1)_%: uavobjects_flight
$(V1) cd $(ROOT_DIR)/flight/$(2) && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
+ BOARD_SHORT_NAME=$(3) \
+ BUILD_TYPE=fw \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
$$*
@@ -551,6 +554,8 @@ bl_$(1)_%:
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/$(2) && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
+ BOARD_SHORT_NAME=$(3) \
+ BUILD_TYPE=bl \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
$$*
@@ -585,6 +590,8 @@ bu_$(1)_%: bl_$(1)_bino
$(V1) cd $(ROOT_DIR)/flight/Bootloaders/BootloaderUpdater && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
+ BOARD_SHORT_NAME=$(3) \
+ BUILD_TYPE=bu \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
REMOVE_CMD="$(RM)" OOCD_EXE="$(OPENOCD)" \
$$*
@@ -600,11 +607,13 @@ define EF_TEMPLATE
.PHONY: ef_$(1)
ef_$(1): ef_$(1)_bin
-ef_$(1)_%: bl_$(1)_bin fw_$(1)_bin
+ef_$(1)_%: bl_$(1)_bin fw_$(1)_opfw
$(V1) mkdir -p $(BUILD_DIR)/ef_$(1)/dep
$(V1) cd $(ROOT_DIR)/flight/EntireFlash && \
$$(MAKE) -r --no-print-directory \
BOARD_NAME=$(1) \
+ BOARD_SHORT_NAME=$(3) \
+ BUILD_TYPE=ef \
TCHAIN_PREFIX="$(ARM_SDK_PREFIX)" \
DFU_CMD="$(DFUUTIL_DIR)/bin/dfu-util" \
$$*
@@ -615,6 +624,19 @@ ef_$(1)_clean:
$(V1) $(RM) -fr $(BUILD_DIR)/ef_$(1)
endef
+# When building any of the "all_*" targets, tell all sub makefiles to display
+# additional details on each line of output to describe which build and target
+# that each line applies to.
+ifneq ($(strip $(filter all_%,$(MAKECMDGOALS))),)
+export ENABLE_MSG_EXTRA := yes
+endif
+
+# When building more than one goal in a single make invocation, also
+# enable the extra context for each output line
+ifneq ($(word 2,$(MAKECMDGOALS)),)
+export ENABLE_MSG_EXTRA := yes
+endif
+
# $(1) = Canonical board name all in lower case (e.g. coptercontrol)
define BOARD_PHONY_TEMPLATE
.PHONY: all_$(1)
@@ -632,6 +654,12 @@ endef
ALL_BOARDS := coptercontrol pipxtreme simposix
+# SimPosix only builds on Linux so drop it from the list for
+# all other platforms.
+ifneq ($(UNAME), Linux)
+ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
+endif
+
# Friendly names of each board (used to find source tree)
coptercontrol_friendly := CopterControl
pipxtreme_friendly := PipXtreme
@@ -644,6 +672,13 @@ ifneq ($(UNAME), Linux)
ALL_BOARDS := $(filter-out simposix, $(ALL_BOARDS))
endif
+# Short hames of each board (used to display board name in parallel builds)
+coptercontrol_short := 'cc '
+pipxtreme_short := 'pipx'
+revolution_short := 'revo'
+simposix_short := 'posx'
+osd_short := 'osd '
+
# Start out assuming that we'll build fw, bl and bu for all boards
FW_BOARDS := $(ALL_BOARDS)
BL_BOARDS := $(ALL_BOARDS)
@@ -655,6 +690,12 @@ EF_BOARDS := $(ALL_BOARDS)
BL_BOARDS := $(filter-out ins, $(BL_BOARDS))
BU_BOARDS := $(filter-out ins, $(BU_BOARDS))
+# SimPosix doesn't have a BL, BU or EF target so we need to
+# filter them out to prevent errors on the all_flight target.
+BL_BOARDS := $(filter-out simposix, $(BL_BOARDS))
+BU_BOARDS := $(filter-out simposix, $(BU_BOARDS))
+EF_BOARDS := $(filter-out simposix, $(EF_BOARDS))
+
# Generate the targets for whatever boards are left in each list
FW_TARGETS := $(addprefix fw_, $(FW_BOARDS))
BL_TARGETS := $(addprefix bl_, $(BL_BOARDS))
@@ -674,7 +715,7 @@ all_bu: $(addsuffix _opfw, $(BU_TARGETS))
all_bu_clean: $(addsuffix _clean, $(BU_TARGETS))
.PHONY: all_ef all_ef_clean
-all_ef: $(EF_TARGETS))
+all_ef: $(EF_TARGETS)
all_ef_clean: $(addsuffix _clean, $(EF_TARGETS))
.PHONY: all_flight all_flight_clean
@@ -685,16 +726,16 @@ all_flight_clean: all_fw_clean all_bl_clean all_bu_clean all_ef_clean
$(foreach board, $(ALL_BOARDS), $(eval $(call BOARD_PHONY_TEMPLATE,$(board))))
# Expand the bootloader updater rules
-$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_friendly))))
+$(foreach board, $(ALL_BOARDS), $(eval $(call BU_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
# Expand the firmware rules
-$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_friendly))))
+$(foreach board, $(ALL_BOARDS), $(eval $(call FW_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
# Expand the bootloader rules
-$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_friendly))))
+$(foreach board, $(ALL_BOARDS), $(eval $(call BL_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
# Expand the entire-flash rules
-$(foreach board, $(ALL_BOARDS), $(eval $(call EF_TEMPLATE,$(board),$($(board)_friendly))))
+$(foreach board, $(ALL_BOARDS), $(eval $(call EF_TEMPLATE,$(board),$($(board)_friendly),$($(board)_short))))
.PHONY: sim_win32
sim_win32: sim_win32_exe
diff --git a/artwork/Misc/multirotor-shapes.svg b/artwork/Misc/multirotor-shapes.svg
index 0d7a79c42..c11e74cf6 100644
--- a/artwork/Misc/multirotor-shapes.svg
+++ b/artwork/Misc/multirotor-shapes.svg
@@ -12,7 +12,7 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg4183"
version="1.1"
- inkscape:version="0.48.1 r9760"
+ inkscape:version="0.48.2 r9819"
width="4065.2493"
height="1760.019"
xml:space="preserve"
@@ -3559,25 +3559,27 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:window-width="1366"
- inkscape:window-height="691"
+ inkscape:window-width="1920"
+ inkscape:window-height="1088"
id="namedview4185"
showgrid="false"
- inkscape:zoom="0.5"
- inkscape:cx="361.0721"
- inkscape:cy="1046.2043"
+ inkscape:zoom="0.25"
+ inkscape:cx="2447.9751"
+ inkscape:cy="482.05665"
inkscape:window-x="0"
- inkscape:window-y="24"
+ inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g4191"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
- fit-margin-bottom="0" />/dev/null | tr '\000' '\377' > $@
BL_BIN = $(TOP)/build/bl_$(BOARD_NAME)/bl_$(BOARD_NAME).bin
FW_BIN = $(TOP)/build/fw_$(BOARD_NAME)/fw_$(BOARD_NAME).bin
$(OUTDIR)/$(TARGET).bin: $(BL_BIN) $(FW_BIN) $(OUTDIR)/$(TARGET).pad
- $(V0) @echo " FLASH IMG $@"
+ $(V0) @echo $(MSG_FLASH_IMG) $@
$(V1) cat $(BL_BIN) $(OUTDIR)/$(TARGET).pad $(FW_BIN) > $@
.PHONY: dfu
diff --git a/ground/openpilotgcs/src/plugins/config/images/quad-shapes.svg b/ground/openpilotgcs/src/plugins/config/images/quad-shapes.svg
index 1fccbd6ce..c11e74cf6 100644
--- a/ground/openpilotgcs/src/plugins/config/images/quad-shapes.svg
+++ b/ground/openpilotgcs/src/plugins/config/images/quad-shapes.svg
@@ -12,7 +12,7 @@
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg4183"
version="1.1"
- inkscape:version="0.48.1 r9760"
+ inkscape:version="0.48.2 r9819"
width="4065.2493"
height="1760.019"
xml:space="preserve"
@@ -3559,25 +3559,27 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
- inkscape:window-width="1366"
- inkscape:window-height="691"
+ inkscape:window-width="1920"
+ inkscape:window-height="1088"
id="namedview4185"
showgrid="false"
- inkscape:zoom="0.5"
- inkscape:cx="361.0721"
- inkscape:cy="1046.2043"
+ inkscape:zoom="0.25"
+ inkscape:cx="2447.9751"
+ inkscape:cy="482.05665"
inkscape:window-x="0"
- inkscape:window-y="24"
+ inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g4191"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
- fit-margin-bottom="0" />
+ inkscape:connector-curvature="0" />
\ No newline at end of file
diff --git a/ground/openpilotgcs/src/plugins/uavobjectbrowser/treeitem.h b/ground/openpilotgcs/src/plugins/uavobjectbrowser/treeitem.h
index c4f8e0355..708513d91 100644
--- a/ground/openpilotgcs/src/plugins/uavobjectbrowser/treeitem.h
+++ b/ground/openpilotgcs/src/plugins/uavobjectbrowser/treeitem.h
@@ -34,7 +34,7 @@
#include
#include
#include
-#include
+#include
#include
#include
#include
diff --git a/make/firmware-defs.mk b/make/firmware-defs.mk
index 32f2f60bc..3ead53444 100644
--- a/make/firmware-defs.mk
+++ b/make/firmware-defs.mk
@@ -23,32 +23,41 @@ else
quote =
endif
+# Add a board designator to the terse message text
+ifeq ($(ENABLE_MSG_EXTRA),yes)
+ MSG_EXTRA := [$(BUILD_TYPE)|$(BOARD_SHORT_NAME)]
+else
+ MSG_BOARD :=
+endif
+
# Define Messages
# English
-MSG_FORMATERROR := ${quote} Can not handle output-format${quote}
-MSG_MODINIT := ${quote} MODINIT ${quote}
-MSG_SIZE := ${quote} SIZE ${quote}
-MSG_LOAD_FILE := ${quote} BIN/HEX ${quote}
-MSG_BIN_OBJ := ${quote} BINO ${quote}
-MSG_STRIP_FILE := ${quote} STRIP ${quote}
-MSG_EXTENDED_LISTING := ${quote} LIS ${quote}
-MSG_SYMBOL_TABLE := ${quote} NM ${quote}
-MSG_LINKING := ${quote} LD ${quote}
-MSG_COMPILING := ${quote} CC ${quote}
-MSG_COMPILING_ARM := ${quote} CC-ARM ${quote}
-MSG_COMPILINGCPP := ${quote} CXX ${quote}
-MSG_COMPILINGCPP_ARM := ${quote} CXX-ARM ${quote}
-MSG_ASSEMBLING := ${quote} AS ${quote}
-MSG_ASSEMBLING_ARM := ${quote} AS-ARM ${quote}
-MSG_CLEANING := ${quote} CLEAN ${quote}
-MSG_ASMFROMC := ${quote} AS(C) ${quote}
-MSG_ASMFROMC_ARM := ${quote} AS(C)-ARM ${quote}
-MSG_PYMITEINIT := ${quote} PY ${quote}
-MSG_INSTALLING := ${quote} INSTALL ${quote}
-MSG_OPFIRMWARE := ${quote} OPFW ${quote}
-MSG_FWINFO := ${quote} FWINFO ${quote}
-MSG_JTAG_PROGRAM := ${quote} JTAG-PGM ${quote}
-MSG_JTAG_WIPE := ${quote} JTAG-WIPE ${quote}
+MSG_FORMATERROR = ${quote} Can not handle output-format${quote}
+MSG_MODINIT = ${quote} MODINIT $(MSG_EXTRA) ${quote}
+MSG_SIZE = ${quote} SIZE $(MSG_EXTRA) ${quote}
+MSG_LOAD_FILE = ${quote} BIN/HEX $(MSG_EXTRA) ${quote}
+MSG_BIN_OBJ = ${quote} BINO $(MSG_EXTRA) ${quote}
+MSG_STRIP_FILE = ${quote} STRIP $(MSG_EXTRA) ${quote}
+MSG_EXTENDED_LISTING = ${quote} LIS $(MSG_EXTRA) ${quote}
+MSG_SYMBOL_TABLE = ${quote} NM $(MSG_EXTRA) ${quote}
+MSG_LINKING = ${quote} LD $(MSG_EXTRA) ${quote}
+MSG_COMPILING = ${quote} CC ${MSG_EXTRA} ${quote}
+MSG_COMPILING_ARM = ${quote} CC-ARM $(MSG_EXTRA) ${quote}
+MSG_COMPILINGCPP = ${quote} CXX $(MSG_EXTRA) ${quote}
+MSG_COMPILINGCPP_ARM = ${quote} CXX-ARM $(MSG_EXTRA) ${quote}
+MSG_ASSEMBLING = ${quote} AS $(MSG_EXTRA) ${quote}
+MSG_ASSEMBLING_ARM = ${quote} AS-ARM $(MSG_EXTRA) ${quote}
+MSG_CLEANING = ${quote} CLEAN $(MSG_EXTRA) ${quote}
+MSG_ASMFROMC = ${quote} AS(C) $(MSG_EXTRA) ${quote}
+MSG_ASMFROMC_ARM = ${quote} AS(C)-ARM $(MSG_EXTRA) ${quote}
+MSG_PYMITEINIT = ${quote} PY $(MSG_EXTRA) ${quote}
+MSG_INSTALLING = ${quote} INSTALL $(MSG_EXTRA) ${quote}
+MSG_OPFIRMWARE = ${quote} OPFW $(MSG_EXTRA) ${quote}
+MSG_FWINFO = ${quote} FWINFO $(MSG_EXTRA) ${quote}
+MSG_JTAG_PROGRAM = ${quote} JTAG-PGM $(MSG_EXTRA) ${quote}
+MSG_JTAG_WIPE = ${quote} JTAG-WIPE $(MSG_EXTRA) ${quote}
+MSG_PADDING = ${quote} PADDING $(MSG_EXTRA) ${quote}
+MSG_FLASH_IMG = ${quote} FLASH_IMG $(MSG_EXTRA) ${quote}
toprel = $(subst $(realpath $(TOP))/,,$(abspath $(1)))