Arduino-Makefile/arduino-mk-vars.md

511 lines
9.4 KiB
Markdown
Raw Normal View History

# 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)
## 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.
## Sketch related variables
### 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*: <unset as per chipKIT.mk>
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.