Document all the variables that can be overridden in child makefile
Huge thanks to @sej7278 for doing this Fix #75
This commit is contained in:
parent
9a49615e07
commit
e8634fb642
5 changed files with 521 additions and 6 deletions
10
Arduino.mk
10
Arduino.mk
|
@ -4,7 +4,7 @@
|
|||
# System part (i.e. project independent)
|
||||
#
|
||||
# Copyright (C) 2012 Sudar <http://sudarmuthu.com>, based on
|
||||
# - M J Oldfield work: https://github.com/mjoldfield/Arduino-Makefile
|
||||
# M J Oldfield work: https://github.com/mjoldfield/Arduino-Makefile
|
||||
#
|
||||
# Copyright (C) 2010,2011,2012 Martin Oldfield <m@mjo.tc>, based on
|
||||
# work that is copyright Nicholas Zambetti, David A. Mellis & Hernando
|
||||
|
@ -53,7 +53,7 @@
|
|||
# On Linux, you might prefer:
|
||||
#
|
||||
# ARDUINO_DIR = /usr/share/arduino
|
||||
# ARDMK_DIR = /usr
|
||||
# ARDMK_DIR = /usr/share/arduino
|
||||
# AVR_TOOLS_DIR = /usr
|
||||
#
|
||||
# You can either set these up in the Makefile, or put them in your
|
||||
|
@ -185,9 +185,9 @@
|
|||
# ALTERNATE_CORE, assuming your core is in your ~/sketchbook/hardware
|
||||
# directory. For example:
|
||||
#
|
||||
# ISP_PORT = /dev/ttyACM0
|
||||
# BOARD_TAG = attiny85
|
||||
# ALTERNATE_CORE = attiny-master
|
||||
# ISP_PORT = /dev/ttyACM0
|
||||
# BOARD_TAG = attiny85
|
||||
# ALTERNATE_CORE = attiny-master
|
||||
#
|
||||
# To use the more complex arduino-tiny and TinyCore2 cores, you must
|
||||
# also set ARDUINO_CORE_PATH and ARDUINO_VAR_PATH to the core
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Contributing To Arduino Makefile
|
||||
|
||||
Community made patches, localisations, bug reports, documentation and contributions are always welcome and are crucial to the success of this project.
|
||||
Community made patches, localizations, bug reports, documentation and contributions are always welcome and are crucial to the success of this project.
|
||||
|
||||
When contributing please ensure you follow the guidelines below so that we can keep on top of things.
|
||||
|
||||
|
@ -20,6 +20,7 @@ Submit a ticket for your issue, assuming one does not already exist.
|
|||
- Fork the repository on GitHub
|
||||
- Make the changes to your forked repository
|
||||
- Update the [changelog file](HISTORY.md) and add a note about your change. If possible prefix it with either Fix, Tweak or New
|
||||
- If you are adding or changing the behavior of any variable, then update the corresponding documentation in the [arduino-mk-vars.md](arduino-mk-vars.md) file as well
|
||||
- When committing, reference your issue (if present) and include a note about the fix
|
||||
- If possible (and if makes sense) do atomic commits
|
||||
- Try to follow [this guideline](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) while choosing the git commit message
|
||||
|
|
|
@ -6,6 +6,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
|
|||
|
||||
### 1.3.1 (2014-02-01)
|
||||
- Fix: BUNDLED_AVR_TOOLS_DIR is now set properly when using only arduino-core and not the whole arduino package. (https://github.com/sej7278)
|
||||
- New: Document all variables that can be overridden. (https://github.com/sej7278)
|
||||
|
||||
### 1.3.0 (2014-01-29)
|
||||
- Fix: Use more reliable serial device naming in Windows. Fix issue #139 and #155 (https://github.com/peplin)
|
||||
|
|
|
@ -5,6 +5,7 @@ This is a very simple Makefile which knows how to build Arduino sketches. It def
|
|||
## Features
|
||||
|
||||
- Very robust
|
||||
- Highly customizable
|
||||
- Supports all official AVR-based Arduino boards
|
||||
- Supports chipKIT
|
||||
- Works on all three major OS (Mac, Linux, Windows)
|
||||
|
@ -91,6 +92,8 @@ On Windows (using cygwin), you might want to set:
|
|||
- `ARDMK_DIR` - Path where the `*.mk` are present. If you installed the package, then it is usually `/usr/share/arduino`
|
||||
- `AVR_TOOLS_DIR` - Path where the avr tools chain binaries are present. If you are going to use the binaries that came with Arduino installation, then you don't have to set it.
|
||||
|
||||
The list of all variables that can be overridden is available at [arduino-mk-vars.md](arduino-mk-vars.md) file.
|
||||
|
||||
## Including Libraries
|
||||
|
||||
You can specify space separated list of libraries that are needed for your sketch to the variable `ARDUINO_LIBS`.
|
||||
|
|
510
arduino-mk-vars.md
Normal file
510
arduino-mk-vars.md
Normal file
|
@ -0,0 +1,510 @@
|
|||
# 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.
|
Loading…
Reference in a new issue