Home | History | Annotate | Download | only in make
      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 
     17 AvailableArchs := $(sort $(foreach key,$(SubDirKeys),\
     18 	$($(key).OnlyArchs)))
     19 
     20 AvailableFunctions := $(sort $(foreach key,$(SubDirKeys),\
     21 	$(basename $($(key).ObjNames))))
     22 
     23 CommonFunctions := $(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.
     47 AvailableOptions := AR ARFLAGS \
     48                     CC CFLAGS FUNCTIONS OPTIMIZED \
     49                     RANLIB RANLIBFLAGS \
     50                     VISIBILITY_HIDDEN
     51