From 05a0c7d37722183390f6c2f8699a569589049006 Mon Sep 17 00:00:00 2001 From: Ronan Barzic Date: Thu, 5 Jun 2014 22:56:17 +0200 Subject: Make Arduino.mk compatible with Flymake If Flymake is configured to parse .ino files the same way as for c/c++ files, it creates a temporary file (_flymake.ino) in the same directory as the original file. It fails with the current Arduino.mk because of the check for multiple .ino files. This fix removes the check only when flymake is calling the Makefile (Flymake will call make with the variable CHK_SOURCES set to the temporary file name) To make Flymake working with .ino file : Add : check-syntax: $(CXX_NAME) -c -include Arduino.h -x c++ $(CXXFLAGS) $(CPPFLAGS) -fsyntax-only $(CHK_SOURCES) in the project Makefile after the inclusion of the Arduino.mk file Edit the flymake configuration : M-x customize-option RET flymake-allowed-file-name-masks RET (using auto completion !) Add the line : ("\\.ino\\'" flymake-simple-make-init) Then click on "Apply and Save" button Fix #211 --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'README.md') diff --git a/README.md b/README.md index 7f4b8e8..d3f3171 100644 --- a/README.md +++ b/README.md @@ -150,6 +150,34 @@ To upload compiled files, `avrdude` is used. This Makefile tries to find `avrdud It is possible to use [`colorgcc`](https://github.com/colorgcc/colorgcc) with this makefile. Check out [this comment](http://hardwarefun.com/tutorials/compiling-arduino-sketches-using-makefile#comment-1408) to find usage instructions. +## Emacs/Flymake support + +On-the-fly syntax checking in Emacs using the [Flymake](http://www.emacswiki.org/emacs/FlyMake) minor mode is now possible. + +First, the flymake mode must be configured to recognize ino files : + +Edit the flymake configuration : + +``` + M-x customize-option RET + flymake-allowed-file-name-masks RET +``` + +Add the line : + +``` + ("\\.ino\\'" flymake-simple-make-init) +``` + +Then click on "Apply and Save" button + +Then, the following line must be added to the project Makefile : + +``` + check-syntax: + $(CXX_NAME) -c -include Arduino.h -x c++ $(CXXFLAGS) $(CPPFLAGS) -fsyntax-only $(CHK_SOURCES) +``` + ## Versioning The current version of the makefile is `1.3.3`. You can find the full history in the [HISTORY.md](HISTORY.md) file -- cgit v1.2.3