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>
This commit is contained in:
Bartosz Golaszewski 2017-01-19 13:01:49 +01:00 committed by Thomas Petazzoni
parent d6706dc430
commit f3940282c0
5 changed files with 79 additions and 0 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,2 @@
# Locally computed
sha256 0f9f5215d0100a8066f4e6b064892747720e556cbb83f6c05d6151d68ec2025b libgpiod-v0.1.tar.gz

View File

@ -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))