Arduino-Makefile/arduino-mk-vars.md
Sudar e8634fb642 Document all the variables that can be overridden in child makefile
Huge thanks to @sej7278 for doing this

Fix #75
2014-02-04 18:26:43 +05:30

9.4 KiB

Documentation of variables

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

Global variables

ARDUINO_QUIET

Suppress printing of Arduino-Makefile configuration.

Defaults to unset/disabled.

Example: 1

Optional.

Installation/Directory variables

ARDMK_DIR

Directory where the *.mk files are stored.

Usually can be auto-detected as AUTO_ARDUINO_DIR (parent of Arduino.mk).

Example: /usr/share/arduino

Optional.

AVR_TOOLS_DIR

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: /usr or /usr/share/arduino/hardware/tools/avr

Optional.

RESET_CMD

Command to reset the MCU.

Defaults to ard-reset-arduino with the extra --caterina flag for atmega32u4 boards.

Example: ~/gertduino/reset

Optional.

Arduino IDE variables

ARDUINO_DIR

Directory where the Arduino IDE and/or core files are stored.

Example: /usr/share/arduino (Linux) or /Applications/Arduino.app/Contents/Resources/Java (OSX)

Optional.

ARDUINO_VERSION

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

Optional.

ARDUINO_SKETCHBOOK

Path to sketchbook directory.

Usually can be auto-detected from the Arduino preferences.txt file or the default ~/sketchbook

Example: ~/sketches

Optional.

ARDUINO_PREFERENCES_PATH

Path to Arduino preferences.txt file.

Usually can be auto-detected as AUTO_ARDUINO_PREFERENCES from the defaults ~/.arduino/preferences.txt (Linux) or ~/Library/Arduino/preferences.txt (OSX)

Example: ~/sketches/preferences.txt

Optional.

ARDUINO_CORE_PATH

Path to standard Arduino core files.

Example: /usr/share/arduino/hardware/arduino/cores/arduino

Optional.

ARDUINO_LIBS

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: SD SD/utility Wire Wire/utility

Optional.

BOARD_TAG

Device type as listed in boards.txt or make show_boards.

Example: uno or mega2560

Mandatory.

MONITOR_PORT

Path to serial (USB) device used for uploading/serial comms.

Example: /dev/ttyUSB0 or /dev/ttyACM0 (Linux) or /dev/cu.usb* (OSX) or com3 (Windows)

Mandatory.

USER_LIB_PATH

Directory where additional libraries are stored.

Defaults to 'libraries' directory within user's sketchbook.

Example: ~/sketchbook/libraries (Linux)

Optional.

ALTERNATE_CORE

Non-standard core for Arduino-unsupported chips like the ATtiny.

Example: attiny-master or arduino-tiny or tiny2

Optional.

ARDUINO_VAR_PATH

Path to non-standard core's variant files.

Example: ~/sketchbook/hardware/arduino-tiny/cores/tiny

Optional.

VARIANT

Variant of a standard board design.

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

Example: leonardo

Optional.

USB_VID

Override USB VID for atmega32u4 boards.

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

Example: 0x2341

Optional.

USB_PID

Override USB PID for atmega32u4 boards.

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

Example: 0x8039

Optional.

F_CPU

CPU speed in Hz

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

Example: 8000000L

Optional.

HEX_MAXIMUM_SIZE

Maximum hex file size

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

Example: 14336

Optional.

MCU

Microcontroller model.

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

Example: atmega32u4

Optional.

MCU_FLAG_NAME

Override default MCU flags.

Defaults to mmcu

Example: mprocessor

Optional.

MONITOR_BAUDRATE

Baudrate of the serial monitor.

Defaults to 9600 if it can't find it in the sketch Serial.begin()

Example: 57600

Optional.

ISP programming variables

ISP_PROG

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

Example: usbasp or usbtiny or stk500v2 or stk500v1

Optional.

ISP_PORT

Device path to ArduinoISP. Not needed for hardware ISP's.

Example: /dev/ttyACM0 (Linux)

Optional.

ISP_LOCK_FUSE_PRE

Bootloader unlock bits.

Usually can be auto-detected from boards.txt

Example: 0x3f

Optional.

ISP_LOCK_FUSE_POST

Bootloader lock bits.

Usually can be auto-detected from boards.txt

Example: 0xcf

Optional.

ISP_HIGH_FUSE

SP_LOW_FUSE/ISP_EXT_FUSE - high/low/extended fuse bits.

Usually can be auto-detected from boards.txt

Example: 0xdf or 0xff or 0x01

Optional.

ISP_EEPROM

Whether to upload the EEPROM file or not.

Defaults to 0

Example: 1

Optional.

Compiler/Executable variables

CC_NAME

C compiler.

Defaults to avr-gcc

Example: pic32-gcc

Optional.

CXX_NAME

C++ compiler.

Defaults to avr-g++

Example: pic32-g++

Optional.

OBJCOPY_NAME

Objcopy utility.

Defaults to avr-objcopy

Example: pic32-objcopy

Optional.

OBJDUMP_NAME

Objdump utility.

Defaults to avr-objdump

Example: pic32-objdump

Optional.

AR_NAME

Archive utility.

Defaults to avr-ar

Example: pic32-ar

Optional.

SIZE_NAME

Size utility.

Defaults to avr-size

Example: pic32-size

Optional.

NM_NAME

Nm utility.

Defaults to avr-nm

Example: pic32-nm

Optional.

OPTIMIZATION_LEVEL

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

Optional.

CFLAGS_STD

Flags to pass to the C compiler.

Defaults to -std=gnu99

Example:

Optional.

OVERRIDE_EXECUTABLES

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

Optional.

MONITOR_CMD

Command to run the serial monitor.

Defaults to screen

Example: minicom

Optional.

Avrdude setting variables

AVRDUDE

Path to avrdude utility

Usually can be auto-detected within the parent of AVR_TOOLS_DIR or in the $PATH

Example: /usr/bin/avrdude

Optional.

AVRDUDE_CONF

Path to avrdude.conf file

Usually can be auto-detected within the parent of AVR_TOOLS_DIR

Example: /etc/avrdude.conf or /usr/share/arduino/hardware/tools/avrdude.conf

Optional.

AVR_TOOLS_PATH

Directory where tools such as avrdude, avr-g++, avr-gcc etc. are stored.

Usually can be auto-detected from AVR_TOOLS_DIR/bin

Example: /usr/bin or /usr/share/arduino/hardware/tools/avr/bin

Optional.

ARDUINO_LIB_PATH

Directory where the standard Arduino libraries are stored.

Defaults to ARDUINO_DIR/libraries

Example: /usr/share/arduino/libraries (Linux)

Optional.

ARDUINO_CORE_PATH

Directory where the standard Arduino cores are stored.

Defaults to ARDUINO_DIR/hardware/arduino/cores/arduino

Example: /usr/share/arduino/hardware/arduino/cores/robot

Optional.

ALTERNATE_CORE_PATH

Path to non-standard cores.

Defaults to ARDUINO_SKETCHBOOK/hardware/ALTERNATE_CORE

Example: ~/sketchbook/hardware/arduino-tiny/cores/tiny

Optional.

BOARDS_TXT

Path to boards.txt

Defaults to ARDUINO_DIR/hardware/arduino/boards.txt

Example: ~/sketchbook/hardware/boards.txt or /usr/share/arduino/hardware/arduino/boards.txt (Linux)

Optional.

AVRDUDE_ARD_BAUDRATE

Upload speed

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

Example: 19200

Optional.

AVRDUDE_ARD_PROGRAMMER

Upload protocol

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

Example: stk500v1

Optional.

AVRDUDE_ISP_BAUDRATE

ISP speed if different to upload.speed

Defaults to same as AVRDUDE_ARD_BAUDRATE or 19200

Example: 19200

Optional.

AVRDUDE_OPTS

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

Optional.

Bootloader variables

BOOTLOADER_FILE

File for bootloader.

Usually can be auto-detected as bootloader.file from boards.txt

Example: optiboot_atmega328.hex

Optional.

BOOTLOADER_PATH

Path to bootloader file.

Usually can be auto-detected as a relative bootloader.path from boards.txt

Example: optiboot or arduino:atmega or /usr/share/arduino/hardware/arduino/bootloaders/caterina/Caterina-Esplora.hex

Optional.

ChipKIT variables

MPIDE_DIR

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

Optional.

MPIDE_PREFERENCES_PATH

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: ~/chipkit/preferences.txt

Optional.