The idea behind having two variables for libraries is to allow the improvement of the standard libraries.

  • APP_LIBS_LIST for the libraries provided by the Arduino IDE, and
  • USER_LIBS_LIST for the libraries developed by the end-user.


Actually, calling the libraries provided by the Arduino IDE is done through #include <library.h> while calling the libraries developed by the end-user requires #include "library.h".


Let's say you want to improve the Wire library and use the I²C fast mode.

  • Just make a copy of the original Wire library into the user's libraries folder located on the sketchbook folder.
  • Then, edit the new file and set the speed to 400 kHz.
  • Finally, edit the main makefile to select 
    • either the legacy library with APP_LIBS_LIST = Wire
    • or the newly optimised library with USER_LIBS_LIST = Wire.

 

This allows great flexibility.

 

⊞ With embedXcode+, the makefile comes populated with the list of the core, application and user’s libraries. This list is added

during the preparation and for the selected platform of the project.


# List application Arduino/chipKIT/Digispark/Energia/Maple/Microduino/Teensy/Wiring libraries here

# default = 0 = none

#

# ARDUINO = EEPROM SoftwareSerial SPI Wire SPI Wire Audio Bridge Esplora Ethernet Firmata GSM LiquidCrystal

# Robot_Control Robot_Motor RobotIRremote Scheduler SD Servo SpacebrewYun Stepper Temboo TFT USBHost WiFi

#

APP_LIBS_LIST = Wire


# List user's libraries here

# default = 0 = none

#

# USER = I2C_Stepper I2C_Thermometer Serial_GPS Serial_LCD

#

USER_LIBS_LIST = I2C_Stepper

 

Just copy-paste those you want to use!