diff mbox

[v5,2/2] i2c-tools: add support to build python extension

Message ID 1428272105-27627-2-git-send-email-ryanbarnett3@gmail.com
State Accepted
Headers show

Commit Message

Ryan Barnett April 5, 2015, 10:15 p.m. UTC
Add a config option to build the python bindings for i2c-tools -
py-smbus. The steps for building the python bindings is the same as
the distutil steps that are a part of the python infrastructure.

Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com>
CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
CC: Baruch Siach <baruch@tkos.co.il>
CC: Yann E. MORIN <yann.morin.1998@free.fr>

---
Changes v4 -> v5:
 - Actually send v4 change :)

Changes v3 -> v4:
 - Move define of BASE_ENV under BR2_PACKAGE_PYTHON (Yann)

Changes v2 -> v3:
 - Removed Config.in entry (suggested by Baruch)
 - Moved install and build defines with the CMD block (suggested
   by Yann)

Changes v1 -> v2:
 - Fixed spelling in config entry
 - Utilize the python infrastructure variables for environment and
   build/install opts (suggested by Thomas P)
 - Only support python2.7 since this is not compatabile with python3
   (suggested by Baruch)
---
 package/i2c-tools/i2c-tools.mk | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

Comments

Thomas Petazzoni April 6, 2015, 9:03 a.m. UTC | #1
Dear Ryan Barnett,

On Sun,  5 Apr 2015 17:15:05 -0500, Ryan Barnett wrote:
> Add a config option to build the python bindings for i2c-tools -
> py-smbus. The steps for building the python bindings is the same as
> the distutil steps that are a part of the python infrastructure.
> 
> Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com>
> CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> CC: Baruch Siach <baruch@tkos.co.il>
> CC: Yann E. MORIN <yann.morin.1998@free.fr>

Applied. Did you check that i2c-tools python support was Python 2 only?
Or does it also support Python 3 ?

Best regards,

Thomas
Yann E. MORIN April 6, 2015, 9:07 a.m. UTC | #2
Thomas, All,

On 2015-04-06 11:03 +0200, Thomas Petazzoni spake thusly:
> On Sun,  5 Apr 2015 17:15:05 -0500, Ryan Barnett wrote:
> > Add a config option to build the python bindings for i2c-tools -
> > py-smbus. The steps for building the python bindings is the same as
> > the distutil steps that are a part of the python infrastructure.
> > 
> > Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com>
> > CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> > CC: Baruch Siach <baruch@tkos.co.il>
> > CC: Yann E. MORIN <yann.morin.1998@free.fr>
> 
> Applied. Did you check that i2c-tools python support was Python 2 only?
> Or does it also support Python 3 ?

Yes, it is Python-2 only (see the v1->v2 changelog in the commit notes).

Regards,
Yann E. MORIN.
Angelo Compagnucci April 9, 2015, 6:32 a.m. UTC | #3
Dear Ryan Barnett, Yann E. MORIN, Thomas Petazzoni,

2015-04-06 11:07 GMT+02:00 Yann E. MORIN <yann.morin.1998@free.fr>:
> Thomas, All,
>
> On 2015-04-06 11:03 +0200, Thomas Petazzoni spake thusly:
>> On Sun,  5 Apr 2015 17:15:05 -0500, Ryan Barnett wrote:
>> > Add a config option to build the python bindings for i2c-tools -
>> > py-smbus. The steps for building the python bindings is the same as
>> > the distutil steps that are a part of the python infrastructure.
>> >
>> > Signed-off-by: Ryan Barnett <ryanbarnett3@gmail.com>
>> > CC: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>> > CC: Baruch Siach <baruch@tkos.co.il>
>> > CC: Yann E. MORIN <yann.morin.1998@free.fr>
>>
>> Applied. Did you check that i2c-tools python support was Python 2 only?
>> Or does it also support Python 3 ?
>
> Yes, it is Python-2 only (see the v1->v2 changelog in the commit notes).

This is not true! Py-smbus supports python 3, se the commit here for
further reference:

http://www.lm-sensors.org/changeset/6267

Sincerely, Angelo

> Regards,
> Yann E. MORIN.
>
> --
> .-----------------.--------------------.------------------.--------------------.
> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Ryan Barnett April 9, 2015, 1:11 p.m. UTC | #4
Angelo,

On Thu, Apr 9, 2015 at 1:32 AM, Angelo Compagnucci
<angelo.compagnucci@gmail.com> wrote:
> Dear Ryan Barnett, Yann E. MORIN, Thomas Petazzoni,
>
>>> Applied. Did you check that i2c-tools python support was Python 2 only?
>>> Or does it also support Python 3 ?
>>
>> Yes, it is Python-2 only (see the v1->v2 changelog in the commit notes).
>
> This is not true! Py-smbus supports python 3, se the commit here for
> further reference:
>
> http://www.lm-sensors.org/changeset/6267

When I tried to compile for Python 3 - I had many errors about not
finding Python3 functions. I would image that was probably due to the
fact that the include paths weren't correct. However, at that time I
had lost interest.

Please feel free to add support for Python 3 for py-smbus (i2c-tools).
Will be sure to review and test it.

Thanks,
-Ryan
Angelo Compagnucci April 9, 2015, 8:26 p.m. UTC | #5
Dear Ryan Barnett,

2015-04-09 15:11 GMT+02:00 Ryan Barnett <ryanbarnett3@gmail.com>:
> Angelo,
>
> On Thu, Apr 9, 2015 at 1:32 AM, Angelo Compagnucci
> <angelo.compagnucci@gmail.com> wrote:
>> Dear Ryan Barnett, Yann E. MORIN, Thomas Petazzoni,
>>
>>>> Applied. Did you check that i2c-tools python support was Python 2 only?
>>>> Or does it also support Python 3 ?
>>>
>>> Yes, it is Python-2 only (see the v1->v2 changelog in the commit notes).
>>
>> This is not true! Py-smbus supports python 3, se the commit here for
>> further reference:
>>
>> http://www.lm-sensors.org/changeset/6267
>
> When I tried to compile for Python 3 - I had many errors about not
> finding Python3 functions. I would image that was probably due to the
> fact that the include paths weren't correct. However, at that time I
> had lost interest.
>
> Please feel free to add support for Python 3 for py-smbus (i2c-tools).
> Will be sure to review and test it.

Mea culpa! The version with python3 support is not released, the
support is only in trunk!

Sincerely, Angelo.

>
> Thanks,
> -Ryan
diff mbox

Patch

diff --git a/package/i2c-tools/i2c-tools.mk b/package/i2c-tools/i2c-tools.mk
index 0115e22..6c156ca 100644
--- a/package/i2c-tools/i2c-tools.mk
+++ b/package/i2c-tools/i2c-tools.mk
@@ -10,8 +10,34 @@  I2C_TOOLS_SITE = http://dl.lm-sensors.org/i2c-tools/releases
 I2C_TOOLS_LICENSE = GPLv2+, GPLv2 (py-smbus)
 I2C_TOOLS_LICENSE_FILES = COPYING
 
+# Build/install steps mirror the distutil python package type in the python package
+# infrastructure
+ifeq ($(BR2_PACKAGE_PYTHON),y)
+I2C_TOOLS_DEPENDENCIES += python
+# BASE_ENV taken from PKG_PYTHON_DISTUTILS_ENV in package/pkg-python.mk
+I2C_TOOLS_PYTHON_BASE_ENV = \
+	$(PKG_PYTHON_DISTUTILS_ENV) \
+	CFLAGS="$(TARGET_CFLAGS) -I../include"
+
+define I2C_TOOLS_BUILD_PYSMBUS
+	(cd $(@D)/py-smbus;  \
+	$(I2C_TOOLS_PYTHON_BASE_ENV) \
+		$(HOST_DIR)/usr/bin/python setup.py build \
+		$(PKG_PYTHON_DISTUTILS_BUILD_OPTS))
+endef
+
+define I2C_TOOLS_INSTALL_PYSMBUS
+	(cd $(@D)/py-smbus; \
+	$(I2C_TOOLS_PYTHON_BASE_ENV) \
+		$(HOST_DIR)/usr/bin/python setup.py install \
+		$(PKG_PYTHON_DISTUTILS_INSTALL_TARGET_OPTS))
+endef
+
+endif # BR2_PACKAGE_PYTHON
+
 define I2C_TOOLS_BUILD_CMDS
 	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+	$(I2C_TOOLS_BUILD_PYSMBUS)
 endef
 
 define I2C_TOOLS_INSTALL_TARGET_CMDS
@@ -19,6 +45,7 @@  define I2C_TOOLS_INSTALL_TARGET_CMDS
 	do \
 		$(INSTALL) -m 755 -D $(@D)/tools/$$i $(TARGET_DIR)/usr/bin/$$i; \
 	done
+	$(I2C_TOOLS_INSTALL_PYSMBUS)
 endef
 
 $(eval $(generic-package))