The following are the different variables that can be overwritten in the user makefiles.
- Global variables
- Installation/Directory variables
- Arduino IDE variables
- Sketch related variables
- ISP programming variables
- Compiler/Executable variables
- Avrdude setting variables
- Bootloader variables
- ChipKIT variables
Description:
Suppress printing of Arduino-Makefile configuration.
Defaults to 0 (unset/disabled).
Example:
ARDUINO_QUIET = 1Requirement: Optional
Description:
Directory where the *.mk files are stored.
Usually can be auto-detected as AUTO_ARDUINO_DIR (parent of Arduino.mk).
Example:
ARDMK_DIR = /usr/share/arduinoRequirement: Optional
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/avrRequirement: Optional
Description:
Command to reset the MCU.
Defaults to ard-reset-arduino with the extra --caterina flag for atmega32u4 boards.
Example:
RESET_CMD = ~/gertduino/resetRequirement: Optional
Description:
Directory where the Arduino IDE and/or core files are stored.
Example:
# Linux
ARDUINO_DIR = /usr/share/arduino
# Mac OS X
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/JavaRequirement: Optional
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 = 105Requirement: Optional
Description:
Path to sketchbook directory.
Usually can be auto-detected from the Arduino preferences.txt file or the default ~/sketchbook
Example:
ARDUINO_SKETCHBOOK = ~/sketchesRequirement: Optional
Description:
Path to Arduino preferences.txt file.
Usually can be auto-detected as AUTO_ARDUINO_PREFERENCES from the defaults:
- on Linux :
~/.arduino/preferences.txt - on Mac OS X :
~/Library/Arduino/preferences.txt
Example:
ARDUINO_PREFERENCES_PATH = ~/sketches/preferences.txtRequirement: Optional
Description:
Path to standard Arduino core files.
Example:
ARDUINO_CORE_PATH = /usr/share/arduino/hardware/arduino/cores/arduinoRequirement: Optional
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/utilityRequirement: Optional
Description:
Device type as listed in boards.txt or make show_boards.
Example:
BOARD_TAG = uno or mega2560Requirement: Mandatory
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 = com3Requirement: Mandatory
Description:
Directory where additional libraries are stored.
Defaults to libraries directory within user's sketchbook.
Example:
# Linux
USER_LIB_PATH = ~/sketchbook/libraries
# For a random project on *nix
USER_LIB_PATH = /path/to/my/projectRequirement: Optional
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/binRequirement: Optional
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 = tiny2Requirement: Optional
Description:
Path to non-standard core's variant files.
Example:
ARDUINO_VAR_PATH = ~/sketchbook/hardware/arduino-tiny/cores/tinyRequirement: Optional
Description:
Variant of a standard board design.
Usually can be auto-detected as build.variant from boards.txt.
Example:
VARIANT = leonardoRequirement: Optional
Description:
Override USB VID for atmega32u4 boards.
Usually can be auto-detected as build.vid from boards.txt
Example:
USB_VID = 0x2341Requirement: Optional
Description:
Override USB PID for atmega32u4 boards.
Usually can be auto-detected as build.pid from boards.txt
Example:
USB_PID = 0x8039Requirement: Optional
Description:
CPU speed in Hz
Usually can be auto-detected as build.f_cpu from boards.txt
Example:
F_CPU = 8000000LRequirement: Optional
Description:
Maximum hex file size
Usually can be auto-detected as upload.maximum_size from boards.txt
Example:
HEX_MAXIMUM_SIZE = 14336Requirement: Optional
Description:
Microcontroller model.
Usually can be auto-detected as build.mcu from boards.txt
Example:
MCU = atmega32u4Requirement: Optional
Description:
Override default MCU flags.
Defaults to mmcu
Example:
MCU_FLAG_NAME = mprocessorRequirement: Optional
Description:
Baudrate of the serial monitor.
Defaults to 9600 if it can't find it in the sketch Serial.begin()
Example:
MONITOR_BAUDRATE = 57600Requirement: Optional
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 = stk500v1Requirement: Optional
Description:
Device path to ArduinoISP. Not needed for hardware ISP's.
Example:
# Linux
ISP_PORT = /dev/ttyACM0Requirement: Optional
Description:
Bootloader unlock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_PRE = 0x3fRequirement: Optional
Description:
Bootloader lock bits.
Usually can be auto-detected from boards.txt
Example:
ISP_LOCK_FUSE_POST = 0xcfRequirement: Optional
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 0x01Requirement: Optional
Description:
Whether to upload the EEPROM file or not.
Defaults to 0
Example:
ISP_EEPROM = 1Requirement: Optional
Description:
C compiler.
Defaults to avr-gcc
Example:
CC_NAME = pic32-gccRequirement: Optional
Description:
C++ compiler.
Defaults to avr-g++
Example:
CXX_NAME = pic32-g++Requirement: Optional
Description:
Objcopy utility.
Defaults to avr-objcopy
Example:
OBJCOPY_NAME = pic32-objcopyRequirement: Optional
Description:
Objdump utility.
Defaults to avr-objdump
Example:
OBJDUMP_NAME = pic32-objdumpRequirement: Optional
Description:
Archive utility.
Defaults to avr-ar
Example:
AR_NAME = pic32-arRequirement: Optional
Description:
Size utility.
Defaults to avr-size
Example:
SIZE_NAME = pic32-sizeRequirement: Optional
Description:
Nm utility.
Defaults to avr-nm
Example:
NM_NAME = pic32-nmRequirement: Optional
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 = 3Requirement: Optional
Description:
Flags to pass to the C compiler.
Defaults to -std=gnu99
Example:
<unset as per chipKIT.mk>Requirement: Optional
Description:
Override the default build tools.
If set to 1, each tool (CC, CXX, AS, OBJCOPY, OBJDUMP, AR, SIZE, NM) must have its path explicitly defined. See chipKIT.mk.
Example:
OVERRIDE_EXECUTABLES = 1Requirement: Optional
Description:
Command to run the serial monitor.
Defaults to screen
Example:
MONITOR_CMD = minicomRequirement: Optional
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 = ~/bin/bump-revision.shRequirement: Optional
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/avrdudeRequirement: Optional
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.confRequirement: Optional
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/binRequirement: Optional
Description:
Directory where the standard Arduino libraries are stored.
Defaults to ARDUINO_DIR/libraries
Example:
# Linux
ARDUINO_LIB_PATH = /usr/share/arduino/librariesRequirement: Optional
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/robotRequirement: Optional
Description:
Path to non-standard cores.
Defaults to ARDUINO_SKETCHBOOK/hardware/ALTERNATE_CORE
Example:
ALTERNATE_CORE_PATH = ~/sketchbook/hardware/arduino-tiny/cores/tinyRequirement: Optional
Description:
Path to boards.txt
Defaults to ARDUINO_DIR/hardware/arduino/boards.txt
Example:
BOARD_TXT = ~/sketchbook/hardware/boards.txt
# or
BOARD_TXT = /usr/share/arduino/hardware/arduino/boards.txtRequirement: Optional
Description:
Upload speed
Usually can be auto-detected as upload.speed from boards.txt
Example:
AVRDUDE_ARD_BAUDRATE = 19200Requirement: Optional
Description:
Upload protocol
Usually can be auto-detected as upload.protocol from boards.txt
Example:
AVRDUDE_ARD_PROGRAMMER = stk500v1Requirement: Optional
Description:
ISP speed if different to upload.speed
Defaults to same as AVRDUDE_ARD_BAUDRATE or 19200
Example:
AVRDUDE_ISP_BAUDRATE = 19200Requirement: Optional
Description:
Options to pass to avrdude.
Defaults to -q -V -D (quiet, don't verify, don't auto-erase). User values are not ANDed to the defaults, you have to set each option you require.
Example:
AVRDUDE_OPTS = -vRequirement: Optional
Description:
File for bootloader.
Usually can be auto-detected as bootloader.file from boards.txt
Example:
BOOTLOADER_FILE = optiboot_atmega328.hexRequirement: Optional
Description:
Relative path to bootloader directory.
Usually can be auto-detected as a relative bootloader.path from boards.txt
Example:
BOOTLOADER_PATH = optiboot
# or
BOOTLOADER_PATH = arduino:atmegaRequirement: Optional
Description:
Absolute path to bootloader file's parent directory.
Defaults to /usr/share/arduino/hardware/arduino/bootloaders (Linux)
Example:
BOOTLOADER_PARENT = ~/sketchbook/hardware/promicro/bootloaders
BOOTLOADER_PATH = caterina
BOOTLOADER_FILE = Caterina-promicro16.hexWould result in an absolute path to the bootloader hex file of ~/sketchbook/hardware/promicro/bootloaders/caterina/Caterina-promicro16.hex
Requirement: Optional, unless BOOTLOADER_FILE and/or BOOTLOADER_PATH are user-defined
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 = ~/mpideRequirement: Optional
Description:
Path to chipKIT preferences.txt file.
Usually can be auto-detected as AUTO_MPIDE_PREFERENCES_PATH from the defaults ~/.mpide/preferences.txt (Linux) or ~/Library/Mpide/preferences.txt (OSX)
Example:
MPIDE_PREFERENCES_PATH = ~/chipkit/preferences.txtRequirement: Optional