<commit_before>#  copyright (c) 2010 Espressif System
#
.NOTPARALLEL:

TOP_DIR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST))))

# SDK base version, as released by Espressif depends on the RELEASE flag
#
# RELEASE = lastest pulls the latest V3.0.0 branch version as at the issue of this make
# otherwise it pulls the labelled version in the SDK version's release directory
#
ifeq ("$(RELEASE)","latest-3.0")
  SDK_VER        := 3.0.0
  SDK_FILE_SHA1  := NA
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-release-v$(SDK_VER)
  SDK_FILE_VER   := release/v$(SDK_VER)
else ifeq ("$(RELEASE)","master")
  SDK_VER        := master
  SDK_FILE_SHA1  := NA
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-$(SDK_VER)
  SDK_FILE_VER   := $(SDK_VER)
else
# SDK_VER        := 3.0
# SDK_FILE_VER   := v$(SDK_VER)
  SDK_FILE_VER   := e4434aa730e78c63040ace360493aef420ec267c
  SDK_VER        := 3.0-e4434aa
  SDK_FILE_SHA1  := ac6528a6a206d3d4c220e4035ced423eb314cfbf
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-$(SDK_FILE_VER)
endif
SDK_REL_DIR      := sdk/esp_iot_sdk_v$(SDK_VER)
SDK_DIR          := $(TOP_DIR)/$(SDK_REL_DIR)
APP_DIR          := $(TOP_DIR)/app

ESPTOOL_VER := 2.6

# Ensure that the Espresif SDK is search before application paths and also prevent
# the SDK's c_types.h from being included from anywhere, by predefining its include-guard.

CCFLAGS :=  $(CCFLAGS) -I $(PDIR)sdk-overrides/include -I $(SDK_DIR)/include -D_C_TYPES_H_
LDFLAGS := -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld $(LDFLAGS)

ifdef DEBUG
  CCFLAGS += -ggdb -O0
  LDFLAGS += -ggdb
else
  CCFLAGS += -O2
endif


# Handling of V=1/VERBOSE=1 flag
#
# if V=1, $(summary) does nothing
# if V is unset or not 1, $(summary) echoes a summary
VERBOSE ?=
V ?= $(VERBOSE)
ifeq ("$(V)","1")
  export summary := @true
else
  export summary := @echo
  # disable echoing of commands, directory names
  MAKEFLAGS += --silent -w
endif  # $(V)==1

ifndef BAUDRATE
  BAUDRATE=115200
endif

#############################################################
# Select compile
#
#  ** HEALTH WARNING ** This section is largely legacy directives left over from
#  an Espressif template.  As far as I (TerrryE) know, we've only used the Linux
#  Path. I have successfully build AMD and Intel (both x86, AMD64) and RPi ARM6
#  all under Ubuntu.  Our docker container runs on Windows in an Ubuntu VM.
#  <NAME> maintains a prebuild AMD64 xtensa cross-compile gcc v4.8.5
#  toolchain which is compatible with the non-OS SDK and can be used on any recent
#  Ubuntu version including the Docker and Travis build environments.
#
#  You have the option to build your own toolchain and specify a TOOLCHAIN_ROOT
#  environment variable (see https://github.com/pfalcon/esp-open-sdk).  If your
#  architecture is compatable then you can omit this variable and the make will
#  download and use this prebuilt toolchain.
#
#  If any developers wish to develop, test and support alternative environments
#  then please raise a GitHub issue on this work.
#

ifndef $(OS)
  # Assume Windows if MAKE_HOST contains "indows" and Linux otherwise
  ifneq (,$(findstring indows,$(MAKE_HOST)))
    OS := windows
  else
    OS := linux
  endif
endif

ifneq (,$(findstring indows,$(OS)))
  #------------ BEGIN UNTESTED ------------ We are not under Linux, e.g.under windows.
  ifeq ($(XTENSA_CORE),lx106)
    # It is xcc
    AR = xt-ar
    CC = xt-xcc
    CXX = xt-xcc
    NM = xt-nm
    CPP = xt-cpp
    OBJCOPY = xt-objcopy
    #MAKE = xt-make
    CCFLAGS += --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal
  else
    # It is gcc, may be cygwin
    # Can we use -fdata-sections?
    CCFLAGS += -ffunction-sections -fno-jump-tables -fdata-sections -fpack-struct=4
    AR = xtensa-lx106-elf-ar
    CC = xtensa-lx106-elf-gcc
    CXX = xtensa-lx106-elf-g++
    NM = xtensa-lx106-elf-nm
    CPP = xtensa-lx106-elf-cpp
    OBJCOPY = xtensa-lx106-elf-objcopy
  endif
  FIRMWAREDIR = ..\\bin\\
  ifndef COMPORT
    ESPPORT = com1
  else
    ESPPORT = $(COMPORT)
  endif
  ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
# ->AMD64
  endif
  ifeq ($(PROCESSOR_ARCHITECTURE),x86)
# ->IA32
  endif
  #---------------- END UNTESTED ---------------- We are under windows.
else
  # We are under other system, may be Linux. Assume using gcc.

  UNAME_S := $(shell uname -s)
  UNAME_P := $(shell uname -p)
  ifeq ($(OS),linux)
    ifndef TOOLCHAIN_ROOT
      TOOLCHAIN_VERSION = 20181106.0
      GCCTOOLCHAIN      = linux-x86_64-$(TOOLCHAIN_VERSION)
      TOOLCHAIN_ROOT    = $(TOP_DIR)/tools/toolchains/esp8266-$(GCCTOOLCHAIN)
      GITHUB_TOOLCHAIN  = https://github.com/jmattsson/esp-toolchains
      export PATH:=$(PATH):$(TOOLCHAIN_ROOT)/bin
    endif
  endif

  ifndef COMPORT
    ESPPORT = /dev/ttyUSB0
  else
    ESPPORT = $(COMPORT)
  endif

  CCFLAGS += -ffunction-sections -fno-jump-tables -fdata-sections
  AR      = xtensa-lx106-elf-ar
  CC      = $(WRAPCC) xtensa-lx106-elf-gcc
  CXX     = $(WRAPCC) xtensa-lx106-elf-g++
  NM      = xtensa-lx106-elf-nm
  CPP     = $(WRAPCC) xtensa-lx106-elf-gcc -E
  OBJCOPY = xtensa-lx106-elf-objcopy
  FIRMWAREDIR = ../bin/
  WGET = wget --tries=10 --timeout=15 --waitretry=30 --read-timeout=20 --retry-connrefused<commit_msg>Bump toolchain to 20190731.0 (#3172)<commit_after>#  copyright (c) 2010 Espressif System
#
.NOTPARALLEL:

TOP_DIR:=$(abspath $(dir $(lastword $(MAKEFILE_LIST))))

# SDK base version, as released by Espressif depends on the RELEASE flag
#
# RELEASE = lastest pulls the latest V3.0.0 branch version as at the issue of this make
# otherwise it pulls the labelled version in the SDK version's release directory
#
ifeq ("$(RELEASE)","latest-3.0")
  SDK_VER        := 3.0.0
  SDK_FILE_SHA1  := NA
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-release-v$(SDK_VER)
  SDK_FILE_VER   := release/v$(SDK_VER)
else ifeq ("$(RELEASE)","master")
  SDK_VER        := master
  SDK_FILE_SHA1  := NA
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-$(SDK_VER)
  SDK_FILE_VER   := $(SDK_VER)
else
# SDK_VER        := 3.0
# SDK_FILE_VER   := v$(SDK_VER)
  SDK_FILE_VER   := e4434aa730e78c63040ace360493aef420ec267c
  SDK_VER        := 3.0-e4434aa
  SDK_FILE_SHA1  := ac6528a6a206d3d4c220e4035ced423eb314cfbf
  SDK_ZIP_ROOT   := ESP8266_NONOS_SDK-$(SDK_FILE_VER)
endif
SDK_REL_DIR      := sdk/esp_iot_sdk_v$(SDK_VER)
SDK_DIR          := $(TOP_DIR)/$(SDK_REL_DIR)
APP_DIR          := $(TOP_DIR)/app

ESPTOOL_VER := 2.6

# Ensure that the Espresif SDK is search before application paths and also prevent
# the SDK's c_types.h from being included from anywhere, by predefining its include-guard.

CCFLAGS :=  $(CCFLAGS) -I $(PDIR)sdk-overrides/include -I $(SDK_DIR)/include -D_C_TYPES_H_
LDFLAGS := -L$(SDK_DIR)/lib -L$(SDK_DIR)/ld $(LDFLAGS)

ifdef DEBUG
  CCFLAGS += -ggdb -O0
  LDFLAGS += -ggdb
else
  CCFLAGS += -O2
endif


# Handling of V=1/VERBOSE=1 flag
#
# if V=1, $(summary) does nothing
# if V is unset or not 1, $(summary) echoes a summary
VERBOSE ?=
V ?= $(VERBOSE)
ifeq ("$(V)","1")
  export summary := @true
else
  export summary := @echo
  # disable echoing of commands, directory names
  MAKEFLAGS += --silent -w
endif  # $(V)==1

ifndef BAUDRATE
  BAUDRATE=115200
endif

#############################################################
# Select compile
#
#  ** HEALTH WARNING ** This section is largely legacy directives left over from
#  an Espressif template.  As far as I (TerrryE) know, we've only used the Linux
#  Path. I have successfully build AMD and Intel (both x86, AMD64) and RPi ARM6
#  all under Ubuntu.  Our docker container runs on Windows in an Ubuntu VM.
#  <NAME> maintains a prebuild AMD64 xtensa cross-compile gcc v4.8.5
#  toolchain which is compatible with the non-OS SDK and can be used on any recent
#  Ubuntu version including the Docker and Travis build environments.
#
#  You have the option to build your own toolchain and specify a TOOLCHAIN_ROOT
#  environment variable (see https://github.com/pfalcon/esp-open-sdk).  If your
#  architecture is compatable then you can omit this variable and the make will
#  download and use this prebuilt toolchain.
#
#  If any developers wish to develop, test and support alternative environments
#  then please raise a GitHub issue on this work.
#

ifndef $(OS)
  # Assume Windows if MAKE_HOST contains "indows" and Linux otherwise
  ifneq (,$(findstring indows,$(MAKE_HOST)))
    OS := windows
  else
    OS := linux
  endif
endif

ifneq (,$(findstring indows,$(OS)))
  #------------ BEGIN UNTESTED ------------ We are not under Linux, e.g.under windows.
  ifeq ($(XTENSA_CORE),lx106)
    # It is xcc
    AR = xt-ar
    CC = xt-xcc
    CXX = xt-xcc
    NM = xt-nm
    CPP = xt-cpp
    OBJCOPY = xt-objcopy
    #MAKE = xt-make
    CCFLAGS += --rename-section .text=.irom0.text --rename-section .literal=.irom0.literal
  else
    # It is gcc, may be cygwin
    # Can we use -fdata-sections?
    CCFLAGS += -ffunction-sections -fno-jump-tables -fdata-sections -fpack-struct=4
    AR = xtensa-lx106-elf-ar
    CC = xtensa-lx106-elf-gcc
    CXX = xtensa-lx106-elf-g++
    NM = xtensa-lx106-elf-nm
    CPP = xtensa-lx106-elf-cpp
    OBJCOPY = xtensa-lx106-elf-objcopy
  endif
  FIRMWAREDIR = ..\\bin\\
  ifndef COMPORT
    ESPPORT = com1
  else
    ESPPORT = $(COMPORT)
  endif
  ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
# ->AMD64
  endif
  ifeq ($(PROCESSOR_ARCHITECTURE),x86)
# ->IA32
  endif
  #---------------- END UNTESTED ---------------- We are under windows.
else
  # We are under other system, may be Linux. Assume using gcc.

  UNAME_S := $(shell uname -s)
  UNAME_P := $(shell uname -p)
  ifeq ($(OS),linux)
    ifndef TOOLCHAIN_ROOT
      TOOLCHAIN_VERSION = 20190731.0
      GCCTOOLCHAIN      = linux-x86_64-$(TOOLCHAIN_VERSION)
      TOOLCHAIN_ROOT    = $(TOP_DIR)/tools/toolchains/esp8266-$(GCCTOOLCHAIN)
      GITHUB_TOOLCHAIN  = https://github.com/jmattsson/esp-toolchains
      export PATH:=$(PATH):$(TOOLCHAIN_ROOT)/bin
    endif
  endif

  ifndef COMPORT
    ESPPORT = /dev/ttyUSB0
  else
    ESPPORT = $(COMPORT)
  endif

  CCFLAGS += -ffunction-sections -fno-jump-tables -fdata-sections
  AR      = xtensa-lx106-elf-ar
  CC      = $(WRAPCC) xtensa-lx106-elf-gcc
  CXX     = $(WRAPCC) xtensa-lx106-elf-g++
  NM      = xtensa-lx106-elf-nm
  CPP     = $(WRAPCC) xtensa-lx106-elf-gcc -E
  OBJCOPY = xtensa-lx106-elf-objcopy
  FIRMWAREDIR = ../bin/
  WGET = wget --tries=10 --timeout=15 --waitretry=30 --read-timeout=20 --retry-connrefused
{'fraction_non_alphanumeric': 0.13409332431649115, 'fraction_numerical': 0.03738769201043377, 'mean_word_length': 3.1607717041800645, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 9, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2778116', 'n_tokens_mistral': 4213, 'n_tokens_neox': 3724, 'n_words': 1033}