gcc-bare-metal.mk 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. ################################################################################
  2. #
  3. # gcc-bare-metal
  4. #
  5. ################################################################################
  6. GCC_BARE_METAL_VERSION = 14.2.0
  7. GCC_BARE_METAL_SITE = $(BR2_GNU_MIRROR)/gcc/gcc-$(GCC_BARE_METAL_VERSION)
  8. GCC_BARE_METAL_SOURCE = gcc-$(GCC_BARE_METAL_VERSION).tar.xz
  9. GCC_BARE_METAL_LICENSE = GPL-2.0, GPL-3.0, LGPL-2.1, LGPL-3.0
  10. GCC_BARE_METAL_LICENSE_FILES = COPYING COPYING3 COPYING.LIB COPYING3.LIB
  11. GCC_BARE_METAL_CPE_ID_VENDOR = gnu
  12. GCC_BARE_METAL_CPE_ID_PRODUCT = gcc
  13. HOST_GCC_BARE_METAL_DEPENDENCIES = \
  14. host-binutils-bare-metal \
  15. host-gmp \
  16. host-mpc \
  17. host-mpfr \
  18. host-isl
  19. # Don't build documentation. It takes up extra space / build time,
  20. # and sometimes needs specific makeinfo versions to work
  21. HOST_GCC_BARE_METAL_CONF_ENV = MAKEINFO=missing
  22. HOST_GCC_BARE_METAL_MAKE_OPTS = \
  23. $(HOST_GCC_COMMON_MAKE_OPTS) \
  24. all-gcc \
  25. all-target-libgcc
  26. HOST_GCC_BARE_METAL_INSTALL_OPTS = install-gcc install-target-libgcc
  27. HOST_GCC_BARE_METAL_CONF_OPTS = \
  28. --prefix=$(HOST_DIR) \
  29. --sysconfdir=$(HOST_DIR)/etc \
  30. --localstatedir=$(HOST_DIR)/var \
  31. $(if $$($$(PKG)_OVERRIDE_SRCDIR),,--disable-dependency-tracking) \
  32. $(QUIET) \
  33. --disable-shared \
  34. --disable-initfini-array \
  35. --disable-__cxa_atexit \
  36. --disable-libstdcxx-pch \
  37. --with-newlib \
  38. --disable-threads \
  39. --enable-plugins \
  40. --with-gnu-as \
  41. --disable-libitm \
  42. --without-long-double-128 \
  43. --without-headers \
  44. --enable-languages=c \
  45. --disable-multilib \
  46. --with-gmp=$(HOST_DIR) \
  47. --with-mpc=$(HOST_DIR) \
  48. --with-mpfr=$(HOST_DIR) \
  49. --with-isl=$(HOST_DIR)
  50. define HOST_GCC_BARE_METAL_CONFIGURE_CMDS
  51. $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
  52. mkdir -p $(@D)/build-$(arch_tuple) && \
  53. cd $(@D)/build-$(arch_tuple) && \
  54. $(HOST_CONFIGURE_OPTS) \
  55. $(HOST_GCC_BARE_METAL_CONF_ENV) \
  56. CONFIG_SITE=/dev/null \
  57. $(@D)/configure \
  58. $(HOST_GCC_BARE_METAL_CONF_OPTS) \
  59. --target=$(arch_tuple) \
  60. --with-sysroot=$(HOST_DIR)/$(arch_tuple)/sysroot \
  61. AR_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ar \
  62. RANLIB_FOR_TARGET=$(HOST_DIR)/bin/$(arch_tuple)-ranlib
  63. )
  64. endef
  65. define HOST_GCC_BARE_METAL_BUILD_CMDS
  66. $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
  67. $(HOST_MAKE_ENV) $(MAKE) \
  68. $(HOST_GCC_BARE_METAL_MAKE_OPTS) \
  69. -C $(@D)/build-$(arch_tuple)
  70. )
  71. endef
  72. define HOST_GCC_BARE_METAL_INSTALL_CMDS
  73. $(foreach arch_tuple, $(TOOLCHAIN_BARE_METAL_BUILDROOT_ARCH_TUPLE), \
  74. $(HOST_MAKE_ENV) $(MAKE) \
  75. $(HOST_GCC_BARE_METAL_INSTALL_OPTS) \
  76. -C $(@D)/build-$(arch_tuple)
  77. )
  78. endef
  79. $(eval $(host-autotools-package))