forked from OSchip/llvm-project
60 lines
2.3 KiB
Makefile
60 lines
2.3 KiB
Makefile
# compiler-rt Library Info
|
|
#
|
|
# This should be included once the subdirectory information has been loaded, and
|
|
# uses the utilities in 'util.mk'.
|
|
#
|
|
# This defines the following variables describing compiler-rt:
|
|
# AvailableFunctions - The entire list of function names (unmangled) the
|
|
# library can provide.
|
|
# CommonFunctions - The list of generic functions available.
|
|
# ArchFunctions.<arch> - The list of functions commonly available for
|
|
# 'arch'. This does not include any config specific
|
|
# functions.
|
|
#
|
|
# AvailableIn.<function> - The list of subdir keys where 'function' is
|
|
# defined.
|
|
|
|
# Determine the set of available modules.
|
|
AvailableModules := $(sort $(foreach key,$(SubDirKeys),\
|
|
$($(key).ModuleName)))
|
|
|
|
# Build a per-module map of subdir keys.
|
|
$(foreach key,$(SubDirKeys),\
|
|
$(call Append,ModuleSubDirKeys.$($(key).ModuleName),$(key)))
|
|
|
|
AvailableArchs := $(sort $(foreach key,$(SubDirKeys),\
|
|
$($(key).OnlyArchs)))
|
|
|
|
AvailableFunctions := $(sort $(foreach key,$(SubDirKeys),\
|
|
$(basename $($(key).ObjNames))))
|
|
|
|
CommonFunctions := $(sort\
|
|
$(foreach key,$(ModuleSubDirKeys.builtins),\
|
|
$(if $(call strneq,,$(strip $($(key).OnlyArchs) $($(key).OnlyConfigs))),,\
|
|
$(basename $($(key).ObjNames)))))
|
|
|
|
# Compute common arch functions.
|
|
$(foreach key,$(ModuleSubDirKeys.builtins),\
|
|
$(if $(call strneq,,$($(key).OnlyConfigs)),,\
|
|
$(foreach arch,$($(key).OnlyArchs),\
|
|
$(call Append,ArchFunctions.$(arch),$(sort \
|
|
$(basename $($(key).ObjNames)))))))
|
|
|
|
# Compute arch only functions.
|
|
$(foreach arch,$(AvailableArchs),\
|
|
$(call Set,ArchFunctions.$(arch),$(sort $(ArchFunctions.$(arch))))\
|
|
$(call Set,ArchOnlyFunctions.$(arch),\
|
|
$(call set_difference,$(ArchFunctions.$(arch)),$(CommonFunctions))))
|
|
|
|
# Compute lists of where each function is available.
|
|
$(foreach key,$(SubDirKeys),\
|
|
$(foreach fn,$(basename $($(key).ObjNames)),\
|
|
$(call Append,AvailableIn.$(fn),$(key))))
|
|
|
|
# The names of all the available options.
|
|
AvailableOptions := AR ARFLAGS \
|
|
CC CFLAGS LDFLAGS FUNCTIONS OPTIMIZED \
|
|
RANLIB RANLIBFLAGS \
|
|
VISIBILITY_HIDDEN KERNEL_USE \
|
|
SHARED_LIBRARY SHARED_LIBRARY_SUFFIX STRIP LIPO
|