Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
BSD.ARDUINO.MK(7)	Miscellaneous Information Manual     BSD.ARDUINO.MK(7)

NAME
       bsd.arduino.mk -- build Arduino sketches	with make(1)

SYNOPSIS
       ARDUINO_MK_DIR=/usr/local/arduino-bsd-mk
       ...
       .include	"${ARDUINO_MK_DIR}/bsd.arduino.mk"

DESCRIPTION
       The file	bsd.arduino.mk is used to build	Arduino	sketches from the com-
       mand  line using	make(1).  The goal is to efficiently build potentially
       complicated projects with simple	Makefiles and  completely  bypass  the
       Arduino graphical user interface.

       Modules	that  are part of the standard Arduino distribution along with
       modules that are	part of	referenced Arduino libraries  (specified  with
       the  ARDUINO_LIBS  variable) are	compiled once and stored in a library.
       Sketch modules are built	as determined by make(1).

TARGETS
       defines	 Dump out the compiler defines specific	to ARDUINO_BOARD.

       flash	 Compile, link and run avrdude(1) to program the target	board.

       install	 An alias for flash.

       lint	 Run cppcheck(1) on all	of the source files.

       obj	 Create	a build	directory.

       objlink	 Create	a symlink to the build directory.

       report	 Use avrdude(1)	to report the fuse settings.

       size	 Use avr-size(1) to list section sizes and total size.

       tags	 Create	or update a tags file by running ctags(1) on SRCS  and
		 HFILES.

REQUIRED VARIABLES
       These variables must be set:

       TARGET	 The  name  of	the  sketch.  If  SRCS is not defined then the
		 sketch	is built from ${TARGET}.cpp or ${TARGET}.ino.

       ARDUINO_BOARD
		 The  name  of	the  board.   This   is	  important   as   the
		 arduino-boards	 script	 uses  it  to  set  the	 defaults  for
		 ARDUINO_CORE, ARDUINO_VARIANT,	F_CPU and MCU from the Arduino
		 boards.txt file.

       ARDUINO_MK_DIR
		 The path to the arduino-bsd-mk	installation directory.

USEFUL VARIABLES
       It's frequently useful to set these variables:

       SRCS	 A list	of  .ino, .cpp and .c sources. This is used  when  the
		 name  of  the module does not match TARGET and	when more than
		 one source is used.

       ARDUINO_DIR
		 Top  level  of	 Arduino  installation.	  This	 defaults   to
		 /usr/local/arduino but	can be changed to point	to a local Ar-
		 duino distribution.

       ARDUINO_LIBS
		 A list	of Arduino libraries. For example:

		       ARDUINO_LIBS=SPI	Wire

		 Since	these are located by first looking in .CURDIR and then
		 in one	or more	Arduino	library	directories the	 Arduino  dis-
		 tribution  tree  it's	possible to use	local libraries	and to
		 override standard Arduino libraries.

PROGRAMMING OPTIONS
       AVRDUDE_PORT
		 The avrdude(1)	programmer port	when the  programmer  is  "ar-
		 duino".  This is passed with the -P flag.

       AVRDUDE_PROGRAMMER
		 An  avrdude(1)	 programmer id string. The default this	is set
		 using boards.txt.

		 When AVRDUDE_PROGRAMMER is "arduino" AVRDUDE_PORT must	be set
		 using one of these methods:
		          In your  shell  environment	before	running	 "make
			   flash"
		          With	 the  make  command  line,  e.g.  "make	 flash
			   AVRDUDE_PORT=/dev/ttyU3"
		          In Makefile.inc, e.g. "AVRDUDE_PORT=/dev/ttyU3"

		 When AVRDUDE_PROGRAMMER is one	that  uses  USB,  AVRDUDE_PORT
		 can optionally	specify	the usb	port. See the -P option	in the
		 avrdude(1) man	page for more details.

       AVRDUDE_SPEED
		 The  avrdude(1)  programmer speed when	the programmer is "ar-
		 duino".  This is passed with the -b flag.

PROCESSOR OPTIONS
       These options for these variables default those found  in  the  Arduino
       boards.txt file by the arduino-boards script for	ARDUINO_BOARD.

       ARDUINO_CORE
		 This  is  the	location  of the core to link sketches against
		 when compiling.

       ARDUINO_VARIANT
		 This is the variant of

       F_CPU	 The the clock speed at	which the microcontroller operates at.
		 This is useful	when under or overclocking.

       MCU	 The microcontroller on	the board.

OTHER OPTIONS
       ARDUINO_CFLAGS
		 Additional compile C flags (added to CFLAGS).

       ARDUINO_CXXFLAGS
		 Additional compile C++	flags (added to	CXXFLAGS).

       AVR_LIBC_DIR
		 Top level of the  avr-libc  installation.  This  defaults  to
		 /usr/local/avr.

       AVR_LIBC_DIR
		 Top  level  of	 the  avr-libc	installation. This defaults to
		 /usr/local/avr.

       CPPCHECK_FLAGS
		 Additional cppcheck(1)	flags to be used with "make lint"

       HFILES	 Specify include  files	 that  should  also  be	 processed  by
		 ctags(1) for "make tags".

       WITH_CPPCHECK_XML
		 When  set,  "make  lint" runs cppcheck(1) with	XML output en-
		 abled using the --xml and --xml-version=2 flags.

       WITH_CPPCHECK_CHECKCONFIG
		 When set, make	lint" runs cppcheck(1) with the	--check-config
		 flag.

NOTES
       It's important to do a "make  clean"  if	 ARDUINO_BOARD	or  any	 other
       PROCESSOR OPTIONS options are changed.

       To allow	use of the avr-gcc(1) -Werror flag, standard and local Arduino
       library	modules	 are compiled using the	-w flag	which inhibits warning
       messages. This  makes  it  possible  to	add  the  -Wall,  -Werror  and
       -Wstrict-prototypes flags to ARDUINO_CFLAGS (which is recommended).

FILES
       /usr/local/arduino/hardware/arduino/boards.txt
		 The Arduino boards database.
       /usr/local/arduino/lib/version.txt
		 The Arduino version file.
       /usr/local/arduino/libraries
		 The location of standard Arduino libraries.
       /usr/local/arduino-bsd-mk
		 The default location of bsd.arduino.mk	and the	scripts	direc-
		 tory.
       /usr/local/arduino-bsd-mk/scripts/arduino-boards
		 Script	used to	parse boards.txt to determine various hardware
		 related options.
       /usr/local/arduino-bsd-mk/scripts/arduino-version
		 Script	used to	parse version.txt file.
       /usr/local/arduino-bsd-mk/scripts/gcc-version
		 Script	used to	determine the version of avr-gcc(1).
       /usr/local/avr
		 The default top level of the avr-libc installation.

EXAMPLES
       Here's a	sample Makefile:

	     TARGET= blink2
	     ARDUINO_BOARD= atmega328
	     ARDUINO_MK_DIR= /usr/local/arduino-bsd-mk
	     MAKEOBJDIRPREFIX=/usr/obj
	     ARDUINO_CFLAGS+= -Wall -Werror -Wstrict-prototypes
	     ARDUINO_CXXFLAGS+=	-Wall -Werror -Wstrict-prototypes
	     .include "${ARDUINO_MK_DIR}/bsd.arduino.mk"

       There is	one source named blink2.ino or blink2.cpp.  The	board is a at-
       mega328.	Additional compiler flags are specified.

SEE ALSO
       avr-gcc(1), avrdude(1), make(1)

HISTORY
       bsd.arduino.mk  was  inspired by	a gmake(1) makefile originally written
       by Martin Oldfield and described	in his blog titled, "Arduino from  the
       command line."

AUTHORS
       Craig leres <leres@xse.com>

FreeBSD	ports 15.quarterly	January, 9 2021		     BSD.ARDUINO.MK(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=bsd.arduino.mk&sektion=7&manpath=FreeBSD+Ports+15.0.quarterly>

home | help