Files
2026-07-30 11:19:44 +05:30

94 lines
4.1 KiB
Plaintext

# defs.pal - PAL related definitions for making libraries
#
# Copyright 2003-2009, Wind River Systems, Inc.
#
# modification history
# --------------------
# 01l,15oct10,pee WIND00210572
# 01k,21sep10,pee WIND00234014
# 01j,11dec09,mze add echo to string
# 01i,27jul09,pee adding tags
# 01h,20may09,pee adding support for interface target
# 01g,05nov08,mze pass VSB_DIR down in recursive make
# 01f,16sep08,pee fixing recursion problem.
# 01e,17jun08,pee VSB adaptation
# 01d,29apr05,md added CPU variant make depend
# 01c,15mar04,dlk Set DEFS_PAL. Fix modification history.
# 01b,.......,c_c Added a definition for cleaning the CPU variant dependent
# libraries.
# 01a,.......,c_c written from rules.library v 02b
#
## CPU variant builds:
# List of CPU variant builds: CPU_VARIANT_TAG_LIST
# This list is computed for the current CPU/TOOL combinaison. Note that CPU
# variant build(s) are started as part of the 'Default' rule (see rules.library)
# Defining DEFS_PAL non-empty is needed in defs.library by the option build
# logic to ensure we don't skip any directory including this file,
# particularly src/arch.
DEFS_PAL = TRUE
# this is a workaround to a deficiency in make 3.80.
# will be fixed in 3.81
# eval functions in defs.library cannot be put inside coditional, so the condition
# is tested here
ifeq ($(DEFS_LIBRARY),)
include $(TGT_DIR)/h/make/defs.library
endif
TOOL_TAG = $(BUILD_FP_PREFIX)$(TOOL_FAMILY)$(BUILD_ENDIAN_SUFFIX)
ifneq ($(CPU_VARIANT_LIST),)
CPU_VARIANT_TAG_LIST_TMP1 = \
$(foreach cpuVariantTag, $(CPU_VARIANT_LIST), \
$(filter $(CPU)$(TOOL_TAG), \
$(CPU_VARIANT_CPU_TOOL_LIST$(cpuVariantTag)))$(cpuVariantTag))
CPU_VARIANT_TAG_LIST_TMP2 = $(filter $(CPU)$(TOOL_TAG)%, \
$(CPU_VARIANT_TAG_LIST_TMP1))
CPU_VARIANT_TAG_LIST = $(patsubst $(CPU)$(TOOL_TAG)%, %, \
$(CPU_VARIANT_TAG_LIST_TMP2))
# Generate list of make commands for CPU variant builds: CPU_VARIANT_MAKE_CMD
ifneq ($(CPU_VARIANT_TAG_LIST),)
CPU_VARIANT_MAKE_CMD = echo "Build of CPU variants" $(newline)
CPU_VARIANT_MAKE_CMD += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE _WRS_CONFIG_FP=$(_WRS_CONFIG_FP) $(RECURSE_TARGET) $(newline))
CPU_VARIANT_MAKE_CLEAN = echo "Removal of CPU variants" $(newline)
CPU_VARIANT_MAKE_CLEAN += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE rclean $(newline))
CPU_VARIANT_MAKE_DEPEND = echo "Build of CPU variant depend files" $(newline)
CPU_VARIANT_MAKE_DEPEND += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE rdepend $(newline))
CPU_VARIANT_MAKE_TAGS += @echo "Build of CPU variant kernel tags" $(newline)
CPU_VARIANT_MAKE_TAGS += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE tags $(newline))
CPU_VARIANT_MAKE_INTERFACE += @echo "Build of CPU variant interfaces" $(newline)
CPU_VARIANT_MAKE_INTERFACE += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE interface $(newline))
CPU_VARIANT_MAKE_CLEAN_INTERFACE += @echo "Removal of CPU variant interfaces" $(newline)
CPU_VARIANT_MAKE_CLEAN_INTERFACE += $(foreach cpuVariant, $(CPU_VARIANT_TAG_LIST), \
$(tab) $(MAKE) CPU=$(CPU) TOOL=$(TOOL) VSB_DIR=$(VSB_DIR) LIB_DIR_TAG=$(cpuVariant) \
VX_ARCHIVE_LIST="$(VX_ARCHIVE_LIST$(cpuVariant))" TARGET=$(TARGET) \
NO_RECURSE=TRUE clean_interface $(newline))
endif
endif