Use a .elf suffix for the ELF object file (seems more sensible that way)

Detect the case where PX4_BASE contains spaces and stop before we cause any more damage.

Call sub-makes with -r to improve startup time.
This commit is contained in:
px4dev
2013-04-20 12:51:07 -07:00
parent 7e8d8f9e72
commit 754a11f4fc
+13 -10
View File
@@ -64,7 +64,10 @@
# path to this file. # path to this file.
# #
# CONFIG: # CONFIG:
# Used to set the output filename; defaults to 'firmware'. # Used when searching for the configuration file, and available
# to module Makefiles to select optional features.
# If not set, CONFIG_FILE must be set and CONFIG will be derived
# automatically from it.
# #
# CONFIG_FILE: # CONFIG_FILE:
# If set, overrides the configuration file search logic. Sets # If set, overrides the configuration file search logic. Sets
@@ -103,6 +106,9 @@ ifeq ($(PX4_BASE),)
export PX4_BASE := $(abspath $(MK_DIR)/..) export PX4_BASE := $(abspath $(MK_DIR)/..)
endif endif
$(info % PX4_BASE = $(PX4_BASE)) $(info % PX4_BASE = $(PX4_BASE))
ifneq ($(words $(PX4_BASE)),1)
$(error Cannot build when the PX4_BASE path contains one or more space characters.)
endif
# #
# Set a default target so that included makefiles or errors here don't # Set a default target so that included makefiles or errors here don't
@@ -218,10 +224,7 @@ MODULE_OBJS := $(foreach path,$(dir $(MODULE_MKFILES)),$(WORK_DIR)$(path)module
$(MODULE_OBJS): relpath = $(patsubst $(WORK_DIR)%,%,$@) $(MODULE_OBJS): relpath = $(patsubst $(WORK_DIR)%,%,$@)
$(MODULE_OBJS): mkfile = $(patsubst %module.pre.o,%module.mk,$(relpath)) $(MODULE_OBJS): mkfile = $(patsubst %module.pre.o,%module.mk,$(relpath))
$(MODULE_OBJS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER) $(MODULE_OBJS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER)
@$(ECHO) %% $(Q) $(MAKE) -r -f $(PX4_MK_DIR)module.mk \
@$(ECHO) %% Building module using $(mkfile)
@$(ECHO) %%
$(Q) $(MAKE) -f $(PX4_MK_DIR)module.mk \
MODULE_WORK_DIR=$(dir $@) \ MODULE_WORK_DIR=$(dir $@) \
MODULE_OBJ=$@ \ MODULE_OBJ=$@ \
MODULE_MK=$(mkfile) \ MODULE_MK=$(mkfile) \
@@ -237,7 +240,7 @@ $(MODULE_CLEANS): relpath = $(patsubst $(WORK_DIR)%,%,$@)
$(MODULE_CLEANS): mkfile = $(patsubst %clean,%module.mk,$(relpath)) $(MODULE_CLEANS): mkfile = $(patsubst %clean,%module.mk,$(relpath))
$(MODULE_CLEANS): $(MODULE_CLEANS):
@$(ECHO) %% cleaning using $(mkfile) @$(ECHO) %% cleaning using $(mkfile)
$(Q) $(MAKE) -f $(PX4_MK_DIR)module.mk \ $(Q) $(MAKE) -r -f $(PX4_MK_DIR)module.mk \
MODULE_WORK_DIR=$(dir $@) \ MODULE_WORK_DIR=$(dir $@) \
MODULE_MK=$(mkfile) \ MODULE_MK=$(mkfile) \
clean clean
@@ -372,7 +375,7 @@ endif
# #
PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4 PRODUCT_BUNDLE = $(WORK_DIR)firmware.px4
PRODUCT_BIN = $(WORK_DIR)firmware.bin PRODUCT_BIN = $(WORK_DIR)firmware.bin
PRODUCT_SYM = $(WORK_DIR)firmware.sym PRODUCT_ELF = $(WORK_DIR)firmware.elf
.PHONY: firmware .PHONY: firmware
firmware: $(PRODUCT_BUNDLE) firmware: $(PRODUCT_BUNDLE)
@@ -407,10 +410,10 @@ $(PRODUCT_BUNDLE): $(PRODUCT_BIN)
--git_identity $(PX4_BASE) \ --git_identity $(PX4_BASE) \
--image $< > $@ --image $< > $@
$(PRODUCT_BIN): $(PRODUCT_SYM) $(PRODUCT_BIN): $(PRODUCT_ELF)
$(call SYM_TO_BIN,$<,$@) $(call SYM_TO_BIN,$<,$@)
$(PRODUCT_SYM): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES) $(PRODUCT_ELF): $(OBJS) $(MODULE_OBJS) $(GLOBAL_DEPS) $(LINK_DEPS) $(MODULE_MKFILES)
$(call LINK,$@,$(OBJS) $(MODULE_OBJS)) $(call LINK,$@,$(OBJS) $(MODULE_OBJS))
# #
@@ -428,7 +431,7 @@ upload: $(PRODUCT_BUNDLE) $(PRODUCT_BIN)
.PHONY: clean .PHONY: clean
clean: $(MODULE_CLEANS) clean: $(MODULE_CLEANS)
@$(ECHO) %% cleaning @$(ECHO) %% cleaning
$(Q) $(REMOVE) $(PRODUCT_BUNDLE) $(PRODUCT_BIN) $(PRODUCT_SYM) $(Q) $(REMOVE) $(PRODUCT_BUNDLE) $(PRODUCT_BIN) $(PRODUCT_ELF)
$(Q) $(REMOVE) $(OBJS) $(DEP_INCLUDES) $(EXTRA_CLEANS) $(Q) $(REMOVE) $(OBJS) $(DEP_INCLUDES) $(EXTRA_CLEANS)
$(Q) $(RMDIR) $(NUTTX_EXPORT_DIR) $(Q) $(RMDIR) $(NUTTX_EXPORT_DIR)