Makefile 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. # Whether to merge SDK into Xtensa toolchain, producing standalone
  2. # ESP8266 toolchain. Use 'n' if you want generic Xtensa toolchain
  3. # which can be used with multiple SDK versions.
  4. STANDALONE = y
  5. # Directory to install toolchain to, by default inside current dir.
  6. TOOLCHAIN = $(TOP)/xtensa-lx106-elf
  7. # Vendor SDK version to install, see VENDOR_SDK_ZIP_* vars below
  8. # for supported versions.
  9. VENDOR_SDK = 2.1.0-18-g61248df
  10. .PHONY: crosstool-NG toolchain libhal libcirom sdk
  11. TOP = $(PWD)
  12. SHELL = /bin/bash
  13. PATCH = patch -b -N
  14. UNZIP = unzip -q -o
  15. VENDOR_SDK_ZIP = $(VENDOR_SDK_ZIP_$(VENDOR_SDK))
  16. VENDOR_SDK_DIR = $(VENDOR_SDK_DIR_$(VENDOR_SDK))
  17. VENDOR_SDK_DIR_2.1.0-18-g61248df = ESP8266_NONOS_SDK-2.1.0-18-g61248df
  18. VENDOR_SDK_ZIP_2.1.0 = ESP8266_NONOS_SDK-2.1.0.zip
  19. VENDOR_SDK_DIR_2.1.0 = ESP8266_NONOS_SDK-2.1.0
  20. VENDOR_SDK_ZIP_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip
  21. VENDOR_SDK_DIR_2.0.0 = ESP8266_NONOS_SDK_V2.0.0_16_08_10
  22. VENDOR_SDK_ZIP_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip
  23. VENDOR_SDK_DIR_1.5.4 = ESP8266_NONOS_SDK_V1.5.4_16_05_20
  24. VENDOR_SDK_ZIP_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip
  25. VENDOR_SDK_DIR_1.5.3 = ESP8266_NONOS_SDK_V1.5.3_16_04_18/ESP8266_NONOS_SDK
  26. VENDOR_SDK_ZIP_1.5.2 = ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip
  27. VENDOR_SDK_DIR_1.5.2 = esp_iot_sdk_v1.5.2
  28. VENDOR_SDK_ZIP_1.5.1 = ESP8266_NONOS_SDK_V1.5.1_16_01_08.zip
  29. VENDOR_SDK_DIR_1.5.1 = esp_iot_sdk_v1.5.1
  30. VENDOR_SDK_ZIP_1.5.0 = esp_iot_sdk_v1.5.0_15_11_27.zip
  31. VENDOR_SDK_DIR_1.5.0 = esp_iot_sdk_v1.5.0
  32. VENDOR_SDK_ZIP_1.4.0 = esp_iot_sdk_v1.4.0_15_09_18.zip
  33. VENDOR_SDK_DIR_1.4.0 = esp_iot_sdk_v1.4.0
  34. VENDOR_SDK_ZIP_1.3.0 = esp_iot_sdk_v1.3.0_15_08_08.zip
  35. VENDOR_SDK_DIR_1.3.0 = esp_iot_sdk_v1.3.0
  36. VENDOR_SDK_ZIP_1.2.0 = esp_iot_sdk_v1.2.0_15_07_03.zip
  37. VENDOR_SDK_DIR_1.2.0 = esp_iot_sdk_v1.2.0
  38. VENDOR_SDK_ZIP_1.1.2 = esp_iot_sdk_v1.1.2_15_06_12.zip
  39. VENDOR_SDK_DIR_1.1.2 = esp_iot_sdk_v1.1.2
  40. VENDOR_SDK_ZIP_1.1.1 = esp_iot_sdk_v1.1.1_15_06_05.zip
  41. VENDOR_SDK_DIR_1.1.1 = esp_iot_sdk_v1.1.1
  42. VENDOR_SDK_ZIP_1.1.0 = esp_iot_sdk_v1.1.0_15_05_26.zip
  43. VENDOR_SDK_DIR_1.1.0 = esp_iot_sdk_v1.1.0
  44. # MIT-licensed version was released without changing version number
  45. #VENDOR_SDK_ZIP_1.1.0 = esp_iot_sdk_v1.1.0_15_05_22.zip
  46. #VENDOR_SDK_DIR_1.1.0 = esp_iot_sdk_v1.1.0
  47. VENDOR_SDK_ZIP_1.0.1 = esp_iot_sdk_v1.0.1_15_04_24.zip
  48. VENDOR_SDK_DIR_1.0.1 = esp_iot_sdk_v1.0.1
  49. VENDOR_SDK_ZIP_1.0.1b2 = esp_iot_sdk_v1.0.1_b2_15_04_10.zip
  50. VENDOR_SDK_DIR_1.0.1b2 = esp_iot_sdk_v1.0.1_b2
  51. VENDOR_SDK_ZIP_1.0.1b1 = esp_iot_sdk_v1.0.1_b1_15_04_02.zip
  52. VENDOR_SDK_DIR_1.0.1b1 = esp_iot_sdk_v1.0.1_b1
  53. VENDOR_SDK_ZIP_1.0.0 = esp_iot_sdk_v1.0.0_15_03_20.zip
  54. VENDOR_SDK_DIR_1.0.0 = esp_iot_sdk_v1.0.0
  55. VENDOR_SDK_ZIP_0.9.6b1 = esp_iot_sdk_v0.9.6_b1_15_02_15.zip
  56. VENDOR_SDK_DIR_0.9.6b1 = esp_iot_sdk_v0.9.6_b1
  57. VENDOR_SDK_ZIP_0.9.5 = esp_iot_sdk_v0.9.5_15_01_23.zip
  58. VENDOR_SDK_DIR_0.9.5 = esp_iot_sdk_v0.9.5
  59. VENDOR_SDK_ZIP_0.9.4 = esp_iot_sdk_v0.9.4_14_12_19.zip
  60. VENDOR_SDK_DIR_0.9.4 = esp_iot_sdk_v0.9.4
  61. VENDOR_SDK_ZIP_0.9.3 = esp_iot_sdk_v0.9.3_14_11_21.zip
  62. VENDOR_SDK_DIR_0.9.3 = esp_iot_sdk_v0.9.3
  63. VENDOR_SDK_ZIP_0.9.2 = esp_iot_sdk_v0.9.2_14_10_24.zip
  64. VENDOR_SDK_DIR_0.9.2 = esp_iot_sdk_v0.9.2
  65. all: esptool libcirom standalone sdk sdk_patch $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc lwip
  66. @echo
  67. @echo "Xtensa toolchain is built, to use it:"
  68. @echo
  69. @echo 'export PATH=$(TOOLCHAIN)/bin:$$PATH'
  70. @echo
  71. ifneq ($(STANDALONE),y)
  72. @echo "Espressif ESP8266 SDK is installed. Toolchain contains only Open Source components"
  73. @echo "To link external proprietary libraries add:"
  74. @echo
  75. @echo "xtensa-lx106-elf-gcc -I$(TOP)/sdk/include -L$(TOP)/sdk/lib"
  76. @echo
  77. else
  78. @echo "Espressif ESP8266 SDK is installed, its libraries and headers are merged with the toolchain"
  79. @echo
  80. endif
  81. standalone: sdk sdk_patch toolchain
  82. ifeq ($(STANDALONE),y)
  83. @echo "Installing vendor SDK headers into toolchain sysroot"
  84. @cp -Rf sdk/include/* $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/
  85. @echo "Installing vendor SDK libs into toolchain sysroot"
  86. @cp -Rf sdk/lib/* $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/
  87. @echo "Installing vendor SDK linker scripts into toolchain sysroot"
  88. @sed -e 's/\r//' sdk/ld/eagle.app.v6.ld | sed -e s@../ld/@@ >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.app.v6.ld
  89. @sed -e 's/\r//' sdk/ld/eagle.rom.addr.v6.ld >$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/eagle.rom.addr.v6.ld
  90. endif
  91. clean: clean-sdk
  92. $(MAKE) -C crosstool-NG clean MAKELEVEL=0
  93. -rm -f crosstool-NG/.built
  94. -rm -rf crosstool-NG/.build/src
  95. -rm -f crosstool-NG/local-patches/gcc/4.8.5/1000-*
  96. -rm -rf $(TOOLCHAIN)
  97. clean-sdk:
  98. rm -rf $(VENDOR_SDK_DIR)
  99. rm -f sdk
  100. rm -f .sdk_patch_$(VENDOR_SDK)
  101. rm -f user_rf_cal_sector_set.o empty_user_rf_pre_init.o
  102. $(MAKE) -C esp-open-lwip -f Makefile.open clean
  103. clean-sysroot:
  104. rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/*
  105. rm -rf $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/*
  106. esptool: toolchain
  107. cp esptool/esptool.py $(TOOLCHAIN)/bin/
  108. toolchain $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libc.a: crosstool-NG/.built
  109. crosstool-NG/.built: crosstool-NG/ct-ng
  110. cp -f 1000-mforce-l32.patch crosstool-NG/local-patches/gcc/4.8.5/
  111. $(MAKE) -C crosstool-NG -f ../Makefile _toolchain
  112. touch $@
  113. _toolchain:
  114. ./ct-ng xtensa-lx106-elf
  115. sed -r -i.org s%CT_PREFIX_DIR=.*%CT_PREFIX_DIR="$(TOOLCHAIN)"% .config
  116. sed -r -i s%CT_INSTALL_DIR_RO=y%"#"CT_INSTALL_DIR_RO=y% .config
  117. cat ../crosstool-config-overrides >> .config
  118. ./ct-ng build
  119. crosstool-NG: crosstool-NG/ct-ng
  120. crosstool-NG/ct-ng: crosstool-NG/bootstrap
  121. $(MAKE) -C crosstool-NG -f ../Makefile _ct-ng
  122. _ct-ng:
  123. ./bootstrap
  124. ./configure --prefix=`pwd`
  125. $(MAKE) MAKELEVEL=0
  126. $(MAKE) install MAKELEVEL=0
  127. crosstool-NG/bootstrap:
  128. @echo "You cloned without --recursive, fetching submodules for you."
  129. git submodule update --init --recursive
  130. libcirom: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a
  131. $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libcirom.a: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/lib/libc.a $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
  132. @echo "Creating irom version of libc..."
  133. $(TOOLCHAIN)/bin/xtensa-lx106-elf-objcopy --rename-section .text=.irom0.text \
  134. --rename-section .literal=.irom0.literal $(<) $(@);
  135. libhal: $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a
  136. $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/lib/libhal.a: $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc
  137. $(MAKE) -C lx106-hal -f ../Makefile _libhal
  138. _libhal:
  139. autoreconf -i
  140. PATH="$(TOOLCHAIN)/bin:$(PATH)" ./configure --host=xtensa-lx106-elf --prefix=$(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr
  141. PATH="$(TOOLCHAIN)/bin:$(PATH)" $(MAKE)
  142. PATH="$(TOOLCHAIN)/bin:$(PATH)" $(MAKE) install
  143. sdk: $(VENDOR_SDK_DIR)/.dir
  144. ln -snf $(VENDOR_SDK_DIR) sdk
  145. $(VENDOR_SDK_DIR)/.dir: $(VENDOR_SDK_ZIP)
  146. $(UNZIP) $^
  147. -mv License $(VENDOR_SDK_DIR)
  148. touch $@
  149. $(VENDOR_SDK_DIR_2.1.0-18-g61248df)/.dir:
  150. echo $(VENDOR_SDK_DIR_2.1.0-18-g61248df)
  151. git clone https://github.com/espressif/ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_2.1.0-18-g61248df)
  152. (cd $(VENDOR_SDK_DIR_2.1.0-18-g61248df); git checkout 61248df5f6)
  153. touch $@
  154. $(VENDOR_SDK_DIR_2.1.0)/.dir: $(VENDOR_SDK_ZIP_2.1.0)
  155. $(UNZIP) $^
  156. touch $@
  157. $(VENDOR_SDK_DIR_2.0.0)/.dir: $(VENDOR_SDK_ZIP_2.0.0)
  158. $(UNZIP) $^
  159. mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_2.0.0)
  160. -mv License $(VENDOR_SDK_DIR)
  161. touch $@
  162. $(VENDOR_SDK_DIR_1.5.4)/.dir: $(VENDOR_SDK_ZIP_1.5.4)
  163. $(UNZIP) $^
  164. mv ESP8266_NONOS_SDK $(VENDOR_SDK_DIR_1.5.4)
  165. -mv License $(VENDOR_SDK_DIR)
  166. touch $@
  167. sdk_patch: $(VENDOR_SDK_DIR)/.dir .sdk_patch_$(VENDOR_SDK)
  168. .sdk_patch_2.1.0-18-g61248df .sdk_patch_2.1.0: user_rf_cal_sector_set.o
  169. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 020100" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  170. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99_sdk_2.patch
  171. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  172. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR)/lib/libmain.a user_rf_cal_sector_set.o
  173. @touch $@
  174. .sdk_patch_2.0.0: ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip user_rf_cal_sector_set.o
  175. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 020000" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  176. $(UNZIP) ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip
  177. mv libmain.a libnet80211.a libpp.a $(VENDOR_SDK_DIR_2.0.0)/lib/
  178. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99_sdk_2.patch
  179. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  180. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR)/lib/libmain.a user_rf_cal_sector_set.o
  181. @touch $@
  182. .sdk_patch_1.5.4:
  183. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010504" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  184. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  185. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  186. @touch $@
  187. .sdk_patch_1.5.3:
  188. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010503" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  189. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  190. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  191. @touch $@
  192. .sdk_patch_1.5.2: Patch01_for_ESP8266_NONOS_SDK_V1.5.2.zip
  193. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010502" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  194. $(UNZIP) Patch01_for_ESP8266_NONOS_SDK_V1.5.2.zip
  195. mv libssl.a libnet80211.a libmain.a $(VENDOR_SDK_DIR_1.5.2)/lib/
  196. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  197. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  198. @touch $@
  199. .sdk_patch_1.5.1:
  200. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010501" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  201. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  202. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  203. @touch $@
  204. .sdk_patch_1.5.0:
  205. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010500" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  206. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  207. cd $(VENDOR_SDK_DIR)/lib; mkdir -p tmp; cd tmp; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar x ../libcrypto.a; cd ..; $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar rs libwpa.a tmp/*.o
  208. @touch $@
  209. .sdk_patch_1.4.0:
  210. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010400" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  211. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  212. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < dhcps_lease.patch
  213. @touch $@
  214. .sdk_patch_1.3.0:
  215. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010300" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  216. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  217. @touch $@
  218. .sdk_patch_1.2.0: lib_mem_optimize_150714.zip libssl_patch_1.2.0-2.zip empty_user_rf_pre_init.o
  219. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010200" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  220. #$(UNZIP) libssl_patch_1.2.0-2.zip
  221. #$(UNZIP) libsmartconfig_2.4.2.zip
  222. $(UNZIP) lib_mem_optimize_150714.zip
  223. #mv libsmartconfig_2.4.2.a $(VENDOR_SDK_DIR_1.2.0)/lib/libsmartconfig.a
  224. mv libssl.a libnet80211.a libpp.a libsmartconfig.a $(VENDOR_SDK_DIR_1.2.0)/lib/
  225. $(PATCH) -f -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  226. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR_1.2.0)/lib/libmain.a empty_user_rf_pre_init.o
  227. @touch $@
  228. .sdk_patch_1.1.2: scan_issue_test.zip 1.1.2_patch_02.zip empty_user_rf_pre_init.o
  229. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010102" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  230. $(UNZIP) scan_issue_test.zip
  231. $(UNZIP) 1.1.2_patch_02.zip
  232. mv libmain.a libnet80211.a libpp.a $(VENDOR_SDK_DIR_1.1.2)/lib/
  233. $(PATCH) -f -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  234. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR_1.1.2)/lib/libmain.a empty_user_rf_pre_init.o
  235. @touch $@
  236. .sdk_patch_1.1.1: empty_user_rf_pre_init.o
  237. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010101" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  238. $(PATCH) -f -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  239. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR_1.1.1)/lib/libmain.a empty_user_rf_pre_init.o
  240. @touch $@
  241. .sdk_patch_1.1.0: lib_patch_on_sdk_v1.1.0.zip empty_user_rf_pre_init.o
  242. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010100" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  243. $(UNZIP) $<
  244. mv libsmartconfig_patch_01.a $(VENDOR_SDK_DIR_1.1.0)/lib/libsmartconfig.a
  245. mv libmain_patch_01.a $(VENDOR_SDK_DIR_1.1.0)/lib/libmain.a
  246. mv libssl_patch_01.a $(VENDOR_SDK_DIR_1.1.0)/lib/libssl.a
  247. $(PATCH) -f -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  248. $(TOOLCHAIN)/bin/xtensa-lx106-elf-ar r $(VENDOR_SDK_DIR_1.1.0)/lib/libmain.a empty_user_rf_pre_init.o
  249. @touch $@
  250. .sdk_patch_1.0.1: libnet80211.zip esp_iot_sdk_v1.0.1/.dir
  251. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010001" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  252. $(UNZIP) $<
  253. mv libnet80211.a $(VENDOR_SDK_DIR_1.0.1)/lib/
  254. $(PATCH) -f -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  255. @touch $@
  256. .sdk_patch_1.0.1b2: libssl.zip esp_iot_sdk_v1.0.1_b2/.dir
  257. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010001" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  258. $(UNZIP) $<
  259. mv libssl/libssl.a $(VENDOR_SDK_DIR_1.0.1b2)/lib/
  260. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  261. @touch $@
  262. .sdk_patch_1.0.1b1:
  263. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010001" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  264. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  265. @touch $@
  266. .sdk_patch_1.0.0:
  267. echo -e "#undef ESP_SDK_VERSION\n#define ESP_SDK_VERSION 010000" >>$(VENDOR_SDK_DIR)/include/esp_sdk_ver.h
  268. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  269. @touch $@
  270. .sdk_patch_0.9.6b1:
  271. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  272. @touch $@
  273. .sdk_patch_0.9.5: sdk095_patch1.zip esp_iot_sdk_v0.9.5/.dir
  274. $(UNZIP) $<
  275. mv libmain_fix_0.9.5.a $(VENDOR_SDK_DIR)/lib/libmain.a
  276. mv user_interface.h $(VENDOR_SDK_DIR)/include/
  277. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  278. @touch $@
  279. .sdk_patch_0.9.4:
  280. $(PATCH) -d $(VENDOR_SDK_DIR) -p1 < c_types-c99.patch
  281. @touch $@
  282. .sdk_patch_0.9.3: esp_iot_sdk_v0.9.3_14_11_21_patch1.zip esp_iot_sdk_v0.9.3/.dir
  283. $(UNZIP) $<
  284. @touch $@
  285. .sdk_patch_0.9.2: FRM_ERR_PATCH.rar esp_iot_sdk_v0.9.2/.dir
  286. unrar x -o+ $<
  287. cp FRM_ERR_PATCH/*.a $(VENDOR_SDK_DIR)/lib/
  288. @touch $@
  289. empty_user_rf_pre_init.o: empty_user_rf_pre_init.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir
  290. $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $<
  291. user_rf_cal_sector_set.o: user_rf_cal_sector_set.c $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc $(VENDOR_SDK_DIR)/.dir
  292. $(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc -O2 -I$(VENDOR_SDK_DIR)/include -c $<
  293. lwip: toolchain sdk_patch
  294. ifeq ($(STANDALONE),y)
  295. $(MAKE) -C esp-open-lwip -f Makefile.open install \
  296. CC=$(TOOLCHAIN)/bin/xtensa-lx106-elf-gcc \
  297. AR=$(TOOLCHAIN)/bin/xtensa-lx106-elf-ar \
  298. PREFIX=$(TOOLCHAIN)
  299. cp -a esp-open-lwip/include/arch esp-open-lwip/include/lwip esp-open-lwip/include/netif \
  300. esp-open-lwip/include/lwipopts.h \
  301. $(TOOLCHAIN)/xtensa-lx106-elf/sysroot/usr/include/
  302. endif
  303. ESP8266_NONOS_SDK-2.1.0.zip:
  304. wget --content-disposition "https://github.com/espressif/ESP8266_NONOS_SDK/archive/v2.1.0.zip"
  305. # The only change wrt to ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip is licensing blurb in source/
  306. # header files. Libs are the same (and patch is required just the same).
  307. ESP8266_NONOS_SDK_V2.0.0_16_08_10.zip:
  308. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1690"
  309. ESP8266_NONOS_SDK_V2.0.0_16_07_19.zip:
  310. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1613"
  311. ESP8266_NONOS_SDK_V1.5.4_16_05_20.zip:
  312. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1469"
  313. ESP8266_NONOS_SDK_V1.5.3_16_04_18.zip:
  314. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1361"
  315. ESP8266_NONOS_SDK_V1.5.2_16_01_29.zip:
  316. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1079"
  317. ESP8266_NONOS_SDK_V1.5.1_16_01_08.zip:
  318. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1046"
  319. esp_iot_sdk_v1.5.0_15_11_27.zip:
  320. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=989"
  321. esp_iot_sdk_v1.4.0_15_09_18.zip:
  322. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=838"
  323. esp_iot_sdk_v1.3.0_15_08_08.zip:
  324. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=664"
  325. esp_iot_sdk_v1.2.0_15_07_03.zip:
  326. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=564"
  327. esp_iot_sdk_v1.1.2_15_06_12.zip:
  328. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=521"
  329. esp_iot_sdk_v1.1.1_15_06_05.zip:
  330. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=484"
  331. esp_iot_sdk_v1.1.0_15_05_26.zip:
  332. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=425"
  333. esp_iot_sdk_v1.1.0_15_05_22.zip:
  334. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=423"
  335. esp_iot_sdk_v1.0.1_15_04_24.zip:
  336. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=325"
  337. esp_iot_sdk_v1.0.1_b2_15_04_10.zip:
  338. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=293"
  339. esp_iot_sdk_v1.0.1_b1_15_04_02.zip:
  340. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=276"
  341. esp_iot_sdk_v1.0.0_15_03_20.zip:
  342. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=250"
  343. esp_iot_sdk_v0.9.6_b1_15_02_15.zip:
  344. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=220"
  345. esp_iot_sdk_v0.9.5_15_01_23.zip:
  346. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=189"
  347. esp_iot_sdk_v0.9.4_14_12_19.zip:
  348. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=111"
  349. esp_iot_sdk_v0.9.3_14_11_21.zip:
  350. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=72"
  351. esp_iot_sdk_v0.9.2_14_10_24.zip:
  352. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=9"
  353. FRM_ERR_PATCH.rar:
  354. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=10"
  355. esp_iot_sdk_v0.9.3_14_11_21_patch1.zip:
  356. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=73"
  357. sdk095_patch1.zip:
  358. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=190"
  359. libssl.zip:
  360. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=316"
  361. libnet80211.zip:
  362. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=361"
  363. lib_patch_on_sdk_v1.1.0.zip:
  364. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=432"
  365. scan_issue_test.zip:
  366. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=525"
  367. 1.1.2_patch_02.zip:
  368. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=546"
  369. libssl_patch_1.2.0-1.zip:
  370. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=583" -O $@
  371. libssl_patch_1.2.0-2.zip:
  372. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=586" -O $@
  373. libsmartconfig_2.4.2.zip:
  374. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=585"
  375. lib_mem_optimize_150714.zip:
  376. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=594"
  377. Patch01_for_ESP8266_NONOS_SDK_V1.5.2.zip:
  378. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1168"
  379. ESP8266_NONOS_SDK_V2.0.0_patch_16_08_09.zip:
  380. wget --content-disposition "http://bbs.espressif.com/download/file.php?id=1654"