1# compiler-rt Library Info 2# 3# This should be included once the subdirectory information has been loaded, and 4# uses the utilities in 'util.mk'. 5# 6# This defines the following variables describing compiler-rt: 7# AvailableFunctions - The entire list of function names (unmangled) the 8# library can provide. 9# CommonFunctions - The list of generic functions available. 10# ArchFunctions.<arch> - The list of functions commonly available for 11# 'arch'. This does not include any config specific 12# functions. 13# 14# AvailableIn.<function> - The list of subdir keys where 'function' is 15# defined. 16 17AvailableArchs := $(sort $(foreach key,$(SubDirKeys),\ 18 $($(key).OnlyArchs))) 19 20AvailableFunctions := $(sort $(foreach key,$(SubDirKeys),\ 21 $(basename $($(key).ObjNames)))) 22 23CommonFunctions := $(sort\ 24 $(foreach key,$(SubDirKeys),\ 25 $(if $(call strneq,,$(strip $($(key).OnlyArchs) $($(key).OnlyConfigs))),,\ 26 $(basename $($(key).ObjNames))))) 27 28# Compute common arch functions. 29$(foreach key,$(SubDirKeys),\ 30 $(if $(call strneq,,$($(key).OnlyConfigs)),,\ 31 $(foreach arch,$($(key).OnlyArchs),\ 32 $(call Append,ArchFunctions.$(arch),$(sort \ 33 $(basename $($(key).ObjNames))))))) 34 35# Compute arch only functions. 36$(foreach arch,$(AvailableArchs),\ 37 $(call Set,ArchFunctions.$(arch),$(sort $(ArchFunctions.$(arch))))\ 38 $(call Set,ArchOnlyFunctions.$(arch),\ 39 $(call set_difference,$(ArchFunctions.$(arch)),$(CommonFunctions)))) 40 41# Compute lists of where each function is available. 42$(foreach key,$(SubDirKeys),\ 43 $(foreach fn,$(basename $($(key).ObjNames)),\ 44 $(call Append,AvailableIn.$(fn),$(key)))) 45 46# The names of all the available options. 47AvailableOptions := AR ARFLAGS \ 48 CC CFLAGS FUNCTIONS OPTIMIZED \ 49 RANLIB RANLIBFLAGS \ 50 VISIBILITY_HIDDEN 51