Makefile.toolchain 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. CONFIG_EXE_STATIC?=n
  2. ifeq ($(CONFIG_USE_CCACHE),y)
  3. #CCACHE_EXE =$(shell [ -x "/usr/bin/ccache" ] && echo "ccache")
  4. CCACHE_EXE = $(ROOT_DIR)/tools/ccache
  5. endif
  6. #Enhance debugging for version build server now (2014/12/26)
  7. #Dear Customers, Please do NOT merge it!
  8. CROSS_PATH_GCC492 = /pub/tools/package/toolchain/mips-2014.11_4.9.2_01
  9. VENDOR_NAME = s2
  10. ifneq "$(wildcard $(CROSS_PATH_GCC492) )" ""
  11. CROSS_PATH = $(CROSS_PATH_GCC492)
  12. else
  13. ifeq ($(CONFIG_GCC540),y)
  14. CROSS_PATH = /pub/tools/package/toolchain/mips-2016.08.1/usr
  15. VENDOR_NAME = t1
  16. else
  17. ifeq ($(CONFIG_SUPPORT_NEW_AIRPLAY),y)
  18. CROSS_PATH = /pub/tools/package/toolchain/mips-2014.05-extra
  19. else
  20. CROSS_PATH = /pub/tools/package/toolchain/mips-2014.05
  21. endif
  22. endif
  23. endif
  24. CROSS_PREFIX = mipsel-$(VENDOR_NAME)-linux-uclibc-
  25. ifeq ($(CONFIG_STATIC_UCLIBC),y)
  26. #UCLIBCDIR = $(CROSS_PATH)/mipsel-$(VENDOR_NAME)-linux-uclibc/sysroot
  27. UCLIBCDIR = $(ROOT_DIR)/aps/_install
  28. else
  29. UCLIBCDIR = $(CROSS_PATH)/mipsel-$(VENDOR_NAME)-linux-uclibc/sysroot
  30. endif
  31. CROSS = $(CCACHE_EXE) $(CROSS_PATH)/bin/$(CROSS_PREFIX)
  32. PURECROSS = $(CROSS_PATH)/bin/$(CROSS_PREFIX)
  33. OBJCOPY = $(CROSS_PATH)/bin/$(CROSS_PREFIX)objcopy
  34. WRNFLAGS := -Wall -Wundef -Wempty-body -Wold-style-declaration -Wclobbered -Wignored-qualifiers -Wsign-compare
  35. WRNFLAGS += -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -Wno-unused-but-set-parameter
  36. #CFLAGS += -mips32r2 -pie -mplt -fPIC -mno-abicalls
  37. CFLAGS += -mips32r2 -mplt $(WARNING_CFLAGS)
  38. CFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I$(UCLIBCDIR)/usr/include
  39. ifeq ($(CONFIG_GCC540),y)
  40. CFLAGS += -I$(CROSS_PATH)/include -fgnu89-inline
  41. endif
  42. ifeq ($(CONFIG_GCOV_APPLICATION),y)
  43. CFLAGS += -fprofile-arcs -ftest-coverage
  44. LDFLAGS += -fprofile-arcs -ftest-coverage
  45. else
  46. WRNFLAGS += -Werror
  47. endif
  48. ifeq ($(CONFIG_BR2_OPTIMIZE_0),y)
  49. CFLAGS += -O0
  50. endif
  51. ifeq ($(CONFIG_BR2_OPTIMIZE_1),y)
  52. CFLAGS += -O1
  53. endif
  54. ifeq ($(CONFIG_BR2_OPTIMIZE_2),y)
  55. CFLAGS += -O2
  56. endif
  57. ifeq ($(CONFIG_BR2_OPTIMIZE_3),y)
  58. CFLAGS += -O3
  59. endif
  60. ifeq ($(CONFIG_BR2_OPTIMIZE_S),y)
  61. CFLAGS += -Os
  62. endif
  63. ifeq ($(CONFIG_BR2_DEBUG_1),y)
  64. CFLAGS += -g1
  65. endif
  66. ifeq ($(CONFIG_BR2_DEBUG_2),y)
  67. CFLAGS += -g2
  68. endif
  69. ifeq ($(CONFIG_BR2_DEBUG_3),y)
  70. CFLAGS += -g3
  71. endif
  72. ifeq ($(CONFIG_CALL_TRACE),y)
  73. CFLAGS += -finstrument-functions
  74. endif
  75. #reduce code size
  76. CFLAGS += -ffunction-sections -fdata-sections
  77. LDFLAGS += -Wl,--gc-sections
  78. ifeq ($(CONFIG_GCC540),y)
  79. ifneq ($(CONFIG_CORE_DUMP),y)
  80. CFLAGS += -flto -fuse-linker-plugin -ffat-lto-objects
  81. LDFLAGS += -flto -fuse-linker-plugin -ffat-lto-objects
  82. endif
  83. endif
  84. #place uninitialized global variables in the data section, rather than generating them as common blocks
  85. CFLAGS += -fno-common
  86. ifeq ($(CONFIG_EXE_STATIC),y)
  87. LDFLAGS += -static
  88. else
  89. LDFLAGS += -L$(UCLIBCDIR)/usr/lib -L$(UCLIBCDIR)/lib -lpthread -lm
  90. endif
  91. #CFLAGS += -fdump-rtl-expand
  92. ifeq ($(CONFIG_MEMWATCH), y)
  93. CFLAGS += -DMEMWATCH
  94. CFLAGS += -DMW_STDIO
  95. endif