Makefile 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. TARGET := stm32$(HARDWARE)
  2. ifeq ($(DEBUG), 1)
  3. CFLAGS += -DDEBUG -g
  4. endif
  5. ifeq ($(MAC),)
  6. #Print default MAC
  7. MAC = $(shell awk '/\#define DEVICE_MAC/{print $$3}' ./Modules/settings_api.h )
  8. else
  9. #Set device MAC
  10. CFLAGS += -DDEVICE_MAC='"$(MAC)"'
  11. endif
  12. ifeq ($(FLASH_ERASE), 1)
  13. CFLAGS += -DFLASH_ERASE
  14. endif
  15. CFLAGS += -DPRINTF_$(shell echo $(PRINTF) | tr a-z A-Z)
  16. CFLAGS += -DHARDWARE_$(shell echo $(HARDWARE) | tr a-z A-Z)
  17. INCLUDES = -I../config
  18. INCLUDES += -I../stm32/stm32f4xx_spl/inc
  19. INCLUDES += -I../stm32/system
  20. INCLUDES += -I../peripheral_modules/inc
  21. INCLUDES += -I../user
  22. INCLUDES += -I../thirdparty/TinyStdio
  23. INCLUDES += -I../thirdparty/myStrings
  24. INCLUDES += -I.
  25. CSRC = $(wildcard ../stm32/stm32f4xx_spl/src/*.c)
  26. CSRC += $(wildcard ../stm32/system/*.c)
  27. CSRC += $(wildcard ../peripheral_modules/src/*.c)
  28. CSRC += $(wildcard ../user/*.c)
  29. CSRC += $(wildcard ../thirdparty/TinyStdio/*.c)
  30. CSRC += $(wildcard ../thirdparty/myStrings/*.c)
  31. CSRC += $(wildcard *.c)
  32. INCLUDES += -Ileds
  33. INCLUDES += -Ibuttons
  34. INCLUDES += -Ijumper
  35. INCLUDES += -Id_inouts
  36. INCLUDES += -IMegaTec
  37. INCLUDES += -Icommon
  38. INCLUDES += -Imonitor
  39. INCLUDES += -Ilog
  40. INCLUDES += -Itesting
  41. ifeq ($(HARDWARE), bt6708)
  42. INCLUDES += -Iwhitelist
  43. endif
  44. ifeq ($(HARDWARE), bt6702)
  45. INCLUDES += -Iradius
  46. endif
  47. INCLUDES += -Imbedtls_api
  48. CSRC += $(wildcard leds/*.c)
  49. CSRC += $(wildcard buttons/*.c)
  50. CSRC += $(wildcard jumper/*.c)
  51. CSRC += $(wildcard d_inouts/*.c)
  52. CSRC += $(wildcard MegaTec/*.c)
  53. CSRC += $(wildcard common/*.c)
  54. CSRC += $(wildcard monitor/*.c)
  55. CSRC += $(wildcard log/*.c)
  56. CSRC += $(wildcard testing/*.c)
  57. ifeq ($(HARDWARE), bt6708)
  58. CSRC += $(wildcard whitelist/*.c)
  59. endif
  60. ifeq ($(HARDWARE), bt6702)
  61. CSRC += $(wildcard radius/*.c)
  62. endif
  63. CSRC += $(wildcard mbedtls_api/*.c)
  64. CFLAGS += -DOS_FREERTOS
  65. #FreeRTOS
  66. LDSCRIPT := startup/stm32_flash.ld
  67. INCLUDES += -I../thirdparty/FreeRTOS/include -I../thirdparty/FreeRTOS/portable/GCC/ARM_CM3
  68. CSRC += $(wildcard ../thirdparty/FreeRTOS/*.c ../thirdparty/FreeRTOS/portable/GCC/ARM_CM3/*.c)
  69. ASMSRC = startup/startup_stm32f4xx.s
  70. # MemMang
  71. CSRC += $(wildcard ../thirdparty/FreeRTOS/portable/MemMang/heap_4.c)
  72. # LwIP + Web #
  73. INCLUDES += -IHTTP_Server
  74. INCLUDES += -I../thirdparty/lwip/src/include
  75. INCLUDES += -I../thirdparty/lwip/src/include/lwip
  76. INCLUDES += -I../thirdparty/lwip/src/include/netif
  77. INCLUDES += -I../thirdparty/lwip/src/include/lwip/apps
  78. INCLUDES += -I../thirdparty/lwip/src/apps/snmp/
  79. # INCLUDES += -I../thirdparty/lwip/src/netif/ppp
  80. INCLUDES += -I../thirdparty/lwip/port
  81. INCLUDES += -I../thirdparty/lwip/port/FreeRTOS
  82. INCLUDES += -I../thirdparty/lwip/system
  83. INCLUDES += -I../thirdparty/lwip/system/arch
  84. INCLUDES += -IEthernet
  85. # INCLUDES += -I../stm32/stm32f4x7_ethernet
  86. INCLUDES += -ISTM32F4x7_ETH_Driver
  87. ifeq ($(HARDWARE), bt6702)
  88. CSRC += $(wildcard HTTP_Server/my_ssl_server.c)
  89. endif
  90. #ifeq ($(HARDWARE), bt6706)
  91. ifneq (,$(filter $(HARDWARE),bt6706 bt6708))
  92. INCLUDES += -ITelnet_Server
  93. CSRC += $(wildcard HTTP_Server/http_server.c)
  94. CSRC += $(wildcard Telnet_Server/*.c)
  95. endif
  96. CSRC += $(wildcard HTTP_Server/trap_params.c)
  97. CSRC += $(wildcard HTTP_Server/web_params_api.c)
  98. CSRC += $(wildcard ../thirdparty/lwip/src/*.c)
  99. CSRC += $(wildcard ../thirdparty/lwip/src/api/*.c)
  100. CSRC += $(wildcard ../thirdparty/lwip/src/core/*.c)
  101. CSRC += $(wildcard ../thirdparty/lwip/src/core/ipv4/*.c)
  102. CSRC += $(wildcard ../thirdparty/lwip/src/netif/*.c)
  103. CSRC += $(wildcard ../thirdparty/lwip/src/apps/snmp/*.c)
  104. # CSRC += $(wildcard ../thirdparty/lwip/src/netif/ppp/*.c)
  105. CSRC += $(wildcard ../thirdparty/lwip/port/FreeRTOS/*.c)
  106. CSRC += $(wildcard Ethernet/*.c)
  107. # CSRC += $(wildcard ../stm32/stm32f4x7_ethernet/*.c)
  108. CSRC += $(wildcard STM32F4x7_ETH_Driver/*.c)
  109. CSRC += $(wildcard ../stm32/system/syscalls/syscalls.c)
  110. #SSL
  111. #INCLUDES += -I../thirdparty/PolarSSL/include/polarssl/
  112. #INCLUDES += -I../thirdparty/PolarSSL/include/
  113. #CSRC += $(wildcard ../thirdparty/PolarSSL/library/*.c)
  114. INCLUDES += -I../thirdparty/mbedTLS/include/
  115. CSRC += $(wildcard ../thirdparty/mbedTLS/library/*.c)
  116. ifeq ($(HARDWARE), bt6702)
  117. #RADDIUS_SERVER
  118. INCLUDES += -I../thirdparty/FreeRadius/
  119. INCLUDES += -I../thirdparty/FreeRadius/include/
  120. INCLUDES += -I../thirdparty/FreeRadius/lib/
  121. CSRC += $(wildcard ../thirdparty/FreeRadius/lib/*.c)
  122. endif
  123. CFLAGS += -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -DLOG_ENABLE -DMBEDTLS_CONFIG_FILE='<mbedtls_config.h>'
  124. ifeq ($(HARDWARE), bt6702)
  125. BUILDDIR = ../build/bt6702/$(TARGET)
  126. endif
  127. ifeq ($(HARDWARE), bt6706)
  128. BUILDDIR = ../build/bt6706/$(TARGET)
  129. endif
  130. ifeq ($(HARDWARE), bt6708)
  131. BUILDDIR = ../build/bt6708/$(TARGET)
  132. endif
  133. FW_FLASH_START = $(shell awk '/USER_FLASH_FIRST_PAGE_ADDRESS/{print $$3}' ../config/common_config.h )
  134. FW_FLASH_CRC = $(shell awk '/USER_FLASH_CRC_ADDRESS/{print $$3}' ../config/common_config.h )
  135. ifeq ($(HARDWARE), bt6702)
  136. FW_NAME = BT_6702xx
  137. endif
  138. ifeq ($(HARDWARE), bt6706)
  139. FW_NAME = BT_6706xx
  140. endif
  141. ifeq ($(HARDWARE), bt6708)
  142. FW_NAME = BT_6708xx
  143. endif
  144. -include ../Makefile.inc.stm32
  145. #Building Web UI FS
  146. ifeq ($(HARDWARE), bt6706)
  147. WUI_DIR = ../web_interface/dist/wui-6
  148. FSDATA_DIR = ./HTTP_Server/bt6706_fs
  149. endif
  150. ifeq ($(HARDWARE), bt6708)
  151. WUI_DIR = ../web_interface/dist/wui-8
  152. FSDATA_DIR = ./HTTP_Server/bt6708_fs
  153. endif
  154. ifeq ($(HARDWARE), bt6702)
  155. WUI_DIR = ../web_interface/dist/wui
  156. FSDATA_DIR = ./HTTP_Server/bt6702_fs
  157. endif
  158. $(FSDATA_DIR)/fsdata.c: $(WUI_DIR)/*
  159. @../docs/makefsdata.pl $(FSDATA_DIR) $(WUI_DIR)
  160. ARTIFACTS_PATH := ~/Releases/$(HARDWARE)
  161. RELEASE_VERSION := $(shell ../projects/gcc/tools/version.sh $(HARDWARE) $(INCLUDES))
  162. RELEASE_PATH := $(ARTIFACTS_PATH)/$(RELEASE_VERSION)
  163. prebuild: $(FSDATA_DIR)/fsdata.c
  164. @echo "Hardware version: $(HARDWARE)"
  165. postbuild: $(BUILDDIR)/$(TARGET).bin
  166. @echo "FW start address: $(FW_FLASH_START)"
  167. @echo "FW CRC address: $(FW_FLASH_CRC)"
  168. @echo "Copying to: $(OUTPUTDIR)/$(FW_NAME).bin"
  169. @cp $(BUILDDIR)/$(TARGET).bin $(OUTPUTDIR)/$(FW_NAME).bin
  170. @$(BUILDDIR)/../../tools/cortex_crc $(OUTPUTDIR)/$(FW_NAME).bin $(FW_FLASH_START) $(FW_FLASH_CRC)
  171. release:
  172. @echo "FW version: $(RELEASE_VERSION)"
  173. @mkdir -p $(RELEASE_PATH)
  174. @cp $(OUTPUTDIR)/iap.bin $(RELEASE_PATH)/bl_$(HARDWARE).bin
  175. @cp $(OUTPUTDIR)/$(FW_NAME).bin $(RELEASE_PATH)/IBP.bin
  176. @cp ../docs/$(HARDWARE)/*.MIB $(RELEASE_PATH)
  177. @vim -c "s/^/# $(RELEASE_VERSION)\r### Добавлено\r\r### Изменено\r\r### Исправлено\r\r\r\r" -c "set noswapfile" -c "3" ../docs/$(HARDWARE)/Changelog.md
  178. @cp ../docs/$(HARDWARE)/Changelog.md $(RELEASE_PATH)
  179. @echo "Compressing..."
  180. @cd $(RELEASE_PATH) && zip $(RELEASE_VERSION).zip IBP.bin *.MIB Changelog.md
  181. @echo "Done: $(RELEASE_PATH)/$(RELEASE_VERSION).zip"