Rebased python3 branch with some changes from tuna-f1sh@87d5241
This commit is contained in:
parent
6f786a96b0
commit
207253abc6
11 changed files with 76 additions and 48 deletions
|
@ -853,15 +853,15 @@ endif
|
||||||
# Reset
|
# Reset
|
||||||
|
|
||||||
ifndef RESET_CMD
|
ifndef RESET_CMD
|
||||||
ARD_RESET_ARDUINO := $(shell which ard-reset-arduino 2> /dev/null)
|
ARD_RESET_ARDUINO := $(PYTHON_CMD) $(shell which ard-reset-arduino 2> /dev/null)
|
||||||
ifndef ARD_RESET_ARDUINO
|
ifndef ARD_RESET_ARDUINO
|
||||||
# same level as *.mk in bin directory when checked out from git
|
# same level as *.mk in bin directory when checked out from git
|
||||||
# or in $PATH when packaged
|
# or in $PATH when packaged
|
||||||
ARD_RESET_ARDUINO = $(ARDMK_DIR)/bin/ard-reset-arduino
|
ARD_RESET_ARDUINO = $(PYTHON_CMD) $(ARDMK_DIR)/bin/ard-reset-arduino
|
||||||
endif
|
endif
|
||||||
ifneq (,$(findstring CYGWIN,$(shell uname -s)))
|
ifneq (,$(findstring CYGWIN,$(shell uname -s)))
|
||||||
# confirm user is using default cygwin unix Python (which uses ttySx) and not Windows Python (which uses COMx)
|
# confirm user is using default cygwin unix Python (which uses ttySx) and not Windows Python (which uses COMx)
|
||||||
ifeq ($(shell which python),/usr/bin/python)
|
ifeq ($(PYTHON_CMD),/usr/bin/python)
|
||||||
RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(DEVICE_PATH)
|
RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(DEVICE_PATH)
|
||||||
else
|
else
|
||||||
RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(call get_monitor_port)
|
RESET_CMD = $(ARD_RESET_ARDUINO) $(ARD_RESET_OPTS) $(call get_monitor_port)
|
||||||
|
|
21
Common.mk
21
Common.mk
|
@ -98,3 +98,24 @@ ifeq ($(CURRENT_OS),WINDOWS)
|
||||||
echo $(error On Windows, ARDUINO_DIR and other defines must use forward slash and not contain spaces, special characters or be cygdrive relative)
|
echo $(error On Windows, ARDUINO_DIR and other defines must use forward slash and not contain spaces, special characters or be cygdrive relative)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
########################################################################
|
||||||
|
# System Python
|
||||||
|
|
||||||
|
ifndef PYTHON_CMD
|
||||||
|
# try for Python 3 first
|
||||||
|
PYTHON_CMD := $(shell which python3 2> /dev/null)
|
||||||
|
ifdef PYTHON_CMD
|
||||||
|
$(call show_config_variable,PYTHON_CMD,[AUTODETECTED])
|
||||||
|
else
|
||||||
|
# fall-back to any Python
|
||||||
|
PYTHON_CMD := $(shell which python 2> /dev/null)
|
||||||
|
ifdef PYTHON_CMD
|
||||||
|
$(call show_config_variable,PYTHON_CMD,[AUTODETECTED])
|
||||||
|
else
|
||||||
|
echo $(error "Unable to find system Python! Utility scipts won't work. Override this error by defining PYTHON_CMD")
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
$(call show_config_variable,PYTHON_CMD,[USER])
|
||||||
|
endif
|
||||||
|
|
|
@ -32,6 +32,7 @@ I tried to give credit whenever possible. If I have missed anyone, kindly add it
|
||||||
- New: Updated Arch instructions. (https://github.com/Akram-Chehaima)
|
- New: Updated Arch instructions. (https://github.com/Akram-Chehaima)
|
||||||
- New: Add support for Robotis OpenCR 1.0 boards.
|
- New: Add support for Robotis OpenCR 1.0 boards.
|
||||||
- New: Build the ArduinoCore API
|
- New: Build the ArduinoCore API
|
||||||
|
- New: Support for Python 3 and multi-os Python installation using new PYTHON_CMD variable.
|
||||||
|
|
||||||
### 1.6.0 (2017-07-11)
|
### 1.6.0 (2017-07-11)
|
||||||
- Fix: Allowed for SparkFun's weird usb pid/vid submenu shenanigans (issue #499). (https://github.com/sej7278)
|
- Fix: Allowed for SparkFun's weird usb pid/vid submenu shenanigans (issue #499). (https://github.com/sej7278)
|
||||||
|
|
29
README.md
29
README.md
|
@ -83,14 +83,14 @@ installer or download the distribution zip file and extract it.
|
||||||
The Makefile also delegates resetting the board to a short Python program.
|
The Makefile also delegates resetting the board to a short Python program.
|
||||||
You'll need to install [`pySerial`](https://pypi.python.org/pypi/pyserial) to use it though.
|
You'll need to install [`pySerial`](https://pypi.python.org/pypi/pyserial) to use it though.
|
||||||
|
|
||||||
On most systems you should be able to install it using either `pip` or `easy_install`.
|
On most systems you should be able to install it using either `pip3` or `easy_install3`.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pip install pyserial
|
pip3 install pyserial
|
||||||
|
|
||||||
# or if you prefer easy_install
|
# or if you prefer easy_install
|
||||||
|
|
||||||
easy_install -U pyserial
|
easy_install3 -U pyserial
|
||||||
```
|
```
|
||||||
|
|
||||||
If you prefer to install it as a package, then you can do that as well.
|
If you prefer to install it as a package, then you can do that as well.
|
||||||
|
@ -98,23 +98,19 @@ If you prefer to install it as a package, then you can do that as well.
|
||||||
On Debian or Ubuntu:
|
On Debian or Ubuntu:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
apt-get install python-serial
|
apt-get install python3-serial
|
||||||
```
|
```
|
||||||
|
|
||||||
On Fedora:
|
On Fedora:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
yum install pyserial
|
dnf install python3-pyserial
|
||||||
|
|
||||||
# or on Fedora 22+
|
|
||||||
|
|
||||||
dnf install pyserial
|
|
||||||
```
|
```
|
||||||
|
|
||||||
On openSUSE:
|
On openSUSE:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
zypper install python-serial
|
zypper install python3-serial
|
||||||
```
|
```
|
||||||
|
|
||||||
On Arch:
|
On Arch:
|
||||||
|
@ -123,15 +119,16 @@ On Arch:
|
||||||
sudo pacman -S python-pyserial
|
sudo pacman -S python-pyserial
|
||||||
```
|
```
|
||||||
|
|
||||||
On Mac using MacPorts:
|
On macOS using Homebrew (one can install to System Python but this is not recommend or good practice):
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
sudo port install py27-serial
|
brew install python
|
||||||
|
pip3 install pyserial
|
||||||
```
|
```
|
||||||
|
|
||||||
On Windows:
|
On Windows:
|
||||||
|
|
||||||
You need to install Cygwin and its packages for Make, Perl, Python2 and the following Serial library.
|
You need to install Cygwin and its packages for Make, Perl, Python3 and the following Serial library.
|
||||||
|
|
||||||
Assuming you included Python in your Cygwin installation:
|
Assuming you included Python in your Cygwin installation:
|
||||||
|
|
||||||
|
@ -141,15 +138,15 @@ Assuming you included Python in your Cygwin installation:
|
||||||
4. build and install Python module:
|
4. build and install Python module:
|
||||||
|
|
||||||
```
|
```
|
||||||
python setup.py build
|
python3 setup.py build
|
||||||
python setup.py install
|
python3 setup.py install
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternatively, if you have setup Cygwin to use a Windows Python installation,
|
Alternatively, if you have setup Cygwin to use a Windows Python installation,
|
||||||
simply install using pip:
|
simply install using pip:
|
||||||
|
|
||||||
```
|
```
|
||||||
pip install pyserial
|
pip3 install pyserial
|
||||||
```
|
```
|
||||||
|
|
||||||
Arduino-Makefile should automatically detect the Python installation type and
|
Arduino-Makefile should automatically detect the Python installation type and
|
||||||
|
|
|
@ -115,6 +115,22 @@ RESET_CMD = $(HOME)/gertduino/reset
|
||||||
|
|
||||||
----
|
----
|
||||||
|
|
||||||
|
### PYTHON_CMD
|
||||||
|
|
||||||
|
**Description:**
|
||||||
|
|
||||||
|
Path to Python binary. Requires pyserial module installed. Makefile will error if unable to auto-find as utility scripts will not work. To override this, give it an empty define.
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
|
||||||
|
```Makefile
|
||||||
|
PYTHON_CMD = /usr/bin/python3
|
||||||
|
```
|
||||||
|
|
||||||
|
**Requirement:** *Optional*
|
||||||
|
|
||||||
|
----
|
||||||
|
|
||||||
## Arduino IDE variables
|
## Arduino IDE variables
|
||||||
|
|
||||||
### ARDUINO_DIR
|
### ARDUINO_DIR
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import serial
|
import serial
|
||||||
import serial.tools.list_ports
|
import serial.tools.list_ports
|
||||||
import os.path
|
import os.path
|
||||||
import argparse
|
import argparse
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
pyserial_version = None
|
|
||||||
try:
|
|
||||||
pyserial_version = int(serial.VERSION[0])
|
|
||||||
except:
|
|
||||||
pyserial_version = 2 # less than 2.3
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Reset an Arduino')
|
parser = argparse.ArgumentParser(description='Reset an Arduino')
|
||||||
parser.add_argument('--zero', action='store_true', help='Reset Arduino Zero or similar Native USB to enter bootloader')
|
parser.add_argument('--zero', action='store_true', help='Reset Arduino Zero or similar Native USB to enter bootloader')
|
||||||
parser.add_argument('--caterina', action='store_true', help='Reset a Leonardo, Micro, Robot or LilyPadUSB.')
|
parser.add_argument('--caterina', action='store_true', help='Reset a Leonardo, Micro, Robot or LilyPadUSB.')
|
||||||
|
@ -65,11 +58,7 @@ if args.zero:
|
||||||
|
|
||||||
ser = serial.Serial(args.port[0], 57600)
|
ser = serial.Serial(args.port[0], 57600)
|
||||||
ser.close()
|
ser.close()
|
||||||
|
ser.baudrate = 1200
|
||||||
if pyserial_version < 3:
|
|
||||||
ser.setBaudrate(1200)
|
|
||||||
else:
|
|
||||||
ser.baudrate = 1200
|
|
||||||
|
|
||||||
# do the open/close at 1200 BAUD
|
# do the open/close at 1200 BAUD
|
||||||
ser.open()
|
ser.open()
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Arduino-mk Makefile and project initialiser
|
Arduino-mk Makefile and project initialiser
|
||||||
|
|
||||||
|
@ -17,7 +18,6 @@ Example:
|
||||||
See `armk-init --help` for CLI arguments
|
See `armk-init --help` for CLI arguments
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from __future__ import print_function
|
|
||||||
import os
|
import os
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ PARSER.add_argument('--cli', action='store_true', help='run with user prompts (r
|
||||||
PARSER.add_argument('-P', '--project', action='store_true',
|
PARSER.add_argument('-P', '--project', action='store_true',
|
||||||
help='create boilerplate project with src, lib and bin folder structure')
|
help='create boilerplate project with src, lib and bin folder structure')
|
||||||
PARSER.add_argument('-t', '--template', action='store_true',
|
PARSER.add_argument('-t', '--template', action='store_true',
|
||||||
help='create bare minimum Arduino source file')
|
help='create bare minimum Arduino source file')
|
||||||
PARSER.add_argument('-V', '--version', action='version', version='%(prog)s '+ VERSION)
|
PARSER.add_argument('-V', '--version', action='version', version='%(prog)s '+ VERSION)
|
||||||
ARGS = PARSER.parse_args()
|
ARGS = PARSER.parse_args()
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#!/usr/bin/python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
# This script sends a program on a robotis board (OpenCM9.04 or CM900)
|
# This script sends a program on a robotis board (OpenCM9.04 or CM900)
|
||||||
# using the robotis bootloader (used in OpenCM IDE)
|
# using the robotis bootloader (used in OpenCM IDE)
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# python robotis-loader.py <serial port> <binary>
|
# python robotis-loader.py <serial port> <binary>
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Name: arduino-mk
|
Name: arduino-mk
|
||||||
Version: 1.6.0
|
Version: 1.6.0
|
||||||
Release: 1%{dist}
|
Release: 2%{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>
|
||||||
URL: https://github.com/sudar/Arduino-Makefile
|
URL: https://github.com/sudar/Arduino-Makefile
|
||||||
|
@ -9,8 +9,7 @@ Group: Development/Tools
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
Requires: arduino-core pyserial
|
Requires: arduino-core python3-pyserial
|
||||||
BuildRequires: arduino-core
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Arduino is an open-source electronics prototyping platform based on
|
Arduino is an open-source electronics prototyping platform based on
|
||||||
|
@ -29,6 +28,7 @@ mkdir -p %{buildroot}/%{_datadir}/arduino
|
||||||
mkdir -p %{buildroot}/%{_bindir}
|
mkdir -p %{buildroot}/%{_bindir}
|
||||||
mkdir -p %{buildroot}/%{_mandir}/man1
|
mkdir -p %{buildroot}/%{_mandir}/man1
|
||||||
mkdir -p %{buildroot}/%{_docdir}/%{name}/examples
|
mkdir -p %{buildroot}/%{_docdir}/%{name}/examples
|
||||||
|
sed -i 's/^#!\/usr\/bin\/env python/#!\/usr\/bin\/python3/' bin/*
|
||||||
install -m 755 -d %{buildroot}/%{_docdir}/%{name}
|
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
|
||||||
|
@ -60,6 +60,10 @@ rm -rf %{buildroot}
|
||||||
%{_docdir}/%{name}/examples
|
%{_docdir}/%{name}/examples
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jan 22 2020 Simon John <git@the-jedi.co.uk>
|
||||||
|
- Added sed for shebang
|
||||||
|
* Thu Oct 24 2019 Simon John <git@the-jedi.co.uk>
|
||||||
|
- Removed BuildRequires
|
||||||
* Thu Oct 05 2017 Simon John <git@the-jedi.co.uk>
|
* Thu Oct 05 2017 Simon John <git@the-jedi.co.uk>
|
||||||
- Added ardmk-init binary and manpage
|
- Added ardmk-init binary and manpage
|
||||||
* Tue Jul 11 2017 Karl Semich <fuzzyTew@gmail.com>
|
* Tue Jul 11 2017 Karl Semich <fuzzyTew@gmail.com>
|
||||||
|
|
|
@ -160,22 +160,22 @@ if [ -z $COMMON_SOURCED ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v python >/dev/null 2>&1; then
|
if ! command -v python3 >/dev/null 2>&1; then
|
||||||
echo "Installing Python..."
|
echo "Installing Python..."
|
||||||
_install "python"
|
_install "python3"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v pip >/dev/null 2>&1; then
|
if ! command -v pip3 >/dev/null 2>&1; then
|
||||||
echo "Installing Pip..."
|
echo "Installing Pip..."
|
||||||
if ! command -v easy_install >/dev/null 2>&1; then
|
if ! command -v easy_install3 >/dev/null 2>&1; then
|
||||||
_install "python-setuptools"
|
_install "python3-setuptools"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ! command -v easy_install >/dev/null 2>&1; then
|
if ! command -v easy_install3 >/dev/null 2>&1; then
|
||||||
die "easy_install not available, can't install pip"
|
die "easy_install3 not available, can't install pip3"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$SUDO_CMD easy_install pip
|
$SUDO_CMD easy_install3 pip3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PIP_SUDO_CMD=
|
PIP_SUDO_CMD=
|
||||||
|
@ -184,7 +184,7 @@ if [ -z $COMMON_SOURCED ]; then
|
||||||
PIP_SUDO_CMD=$SUDO_CMD
|
PIP_SUDO_CMD=$SUDO_CMD
|
||||||
fi
|
fi
|
||||||
|
|
||||||
$PIP_SUDO_CMD pip install --src dependencies --pre -Ur $BOOTSTRAP_DIR/pip-requirements.txt
|
$PIP_SUDO_CMD pip3 install --src dependencies --pre -Ur $BOOTSTRAP_DIR/pip-requirements.txt
|
||||||
|
|
||||||
COMMON_SOURCED=1
|
COMMON_SOURCED=1
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
pyserial==2.7
|
pyserial==3.4
|
||||||
|
|
Loading…
Reference in a new issue