3rd attempt at fixing #147 (and #152/#151)
Removes ARDMK_PATH, ARDMK_FILE and arduino-mk subdirectory Looks for ard-reset-arduino in $PATH or ARDMK_DIR/bin Fixed git-archive command in RPM SPEC file Kept Common.mk - AUTO_ARDUINO_DIR still works Upped version to 1.2.0 Removed some whitespace Updated docs Also removed arduino-mk dir from debian package's arduino-mk.install
This commit is contained in:
parent
c2dc41fdf5
commit
7ed5f1fb1b
6 changed files with 47 additions and 78 deletions
61
Arduino.mk
61
Arduino.mk
|
@ -19,7 +19,7 @@
|
||||||
#
|
#
|
||||||
# Original Arduino adaptation by mellis, eighthave, oli.keller
|
# 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
|
# Refer to HISTORY.md file for complete history of changes
|
||||||
#
|
#
|
||||||
|
@ -29,9 +29,8 @@
|
||||||
#
|
#
|
||||||
# We need to worry about three different sorts of file:
|
# We need to worry about three different sorts of file:
|
||||||
#
|
#
|
||||||
# 1. Things which are included in this distribution e.g. ard-reset-arduino
|
# 1. The directory where the *.mk files are stored
|
||||||
# => ARDMK_DIR - Where the *.mk files are stored
|
# => ARDMK_DIR
|
||||||
# => ARDMK_PATH - Where the ard-reset-arduino script is stored
|
|
||||||
#
|
#
|
||||||
# 2. Things which are always in the Arduino distribution e.g.
|
# 2. Things which are always in the Arduino distribution e.g.
|
||||||
# boards.txt, libraries, &c.
|
# boards.txt, libraries, &c.
|
||||||
|
@ -63,10 +62,6 @@
|
||||||
# If you don't specify these, we can try to guess, but that might not work
|
# If you don't specify these, we can try to guess, but that might not work
|
||||||
# or work the way you want it to.
|
# 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.
|
# If you'd rather not see the configuration output, define ARDUINO_QUIET.
|
||||||
#
|
#
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -113,7 +108,7 @@
|
||||||
# in your Makefile:
|
# in your Makefile:
|
||||||
#
|
#
|
||||||
# ARDMK_DIR := $(realpath ../../tools/Arduino-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
|
# In any case, once this file has been created the typical workflow is just
|
||||||
#
|
#
|
||||||
|
@ -231,25 +226,16 @@ endif
|
||||||
# Makefile distribution path
|
# Makefile distribution path
|
||||||
|
|
||||||
ifndef ARDMK_DIR
|
ifndef ARDMK_DIR
|
||||||
# presume it's a level above the path to our own file
|
# presume it's the same path to our own file
|
||||||
ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))/..)
|
ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
|
||||||
else
|
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
|
# Let's define a variable to know that user specified ARDMK_DIR
|
||||||
ARDMK_DIR_MSG = USER
|
ARDMK_DIR_MSG = USER
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifneq ($(wildcard $(ARDMK_DIR)/arduino-mk/Common.mk),)
|
# include Common.mk now we know where it is
|
||||||
# git checkout
|
include $(ARDMK_DIR)/Common.mk
|
||||||
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
|
|
||||||
|
|
||||||
# show_config_variable macro is available now. So let's print config details for ARDMK_DIR
|
# show_config_variable macro is available now. So let's print config details for ARDMK_DIR
|
||||||
ifndef ARDMK_DIR_MSG
|
ifndef ARDMK_DIR_MSG
|
||||||
|
@ -258,13 +244,6 @@ else
|
||||||
$(call show_config_variable,ARDMK_DIR,[USER])
|
$(call show_config_variable,ARDMK_DIR,[USER])
|
||||||
endif
|
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
|
# Arduino Directory
|
||||||
|
|
||||||
|
@ -591,19 +570,17 @@ endif
|
||||||
# Reset
|
# Reset
|
||||||
|
|
||||||
ifndef RESET_CMD
|
ifndef RESET_CMD
|
||||||
ifneq ($(CATERINA),)
|
ARD_RESET_ARDUINO := $(shell which ard-reset-arduino)
|
||||||
RESET_CMD = $(ARDMK_PATH)/ard-reset-arduino --caterina \
|
ifndef ARD_RESET_ARDUINO
|
||||||
$(ARD_RESET_OPTS) $(call get_monitor_port)
|
# same level as *.mk in bin directory when checked out from git
|
||||||
else
|
# or in $PATH when packaged
|
||||||
RESET_CMD = $(ARDMK_PATH)/ard-reset-arduino \
|
ARD_RESET_ARDUINO = $(ARDMK_DIR)/bin/ard-reset-arduino
|
||||||
$(ARD_RESET_OPTS) $(call get_monitor_port)
|
endif
|
||||||
|
ifneq ($(CATERINA),)
|
||||||
|
RESET_CMD = $(ARD_RESET_ARDUINO) --caterina $(ARD_RESET_OPTS) $(call get_monitor_port)
|
||||||
|
else
|
||||||
|
RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(call get_monitor_port)
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(CATERINA),)
|
|
||||||
ERROR_ON_CATERINA = $(error On $(BOARD_TAG), raw_xxx operation is not supported)
|
|
||||||
else
|
|
||||||
ERROR_ON_CATERINA =
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
|
@ -1221,7 +1198,7 @@ help:
|
||||||
make set_fuses - set fuses without burning bootloader\n\
|
make set_fuses - set fuses without burning bootloader\n\
|
||||||
make help - show this help\n\
|
make help - show this help\n\
|
||||||
"
|
"
|
||||||
@$(ECHO) "Please refer to $(ARDMK_FILE) for more details.\n"
|
@$(ECHO) "Please refer to Arduino.mk for more details.\n"
|
||||||
|
|
||||||
.PHONY: all upload raw_upload raw_eeprom error_on_caterina reset reset_stty ispload \
|
.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 \
|
clean depends size show_boards monitor disasm symbol_sizes generated_assembly \
|
||||||
|
|
|
@ -3,6 +3,8 @@ A Makefile for Arduino Sketches
|
||||||
|
|
||||||
The following is the rough list of changes that went into different versions.
|
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.
|
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.1.0 (2013-12-26)
|
### 1.1.0 (2013-12-26)
|
||||||
- Don't append port details to avrdude for usbasp. See #123
|
- Don't append port details to avrdude for usbasp. See #123
|
||||||
|
|
16
README.md
16
README.md
|
@ -14,17 +14,17 @@ On the Mac you might want to set:
|
||||||
|
|
||||||
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
|
ARDUINO_DIR = /Applications/Arduino.app/Contents/Resources/Java
|
||||||
ARDMK_DIR = /usr/local
|
ARDMK_DIR = /usr/local
|
||||||
|
|
||||||
On Linux, you might prefer:
|
|
||||||
|
|
||||||
ARDUINO_DIR = /usr/share/arduino
|
|
||||||
ARDMK_DIR = /usr/share/arduino
|
|
||||||
ARDMK_PATH = /usr/bin
|
|
||||||
AVR_TOOLS_DIR = /usr
|
AVR_TOOLS_DIR = /usr
|
||||||
|
|
||||||
|
On Linux, you shouldn't need to set anything other than your board type and port:
|
||||||
|
|
||||||
|
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
|
- `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_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.
|
- `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.
|
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
|
## 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/).
|
This project adheres to Semantic [Versioning 2.0](http://semver.org/).
|
||||||
|
|
||||||
|
|
20
chipKIT.mk
20
chipKIT.mk
|
@ -27,23 +27,11 @@
|
||||||
# The show_config_variable is unavailable before we include the common makefile,
|
# 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
|
# so we defer logging the ARDMK_DIR info until it happens in Arduino.mk
|
||||||
ifndef ARDMK_DIR
|
ifndef ARDMK_DIR
|
||||||
# presume it's a level above the path to our own file
|
# presume it's the same path to our own file
|
||||||
ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST))))/..)
|
ARDMK_DIR := $(realpath $(dir $(realpath $(lastword $(MAKEFILE_LIST)))))
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef ARDMK_PATH
|
include $(ARDMK_DIR)/Common.mk
|
||||||
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
|
|
||||||
|
|
||||||
ifndef MPIDE_DIR
|
ifndef MPIDE_DIR
|
||||||
AUTO_MPIDE_DIR := $(firstword \
|
AUTO_MPIDE_DIR := $(firstword \
|
||||||
|
@ -110,4 +98,4 @@ LDFLAGS += -T$(ARDUINO_CORE_PATH)/chipKIT-application-COMMON.ld
|
||||||
CPPFLAGS += -mno-smart-io -fno-short-double
|
CPPFLAGS += -mno-smart-io -fno-short-double
|
||||||
CFLAGS_STD =
|
CFLAGS_STD =
|
||||||
|
|
||||||
include $(ARDMK_DIR)/arduino-mk/Arduino.mk
|
include $(ARDMK_DIR)/Arduino.mk
|
||||||
|
|
|
@ -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:
|
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:
|
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:
|
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/
|
cp packaging/fedora/arduino-mk.spec ~/rpmbuild/SPECS/
|
||||||
|
|
||||||
Then compile. This will create a binary and source RPM:
|
Then compile. This will create a binary and source RPM:
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
Name: arduino-mk
|
Name: arduino-mk
|
||||||
Version: 1.1.0
|
Version: 1.2.0
|
||||||
Release: 1%{dist}
|
Release: 1%{dist}
|
||||||
Summary: Program your Arduino from the command line
|
Summary: Program your Arduino from the command line
|
||||||
Packager: Simon John <git@the-jedi.co.uk>
|
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
|
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 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
|
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 *.mk %{buildroot}/%{_datadir}/arduino
|
||||||
install -m 644 %{name}/licence.txt %{buildroot}/%{_docdir}/%{name}
|
install -m 644 licence.txt %{buildroot}/%{_docdir}/%{name}
|
||||||
install -m 755 bin/ard-reset-arduino %{buildroot}/%{_bindir}/ard-reset-arduino
|
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
|
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
|
%{_docdir}/%{name}/examples
|
||||||
|
|
||||||
%changelog
|
%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>
|
* Mon Dec 30 2013 Simon John <git@the-jedi.co.uk>
|
||||||
- Initial release.
|
- Initial release.
|
||||||
|
|
Loading…
Reference in a new issue