Hi I'm trying a very simple SPIFFS example:
#include "FS.h"
void setup()
{
Serial.begin(115200);
Serial.println("\nVery basic Spiffs example, writing 10 lines to SPIFFS filesystem, and then read them back");
SPIFFS.begin();
// Next lines have to be done ONLY ONCE!!!!!When SPIFFS is formatted ONCE you can comment these lines out!!
Serial.println("Please wait 30 secs for SPIFFS to be formatted");
SPIFFS.format();
Serial.println("Spiffs formatted");
}
void loop()
{
// open file for writing
File f = SPIFFS.open("/f.txt", "w");
if (!f) {
Serial.println("file open failed");
}
Serial.println("====== Writing to SPIFFS file =========");
// write 10 strings to file
for (int i=1; i<=10; i++){
f.print("Millis() : ");
f.println(millis());
Serial.println(millis());
}
f.close();
f = SPIFFS.open("/f.txt", "r");
if (!f) {
Serial.println("file open failed");
} Serial.println("====== Reading from SPIFFS file =======");
// write 10 strings to file
for (int i=1; i<=10; i++){
String s=f.readStringUntil('\n');
Serial.print(i);
Serial.print(":");
Serial.println(s);
}
// wait a few seconds before doing it all over again
delay(15000);
}
which works fine on my Sonoff R2, however I extracted a custom Makefile starting from the output of the Arduino console to compile outside of the Arduino IDE.
It compiles and works correctly except SPIFFS cannot open files, are there specific options which are passed to the compiler in order to let SPIFFS work correctly?
The Makefile I made is the following:
#
# Simple Arduino Makefile
#
# Author: Nick Gammon
# Date: 18th March 2015
# where you installed the Arduino app
ARDUINO_DIR = /home/lions/.arduino15/packages/esp8266/
CURRENT_DIR = /media/lions/Data/myhdata/Projects/Arduino/sonoff_r2_mytest/
# various programs
CC = "$(ARDUINO_DIR)tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-gcc"
CPP = "$(ARDUINO_DIR)tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-g++"
AR = "$(ARDUINO_DIR)tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/xtensa-lx106-elf-ar"
OBJ_COPY = "$(ARDUINO_DIR)hardware/tools/avr/bin/avr-objcopy"
MAIN_SKETCH = sonoff_r2_mytest.cpp
# compile flags for g++ and gcc
# may need to change these
F_CPU = 80000000
MCU = esp8266 #atmega328p
ARDUVER = 10813
ARDUINO_BOARD=\"ESP8266_SONOFF_BASIC\"
FLASH_MODE="dout"
FLASH_MODE_ACRONYM="FLASHMODE_DOUT"
FLASH_SIZE=1M
DEVICE=/dev/ttyUSB0
DEVICEIP="172.16.1.33"
BAUD=115200
VARIANTS=itead
# compile flags
CPP_FLAGS = -c -w -Os -g -mlongcalls -mtext-section-literals -fno-rtti -falign-functions=4 -std=gnu++11 -MMD -ffunction-sections -fdata-sections -fno-exceptions -DNONOSDK22x_190703=1 -DF_CPU=$(F_CPU)L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=$(ARDUVER) -DARDUINO_$(ARDUINO_BOARD) -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"$(ARDUINO_BOARD)\"" -D$(FLASH_MODE_ACRONYM) -DESP8266 -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/cores/esp8266 -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS)
CC_FLAGS = -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -c -g -x assembler-with-cpp -MMD -mlongcalls -DNONOSDK22x_190703=1 -DF_CPU=$(F_CPU)L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=$(ARDUVER) -DARDUINO_$(ARDUINO_BOARD) -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"$(ARDUINO_BOARD)\"" -D$(FLASH_MODE_ACRONYM) -DESP8266
CC_FLAGS2 = -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ -c -w -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-sections -fno-exceptions -DNONOSDK22x_190703=1 -DF_CPU=$(F_CPU)L -DLWIP_OPEN_SRC -DTCP_MSS=536 -DLWIP_FEATURES=1 -DLWIP_IPV6=0 -DARDUINO=$(ARDUVER) -DARDUINO_$(ARDUINO_BOARD) -DARDUINO_ARCH_ESP8266 "-DARDUINO_BOARD=\"$(ARDUINO_BOARD)\"" -D$(FLASH_MODE_ACRONYM) -DESP8266
# location of include files
INCLUDE_FILES_CPP = -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/include -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/lwip2/include -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/libc/xtensa-lx106-elf/include -I$(CURRENT_DIR)core
INCLUDE_FILES_CPP += -I$(CURRENT_DIR)../libraries/ArduinoMqttClient/src/ -I$(CURRENT_DIR)../libraries/ESP8266HTTPClient/src/ -I$(CURRENT_DIR)../libraries/ESP8266WiFi/src/ -I$(CURRENT_DIR)../libraries/ESP8266WebServer/src/ -I$(CURRENT_DIR)../libraries/ESP8266mDNS/src/
INCLUDE_FILES_CPP += -I$(CURRENT_DIR)../libraries/EEPROM/ -I$(CURRENT_DIR)../libraries/ArduinoOTA/ -I$(CURRENT_DIR)../libraries/Hash/src -I$(CURRENT_DIR)../libraries/Ticker/src -I$(CURRENT_DIR)../libraries/RemoteDebug/src -I$(CURRENT_DIR)../Utils/ -I$(CURRENT_DIR)../WifiAutoconfig/
INCLUDE_FILES = -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/include -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/lwip2/include -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/libc/xtensa-lx106-elf/include
INCLUDE_FILES += -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/cores/esp8266 -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) -I$(CURRENT_DIR)
# library sources
LIBRARY_DIR = "$(ARDUINO_DIR)hardware/esp8266/2.7.4/cores/esp8266/"
.PHONY: clean upload ota_upload
all: clean build
build:
$(info Advancing versions...)
./advance_vernum.sh $(MAIN_SKETCH) $(ARDUINO_BOARD)
$(info Compiling sketch...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(MAIN_SKETCH) -o $(MAIN_SKETCH).o
$(info Compiling libraries...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ArduinoMqttClient/src/MqttClient.cpp -o MqttClient.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266HTTPClient/src/ESP8266HTTPClient.cpp -o ESP8266HTTPClient.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266HTTPClient.a $(CURRENT_DIR)ESP8266HTTPClient.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiAP.cpp -o ESP8266WiFiAP.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiSTA-WPS.cpp -o ESP8266WiFiSTA-WPS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/BearSSLHelpers.cpp -o BearSSLHelpers.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/CertStoreBearSSL.cpp -o CertStoreBearSSL.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiGeneric.cpp -o ESP8266WiFiGeneric.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiGratuitous.cpp -o ESP8266WiFiGratuitous.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFi.cpp -o ESP8266WiFi.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiMulti.cpp -o ESP8266WiFiMulti.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiSTA.cpp -o ESP8266WiFiSTA.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/ESP8266WiFiScan.cpp -o ESP8266WiFiScan.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiClient.cpp -o WiFiClient.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiClientSecureAxTLS.cpp -o WiFiClientSecureAxTLS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiClientSecureBearSSL.cpp -o WiFiClientSecureBearSSL.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiServer.cpp -o WiFiServer.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiServerSecureAxTLS.cpp -o WiFiServerSecureAxTLS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiServerSecureBearSSL.cpp -o WiFiServerSecureBearSSL.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) -I$(ARDUINO_DIR)hardware/esp8266/2.7.4/variants/$(VARIANTS) $(CURRENT_DIR)../libraries/ESP8266WiFi/src/WiFiUdp.cpp -o WiFiUdp.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)BearSSLHelpers.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)CertStoreBearSSL.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFi.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiAP.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiGeneric.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiGratuitous.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiMulti.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiSTA-WPS.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiSTA.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)ESP8266WiFiScan.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiClient.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiClientSecureAxTLS.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiClientSecureBearSSL.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiServer.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiServerSecureAxTLS.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiServerSecureBearSSL.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WiFi.a $(CURRENT_DIR)WiFiUdp.cpp.o
$(info Compiling library "Hash"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/Hash/src/Hash.cpp -o Hash.cpp.o
$(AR) cru $(CURRENT_DIR)Hash.a Hash.cpp.o
$(info Compiling library "ESP8266WebServer"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266WebServer/src/detail/mimetable.cpp -o mimetable.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266WebServer.a mimetable.cpp.o
$(info Compiling library "EEPROM"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/EEPROM/EEPROM.cpp -o EEPROM.cpp.o
$(info Compiling library "ArduinoOTA"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ArduinoOTA/ArduinoOTA.cpp -o ArduinoOTA.cpp.o
$(info Compiling library "Ticker"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/Ticker/src/Ticker.cpp -o Ticker.cpp.o
$(AR) cru $(CURRENT_DIR)Ticker.a Ticker.cpp.o
$(info Compiling library "RemoteDebug"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/RemoteDebug/src/RemoteDebug.cpp -o RemoteDebug.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/RemoteDebug/src/RemoteDebugWS.cpp -o RemoteDebugWS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/RemoteDebug/src/utility/WebSockets.cpp -o WebSockets.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/RemoteDebug/src/utility/WebSocketsServer.cpp -o WebSocketsServer.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/RemoteDebug/src/utility/WebSocketsClient.cpp -o WebSocketsClient.cpp.o
$(info Compiling library "ESP8266mDNS"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/LEAmDNS.cpp -o LEAmDNS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/LEAmDNS_Control.cpp -o LEAmDNS_Control.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/ESP8266mDNS_Legacy.cpp -o ESP8266mDNS_Legacy.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/LEAmDNS_Helpers.cpp -o LEAmDNS_Helpers.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/LEAmDNS_Structs.cpp -o LEAmDNS_Structs.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/ESP8266mDNS.cpp -o ESP8266mDNS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../libraries/ESP8266mDNS/src/LEAmDNS_Transfer.cpp -o LEAmDNS_Transfer.cpp.o
$(info Compiling library "Utils"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../Utils/utils.cpp -o utils.cpp.o
$(info Compiling library "WifiAutoconfig"...)
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES_CPP) $(CPP_FLAGS) -I$(LIBRARY_DIR) $(CURRENT_DIR)../WifiAutoconfig/WifiAutoconfig.cpp -o WifiAutoconfig.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)ESP8266mDNS.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)ESP8266mDNS_Legacy.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)LEAmDNS.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)LEAmDNS_Control.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)LEAmDNS_Helpers.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)LEAmDNS_Structs.cpp.o
$(AR) cru $(CURRENT_DIR)ESP8266mDNS.a $(CURRENT_DIR)LEAmDNS_Transfer.cpp.o
$(info Compiling core...)
$(CC) $(CC_FLAGS) $(INCLUDE_FILES) $(LIBRARY_DIR)cont.S -o cont.S.o
$(CC) $(CC_FLAGS2) $(INCLUDE_FILES) $(LIBRARY_DIR)umm_malloc/umm_info.c -o umm_malloc/umm_info.c.o
$(CC) $(CC_FLAGS2) $(INCLUDE_FILES) $(LIBRARY_DIR)umm_malloc/umm_local.c -o umm_malloc/umm_local.c.o
$(CC) $(CC_FLAGS2) $(INCLUDE_FILES) $(LIBRARY_DIR)umm_malloc/umm_integrity.c -o umm_malloc/umm_integrity.c.o
$(CC) $(CC_FLAGS2) $(INCLUDE_FILES) $(LIBRARY_DIR)umm_malloc/umm_poison.c -o umm_malloc/umm_poison.c.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Esp-frag.cpp -o Esp-frag.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Esp-version.cpp -o Esp-version.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Crypto.cpp -o Crypto.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)HardwareSerial.cpp -o HardwareSerial.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Esp.cpp -o Esp.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)FSnoop.cpp -o FSnoop.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)FS.cpp -o FS.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)FunctionalInterrupt.cpp -o FunctionalInterrupt.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)IPAddress.cpp -o IPAddress.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)MD5Builder.cpp -o MD5Builder.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Schedule.cpp -o Schedule.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Print.cpp -o Print.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)StackThunk.cpp -o StackThunk.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Stream.cpp -o Stream.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)StreamString.cpp -o StreamString.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Tone.cpp -o Tone.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)TypeConversion.cpp -o TypeConversion.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)Updater.cpp -o Updater.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)WMath.cpp -o WMath.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)WString.cpp -o WString.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)abi.cpp -o abi.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)base64.cpp -o base64.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)cbuf.cpp -o cbuf.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)cont_util.cpp -o cont_util.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_app_entry_noextra4k.cpp -o core_esp8266_app_entry_noextra4k.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_eboot_command.cpp -o core_esp8266_eboot_command.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_features.cpp -o core_esp8266_features.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_flash_quirks.cpp -o core_esp8266_flash_quirks.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_flash_utils.cpp -o core_esp8266_flash_utils.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_i2s.cpp -o core_esp8266_i2s.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_main.cpp -o core_esp8266_main.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_noniso.cpp -o core_esp8266_noniso.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_phy.cpp -o core_esp8266_phy.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_postmortem.cpp -o core_esp8266_postmortem.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_si2c.cpp -o core_esp8266_si2c.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_sigma_delta.cpp -o core_esp8266_sigma_delta.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_spi_utils.cpp -o core_esp8266_spi_utils.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_timer.cpp -o core_esp8266_timer.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_waveform.cpp -o core_esp8266_waveform.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring.cpp -o core_esp8266_wiring.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring_analog.cpp -o core_esp8266_wiring_analog.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring_digital.cpp -o core_esp8266_wiring_digital.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring_pulse.cpp -o core_esp8266_wiring_pulse.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring_pwm.cpp -o core_esp8266_wiring_pwm.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)core_esp8266_wiring_shift.cpp -o core_esp8266_wiring_shift.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)crc32.cpp -o crc32.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)debug.cpp -o debug.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)flash_hal.cpp -o flash_hal.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)gdb_hooks.cpp -o gdb_hooks.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)heap.cpp -o heap.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)sntp-lwip2.cpp -o sntp-lwip2.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)libc_replacements.cpp -o libc_replacements.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs_api.cpp -o spiffs_api.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)sqrt32.cpp -o sqrt32.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)time.cpp -o time.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)uart.cpp -o uart.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)libb64/cdecode.cpp -o libb64/cdecode.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)libb64/cencode.cpp -o libb64/cencode.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs/spiffs_cache.cpp -o spiffs/spiffs_cache.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs/spiffs_check.cpp -o spiffs/spiffs_check.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs/spiffs_gc.cpp -o spiffs/spiffs_gc.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs/spiffs_hydrogen.cpp -o spiffs/spiffs_hydrogen.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)spiffs/spiffs_nucleus.cpp -o spiffs/spiffs_nucleus.cpp.o
$(CPP) -D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ $(INCLUDE_FILES) $(CPP_FLAGS) $(LIBRARY_DIR)umm_malloc/umm_malloc.cpp -o umm_malloc/umm_malloc.cpp.o
#rm core.a
$(AR) cru $(CURRENT_DIR)core/core.a cont.S.o
$(AR) cru $(CURRENT_DIR)core/core.a umm_malloc/umm_info.c.o
$(AR) cru $(CURRENT_DIR)core/core.a umm_malloc/umm_integrity.c.o
$(AR) cru $(CURRENT_DIR)core/core.a umm_malloc/umm_local.c.o
$(AR) cru $(CURRENT_DIR)core/core.a umm_malloc/umm_poison.c.o
$(AR) cru $(CURRENT_DIR)core/core.a Crypto.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Esp-frag.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Esp-version.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Esp.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a FS.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a FSnoop.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a FunctionalInterrupt.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a HardwareSerial.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a IPAddress.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a MD5Builder.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Print.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Schedule.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a StackThunk.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Stream.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a StreamString.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Tone.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a TypeConversion.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a Updater.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a WMath.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a WString.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a abi.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a base64.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a cbuf.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a cont_util.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_app_entry_noextra4k.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_eboot_command.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_features.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_flash_quirks.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_flash_utils.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_i2s.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_main.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_noniso.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_phy.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_postmortem.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_si2c.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_sigma_delta.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_spi_utils.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_timer.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_waveform.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring_analog.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring_digital.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring_pulse.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring_pwm.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a core_esp8266_wiring_shift.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a crc32.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a debug.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a flash_hal.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a gdb_hooks.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a heap.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a libb64/cdecode.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a libb64/cencode.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a libc_replacements.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a sntp-lwip2.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs/spiffs_cache.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs/spiffs_check.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs/spiffs_gc.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs/spiffs_hydrogen.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs/spiffs_nucleus.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a spiffs_api.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a sqrt32.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a time.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a uart.cpp.o
$(AR) cru $(CURRENT_DIR)core/core.a umm_malloc/umm_malloc.cpp.o
$(info Linking everything together...)
$(CC) -CC -E -P -DVTABLES_IN_FLASH $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/ld/eagle.app.v6.common.ld.h -o local.eagle.app.v6.common.ld
$(CC) -fno-exceptions -Wl,-Map -Wl,./$(MAIN_SKETCH).map -g -w -Os -nostdlib -Wl,--no-check-sections -u app_entry -u _printf_float -u _scanf_float -Wl,-static -L$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/lib -L$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/lib/NONOSDK22x_190703 -L$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/ld -L$(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sdk/libc/xtensa-lx106-elf/lib -Teagle.flash.4m2m.ld -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,spi_flash_read -o $(MAIN_SKETCH).elf -Wl,--start-group $(MAIN_SKETCH).o MqttClient.cpp.o ESP8266HTTPClient.a ESP8266WiFi.a ESP8266WebServer.a utils.cpp.o WifiAutoconfig.cpp.o EEPROM.cpp.o Ticker.a RemoteDebug.cpp.o RemoteDebugWS.cpp.o WebSockets.cpp.o WebSocketsServer.cpp.o WebSocketsClient.cpp.o ArduinoOTA.cpp.o ESP8266mDNS.a Hash.a core/core.a -lhal -lphy -lpp -lnet80211 -llwip2-536-feat -lwpa -lcrypto -lmain -lwps -lbearssl -laxtls -lespnow -lsmartconfig -lairkiss -lwpa2 -lstdc++ -lm -lc -lgcc -Wl,--end-group -L$(CURRENT_DIR)
python3 $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/elf2bin.py --eboot $(ARDUINO_DIR)hardware/esp8266/2.7.4/bootloaders/eboot/eboot.elf --app ./$(MAIN_SKETCH).elf --flash_mode $(FLASH_MODE) --flash_freq 40 --flash_size $(FLASH_SIZE) --path $(ARDUINO_DIR)tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin --out ./$(MAIN_SKETCH).bin
$(info Creating BIN file...)
python3 $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/signing.py --mode sign --privatekey ./private.key --bin ./$(MAIN_SKETCH).bin --out ./$(MAIN_SKETCH).bin.signed --legacy ./$(MAIN_SKETCH).bin.legacy_sig
$(ARDUINO_DIR)tools/python3/3.7.2-post1/python3 $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/sizes.py --elf ./$(MAIN_SKETCH).elf --path $(ARDUINO_DIR)tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin
clean:
rm -rf *.o
rm -rf *.c.d
rm -rf *.cpp.d
rm -rf *.S.d
rm -rf core/core.a
rm -rf libb64/*
rm -rf spiffs/*
rm -rf umm_malloc/*
rm -rf *.elf
rm -rf *.hex
rm -rf *.eep
rm -rf *.map
rm -rf *.ld
rm -rf *.bin
rm -rf *.a
upload:
$(info uploading...)
python3 $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/upload.py --chip esp8266 --port $(DEVICE) --baud $(BAUD) --before no_reset --after soft_reset write_flash 0x0 ./$(MAIN_SKETCH).bin
ota_upload:
python3 $(ARDUINO_DIR)hardware/esp8266/2.7.4/tools/espota.py -i $(DEVICEIP) -p 8266 --auth= -f ./$(MAIN_SKETCH).bin