From a203dd2660c138cc3856bf50d735b1e151de38da Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 9 Jun 2015 09:18:51 +1000 Subject: [PATCH] modules: added check_modules in PX4 build --- mk/check_modules.sh | 41 +++++++++++++++++++++++++++++++++++++++++ mk/modules.mk | 13 +++++++++++++ mk/px4_targets.mk | 6 +++--- mk/targets.mk | 2 ++ 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100755 mk/check_modules.sh create mode 100644 mk/modules.mk diff --git a/mk/check_modules.sh b/mk/check_modules.sh new file mode 100755 index 0000000000..8b393d8d40 --- /dev/null +++ b/mk/check_modules.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +echo "Checking modules" + +MODULE_LIST="PX4Firmware PX4NuttX uavcan" + +NEED_INIT=0 + +cd $(dirname "$0")/.. || exit 1 + +for m in $MODULE_LIST; do + [ -d modules/$m ] || { + echo "module/$m missing - need module init" + NEED_INIT=1 + break + } +done + +[ $NEED_INIT = 1 ] && { + set -x + git submodule init || { + echo "git submodule init failed" + exit 1 + } + git submodule update || { + echo "git submodule update failed" + exit 1 + } +} + +for m in $MODULE_LIST; do + RET=$(git submodule summary modules/$m | egrep "^..<") + [ -z "$RET" ] || { + echo "Module modules/$m out of date" + git submodule summary modules/$m + echo "Please run 'git submodule update'" + exit 1 + } +done + +exit 0 diff --git a/mk/modules.mk b/mk/modules.mk new file mode 100644 index 0000000000..6d653aff43 --- /dev/null +++ b/mk/modules.mk @@ -0,0 +1,13 @@ + +# git submodule support + +.PHONY: CHECK_MODULES + +# PX4 build needs submodules +px4-%: CHECK_MODULES + +CHECK_MODULES: + $(v)$(MK_DIR)/check_modules.sh + +module-update: + git submodule update diff --git a/mk/px4_targets.mk b/mk/px4_targets.mk index ed7fc08984..c27846ed1a 100644 --- a/mk/px4_targets.mk +++ b/mk/px4_targets.mk @@ -82,7 +82,7 @@ module_mk: $(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 -px4-v1: $(BUILDROOT)/make.flags $(PX4_ROOT)/Archives/px4fmu-v1.export $(SKETCHCPP) module_mk px4-io-v1 +px4-v1: $(BUILDROOT)/make.flags CHECK_MODULES $(PX4_ROOT)/Archives/px4fmu-v1.export $(SKETCHCPP) module_mk px4-io-v1 $(RULEHDR) $(v) rm -f $(PX4_ROOT)/makefiles/$(PX4_V1_CONFIG_FILE) $(v) cp $(PWD)/$(PX4_V1_CONFIG_FILE) $(PX4_ROOT)/makefiles/ @@ -92,7 +92,7 @@ px4-v1: $(BUILDROOT)/make.flags $(PX4_ROOT)/Archives/px4fmu-v1.export $(SKETCHCP $(v) $(SKETCHBOOK)/Tools/scripts/add_git_hashes.py $(HASHADDER_FLAGS) "$(SKETCH)-v1.px4" "$(SKETCH)-v1.px4" $(v) echo "PX4 $(SKETCH) Firmware is in $(SKETCH)-v1.px4" -px4-v2: $(BUILDROOT)/make.flags $(PX4_ROOT)/Archives/px4fmu-v2.export $(SKETCHCPP) module_mk px4-io-v2 +px4-v2: $(BUILDROOT)/make.flags CHECK_MODULES $(PX4_ROOT)/Archives/px4fmu-v2.export $(SKETCHCPP) module_mk px4-io-v2 $(RULEHDR) $(v) rm -f $(PX4_ROOT)/makefiles/$(PX4_V2_CONFIG_FILE) $(v) cp $(PWD)/$(PX4_V2_CONFIG_FILE) $(PX4_ROOT)/makefiles/ @@ -104,7 +104,7 @@ px4-v2: $(BUILDROOT)/make.flags $(PX4_ROOT)/Archives/px4fmu-v2.export $(SKETCHCP px4: px4-v1 px4-v2 -px4-clean: clean px4-archives-clean px4-cleandep +px4-clean: clean CHECK_MODULES px4-archives-clean px4-cleandep $(v) /bin/rm -rf $(PX4_ROOT)/makefiles/build $(PX4_ROOT)/Build px4-cleandep: clean diff --git a/mk/targets.mk b/mk/targets.mk index e368fa4cb8..316a43342a 100644 --- a/mk/targets.mk +++ b/mk/targets.mk @@ -113,3 +113,5 @@ etags: clean: @rm -fr $(BUILDROOT) + +include $(MK_DIR)/modules.mk