libgpiod is a C library with tools for interacting with the Linux
GPIO character device. Add a package for it.

Note: Requires kernel-headers >= 4.8.

Signed-off-by: Clemens Gruber <clemens.gru...@pqgruber.com>
---
 patches/libgpiod-0.2/autogen.sh |  1 +
 rules/libgpiod.in               | 58 +++++++++++++++++++++++++++++++
 rules/libgpiod.make             | 76 +++++++++++++++++++++++++++++++++++++++++
 3 files changed, 135 insertions(+)
 create mode 120000 patches/libgpiod-0.2/autogen.sh
 create mode 100644 rules/libgpiod.in
 create mode 100644 rules/libgpiod.make

diff --git a/patches/libgpiod-0.2/autogen.sh b/patches/libgpiod-0.2/autogen.sh
new file mode 120000
index 000000000..9f8a4cb7d
--- /dev/null
+++ b/patches/libgpiod-0.2/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/rules/libgpiod.in b/rules/libgpiod.in
new file mode 100644
index 000000000..23625ed49
--- /dev/null
+++ b/rules/libgpiod.in
@@ -0,0 +1,58 @@
+## SECTION=system_libraries
+
+menuconfig LIBGPIOD
+       tristate
+       prompt "libgpiod"
+       help
+         libgpiod is a library accompanied by a set of tools for
+         interacting with the Linux GPIO character device.
+         Requires kernel-headers >= 4.8.
+
+if LIBGPIOD
+
+config LIBGPIOD_TOOLS
+       bool
+
+config LIBGPIOD_GPIODETECT
+       bool
+       prompt "Install gpiodetect"
+       select LIBGPIOD_TOOLS
+       help
+         Lists all gpiochips present on the system
+
+config LIBGPIOD_GPIOINFO
+       bool
+       prompt "Install gpioinfo"
+       select LIBGPIOD_TOOLS
+       help
+         Lists all lines of specified gpiochips
+
+config LIBGPIOD_GPIOGET
+       bool
+       prompt "Install gpioget"
+       select LIBGPIOD_TOOLS
+       help
+         Reads values of specified GPIO lines
+
+config LIBGPIOD_GPIOSET
+       bool
+       prompt "Install gpioset"
+       select LIBGPIOD_TOOLS
+       help
+         Sets values of specified GPIO lines
+
+config LIBGPIOD_GPIOFIND
+       bool
+       prompt "Install gpiofind"
+       select LIBGPIOD_TOOLS
+       help
+         Finds the gpiochip given the line name
+
+config LIBGPIOD_GPIOMON
+       bool
+       prompt "Install gpiomon"
+       select LIBGPIOD_TOOLS
+       help
+         Waits for events on a GPIO line
+
+endif
diff --git a/rules/libgpiod.make b/rules/libgpiod.make
new file mode 100644
index 000000000..b1518ae35
--- /dev/null
+++ b/rules/libgpiod.make
@@ -0,0 +1,76 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2017 by Clemens Gruber <clemens.gru...@pqgruber.com>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_LIBGPIOD) += libgpiod
+
+#
+# Paths and names
+#
+LIBGPIOD_VERSION       := 0.2
+LIBGPIOD_MD5           := e3430f35b6efa842693d659c0bfb7ad5
+LIBGPIOD               := libgpiod-$(LIBGPIOD_VERSION)
+LIBGPIOD_SUFFIX                := tar.gz
+LIBGPIOD_URL           := 
https://github.com/brgl/libgpiod/archive/v$(LIBGPIOD_VERSION).$(LIBGPIOD_SUFFIX)
+LIBGPIOD_SOURCE                := $(SRCDIR)/$(LIBGPIOD).$(LIBGPIOD_SUFFIX)
+LIBGPIOD_DIR           := $(BUILDDIR)/$(LIBGPIOD)
+LIBGPIOD_LICENSE       := LGPL-2.1
+LIBGPIOD_LICENSE_FILES := file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+LIBGPIOD_CONF_TOOL     := autoconf
+LIBGPIOD_CONF_OPT      := \
+       $(CROSS_AUTOCONF_USR) \
+       --$(call ptx/endis, PTXCONF_LIBGPIOD_TOOLS)-tools \
+       --disable-tests
+
+# libgpiod requires kernel headers >= 4.8
+ifdef PTXCONF_KERNEL_HEADER
+LIBGPIOD_CPPFLAGS      := \
+       -I$(KERNEL_HEADERS_INCLUDE_DIR)
+endif
+
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIODETECT)  += gpiodetect
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOINFO)    += gpioinfo
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOGET)     += gpioget
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOSET)     += gpioset
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOFIND)    += gpiofind
+LIBGPIOD_TOOLS-$(PTXCONF_LIBGPIOD_GPIOMON)     += gpiomon
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/libgpiod.targetinstall:
+       @$(call targetinfo)
+
+       @$(call install_init, libgpiod)
+       @$(call install_fixup, libgpiod, PRIORITY, optional)
+       @$(call install_fixup, libgpiod, SECTION, base)
+       @$(call install_fixup, libgpiod, AUTHOR, "Clemens Gruber 
<clemens.gru...@pqgruber.com>")
+       @$(call install_fixup, libgpiod, DESCRIPTION, "Linux GPIO character 
device library")
+
+       @$(call install_lib, libgpiod, 0, 0, 0644, libgpiod)
+
+       @for tool in $(LIBGPIOD_TOOLS-y); do \
+               $(call install_copy, libgpiod, 0, 0, 0755, -, \
+                       /usr/bin/$$tool); \
+       done
+
+       @$(call install_finish, libgpiod)
+
+       @$(call touch)
+
+# vim: syntax=make
-- 
2.13.0


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to