Skip to content

Third Party Libraries

Angus Gratton edited this page Jun 3, 2015 · 2 revisions

Third party libraries that are included in esp-open-rtos are included, where possible, as git submodules.

This allows that:

  • They can be versioned independently from esp-open-rtos
  • Updates to the libraries from upstream should be easy to merge in.
  • Changes made locally can be pushed upstream as patches.

When possible no esp8266-specific code is added to the third party code. In the case of lwIP this isn't possible, so "upstream" for that library is https://github.com/kadamski/esp-lwip

Directory structure

Each third party module has a base directory that contains:

  • The component.mk makefile (see Build Process).
  • Any ESP8266-specific source files.
  • (Optionally) an 'include' directory with esp8266-specific header files.
  • A subdirectory containing the original upstream source.

So, for instance, axtls is the directory with ESP8266-specific axTLS components and axtls/axtls contains the upstream axtls repository, linked as a git submodule.

The exception is the FreeRTOS/ directory, which follows the same directory structure as upstream FreeRTOS (common code in FreeRTOS/source, esp8266-specific code in FreeRTOS/Source/portable/esp8266.)