diff --git a/components/ulp/component_ulp_common.mk b/components/ulp/component_ulp_common.mk index e6b5a28197..8824a6dd09 100644 --- a/components/ulp/component_ulp_common.mk +++ b/components/ulp/component_ulp_common.mk @@ -26,23 +26,23 @@ ULP_PREPROCESSOR_ARGS := \ # Preprocess LD script used to link ULP program $(ULP_LD_SCRIPT): $(ULP_LD_TEMPLATE) - $(summary) CPP $(notdir $@) + $(summary) CPP $(patsubst $(PWD)/%,%,$(CURDIR))/$@ $(CC) $(CPPFLAGS) -MT $(ULP_LD_SCRIPT) -E -P -xc -o $@ $(ULP_PREPROCESSOR_ARGS) $< # Generate preprocessed assembly files. # To inspect these preprocessed files, add a ".PRECIOUS: %.ulp.pS" rule. %.ulp.pS: $(COMPONENT_PATH)/ulp/%.S - $(summary) CPP $(notdir $<) + $(summary) CPP $(patsubst $(PWD)/%,%,$<) $(CC) $(CPPFLAGS) -MT $(patsubst %.ulp.pS,%.ulp.o,$@) -E -P -xc -o $@ $(ULP_PREPROCESSOR_ARGS) $< # Compiled preprocessed files into object files. %.ulp.o: %.ulp.pS - $(summary) ULP_AS $(notdir $@) + $(summary) ULP_AS $(patsubst $(PWD)/%,%,$(CURDIR))/$@ $(ULP_AS) -al=$(patsubst %.ulp.o,%.ulp.lst,$@) -o $@ $< # Link object files and generate map file $(ULP_ELF): $(ULP_OBJECTS) $(ULP_LD_SCRIPT) - $(summary) ULP_LD $(notdir $@) + $(summary) ULP_LD $(patsubst $(PWD)/%,%,$(CURDIR))/$@ $(ULP_LD) -o $@ -A elf32-esp32ulp -Map=$(ULP_MAP) -T $(ULP_LD_SCRIPT) $< # Dump the list of global symbols in a convenient format. @@ -51,7 +51,7 @@ $(ULP_SYM): $(ULP_ELF) # Dump the binary for inclusion into the project $(COMPONENT_BUILD_DIR)/$(ULP_BIN): $(ULP_ELF) - $(summary) ULP_BIN $(notdir $@) + $(summary) ULP_BIN $(patsubst $(PWD)/%,%,$@) $(ULP_OBJCOPY) -O binary $< $@ # Left and right side of the rule are the same, but the right side @@ -67,7 +67,7 @@ $(COMPONENT_BUILD_DIR)/$(ULP_EXPORTS_LD): $(COMPONENT_NAME)_ulp_mapgen_intermedi # Convert the symbols list into a header file and linker export script. $(COMPONENT_NAME)_ulp_mapgen_intermediate: $(ULP_SYM) - $(summary) ULP_MAPGEN $(notdir $<) + $(summary) ULP_MAPGEN $(patsubst $(PWD)/%,%,$(CURDIR))/$< $(ULP_MAP_GEN) -s $(ULP_SYM) -o $(ULP_EXPORTS_LD:.ld=) # Building the component separately from the project should result in diff --git a/make/component_wrapper.mk b/make/component_wrapper.mk index 77c679c815..f9bdec672f 100644 --- a/make/component_wrapper.mk +++ b/make/component_wrapper.mk @@ -164,7 +164,7 @@ build: $(COMPONENT_LIBRARY) # Build the archive. We remove the archive first, otherwise ar will get confused if we update # an archive when multiple filenames have the same name (src1/test.o and src2/test.o) $(COMPONENT_LIBRARY): $(COMPONENT_OBJS) $(COMPONENT_EMBED_OBJS) - $(summary) AR $@ + $(summary) AR $(patsubst $(PWD)/%,%,$(CURDIR))/$@ rm -f $@ $(AR) cru $@ $^ endif @@ -198,17 +198,17 @@ define GenerateCompileTargets # $(1) - directory containing source files, relative to $(COMPONENT_PATH) - one of $(COMPONENT_SRCDIRS) # $(1)/%.o: $$(COMPONENT_PATH)/$(1)/%.c $(COMMON_MAKEFILES) $(COMPONENT_MAKEFILE) | $(COMPONENT_SRCDIRS) - $$(summary) CC $$@ + $$(summary) CC $$(patsubst $$(PWD)/%,%,$$(CURDIR))/$$@ $$(CC) $$(CFLAGS) $$(CPPFLAGS) $$(addprefix -I ,$$(COMPONENT_INCLUDES)) $$(addprefix -I ,$$(COMPONENT_EXTRA_INCLUDES)) -I$(1) -c $$< -o $$@ $(call AppendSourceToDependencies,$$<,$$@) $(1)/%.o: $$(COMPONENT_PATH)/$(1)/%.cpp $(COMMON_MAKEFILES) $(COMPONENT_MAKEFILE) | $(COMPONENT_SRCDIRS) - $$(summary) CXX $$@ + $$(summary) CXX $$(patsubst $$(PWD)/%,%,$$(CURDIR))/$$@ $$(CXX) $$(CXXFLAGS) $$(CPPFLAGS) $$(addprefix -I,$$(COMPONENT_INCLUDES)) $$(addprefix -I,$$(COMPONENT_EXTRA_INCLUDES)) -I$(1) -c $$< -o $$@ $(call AppendSourceToDependencies,$$<,$$@) $(1)/%.o: $$(COMPONENT_PATH)/$(1)/%.S $(COMMON_MAKEFILES) $(COMPONENT_MAKEFILE) | $(COMPONENT_SRCDIRS) - $$(summary) AS $$@ + $$(summary) AS $$(patsubst $$(PWD)/%,%,$$(CURDIR))/$$@ $$(CC) $$(CPPFLAGS) $$(DEBUG_FLAGS) $$(addprefix -I ,$$(COMPONENT_INCLUDES)) $$(addprefix -I ,$$(COMPONENT_EXTRA_INCLUDES)) -I$(1) -c $$< -o $$@ $(call AppendSourceToDependencies,$$<,$$@) @@ -252,7 +252,7 @@ embed_txt/$$(notdir $(1)): $(call resolvepath,$(1),$(COMPONENT_PATH)) | embed_tx # messing about with the embed_X subdirectory then using 'cd' for objcopy is because the # full path passed to OBJCOPY makes it into the name of the symbols in the .o file $$(notdir $(1)).$(2).o: embed_$(2)/$$(notdir $(1)) - $(summary) EMBED $$@ + $(summary) EMBED $$(patsubst $$(PWD)/%,%,$$(CURDIR))/$$@ cd embed_$(2); $(OBJCOPY) $(OBJCOPY_EMBED_ARGS) $$(notdir $$<) ../$$@ CLEAN_FILES += embed_$(2)/$$(notdir $(1)) diff --git a/make/project.mk b/make/project.mk index f6c958f2f6..d2f3cfcd5a 100644 --- a/make/project.mk +++ b/make/project.mk @@ -326,7 +326,7 @@ endif # also depends on additional dependencies (linker scripts & binary libraries) # stored in COMPONENT_LINKER_DEPS, built via component.mk files' COMPONENT_ADD_LINKER_DEPS variable $(APP_ELF): $(foreach libcomp,$(COMPONENT_LIBRARIES),$(BUILD_DIR_BASE)/$(libcomp)/lib$(libcomp).a) $(COMPONENT_LINKER_DEPS) $(COMPONENT_PROJECT_VARS) - $(summary) LD $(notdir $@) + $(summary) LD $(patsubst $(PWD)/%,%,$@) $(CC) $(LDFLAGS) -o $@ -Wl,-Map=$(APP_MAP) app: $(APP_BIN)