Merge branch 'master' of https://github.com/sudar/Arduino-Makefile
Update README.md
Merge branch 'master' of git://github.com/fr0sty1/Arduino-Makefile
Updated Readme
Merge branch 'master' of https://github.com/sudar/Arduino-Makefile
Allow adding extra common dependencies
Added ifndef ARDUINO_VAR_PATH for compiling for the attiny
removed unnecessary .DS_Store
Merge pull request #12 from jeffkowalski/master

removed unnecessary .DS_Store from examples/BlinkWithoutDelay/
Merge pull request #38 from sudar/master

Merge all changes from Sudar's fork into upstream
Updated readme to add information about change in maintainers
Move MONITOR_BAUDRATE detection further down

No changes are made to the code, it is only moved. This allows it to use
LOCAL_INO_SRCS and LOCAL_INO_PDE_SRCS in the next commit.
When detecting MONITOR_BAUDRATE, use $(LOCAL_INO_SRCS)

Now that this detection code is moved down a bit, it can use the same
.ino list as all the other code.
Let MONITOR_BAUDRATE detection also look in .pde files

Before, it would only look in .ino files. If you had no .ino file but
only a .pde file, this would cause the build to hang, since grep would
be waiting for input on its stdin.
Check that there is exactly one .pde or .ino file

When there are none (and no .cpp files either), the build would stall
trying to cat all the .d files together (which would result in cat
getting no arguments and thus waiting for input on stdin).

When there are multiple .ino and/or .pde files, the build could
technically work out, the Arduino IDE concatenates all .ino / .pde files
together and compiles them as a single compile unit, so unless we
implement that as well, it's better to just error out.
Fix raw_upload and reset for normal uploads

In commit 90e3c9ad (Fix upload in case of parallelized make), some
dependencies were shuffled to (I assume) prevent the reset from
happening before or at the same time as the upload when running a
parallel make. However, this introduced two problems:
 - The upload and raw_upload became effectively the same, and both of
   them did a reset (even though raw_upload should do the upload without
   a reset).
 - The reset target does not depend on $(TARGET_HEX) or verify_size, so
   in a parallel make the reset is executed before / at the same time as
   the actual compilation (since the reset doesn't seem to be needed for
   at least the Arduino Uno, apparently avrdude handles this, this
   probably wasn't noticed by anyone).

Because we can't force a specific ordering of dependencies in parallel
make and because adding dependencies to the reset target doesn't seem
appropriate (you should be able to do a "make reset" without needing to
compile everything first), this commit changes the uploading to call
$(MAKE) again to do the actual upload.

The current approach ensures that:
 - raw_upload does a compile, size check and upload and upload does the
   same plus a reset.
 - A reset is not done if the compilation fails or the size check fails.
 - verify_size is called only once.
Output configuration info only once

Before, the configuration info would be shown again when running a
recursive make call, or when make restarted after regenerating the
dependencies file. Now, it only shows the info the first time.

Closes: #46
Don't try to read version.txt when it does not exist

This can happen for example when the arduino directory is a checkout
from git instead of a released version. Before, cat would show an error
which is now prevented. The version still defaults to 100 just like
before.
Let the Makefile decide which include to use for .pde files

Previously, the C preprocessor would pick either Arduino.h or WProgram.h
based on a define. Now, the Makefile makes the decision earlier. This
prevents having to duplicate the #if line in the next commit.
Compile .ino and .pde files directly

Before, they were copied to a .cpp file to add the Arduino.h/WProgram.h
include. However, this would cause the compiler error messages to not refer to
the right filename, making it hard to use the compiler output in an editor like
vim to point out errors.

By using gcc's -include option, there is no need to modify the ino/pde
file before compiling. However, we will need to explicitely tell gcc
that the source file is c++, because of the non-standard extensions.