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

87 lines
4.2 KiB
Plaintext

# defs.comps - makefile definitions related to component builds
#
# Copyright (c) 2007 Wind River Systems, Inc.
#
# The right to copy, distribute, modify or otherwise make use
# of this software may be licensed only pursuant to the terms
# of an applicable Wind River license agreement.
#
#
# modification history
# --------------------
# 01f,12nov08,mze returning the LIBPATH and LINK_PATH macros to where they
# belong.
# 01e,29sep08,mze remove WS_ROOT_DIR_LIBPATH
# 01d,02aug07,pee WIND00100300
# 01c,19jul07,tkf Fix WIND00098105: consider VXBUILD=SMP option for source
# builds. Also correct code that assumed
# WIND_COMPONENTS_LIBPATHS contains only one lib path.
# 01b,10may07,tkf Fix link problem due to multiple inclusion when building BSPs from
# target/config.
# 01a,02may07,tkf Written.
#
# DESCRIPTION
#
# This file is included in Makefiles to establish information related
# to component builds,
#
# Protect against multiple inclusion.
ifeq ($(DEFS_COMPS),)
DEFS_COMPS = TRUE
include $(TGT_DIR)/h/make/defs.options
# Add component libpaths from the workspace directory WS_ROOT_DIR
ifeq ($(WS_ROOT_DIR),UNKNOWN)
WS_ROOT_DIR_LIBPATH = $$(WS_ROOT_DIR)/obj/$(WIND_PLATFORM)/krnl/lib$(MAJOR_OPTION_SUFFIX)
COMP_LD_LINK_PATH += -L$(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL)$(MINOR_OPTION_SUFFIX)
COMP_LD_LINK_PATH += -L$(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(MINOR_OPTION_SUFFIX)
else
ifneq ($(WS_ROOT_DIR),)
WS_ROOT_DIR_LIBPATH = $(WS_ROOT_DIR)/obj/$(WIND_PLATFORM)/krnl/lib$(MAJOR_OPTION_SUFFIX)
COMP_LD_LINK_PATH += -L$(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL)$(MINOR_OPTION_SUFFIX)
COMP_LD_LINK_PATH += -L$(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(MINOR_OPTION_SUFFIX)
COMP_LIBS_PRESENT += $(notdir $(wildcard $(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL)$(MINOR_OPTION_SUFFIX)/lib*.a))
COMP_LIBS_PRESENT += $(notdir $(wildcard $(WS_ROOT_DIR_LIBPATH)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(MINOR_OPTION_SUFFIX)/lib*.a))
endif
endif
# Add component libpaths and modules defined in WIND_COMPONENTS_LIBPATHS and
# WIND_COMPONENTS_MODULES
WIND_COMPONENTS_MODULES := $(subst \,/,$(WIND_COMPONENTS_MODULES))
ifeq ($(WIND_HOST_TYPE),x86-win32)
PATH_SEPARATOR = ;
else
PATH_SEPARATOR = :
endif
WIND_COMPONENTS_LIBPATHS := $(subst \,/,$(WIND_COMPONENTS_LIBPATHS))
WIND_COMPONENTS_LIBPATHS_LIST := $(subst $(PATH_SEPARATOR), ,$(WIND_COMPONENTS_LIBPATHS))
COMP_LD_LINK_PATH += $(foreach dir,$(WIND_COMPONENTS_LIBPATHS_LIST), \
-L$(dir)$(MAJOR_OPTION_SUFFIX)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL)$(MINOR_OPTION_SUFFIX))
COMP_LD_LINK_PATH += $(foreach dir,$(WIND_COMPONENTS_LIBPATHS_LIST), \
-L$(dir)$(MAJOR_OPTION_SUFFIX)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(MINOR_OPTION_SUFFIX))
COMP_LIBS_PRESENT += $(notdir $(foreach dir,$(WIND_COMPONENTS_LIBPATHS_LIST),\
$(wildcard $(dir)$(MAJOR_OPTION_SUFFIX)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL)$(MINOR_OPTION_SUFFIX)/lib*.a)))
COMP_LIBS_PRESENT += $(notdir $(foreach dir,$(WIND_COMPONENTS_LIBPATHS_LIST),\
$(wildcard $(dir)$(MAJOR_OPTION_SUFFIX)/$(VX_CPU_FAMILY)$(ARCH_OPTION_SUFFIX)/$(CPU_CLASS)$(CPU_OPTION_SUFFIX)/$(TOOL_COMMON_DIR)$(MINOR_OPTION_SUFFIX)/lib*.a)))
COMP_LIBNAMES = $(foreach name,$(subst $(PATH_SEPARATOR), ,$(WIND_COMPONENTS_LIBNAMES)),lib$(name).a)
COMP_MODULES = $(subst $(PATH_SEPARATOR), ,$(WIND_COMPONENTS_MODULES))
COMP_LD_LINK_LIBS = $(patsubst lib%.a,-l%,$(filter $(COMP_LIBNAMES),$(COMP_LIBS_PRESENT)))
COMP_LIBS = $(COMPONENT_MODULES) $(COMP_MODULES) $(COMPONENT_LIBRARIES) \
$(COMP_LD_LINK_LIBS)
LD_LINK_PATH += $(COMP_LD_LINK_PATH)
endif # ifeq ($(DEFS_COMPS),)