aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon John <git@the-jedi.co.uk>2014-01-13 12:14:31 +0000
committerSudar <sudar@sudarmuthu.com>2014-01-14 14:23:25 +0530
commitd4e0a383ae6ad13615e1c82a48646886cf175d2f (patch)
treed72633a2227d923bdfc55b50a7a17d413dd35e52
parentfa6b9215c83e4629b24beb0ca3704b1a3ee3eec1 (diff)
Simplify package vs git checkout detection
Fix #147 Fix #151 Fix #153 The following are the detailed changes - Remove ARDMK_PATH, ARDMK_FILE and arduino-mk subdirectory - Looks for ard-reset-arduino in $PATH or ARDMK_DIR/bin - Fix git-archive command in RPM SPEC file - Remove some whitespace - Remove arduino-mk dir from debian package's arduino-mk.install - Update docs to reflect the above changes - Bump Up version to 1.2.0
-rw-r--r--Arduino.mk55
-rw-r--r--HISTORY.md12
-rw-r--r--README.md18
-rw-r--r--chipKIT.mk20
-rw-r--r--packaging/fedora/README.md4
-rw-r--r--packaging/fedora/arduino-mk.spec8
6 files changed, 46 insertions, 71 deletions
diff --git a/Arduino.mk b/Arduino.mk
index 3241cca..df5ec03 100644
--- a/Arduino.mk
+++ b/Arduino.mk
@@ -19,7 +19,7 @@
#
# Original Arduino adaptation by mellis, eighthave, oli.keller
#
-# Current version: 1.1.0
+# Current version: 1.2.0
#
# Refer to HISTORY.md file for complete history of changes
#
@@ -29,9 +29,8 @@
#
# We need to worry about three different sorts of file:
#
-# 1. Things which are included in this distribution e.g. ard-reset-arduino
-# => ARDMK_DIR - Where the *.mk files are stored
-# => ARDMK_PATH - Where the ard-reset-arduino script is stored
+# 1. The directory where the *.mk files are stored
+# => ARDMK_DIR
#
# 2. Things which are always in the Arduino distribution e.g.
# boards.txt, libraries, &c.
@@ -63,10 +62,6 @@
# If you don't specify these, we can try to guess, but that might not work
# or work the way you want it to.
#
-# If you don't install the ard-reset-arduino binary to /usr/local/bin, but
-# instead copy them to e.g. /home/mjo/arduino.mk/bin then set
-# ARDMK_PATH = /home/mjo/arduino.mk/bin
-#
# If you'd rather not see the configuration output, define ARDUINO_QUIET.
#
########################################################################
@@ -113,7 +108,7 @@
# in your Makefile:
#
# ARDMK_DIR := $(realpath ../../tools/Arduino-Makefile)
-# include $(ARDMK_DIR)/arduino-mk/Arduino.mk
+# include $(ARDMK_DIR)/Arduino.mk
#
# In any case, once this file has been created the typical workflow is just
#
@@ -231,25 +226,16 @@ endif
# Makefile distribution path
ifndef ARDMK_DIR
- # presume it's a level above the path to our own file
- ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))/..)
+ # presume it's the same path to our own file
+ ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
else
- # show_config_variable macro is defined in Common.mk file and is not available yet.
+ # show_config_variable macro is defined in Common.mk file and is not available yet.
# Let's define a variable to know that user specified ARDMK_DIR
ARDMK_DIR_MSG = USER
endif
-ifneq ($(wildcard $(ARDMK_DIR)/arduino-mk/Common.mk),)
- # git checkout
- ARDMK_FILE = $(ARDMK_DIR)/arduino-mk/arduino.mk
- include $(ARDMK_DIR)/arduino-mk/Common.mk
-else
- ifneq ($(wildcard $(ARDMK_DIR)/Common.mk),)
- # package install
- ARDMK_FILE = $(ARDMK_DIR)/arduino.mk
- include $(ARDMK_DIR)/Common.mk
- endif
-endif
+# include Common.mk now we know where it is
+include $(ARDMK_DIR)/Common.mk
# show_config_variable macro is available now. So let's print config details for ARDMK_DIR
ifndef ARDMK_DIR_MSG
@@ -258,13 +244,6 @@ else
$(call show_config_variable,ARDMK_DIR,[USER])
endif
-ifndef ARDMK_PATH
- ARDMK_PATH = $(ARDMK_DIR)/bin
- $(call show_config_variable,ARDMK_PATH,[COMPUTED],(relative to ARDMK_DIR))
-else
- $(call show_config_variable,ARDMK_PATH,[USER])
-endif
-
########################################################################
# Arduino Directory
@@ -591,12 +570,16 @@ endif
# Reset
ifndef RESET_CMD
+ ARD_RESET_ARDUINO := $(shell which ard-reset-arduino)
+ ifndef ARD_RESET_ARDUINO
+ # same level as *.mk in bin directory when checked out from git
+ # or in $PATH when packaged
+ ARD_RESET_ARDUINO = $(ARDMK_DIR)/bin/ard-reset-arduino
+ endif
ifneq ($(CATERINA),)
- RESET_CMD = $(ARDMK_PATH)/ard-reset-arduino --caterina \
- $(ARD_RESET_OPTS) $(call get_monitor_port)
+ RESET_CMD = $(ARD_RESET_ARDUINO) --caterina $(ARD_RESET_OPTS) $(call get_monitor_port)
else
- RESET_CMD = $(ARDMK_PATH)/ard-reset-arduino \
- $(ARD_RESET_OPTS) $(call get_monitor_port)
+ RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(call get_monitor_port)
endif
endif
@@ -995,7 +978,7 @@ endif
# Default avrdude options
# -V Do not verify
# -q - suppress progress output
-# -D - Disable auto erase for flash memory
+# -D - Disable auto erase for flash memory
# (-D is needed for Mega boards. See https://github.com/sudar/Arduino-Makefile/issues/114#issuecomment-25011005)
ifndef AVRDUDE_OPTS
AVRDUDE_OPTS = -q -V -D
@@ -1221,7 +1204,7 @@ help:
make set_fuses - set fuses without burning bootloader\n\
make help - show this help\n\
"
- @$(ECHO) "Please refer to $(ARDMK_FILE) for more details.\n"
+ @$(ECHO) "Please refer to $(ARDMK_DIR)/Arduino.mk for more details.\n"
.PHONY: all upload raw_upload raw_eeprom error_on_caterina reset reset_stty ispload \
clean depends size show_boards monitor disasm symbol_sizes generated_assembly \
diff --git a/HISTORY.md b/HISTORY.md
index 6b55d05..216db16 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -3,6 +3,8 @@ A Makefile for Arduino Sketches
The following is the rough list of changes that went into different versions.
I tried to give credit whenever possible. If I have missed anyone, kindly add it to the list.
+### 1.2.0 (2014-01-12)
+- Fix: Remove use of arduino-mk subdirectory in git. Fix issue #151, #152 and #147 (https://github.com/sej7278)
### 1.2.0 (2014-01-12)
- Add: Add RPM SPECfile and new `package` directory to store package instructions and files (https://github.com/sej7278)
@@ -23,7 +25,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
- Fix: Handle relative paths of bootloader file while burning bootloaders. Fix #126 and #142 (https://github.com/sej7278)
- New: Add `CONTRIBUTING.md` explaining how to contribute to the project.
- New: Force -Os optimization for SoftwareSerial. Add `OPTIMIZATION_FLAGS` and `DEBUG_FLAGS`. (https://github.com/mahoy)
-- Fix: Use `ARDUINO_HEADER` variable instead of hardcoded file names. Fix #131
+- Fix: Use `ARDUINO_HEADER` variable instead of hardcoded file names. Fix #131
### 1.0.1 (2013-09-25)
- Unconditionally add -D in avrdude options. See #114
@@ -112,7 +114,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
### 0.10 17.ix.12 M J Oldfield
- Added installation notes for Fedora (ex Rickard Lindberg).
-- Changed size target so that it looks at the ELF object,
+- Changed size target so that it looks at the ELF object,
not the hexfile (ex Jared Szechy and Scott Howard).
- Fixed ARDUNIO typo in README.md (ex Kalin Kozhuharov).
- Tweaked OBJDIR handling (ex Matthias Urlichs and Scott Howard).
@@ -132,7 +134,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
- Autodetect ARDMK_DIR based on location of this file
- Added support for utility directory within SYS and USER libraries
-### 0.9.3 13.vi.2012
+### 0.9.3 13.vi.2012
- Auto detect ARDUINO_DIR, Arduino version (https://github.com/rpavlik/)
- Categorize libs into user and system (https://github.com/rpavlik/)
@@ -141,12 +143,12 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
- Changed bytes option for the head shell command, so that it works in Mac as well
- Auto detect Serial Baud rate from sketch if possible
-### 0.9.2 06.vi.2012
+### 0.9.2 06.vi.2012
- Allow user to choose source files (LOCAL_*_SRCS flags) (https://github.com/Gaftech)
- Modified "make size" behavior: using --mcu option and targeting .elf file instead of .hex file.(https://github.com/Gaftech)
-### 0.9.1 06.vi.2012
+### 0.9.1 06.vi.2012
- Corrected the ubuntu package names
- Prevent the *file-not-found* error if the depends.mk file is not needed
diff --git a/README.md b/README.md
index d6a7f18..5dd9e39 100644
--- a/README.md
+++ b/README.md
@@ -14,17 +14,17 @@ On the Mac you might want to set:
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
ARDMK_DIR = /usr/local
+ AVR_TOOLS_DIR = /usr
-On Linux, you might prefer:
+On Linux, you shouldn't need to set anything other than your board type and port:
- ARDUINO_DIR = /usr/share/arduino
- ARDMK_DIR = /usr/share/arduino
- ARDMK_PATH = /usr/bin
- AVR_TOOLS_DIR = /usr
+ BOARD_TAG = mega2560
+ MONITOR_PORT = /dev/ttyACM0
+- `BOARD_TAG` - Type of board, for a list see boards.txt or `make show_boards`
+- `MONITOR_PORT` - The port where your Arduino is plugged in, usually `/dev/ttyACM0` or `/dev/ttyUSB0`
- `ARDUINO_DIR` - Path to Arduino installation
- `ARDMK_DIR` - Path where the `*.mk` are present. If you installed the package, then it is usually `/usr/share/arduino`
-- `ARDMK_PATH` - Path where the `ard-reset-arduino` script is present. If you installed the package, then it is usually `/usr/bin`
- `AVR_TOOLS_DIR` - Path where the avr tools chain binaries are present. If you are going to use the binaries that came with Arduino installation, then you don't have to set it.
The Makefile also delegates resetting the board to a short Perl program.
@@ -80,7 +80,7 @@ It is possible to use [`colorgcc`](https://github.com/colorgcc/colorgcc) with th
## Versioning
-The current version of the makefile is `1.1.0`. You can find the full history in the [HISTORY.md](HISTORY.md) file
+The current version of the makefile is `1.2.0`. You can find the full history in the [HISTORY.md](HISTORY.md) file
This project adheres to Semantic [Versioning 2.0](http://semver.org/).
@@ -92,7 +92,7 @@ published by the Free Software Foundation; either version 2.1 of the License, or
## Contribution
-All contributions (even documentation) are welcome :) Open a pull request and I would be happy to merge them.
+All contributions (even documentation) are welcome :) Open a pull request and I would be happy to merge them.
Also checkout the [contribution guide](CONTRIBUTING.md) for more details.
If you are looking for ideas to work on, then check out the following TODO items or the [issue tracker](https://github.com/sudar/Arduino-Makefile/issues/).
@@ -108,7 +108,7 @@ If you find an issue or have an idea for a feature then log them in the [issue t
## Credits
-This makefile was originally created by [Martin Oldfield](http://mjo.tc/atelier/2009/02/arduino-cli.html) and he maintained it till v0.10.2.
+This makefile was originally created by [Martin Oldfield](http://mjo.tc/atelier/2009/02/arduino-cli.html) and he maintained it till v0.10.2.
From May 2013, it is maintained by [Sudar](http://hardwarefun.com/tutorials/compiling-arduino-sketches-using-makefile)
## Similar works
diff --git a/chipKIT.mk b/chipKIT.mk
index 2d9abb4..f3ac4cb 100644
--- a/chipKIT.mk
+++ b/chipKIT.mk
@@ -27,23 +27,11 @@
# The show_config_variable is unavailable before we include the common makefile,
# so we defer logging the ARDMK_DIR info until it happens in Arduino.mk
ifndef ARDMK_DIR
- # presume it's a level above the path to our own file
- ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))/..)
+ # presume it's the same path to our own file
+ ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
endif
-ifndef ARDMK_PATH
- ARDMK_PATH = $(ARDMK_DIR)/bin
-endif
-
-ifneq ($(wildcard $(ARDMK_DIR)/arduino-mk/Common.mk),)
- # git checkout
- include $(ARDMK_DIR)/arduino-mk/Common.mk
-else
- ifneq ($(wildcard $(ARDMK_DIR)/Common.mk),)
- # package install
- include $(ARDMK_DIR)/Common.mk
- endif
-endif
+include $(ARDMK_DIR)/Common.mk
ifndef MPIDE_DIR
AUTO_MPIDE_DIR := $(firstword \
@@ -110,4 +98,4 @@ LDFLAGS += -T$(ARDUINO_CORE_PATH)/chipKIT-application-COMMON.ld
CPPFLAGS += -mno-smart-io -fno-short-double
CFLAGS_STD =
-include $(ARDMK_DIR)/arduino-mk/Arduino.mk
+include $(ARDMK_DIR)/Arduino.mk
diff --git a/packaging/fedora/README.md b/packaging/fedora/README.md
index dbd6334..58ef666 100644
--- a/packaging/fedora/README.md
+++ b/packaging/fedora/README.md
@@ -6,7 +6,7 @@ First install the dependencies as root:
From the top-level Arduino-Makefile directory you've checked out of github, run the following (as unprivileged user) to create a compressed tarball using the naming conventions required by rpmbuild:
- git archive --prefix=arduino-mk-1.1.0/ --format=tar -o ../arduino-mk-1.1.0.tar.gz -v HEAD | gzip
+ git archive HEAD --prefix=arduino-mk-1.2.0/ -o ../arduino-mk-1.2.0.tar.gz
If you don't already have a rpmbuild setup (e.g. you've not installed the SRPM) you will need to create the directories:
@@ -14,7 +14,7 @@ If you don't already have a rpmbuild setup (e.g. you've not installed the SRPM)
Then copy the tarball and specfile into those directories:
- cp ../arduino-mk-1.1.0.tar.gz ~/rpmbuild/SOURCES/
+ cp ../arduino-mk-1.2.0.tar.gz ~/rpmbuild/SOURCES/
cp packaging/fedora/arduino-mk.spec ~/rpmbuild/SPECS/
Then compile. This will create a binary and source RPM:
diff --git a/packaging/fedora/arduino-mk.spec b/packaging/fedora/arduino-mk.spec
index 1a7f3d3..a12ed55 100644
--- a/packaging/fedora/arduino-mk.spec
+++ b/packaging/fedora/arduino-mk.spec
@@ -1,5 +1,5 @@
Name: arduino-mk
-Version: 1.1.0
+Version: 1.2.0
Release: 1%{dist}
Summary: Program your Arduino from the command line
Packager: Simon John <git@the-jedi.co.uk>
@@ -33,8 +33,8 @@ install -m 755 -d %{buildroot}/%{_docdir}/%{name}
install -m 755 -d %{buildroot}/%{_docdir}/%{name}/examples
for dir in `find examples -type d` ; do install -m 755 -d %{buildroot}/%{_docdir}/%{name}/$dir ; done
for file in `find examples -type f ! -name .gitignore` ; do install -m 644 $file %{buildroot}/%{_docdir}/%{name}/$file ; done
-install -m 644 %{name}/*.mk %{buildroot}/%{_datadir}/arduino
-install -m 644 %{name}/licence.txt %{buildroot}/%{_docdir}/%{name}
+install -m 644 *.mk %{buildroot}/%{_datadir}/arduino
+install -m 644 licence.txt %{buildroot}/%{_docdir}/%{name}
install -m 755 bin/ard-reset-arduino %{buildroot}/%{_bindir}/ard-reset-arduino
help2man %{buildroot}/%{_bindir}/ard-reset-arduino -n "Reset Arduino board" -s 1 -m "Arduino CLI Reset" --version-string=%{version} -N -o %{buildroot}/%{_mandir}/man1/ard-reset-arduino.1
@@ -51,5 +51,7 @@ rm -rf %{buildroot}
%{_docdir}/%{name}/examples
%changelog
+* Mon Jan 13 2014 Simon John <git@the-jedi.co.uk>
+- Removed arduino-mk subdirectory
* Mon Dec 30 2013 Simon John <git@the-jedi.co.uk>
- Initial release.