default.mk raw

   1  ifneq ($(host),$(build))
   2  host_toolchain:=$(host)-
   3  endif
   4  
   5  default_host_CC = $(host_toolchain)gcc
   6  default_host_CXX = $(host_toolchain)g++
   7  default_host_AR = $(host_toolchain)ar
   8  default_host_RANLIB = $(host_toolchain)ranlib
   9  default_host_STRIP = $(host_toolchain)strip
  10  default_host_NM = $(host_toolchain)nm
  11  default_host_OBJCOPY = $(host_toolchain)objcopy
  12  default_host_OBJDUMP = $(host_toolchain)objdump
  13  
  14  define add_host_tool_func
  15  ifneq ($(filter $(origin $1),undefined default),)
  16  # Do not consider the well-known var $1 if it is undefined or is taking a value
  17  # that is predefined by "make" (e.g. the make variable "CC" has a predefined
  18  # value of "cc")
  19  $(host_os)_$1?=$$(default_host_$1)
  20  $(host_arch)_$(host_os)_$1?=$$($(host_os)_$1)
  21  $(host_arch)_$(host_os)_$(release_type)_$1?=$$($(host_os)_$1)
  22  else
  23  $(host_os)_$1=$(or $($1),$($(host_os)_$1),$(default_host_$1))
  24  $(host_arch)_$(host_os)_$1=$(or $($1),$($(host_arch)_$(host_os)_$1),$$($(host_os)_$1))
  25  $(host_arch)_$(host_os)_$(release_type)_$1=$(or $($1),$($(host_arch)_$(host_os)_$(release_type)_$1),$$($(host_os)_$1))
  26  endif
  27  host_$1=$$($(host_arch)_$(host_os)_$1)
  28  endef
  29  
  30  define add_host_flags_func
  31  ifeq ($(filter $(origin $1),undefined default),)
  32  $(host_arch)_$(host_os)_$1 = $($1)
  33  $(host_arch)_$(host_os)_$(release_type)_$1 =
  34  else
  35  $(host_arch)_$(host_os)_$1 += $($(host_os)_$1)
  36  $(host_arch)_$(host_os)_$(release_type)_$1 += $($(host_os)_$(release_type)_$1)
  37  endif
  38  host_$1 = $$($(host_arch)_$(host_os)_$1)
  39  host_$(release_type)_$1 = $$($(host_arch)_$(host_os)_$(release_type)_$1)
  40  endef
  41  
  42  $(foreach tool,CC CXX AR RANLIB STRIP NM OBJCOPY OBJDUMP,$(eval $(call add_host_tool_func,$(tool))))
  43  $(foreach flags,CFLAGS CXXFLAGS CPPFLAGS LDFLAGS, $(eval $(call add_host_flags_func,$(flags))))
  44