aboutsummaryrefslogtreecommitdiff
path: root/makefiles/firmware.mk
diff options
context:
space:
mode:
Diffstat (limited to 'makefiles/firmware.mk')
-rw-r--r--makefiles/firmware.mk27
1 files changed, 17 insertions, 10 deletions
diff --git a/makefiles/firmware.mk b/makefiles/firmware.mk
index b63aa28d7..7afa3e787 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
@@ -266,14 +269,18 @@ endif
#
# Add dependencies on anything in the ROMFS root
-ROMFS_DEPS += $(wildcard \
- (ROMFS_ROOT)/* \
- (ROMFS_ROOT)/*/* \
- (ROMFS_ROOT)/*/*/* \
- (ROMFS_ROOT)/*/*/*/* \
- (ROMFS_ROOT)/*/*/*/*/* \
- (ROMFS_ROOT)/*/*/*/*/*/*)
-ROMFS_IMG = $(WORK_DIR)romfs.img
+ROMFS_FILES += $(wildcard \
+ $(ROMFS_ROOT)/* \
+ $(ROMFS_ROOT)/*/* \
+ $(ROMFS_ROOT)/*/*/* \
+ $(ROMFS_ROOT)/*/*/*/* \
+ $(ROMFS_ROOT)/*/*/*/*/* \
+ $(ROMFS_ROOT)/*/*/*/*/*/*)
+ifeq ($(ROMFS_FILES),)
+$(error ROMFS_ROOT $(ROMFS_ROOT) specifies a directory containing no files)
+endif
+ROMFS_DEPS += $(ROMFS_FILES)
+ROMFS_IMG = romfs.img
ROMFS_CSRC = $(ROMFS_IMG:.img=.c)
ROMFS_OBJ = $(ROMFS_CSRC:.c=.o)
LIBS += $(ROMFS_OBJ)