Hi,
I'm programming my arduino with Emacs, and using the Arduino.mk that came with the install on my Linux box (version 1.0). A distraction is that errors from the .ino file show up pointing at the temporary cpp file. For example, errors point at build-cli/Blink.cpp instead Blink.ino. My patch adds a #line compile directive so that Blink.cpp reports errors from the ino file. The output now looks like this and is parsable by Emacs:
make
echo '#include <Arduino.h>' > build-cli/Blink.cpp
echo '#line 1 "Blink.ino"' >> build-cli/Blink.cpp
cat Blink.ino >> build-cli/Blink.cpp
/usr/bin/avr-g++ -MM -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -I. -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -g -Os -w -Wall -ffunction-sections -fdata-sections -fno-exceptions build-cli/Blink.cpp -MF build-cli/Blink.d -MT build-cli/Blink.o
cat build-cli/Blink.d > build-cli/depends.mk
/usr/bin/avr-g++ -c -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=100 -I. -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -g -Os -w -Wall -ffunction-sections -fdata-sections -fno-exceptions build-cli/Blink.cpp -o build-cli/Blink.o
Blink.ino: In function ‘void loop()’:
Blink.ino:24:3: error: ‘moose’ was not declared in this scope
Blink.ino:29:1: error: expected ‘;’ before ‘}’ token
make: *** [build-cli/Blink.o] Error 1
This was accomplished by adjusting 2 rules in Arduino.mk like this:
# the pde -> cpp -> o file
$(OBJDIR)/%.cpp: %.pde
$(ECHO) '#include "WProgram.h"' > $@
$(ECHO) '#line 1 "$<"' >> $@
$(CAT) $< >> $@
# the ino -> cpp -> o file
$(OBJDIR)/%.cpp: %.ino
$(ECHO) '#include <Arduino.h>' > $@
$(ECHO) '#line 1 "$<"' >> $@
$(CAT) $< >> $@
My side project lately has been automating the compilation of sketches via Emacs using the defaults tools in the Arduino development install such as the default Arduino.mk. Here is a link to that corner of the doc for my project: http://www.randomsample.de/cedetdocs/common/cedet/Arduino-Features.html