aboutsummaryrefslogtreecommitdiff
path: root/makefiles/firmware.mk
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-05-11 11:32:05 -0700
committerpx4dev <px4@purgatory.org>2013-05-11 11:32:05 -0700
commit196ee8b16fcd42fca04d1fb7e11ec46dd45c8421 (patch)
treee6e4b9c4f601cc7fa4981f4ad83bd4ec7cefce02 /makefiles/firmware.mk
parent15aae728e5bba7ac255e2f0266d39c5e9d95fc6a (diff)
downloadpx4-firmware-196ee8b16fcd42fca04d1fb7e11ec46dd45c8421.tar.gz
px4-firmware-196ee8b16fcd42fca04d1fb7e11ec46dd45c8421.tar.bz2
px4-firmware-196ee8b16fcd42fca04d1fb7e11ec46dd45c8421.zip
Change the way modules are built so that object paths are relative and use vpath for locating sources (so source paths are also shorter).
Add some basic documentation for the build system files while we're at it.
Diffstat (limited to 'makefiles/firmware.mk')
-rw-r--r--makefiles/firmware.mk7
1 files changed, 5 insertions, 2 deletions
diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk
index b63aa28d7..e6a45a4e8 100644
--- a/makefiles/firmware.mk
+++ b/makefiles/firmware.mk
@@ -223,12 +223,15 @@ MODULE_OBJS := $(foreach path,$(dir $(MODULE_MKFILES)),$(WORK_DIR)$(path)module
.PHONY: $(MODULE_OBJS)
$(MODULE_OBJS): relpath = $(patsubst $(WORK_DIR)%,%,$@)
$(MODULE_OBJS): mkfile = $(patsubst %module.pre.o,%module.mk,$(relpath))
+$(MODULE_OBJS): workdir = $(@D)
$(MODULE_OBJS): $(GLOBAL_DEPS) $(NUTTX_CONFIG_HEADER)
+ $(Q) $(MKDIR) -p $(workdir)
$(Q) $(MAKE) -r -f $(PX4_MK_DIR)module.mk \
- MODULE_WORK_DIR=$(dir $@) \
+ -C $(workdir) \
+ MODULE_WORK_DIR=$(workdir) \
MODULE_OBJ=$@ \
MODULE_MK=$(mkfile) \
- MODULE_NAME=$(lastword $(subst /, ,$(@D))) \
+ MODULE_NAME=$(lastword $(subst /, ,$(workdir))) \
module
# make a list of phony clean targets for modules