| ifneq ($(filter xtensa%,$(ARCH)),) |
| ############################################################# |
| # |
| # Xtensa processor architecture (including Diamond Standard cores) |
| # |
| ############################################################# |
| |
| # The following defines a function to be used like this: |
| # $(call XTENSA_PATCH, <module>, <patchdir>, <relative dir list...>) |
| # which returns the first overlay patch file for <module> found |
| # in the list of directories <relative dir list...> which are |
| # relative to <patchdir> (itself either absolute or relative to the |
| # current directory). The returned filename is relative to <patchdir>. |
| # For example: |
| # $(call XTENSA_PATCH, binutils, some/dir/path, . ..) |
| # (no commas between directory paths in the list). |
| # |
| # A selected overlay patch must exist ("fsf" means no specific |
| # overlay is selected). So the function emits a Makefile error |
| # if a selected patch file is not found. |
| |
| XTENSA_CORENAME:=$(call qstrip,$(BR2_xtensa_core_name)) |
| ifeq ($(XTENSA_CORENAME),fsf) |
| XTENSA_PATCH = |
| else |
| XTENSA_PATCH_SUFFIX = $(1)-xtensa_$(XTENSA_CORENAME).tgz |
| XTENSA_PATCH_FILE = $(firstword $(wildcard $(patsubst %,$(2)/%/*$(XTENSA_PATCH_SUFFIX),$(3)))) |
| # FULLPATH = $(if $(filter /%,$(1)),$(1),$(PWD)/$(1)) |
| XTENSA_PATCH = $(if $(XTENSA_PATCH_FILE),$(patsubst $(2)/%,%,$(XTENSA_PATCH_FILE)),\ |
| $(error Missing $(1) patch for Xtensa $(XTENSA_CORENAME) processor (*$(XTENSA_PATCH_SUFFIX) in $(addprefix $(2)/,$(3))))) |
| endif |
| |
| endif |