Skip to content

Latest commit

 

History

History
2002 lines (1175 loc) · 30.8 KB

arduino-mk-vars.md

File metadata and controls

2002 lines (1175 loc) · 30.8 KB

Documentation of variables

The following are the different variables that can be overwritten in the user makefiles.

Global variables

ARDUINO_QUIET

Description:

Suppress printing of Arduino-Makefile configuration.

Defaults to 0 (unset/disabled).

Example:

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:

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:

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:

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:

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:

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:

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:

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:

# 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:

# 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:

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:

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:

ARCHITECTURE = arm

Requirement: Optional


ARDMK_VENDOR

Description:

Board vendor/maintainer/series.

Defaults to arduino.

Example:

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:

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:

ARDUINO_PREFERENCES_PATH = $(HOME)/sketches/preferences.txt

Requirement: Optional


ARDUINO_CORE_PATH

Description:

Path to standard Arduino core files.

Example:

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:

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:

BOARD_TAG = uno or mega2560

Requirement: Mandatory


BOARD_SUB

Description:

1.5+ submenu as listed in boards.txt or make show_submenu.

Example:

# 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.

Example:

# Select external 16 MHz clock
BOARD_CLOCK=external16

Example:

# 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:

# 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:

# 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:

# 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:

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:

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:

# 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:

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:

# 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:

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:

VARIANT = leonardo

Requirement: Optional


USB_TYPE

Description:

Define Teensy 3.1 usb device type. Default is USB_SERIAL

Example:

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:

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:

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:

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:

HEX_MAXIMUM_SIZE = 14336

Requirement: Optional


MCU

Description:

Microcontroller model.

Usually can be auto-detected as build.mcu from boards.txt

Example:

MCU = atmega32u4

Requirement: Optional


MCU_FLAG_NAME

Description:

Override default MCU flags.

Defaults to mmcu

Example:

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:

MONITOR_BAUDRATE = 57600

Requirement: Optional


ISP programming variables

ISP_PROG

Description:

Type of ISP. Either a USB device or ArduinoISP protocol.

Example:

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:

# Linux
ISP_PORT = /dev/ttyACM0

Requirement: Optional


ISP_LOCK_FUSE_PRE

Description:

Bootloader unlock bits.

Usually can be auto-detected from boards.txt

Example:

ISP_LOCK_FUSE_PRE = 0x3f

Requirement: Optional


ISP_LOCK_FUSE_POST

Description:

Bootloader lock bits.

Usually can be auto-detected from boards.txt

Example:

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:

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:

ISP_EEPROM = 1

Requirement: Optional


Compiler/Executable variables

CC_NAME

Description:

C compiler.

Defaults to avr-gcc

Example:

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:

TOOL_PREFIX = arm-none-eabi
TOOL_PREFIX = pic32

Requirement: Optional


CXX_NAME

Description:

C++ compiler.

Defaults to avr-g++

Example:

CXX_NAME = pic32-g++

Requirement: Optional


OBJCOPY_NAME

Description:

Objcopy utility.

Defaults to avr-objcopy

Example:

OBJCOPY_NAME = pic32-objcopy

Requirement: Optional


OBJDUMP_NAME

Description:

Objdump utility.

Defaults to avr-objdump

Example:

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:

AR_NAME = pic32-ar

Requirement: Optional


SIZE_NAME

Description:

Size utility.

Defaults to avr-size

Example:

SIZE_NAME = pic32-size

Requirement: Optional


NM_NAME

Description:

Nm utility.

Defaults to avr-nm

Example:

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:

OPTIMIZATION_LEVEL = 3

Requirement: Optional


OTHER_LIBS

Description:

Additional Linker lib flags, for platform support

Defaults to ""

Example:

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

Example:

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

Example:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

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:

# 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:

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:

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:

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:

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:

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:

AVRDUDE_ARD_BAUDRATE = 19200

Requirement: Optional


AVRDUDE_ARD_PROGRAMMER

Description:

Upload protocol

Usually can be auto-detected as upload.protocol from boards.txt

Example:

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:

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:

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:

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:

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:

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:

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:

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:

UPLOAD_TOOL = gdb

Requirement: Optional


DEBUG

Description:

Define to set DEBUG_FLAGS and allow stepping of code using GDB.

Defaults to undefined.

Example:

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:

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:

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:

TAGS_FILE = .tags

Requirement: Optional


CTAGS_OPTS

Description:

Additional options to pass to ctags command.

Example:

# Run ctags in verbose mode
CTAGS_OPTS = -V

Requirement: Optional


CTAGS_EXEC

Description:

Path to the ctags binary. Defaults to user path.

Example:

CTAGS_EXEC = /usr/local/bin/ctags

Requirement: Optional