summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBartosz Golaszewski <bgolaszewski@baylibre.com>2017-01-19 13:01:49 +0100
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2017-01-23 21:22:35 +1300
commitf3940282c03ad4356e018223f7c4c20076dd61ce (patch)
treec61470aadb1a688a72bbbf446c9784a2ed99336b
parentd6706dc430ebb1dade6f90a8d45503c23abec99d (diff)
downloadbuildroot-f3940282c03ad4356e018223f7c4c20076dd61ce.tar.gz
buildroot-f3940282c03ad4356e018223f7c4c20076dd61ce.zip
libgpiod: new package
Add a package containing a C library and a set of command-line tools for controlling GPIOs from user space using the new character device interface on linux. Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> [Thomas: - add comment about autoreconf=yes (suggested by Romain Naour) - add more conventional syntax for the --{enable,disable}-tools usage (suggested by Romain Naour) - add patch to fix musl build.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r--package/Config.in1
-rw-r--r--package/libgpiod/0001-include-gpiod.h-include-missing-time.h-include.patch36
-rw-r--r--package/libgpiod/Config.in20
-rw-r--r--package/libgpiod/libgpiod.hash2
-rw-r--r--package/libgpiod/libgpiod.mk20
5 files changed, 79 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index 1766089b06..560a52c636 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1046,6 +1046,7 @@ menu "Hardware handling"
source "package/libfreefare/Config.in"
source "package/libftdi/Config.in"
source "package/libftdi1/Config.in"
+ source "package/libgpiod/Config.in"
source "package/libgudev/Config.in"
source "package/libhid/Config.in"
source "package/libiio/Config.in"
diff --git a/package/libgpiod/0001-include-gpiod.h-include-missing-time.h-include.patch b/package/libgpiod/0001-include-gpiod.h-include-missing-time.h-include.patch
new file mode 100644
index 0000000000..f3744fd8e9
--- /dev/null
+++ b/package/libgpiod/0001-include-gpiod.h-include-missing-time.h-include.patch
@@ -0,0 +1,36 @@
+From 93fd4a02233d29f78b261d99d9ce6b14869b19c7 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Mon, 23 Jan 2017 21:17:15 +1300
+Subject: [PATCH] include/gpiod.h: include missing <time.h> include
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+gpiod.h uses "struct timespec", but forgets to include the <time.h>
+header which defines "struct timespec". This causes a build error with
+the musl C library:
+
+In file included from core.c:11:0:
+../../include/gpiod.h:232:49: warning: ‘struct timespec’ declared inside parameter list
+ typedef int (*gpiod_event_cb)(int, const struct timespec *, void *);
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ include/gpiod.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/gpiod.h b/include/gpiod.h
+index 8c5858e..c1f252d 100644
+--- a/include/gpiod.h
++++ b/include/gpiod.h
+@@ -22,6 +22,7 @@
+
+ #include <stdlib.h>
+ #include <stdbool.h>
++#include <time.h>
+
+ #ifdef __cplusplus
+ extern "C" {
+--
+2.7.4
+
diff --git a/package/libgpiod/Config.in b/package/libgpiod/Config.in
new file mode 100644
index 0000000000..63a7cb6e78
--- /dev/null
+++ b/package/libgpiod/Config.in
@@ -0,0 +1,20 @@
+config BR2_PACKAGE_LIBGPIOD
+ bool "libgpiod"
+ depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
+ help
+ This is a C library that abstracts the GPIO character
+ device operations on linux.
+
+ https://github.com/brgl/libgpiod
+
+if BR2_PACKAGE_LIBGPIOD
+
+config BR2_PACKAGE_LIBGPIOD_TOOLS
+ bool "install tools"
+ help
+ Include a set of command-line tools for managing GPIOs.
+
+endif
+
+comment "libgpiod needs kernel headers >= 4.8"
+ depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_8
diff --git a/package/libgpiod/libgpiod.hash b/package/libgpiod/libgpiod.hash
new file mode 100644
index 0000000000..7de17bbed9
--- /dev/null
+++ b/package/libgpiod/libgpiod.hash
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 0f9f5215d0100a8066f4e6b064892747720e556cbb83f6c05d6151d68ec2025b libgpiod-v0.1.tar.gz
diff --git a/package/libgpiod/libgpiod.mk b/package/libgpiod/libgpiod.mk
new file mode 100644
index 0000000000..b9bd311fbc
--- /dev/null
+++ b/package/libgpiod/libgpiod.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# libgpiod
+#
+################################################################################
+
+LIBGPIOD_VERSION = v0.1
+LIBGPIOD_SITE = $(call github,brgl,libgpiod,$(LIBGPIOD_VERSION))
+LIBGPIOD_LICENSE = GPLv3+
+LIBGPIOD_LICENSE_FILES = COPYING
+# fetched from github, no configure script provided
+LIBGPIOD_AUTORECONF = YES
+
+ifeq ($(BR2_PACKAGE_LIBGPIOD_TOOLS),y)
+LIBGPIOD_CONF_OPTS += --enable-tools
+else
+LIBGPIOD_CONF_OPTS += --disable-tools
+endif
+
+$(eval $(autotools-package))
OpenPOWER on IntegriCloud