2002 lines
31 KiB
Markdown
2002 lines
31 KiB
Markdown
# Documentation of variables
|
|
|
|
The following are the different variables that can be overwritten in the user makefiles.
|
|
|
|
* [Global variables](#global-variables)
|
|
* [Installation/Directory variables](#installationdirectory-variables)
|
|
* [Arduino IDE variables](#arduino-ide-variables)
|
|
* [Sketch related variables](#sketch-related-variables)
|
|
* [ISP programming variables](#isp-programming-variables)
|
|
* [Compiler/Executable variables](#compilerexecutable-variables)
|
|
* [Avrdude setting variables](#avrdude-setting-variables)
|
|
* [Bootloader variables](#bootloader-variables)
|
|
* [ChipKIT variables](#chipkit-variables)
|
|
* [ARM variables](#arm-variables)
|
|
* [Ctags variables](#ctags-variables)
|
|
|
|
## Global variables
|
|
|
|
### ARDUINO_QUIET
|
|
|
|
**Description:**
|
|
|
|
Suppress printing of Arduino-Makefile configuration.
|
|
|
|
Defaults to `0` (unset/disabled).
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_QUIET = 1
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Installation/Directory variables
|
|
|
|
### ARDMK_DIR
|
|
|
|
**Description:**
|
|
|
|
Directory where the `*.mk` files are stored.
|
|
|
|
Usually can be auto-detected as parent of `Arduino.mk`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDMK_DIR = /usr/share/arduino
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVR_TOOLS_DIR
|
|
|
|
**Description:**
|
|
|
|
Directory where tools such as `avrdude`, `avr-g++`, `avr-gcc`, etc. are stored in the `bin/` subdirectory.
|
|
|
|
Usually can be auto-detected from `$PATH` as `SYSTEMPATH_AVR_TOOLS_DIR` or as `BUNDLED_AVR_TOOLS_DIR` within the Arduino distribution.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVR_TOOLS_DIR = /usr
|
|
# or
|
|
AVR_TOOLS_DIR = /usr/share/arduino/hardware/tools/avr
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARM_TOOLS_DIR
|
|
|
|
**Description:**
|
|
|
|
Directory where the arm toolchain is installed. `arm-none-eabi-*` should be
|
|
within a /bin subdirectory.
|
|
|
|
Can usually be detected from `$ARDUINO_PACKAGE_DIR` /tools subdirectory when ARM
|
|
device support is installed.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARM_TOOLS_DIR = /usr
|
|
# or
|
|
ARM_TOOLS_DIR =
|
|
/usr/share/arduino/hardware/tools/arm-none-eabi-gcc/VERSION
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARM_TOOLS_VER
|
|
|
|
**Description:**
|
|
|
|
Sub-directory where the arm toolchain is installed - usually the tool version.
|
|
|
|
Can usually be detected from `$ARDUINO_PACKAGE_DIR` /tools subdirectory when ARM
|
|
device support is installed. Will resolve latest version if multiple found.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARM_TOOLS_VER = 7-2017q4
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### RESET_CMD
|
|
|
|
**Description:**
|
|
|
|
Command to reset the MCU.
|
|
|
|
Defaults to `ard-reset-arduino` with the extra `--caterina` flag for atmega32u4 boards.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
RESET_CMD = $(HOME)/gertduino/reset
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### PYTHON_CMD
|
|
|
|
**Description:**
|
|
|
|
Path to Python binary. Requires pyserial module installed. Makefile will error if unable to auto-find as utility scripts will not work. To override this, give it an empty define.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
PYTHON_CMD = /usr/bin/python3
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### GREP_CMD
|
|
|
|
**Description:**
|
|
|
|
Path to GNU grep binary. Only added for macOS, which has BSD grep by default but results in some parsing warnings. macOS users should install GNU grep using Homebrew.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
GREP_CMD = /bin/grep
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Arduino IDE variables
|
|
|
|
### ARDUINO_DIR
|
|
|
|
**Description:**
|
|
|
|
Directory where the Arduino IDE and/or core files are stored. Usually can be auto-detected as `AUTO_ARDUINO_DIR`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
ARDUINO_DIR = /usr/share/arduino
|
|
# Mac OS X
|
|
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
|
|
# Mac OSX with IDE 1.5+
|
|
ARDUINO_DIR = /Applications/Arduino.app/Contents/Java
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_PACKAGE_DIR
|
|
|
|
**Description:**
|
|
|
|
Directory where the Arduino package support files are stored. Can auto-detect based on default OS IDE locations.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
ARDUINO_PACKAGE_DIR = $(HOME)/.arduino15/packages
|
|
# Mac OS X
|
|
ARDUINO_PACKAGE_DIR = $(HOME)/Library/Arduino15/packages
|
|
# Windows
|
|
ARDUINO_PACKAGE_DIR = $(USERPROFILE)/AppData/Local/Arduino15/packages
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_PLATFORM_LIB_PATH
|
|
|
|
**Description:**
|
|
|
|
Directory where the Arduino platform dependent libraries are stored.
|
|
(Used only for Arduino 1.5+)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_PLATFORM_LIB_PATH = /usr/share/arduino/hardware/arduino/avr/libraries
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_VERSION
|
|
|
|
**Description:**
|
|
|
|
Version string for Arduino IDE and/or core.
|
|
|
|
Usually can be auto-detected as `AUTO_ARDUINO_VERSION` from `/usr/share/arduino/lib/version.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_VERSION = 105
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARCHITECTURE
|
|
|
|
**Description:**
|
|
|
|
Architecture for Arduino 1.5+
|
|
|
|
Defaults to unset for 1.0 or `avr` for 1.5+. This value is not literally the chip architecture but will often be
|
|
the chip series within a vendor's 'hardware' folder. For example, will default to `samd` if using Sam.mk.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARCHITECTURE = arm
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDMK_VENDOR
|
|
|
|
**Description:**
|
|
|
|
Board vendor/maintainer/series.
|
|
|
|
Defaults to `arduino`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDMK_VENDOR = sparkfun
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_SKETCHBOOK
|
|
|
|
**Description:**
|
|
|
|
Path to `sketchbook` directory.
|
|
|
|
Usually can be auto-detected from the Arduino `preferences.txt` file or the default `$(HOME)/sketchbook`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_SKETCHBOOK = $(HOME)/sketches
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_PREFERENCES_PATH
|
|
|
|
**Description:**
|
|
|
|
Path to Arduino `preferences.txt` file.
|
|
|
|
Usually can be auto-detected as `AUTO_ARDUINO_PREFERENCES` from the defaults:
|
|
|
|
* on Linux (1.0): `$(HOME)/.arduino/preferences.txt`
|
|
* on Linux (1.5+): `$(HOME)/.arduino15/preferences.txt`
|
|
* on Mac OS X (1.0): `$(HOME)/Library/Arduino/preferences.txt`
|
|
* on Mac OS X (1.5+): `$(HOME)/Library/Arduino15/preferences.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_PREFERENCES_PATH = $(HOME)/sketches/preferences.txt
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_CORE_PATH
|
|
|
|
**Description:**
|
|
|
|
Path to standard Arduino core files.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduino
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Sketch related variables
|
|
|
|
### ARDUINO_LIBS
|
|
|
|
**Description:**
|
|
|
|
Any libraries you intend to include.
|
|
|
|
Usually can be auto-detected from the sketch. Separated by spaces. If the library has a `/utility` folder (like `SD` or `Wire` library), then the utility folder should also be specified.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_LIBS = SD SD/utility Wire Wire/utility
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOARD_TAG
|
|
|
|
**Description:**
|
|
|
|
Device type as listed in `boards.txt` or `make show_boards`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOARD_TAG = uno or mega2560
|
|
```
|
|
|
|
**Requirement:** *Mandatory*
|
|
|
|
----
|
|
|
|
### BOARD_SUB
|
|
|
|
**Description:**
|
|
|
|
1.5+ submenu as listed in `boards.txt` or `make show_submenu`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# diecimila.name=Arduino Duemilanove or Diecimila
|
|
BOARD_TAG=diecimila
|
|
|
|
# diecimila.menu.cpu.atmega168=ATmega168
|
|
BOARD_SUB=atmega168
|
|
```
|
|
|
|
**Requirement:** *Mandatory for 1.5+ if using a submenu CPU*
|
|
|
|
----
|
|
|
|
### BOARD_CLOCK
|
|
|
|
**Description:**
|
|
|
|
Allow selection of f_cpu and fuses specified in `boards.txt` as `{BOARD_TAG}.menu.clock.{BOARD_CLOCK}`.
|
|
This works for microprocessor board definitions like ATtiny that specify not only the clock speed but fuse settings as clock overrides.
|
|
|
|
It also works for f_cpu values specified in `boards.txt` as `{BOARD_TAG}.menu.speed.{BOARD_CLOCK}`.
|
|
For example, the Watterott ATmega328PB library [https://github.com/watterott/ATmega328PB-Testing](https://github.com/watterott/ATmega328PB-Testing).
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Select external 16 MHz clock
|
|
BOARD_CLOCK=external16
|
|
```
|
|
|
|
**Example:**
|
|
```Makefile
|
|
# Select 20MHz speed
|
|
BOARD_CLOCK=20mhz
|
|
```
|
|
|
|
**Requirement:** *Optional to override main board f_cpu and/or fuse settings.*
|
|
|
|
----
|
|
|
|
### MONITOR_PORT
|
|
|
|
**Description:**
|
|
|
|
Path to serial (USB) device used for uploading/serial comms.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
MONITOR_PORT = /dev/ttyUSB0
|
|
# or
|
|
MONITOR_PORT = /dev/ttyACM0
|
|
# Mac OS X
|
|
MONITOR_PORT = /dev/cu.usb*
|
|
# Windows
|
|
MONITOR_PORT = com3
|
|
```
|
|
|
|
**Requirement:** *Mandatory*
|
|
|
|
----
|
|
|
|
### FORCE_MONITOR_PORT
|
|
|
|
**Description:**
|
|
|
|
Skip the MONITOR_PORT existance check.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Enable
|
|
FORCE_MONITOR_PORT = true
|
|
# Disable (default)
|
|
undefine FORCE_MONITOR_PORT
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### USER_LIB_PATH
|
|
|
|
**Description:**
|
|
|
|
Directory where additional libraries are stored.
|
|
|
|
Defaults to `libraries` directory within user's sketchbook.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
USER_LIB_PATH = $(HOME)/sketchbook/libraries
|
|
# For a random project on *nix
|
|
USER_LIB_PATH = /path/to/my/project
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OBJDIR
|
|
|
|
**Description:**
|
|
|
|
Directory where binaries and compiled files are put.
|
|
|
|
Defaults to `build-$(BOARD_TAG)` in your `Makefile` directory.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OBJDIR = /path/to/my/project-directory/bin
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### TARGET
|
|
|
|
**Description:**
|
|
|
|
What name you would like for generated target files.
|
|
|
|
Defaults to the name of your current working directory, but with underscores (_) instead of spaces.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
TARGET = my-project
|
|
```
|
|
|
|
Will generate targets like `my-project.hex` and `my-project.elf`.
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ALTERNATE_CORE
|
|
|
|
**Description:**
|
|
|
|
Non-standard core for Arduino-unsupported chips like the ATtiny.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# HLT core
|
|
ALTERNATE_CORE = attiny-master
|
|
# tiny core
|
|
ALTERNATE_CORE = arduino-tiny
|
|
# tiny core 2
|
|
ALTERNATE_CORE = tiny2
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_VAR_PATH
|
|
|
|
**Description:**
|
|
|
|
Path to non-standard core's variant files.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_VAR_PATH = $(HOME)/sketchbook/hardware/arduino-tiny/cores/tiny
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CORE
|
|
|
|
**Description:**
|
|
|
|
Name of the core *inside* the ALTERNATE_CORE or the standard core.
|
|
|
|
Usually can be auto-detected as `build.core` from `boards.txt`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# standard Arduino core (undefine ALTERNATE_CORE)
|
|
CORE = arduino
|
|
# or
|
|
CORE = robot
|
|
# tiny core (ALTERNATE_CORE = arduino-tiny)
|
|
CORE = tiny
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOARD
|
|
|
|
**Description:**
|
|
|
|
Board identifier that passes to a compile option as -DARDUINO_$(BOARD).
|
|
|
|
Usually can be auto-detected as `build.board` from `boards.txt`.
|
|
|
|
If not found build.board entry, use upper-case converted "$(ARCHITECTURE)_$(BOARD_TAG)".
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOARD = AVR_LEONARD
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### VARIANT
|
|
|
|
**Description:**
|
|
|
|
Variant of a standard board design.
|
|
|
|
Usually can be auto-detected as `build.variant` from `boards.txt`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
VARIANT = leonardo
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### USB_TYPE
|
|
|
|
**Description:**
|
|
|
|
Define Teensy 3.1 usb device type. Default is USB_SERIAL
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
USB_TYPE = USB_SERIAL
|
|
# or
|
|
USB_TYPE = USB_HID
|
|
# or
|
|
USB_TYPE = USB_SERIAL_HID
|
|
# or
|
|
USB_TYPE = USB_MIDI
|
|
# or
|
|
USB_TYPE = USB_RAWHID
|
|
# or
|
|
USB_TYPE = USB_FLIGHTSIM
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### USB_VID
|
|
|
|
**Description:**
|
|
|
|
Override `USB VID` for atmega32u4 boards.
|
|
|
|
Usually can be auto-detected as `build.vid` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
USB_VID = 0x2341
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### USB_PID
|
|
|
|
**Description:**
|
|
|
|
Override `USB PID` for atmega32u4 boards.
|
|
|
|
Usually can be auto-detected as `build.pid` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
USB_PID = 0x8039
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### F_CPU
|
|
|
|
**Description:**
|
|
|
|
CPU speed in Hz
|
|
|
|
Usually can be auto-detected as `build.f_cpu` from `boards.txt`, except in
|
|
some 1.5+ cores like attiny where there is a clock submenu.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
F_CPU = 8000000L
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### HEX_MAXIMUM_SIZE
|
|
|
|
**Description:**
|
|
|
|
Maximum hex file size
|
|
|
|
Usually can be auto-detected as `upload.maximum_size` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
HEX_MAXIMUM_SIZE = 14336
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MCU
|
|
|
|
**Description:**
|
|
|
|
Microcontroller model.
|
|
|
|
Usually can be auto-detected as `build.mcu` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MCU = atmega32u4
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MCU_FLAG_NAME
|
|
|
|
**Description:**
|
|
|
|
Override default MCU flags.
|
|
|
|
Defaults to `mmcu`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MCU_FLAG_NAME = mprocessor
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MONITOR_BAUDRATE
|
|
|
|
**Description:**
|
|
|
|
Baudrate of the serial monitor.
|
|
|
|
Defaults to `9600` if it can't find it in the sketch `Serial.begin()`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MONITOR_BAUDRATE = 57600
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## ISP programming variables
|
|
|
|
### ISP_PROG
|
|
|
|
**Description:**
|
|
|
|
Type of ISP. Either a USB device or ArduinoISP protocol.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ISP_PROG = usbasp
|
|
# or
|
|
ISP_PROG = usbtiny
|
|
# or
|
|
ISP_PROG = stk500v2
|
|
# or
|
|
ISP_PROG = stk500v1
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ISP_PORT
|
|
|
|
**Description:**
|
|
|
|
Device path to ArduinoISP. Not needed for hardware ISP's. Also used to define
|
|
bootloader port on SAMD devices.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
ISP_PORT = /dev/ttyACM0
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ISP_LOCK_FUSE_PRE
|
|
|
|
**Description:**
|
|
|
|
Bootloader unlock bits.
|
|
|
|
Usually can be auto-detected from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ISP_LOCK_FUSE_PRE = 0x3f
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ISP_LOCK_FUSE_POST
|
|
|
|
**Description:**
|
|
|
|
Bootloader lock bits.
|
|
|
|
Usually can be auto-detected from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ISP_LOCK_FUSE_POST = 0xcf
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ISP_HIGH_FUSE
|
|
|
|
**Description:**
|
|
|
|
`ISP_LOW_FUSE/ISP_EXT_FUSE` - high/low/extended fuse bits.
|
|
|
|
Usually can be auto-detected from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ISP_HIGH_FUSE = 0xdf # or 0xff or 0x01
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ISP_EEPROM
|
|
|
|
**Description:**
|
|
|
|
Whether to upload the EEPROM file or not.
|
|
|
|
Defaults to `0`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ISP_EEPROM = 1
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Compiler/Executable variables
|
|
|
|
### CC_NAME
|
|
|
|
**Description:**
|
|
|
|
C compiler.
|
|
|
|
Defaults to `avr-gcc`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CC_NAME = pic32-gcc
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Compiler/Executable variables
|
|
|
|
### TOOL_PREFIX
|
|
|
|
**Description:**
|
|
|
|
The tool prefix, which gets prepended to the tools like $(TOOL_PREFIX)-gcc, $(TOOL_PREFIX)-g++, etc.
|
|
The following tools will be prefixed with '$(TOOL_PREFIX)-':
|
|
|
|
* gcc
|
|
* g++
|
|
* as
|
|
* objcopy
|
|
* objdump
|
|
* ar
|
|
* size
|
|
* nm
|
|
|
|
Defaults to `avr`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
TOOL_PREFIX = arm-none-eabi
|
|
TOOL_PREFIX = pic32
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CXX_NAME
|
|
|
|
**Description:**
|
|
|
|
C++ compiler.
|
|
|
|
Defaults to `avr-g++`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CXX_NAME = pic32-g++
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OBJCOPY_NAME
|
|
|
|
**Description:**
|
|
|
|
Objcopy utility.
|
|
|
|
Defaults to `avr-objcopy`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OBJCOPY_NAME = pic32-objcopy
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OBJDUMP_NAME
|
|
|
|
**Description:**
|
|
|
|
Objdump utility.
|
|
|
|
Defaults to `avr-objdump`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OBJDUMP_NAME = pic32-objdump
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AR_NAME
|
|
|
|
**Description:**
|
|
|
|
Archive utility.
|
|
|
|
Defaults to `avr-ar` unless you're using toolchain > 4.9.0 in which case we use avr-gcc-ar.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AR_NAME = pic32-ar
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### SIZE_NAME
|
|
|
|
**Description:**
|
|
|
|
Size utility.
|
|
|
|
Defaults to `avr-size`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
SIZE_NAME = pic32-size
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### NM_NAME
|
|
|
|
**Description:**
|
|
|
|
Nm utility.
|
|
|
|
Defaults to `avr-nm`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
NM_NAME = pic32-nm
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### GDB_NAME
|
|
|
|
**Description:**
|
|
|
|
GDB utility.
|
|
|
|
Defaults to `arm-none-eabi-gdb`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OPTIMIZATION_LEVEL
|
|
|
|
**Description:**
|
|
|
|
Linker's `-O` flag
|
|
|
|
Defaults to `s`, which shouldn't really be changed as it breaks `SoftwareSerial` and usually results in bigger hex files.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OPTIMIZATION_LEVEL = 3
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OTHER_LIBS
|
|
|
|
**Description:**
|
|
|
|
Additional Linker lib flags, for platform support
|
|
|
|
Defaults to ""
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OTHER_LIBS = -lsomeplatformlib
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CFLAGS_STD
|
|
|
|
**Description:**
|
|
|
|
Controls, *exclusively*, which C standard is to be used for compilation.
|
|
|
|
Defaults to `undefined` on 1.0.x or `-std=gnu11` on 1.5+ or if you install AVR toolchain > 4.9.0
|
|
|
|
Possible values:
|
|
|
|
* With `avr-gcc 4.3`, shipped with the 1.0 Arduino IDE:
|
|
* `undefined`
|
|
* `-std=c99`
|
|
* `-std=gnu89` - This is the default for C code
|
|
* `-std=gnu99`
|
|
* With `avr-gcc 4.7, 4.8 or 4.9`, installed by you or 1.5+ IDE:
|
|
* `undefined`
|
|
* `-std=c99`
|
|
* `-std=c11`
|
|
* `-std=gnu89`
|
|
* `-std=gnu99`
|
|
* `-std=gnu11` - This is the default for C code
|
|
|
|
For more information, please refer to the [Options Controlling C Dialect](https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CFLAGS_STD = -std=gnu89
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CXXFLAGS_STD
|
|
|
|
**Description:**
|
|
|
|
Controls, *exclusively*, which C++ standard is to be used for compilation.
|
|
|
|
Defaults to `undefined` on 1.0 or `-std=gnu++11` on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
|
|
|
|
Possible values:
|
|
|
|
* With `avr-gcc 4.3`, shipped with the 1.0 Arduino IDE:
|
|
* `undefined`
|
|
* `-std=c++98`
|
|
* `-std=c++0x`
|
|
* `-std=gnu++98` - This is the default for C code
|
|
* `-std=gnu++0x`
|
|
* With `avr-gcc 4.7, 4.8 or 4.9`, installed by you or 1.5+ IDE:
|
|
* `undefined`
|
|
* `-std=c++98`
|
|
* `-std=c++11`
|
|
* `-std=c++1y`
|
|
* `-std=c++14`
|
|
* `-std=gnu++98`
|
|
* `-std=gnu++11` - This is the default for C++ code
|
|
* `-std=gnu++1y`
|
|
* `-std=gnu++14`
|
|
|
|
For more information, please refer to the [Options Controlling C Dialect](https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CXXFLAGS_STD = -std=gnu++98
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CFLAGS
|
|
|
|
**Description:**
|
|
|
|
Flags passed to compiler for files compiled as C. Add more flags to this
|
|
variable using `+=`.
|
|
|
|
Defaults to `undefined` on 1.0 or `-flto -fno-fat-lto-objects -fdiagnostics-color=$(DIAGNOSTICS_COLOR_WHEN)` on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CFLAGS += -my-c-only-flag
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CXXFLAGS
|
|
|
|
**Description:**
|
|
|
|
Flags passed to the compiler for files compiled as C++. Add more flags to this
|
|
variable using `+=`.
|
|
|
|
Defaults to `-fpermissive -fno-exceptions` on 1.0
|
|
or `-fpermissive -fno-exceptions -fno-threadsafe-statics -flto -fno-devirtualize -fdiagnostics-color`
|
|
on AVR toolchain > 4.9.0 (e.g. IDE 1.6.10+)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CXXFLAGS += -my-c++-onlyflag
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### DIAGNOSTICS_COLOR_WHEN
|
|
|
|
**Description:**
|
|
|
|
This variable controls the compiler's diagnostics-color setting, as defined
|
|
in CFLAGS or CXXFLAGS, on AVR toolchain > 4.9.0.
|
|
Supported values are: `always`, `never` and `auto`.
|
|
For more details, see: [Options to Control Diagnostic Messages Formatting]
|
|
(https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#Language-Independent-Options)
|
|
|
|
Defaults to `always`.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
DIAGNOSTICS_COLOR_WHEN = never
|
|
# or
|
|
DIAGNOSTICS_COLOR_WHEN = auto
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ASFLAGS
|
|
|
|
**Description:**
|
|
|
|
Flags passed to compiler for files compiled as assembly (e.g. `.S` files). Add
|
|
more flags to this variable using `+=`.
|
|
|
|
Defaults to all flags required for a typical build.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ASFLAGS += -my-as-only-flag
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CPPFLAGS
|
|
|
|
**Description:**
|
|
|
|
Flags passed to the C pre-processor (for C, C++ and assembly source files). Add
|
|
more flags to this variable using `+=`.
|
|
|
|
Defaults to all flags required for a typical build.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CPPFLAGS += -DMY_DEFINE_FOR_ALL_SOURCE_TYPES
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OVERRIDE_EXECUTABLES
|
|
|
|
**Description:**
|
|
|
|
Override the default build tool paths and names.
|
|
|
|
If OVERRIDE_EXECUTABLES is defined, all tools (`CC`, `CXX`, `AS`,
|
|
`OBJCOPY`, `OBJDUMP`, `AR`, `SIZE`, `NM`) must have their paths
|
|
explicitly defined. This may be used in the rare case where
|
|
overriding a path and/or executable name is required.
|
|
The "?=" assignment cannot be used because the executable tags
|
|
are already implicitly defined by Make (e.g. $(CC) == cc).
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
OVERRIDE_EXECUTABLES = 1
|
|
CC = /usr/bin/avr-gcc
|
|
CXX = /usr/bin/avr-g++
|
|
AS = /usr/bin/avr-as
|
|
OBJCOPY = /usr/bin/avr-objcopy
|
|
OBJDUMP = /usr/bin/avr-objdump
|
|
AR = /usr/bin/avr-ar
|
|
SIZE = /some_path/alternative_avr-size
|
|
NM = /some_path/alternative_avr-nm
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MONITOR_CMD
|
|
|
|
**Description:**
|
|
|
|
Command to run the serial monitor.
|
|
|
|
Defaults to `screen`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MONITOR_CMD = minicom
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MONITOR_PARAMS
|
|
|
|
**Description:**
|
|
|
|
Additional parameters for the putty -sercfg command line argument.
|
|
|
|
Interpreted as a comma-separated list of configuration options.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MONITOR_PARAMS = 8,1,n,N
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### PRE_BUILD_HOOK
|
|
|
|
**Description:**
|
|
|
|
Path to shell script to be executed before build. Could be used to automatically
|
|
bump revision number for example.
|
|
|
|
Defaults to `pre-build-hook.sh`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
PRE_BUILD_HOOK = $(HOME)/bin/bump-revision.sh
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Avrdude setting variables
|
|
|
|
### AVRDUDE
|
|
|
|
**Description:**
|
|
|
|
Path to `avrdude` utility
|
|
|
|
Usually can be auto-detected within the parent of `AVR_TOOLS_DIR` or in the `$PATH`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE = /usr/bin/avrdude
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_CONF
|
|
|
|
**Description:**
|
|
|
|
Path to `avrdude.conf` file
|
|
|
|
Usually can be auto-detected within the parent of `AVR_TOOLS_DIR`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_CONF = /etc/avrdude.conf
|
|
# or
|
|
AVRDUDE_CONF = /usr/share/arduino/hardware/tools/avrdude.conf
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_AUTOERASE_FLASH
|
|
|
|
**Description:**
|
|
|
|
Enable autoerase flash.
|
|
|
|
By default disabled.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_AUTOERASE_FLASH = yes
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVR_TOOLS_PATH
|
|
|
|
**Description:**
|
|
|
|
Directory where tools such as `avrdude`, `avr-g++`, `avr-gcc` etc. are stored.
|
|
|
|
Usually can be auto-detected from `AVR_TOOLS_DIR/bin`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVR_TOOLS_PATH = /usr/bin
|
|
# or
|
|
AVR_TOOLS_PATH = /usr/share/arduino/hardware/tools/avr/bin
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_LIB_PATH
|
|
|
|
**Description:**
|
|
|
|
Directory where the standard Arduino libraries are stored.
|
|
|
|
Defaults to `ARDUINO_DIR/libraries`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Linux
|
|
ARDUINO_LIB_PATH = /usr/share/arduino/libraries
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ARDUINO_CORE_PATH
|
|
|
|
**Description:**
|
|
|
|
Directory where the standard Arduino cores are stored.
|
|
|
|
Defaults to `ARDUINO_DIR/hardware/arduino/cores/arduino`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/robot
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### ALTERNATE_CORE_PATH
|
|
|
|
**Description:**
|
|
|
|
Path to non-standard cores.
|
|
|
|
Defaults to `ARDUINO_SKETCHBOOK/hardware/ALTERNATE_CORE`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
ALTERNATE_CORE_PATH = $(HOME)/sketchbook/hardware/arduino-tiny/cores/tiny
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CORE_VER
|
|
|
|
**Description:**
|
|
|
|
Alternate core release version. The Arduino board support packages are within
|
|
a sub-directory indicated by this define.
|
|
|
|
Defaults to package current release.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CORE_VER = 1.6.17
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CMSIS_DIR
|
|
|
|
**Description:**
|
|
|
|
Path to ARM CMSIS. Normally installed as part of ARM board support.
|
|
|
|
Defaults to `ARDUINO_PACKAGE_DIR/tools/CMSIS/4.5.0/CMSIS`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CMSIS_DIR = /usr/share/CMSIS
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CMSIS_ATMEL_DIR
|
|
|
|
**Description:**
|
|
|
|
Path to CMSIS-Atmel directory. Installed with ARM support package.
|
|
|
|
Defaults to `ARDUINO_PACKAGE_DIR/tools/CMSIS-Atmel/1.1.0/CMSIS`
|
|
|
|
**Requirement:** *Optional*
|
|
----
|
|
|
|
### BOARDS_TXT
|
|
|
|
**Description:**
|
|
|
|
Path to `boards.txt`
|
|
|
|
Defaults to `ARDUINO_DIR/hardware/arduino/boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOARD_TXT = $(HOME)/sketchbook/hardware/boards.txt
|
|
# or
|
|
BOARD_TXT = /usr/share/arduino/hardware/arduino/boards.txt
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_ARD_BAUDRATE
|
|
|
|
**Description:**
|
|
|
|
Upload speed
|
|
|
|
Usually can be auto-detected as `upload.speed` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_ARD_BAUDRATE = 19200
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_ARD_PROGRAMMER
|
|
|
|
**Description:**
|
|
|
|
Upload protocol
|
|
|
|
Usually can be auto-detected as `upload.protocol` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_ARD_PROGRAMMER = stk500v1
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_ISP_BAUDRATE
|
|
|
|
**Description:**
|
|
|
|
ISP speed if different to `upload.speed`
|
|
|
|
Defaults to same as `AVRDUDE_ARD_BAUDRATE` or `19200`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_ISP_BAUDRATE = 19200
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### AVRDUDE_OPTS
|
|
|
|
**Description:**
|
|
|
|
Options to pass to `avrdude`.
|
|
|
|
Defaults to `-q -V` (quiet, don't verify). User values are not *ANDed* to the defaults, you have to set each option you require.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
AVRDUDE_OPTS = -v
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## Bootloader variables
|
|
|
|
### BOOTLOADER_FILE
|
|
|
|
**Description:**
|
|
|
|
File for bootloader.
|
|
|
|
Usually can be auto-detected as `bootloader.file` from `boards.txt`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOOTLOADER_FILE = optiboot_atmega328.hex
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_PATH
|
|
|
|
**Description:**
|
|
|
|
Relative path to bootloader directory.
|
|
|
|
Usually can be auto-detected as a relative `bootloader.path` from `boards.txt`
|
|
|
|
Deprecated in 1.5, now part of bootloader.file
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOOTLOADER_PATH = optiboot
|
|
# or
|
|
BOOTLOADER_PATH = arduino:atmega
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_PARENT
|
|
|
|
**Description:**
|
|
|
|
Absolute path to bootloader file's parent directory.
|
|
|
|
Defaults to `/usr/share/arduino/hardware/arduino/bootloaders` (Linux)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
BOOTLOADER_PARENT = $(HOME)/sketchbook/hardware/promicro/bootloaders
|
|
BOOTLOADER_PATH = caterina
|
|
BOOTLOADER_FILE = Caterina-promicro16.hex
|
|
```
|
|
|
|
Would result in an absolute path to the bootloader hex file of `$(HOME)/sketchbook/hardware/promicro/bootloaders/caterina/Caterina-promicro16.hex`
|
|
|
|
**Requirement:** *Optional, unless BOOTLOADER_FILE and/or BOOTLOADER_PATH are user-defined*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_SIZE
|
|
|
|
**Description:**
|
|
|
|
Size of bootloader on ARM devices, ensures correct start address when flashing
|
|
application area. Normally parsed from boards.txt
|
|
|
|
Defaults to `0x2000`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_UNPROTECT
|
|
|
|
**Description:**
|
|
|
|
Bootloader unprotect sequence for upload tool. Normally parsed from boards.txt
|
|
|
|
Defaults to `at91samd bootloader 0`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_PROTECT
|
|
|
|
**Description:**
|
|
|
|
Bootloader protect sequence for upload tool. Normally parsed from boards.txt
|
|
|
|
Defaults to `at91samd bootloader 16384`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_PROTECT_VERIFY
|
|
|
|
**Description:**
|
|
|
|
Bootloader protect and verify sequence for upload tool. Normally parsed from boards.txt
|
|
|
|
Defaults to `at91samd bootloader`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOOTLOADER_UPLOAD_TOOL
|
|
|
|
**Description:**
|
|
|
|
Bootloader upload binary to use. Normally parsed from boards.txt.
|
|
|
|
Defaults to `openocd`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## ChipKIT variables
|
|
|
|
### MPIDE_DIR
|
|
|
|
**Description:**
|
|
|
|
Path to chipKIT MP IDE
|
|
|
|
Usually can be auto-detected as `AUTO_MPIDE_DIR` from the defaults `/usr/share/mpide` (Linux) or `/Applications/Mpide.app/Contents/Resources/Java` (OSX)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MPIDE_DIR = $(HOME)/mpide
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### MPIDE_PREFERENCES_PATH
|
|
|
|
**Description:**
|
|
|
|
Path to chipKIT `preferences.txt` file.
|
|
|
|
Usually can be auto-detected as `AUTO_MPIDE_PREFERENCES_PATH` from the defaults `$(HOME)/.mpide/preferences.txt` (Linux) or `$(HOME)/Library/Mpide/preferences.txt` (OSX)
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
MPIDE_PREFERENCES_PATH = $(HOME)/chipkit/preferences.txt
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
## ARM variables
|
|
|
|
### UPLOAD_TOOL
|
|
|
|
**Description:**
|
|
|
|
Tool to upload binary to device. Normally parsed from boards.txt.
|
|
|
|
Defaults to `openocd`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
UPLOAD_TOOL = gdb
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### DEBUG
|
|
|
|
**Description:**
|
|
|
|
Define to set `DEBUG_FLAGS` and allow stepping of code using GDB.
|
|
|
|
Defaults to undefined.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
DEBUG = 1
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### GDB_PORT
|
|
|
|
**Description:**
|
|
|
|
Server port to use for GDB debugging or upload. Default assumes server running
|
|
on localhost but can re-define to use Black Magic Probe serial port.
|
|
|
|
Defaults to `localhost:3333`
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
GDB_PORT = /dev/ttyACM0
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### GDB_OPTS
|
|
|
|
**Description:**
|
|
|
|
Optional arguments to parse to GDB command.
|
|
|
|
Defaults to `-ex "target extended-remote $(GDB_PORT)" -ex "monitor swdp_scan" -ex "attach 1" -ex "load" -d $(OBJDIR) $(TARGET_ELF)`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### GDB_UPLOAD_OPTS
|
|
|
|
**Description:**
|
|
|
|
Optional arguments to parse to GDB command when uploading binary only.
|
|
|
|
Defaults to `GDB_UPLOAD_OPTS = $(GDB_OPTS) -ex "set confirm off" -ex "set target-async off" -ex "set remotetimeout 30" -ex "detach" -ex "kill" -ex "quit"`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOSSA
|
|
|
|
**Description:**
|
|
|
|
Path to bossac binary.
|
|
|
|
Can usually be detected from `$ARDUINO_PACKAGE_DIR` /tools subdirectory when ARM
|
|
device support is installed.
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOSSA_VER
|
|
|
|
**Description:**
|
|
|
|
`bossa` sub-directory - usually the tool version. Will auto-detect to highest version found.
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### BOSSA_OPTS
|
|
|
|
**Description:**
|
|
|
|
Flags to pass to bossac command.
|
|
|
|
Defaults to `-d --info --erase --write --verify --reset`
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OPENOCD
|
|
|
|
**Description:**
|
|
|
|
Path to openocd binary.
|
|
|
|
Can usually be detected from `$ARDUINO_PACKAGE_DIR` /tools subdirectory when ARM
|
|
device support is installed.
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OPENOCD_VER
|
|
|
|
**Description:**
|
|
|
|
`openocd` sub-directory - usually the tool version. Will auto-detect to highest version found.
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### OPENOCD_OPTS
|
|
|
|
**Description:**
|
|
|
|
Flags to pass to openocd command. If using openocd from non-Arduino
|
|
distributions, one should define this with the path to the Arduino openocd script.
|
|
|
|
Defaults to `-d2`
|
|
|
|
Example:
|
|
|
|
```Makefile
|
|
OPENOCD_OPTS = $(ARDUINO_PACKAGE_DIR)/$(ARDMK_VENDOR)/tools/openocd/0.9.0-arduino6-static/share/openocd/scripts/ -f $(ARDUINO_PACKAGE_DIR)/$(ARDMK_VENDOR)/hardware/samd/1.6.17/variants/$(VARIANT)/$(OPENOCD_SCRIPT)
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
|
|
----
|
|
|
|
## Ctags variables
|
|
|
|
### TAGS_FILE
|
|
|
|
**Description:**
|
|
|
|
Output file name for tags. Defaults to 'tags'.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
TAGS_FILE = .tags
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CTAGS_OPTS
|
|
|
|
**Description:**
|
|
|
|
Additional options to pass to `ctags` command.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
# Run ctags in verbose mode
|
|
CTAGS_OPTS = -V
|
|
```
|
|
|
|
**Requirement:** *Optional*
|
|
|
|
----
|
|
|
|
### CTAGS_EXEC
|
|
|
|
**Description:**
|
|
|
|
Path to the `ctags` binary. Defaults to user path.
|
|
|
|
**Example:**
|
|
|
|
```Makefile
|
|
CTAGS_EXEC = /usr/local/bin/ctags
|
|
```
|
|
|
|
**Requirement:** *Optional*
|