Use "whole program" and "link time optimization" features of gcc. The
whole-program optimization enables the compiler to evaluate the entire
firmware for optimization instead of just one code file at a time.
This leads to better overall optimizations.
The "relax" option enables the linker to convert certain "call"
instructions to the smaller "rcall" instruction. This reduces the
size of the resulting binary.
Some fixes in the Makefile to support Arduino 1.0.0 or higher and added the Rambo. Still needs some more work for the different arduino hardware variants.
Create an explicit rule for building applet/Marlin.cpp.
It would seem that the pattern matches do not work when the source
file is created when make is running. The result of this is that it is
necessary to run "make" twice to build the firmware.
This adds an explicit rule without a pattern match for building
applet/Marlin.cpp it corrects the make behaviour at the cost of adding
a little redundancy in the Makefile.
Makefile: Better display of size (device memory usage)
Run avr-size with the --mcu=... -C option as well. That reports how
much actual device program and data memory is used along with a
percentage fullness.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Often it can be useful to see the actual commands being run by make.
Other projects (eg, the Linux kernel) support this with a "V=1" make
parameter. Do the same here.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
+ Removed most explicit pathnames, use the standard make "VPATH" to let
make find the files for itself.
+ Added a "hardware variant" variable that allows compiging Sanguino and
Gen7 as well as "generic" arduino.
+ Allows overriding the MOTHERBOARD define from the Makefile
+ Removed the 'preprocessor' bit that wasn't needed, now just "include" the
files that are needed, since it allows gcc to show the right file/line
when displaying error/warnings.
+ Uses gcc's own dependency generator to generate the .d files, and
and include these instead of self-patching the makefile
Signed-off-by: Michel Pollet <buserror@gmail.com>