summaryrefslogtreecommitdiffstats
path: root/rules
diff options
context:
space:
mode:
authorClemens Gruber <clemens.gruber@pqgruber.com>2017-05-24 17:09:19 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2017-06-01 09:49:19 +0200
commit157cd9c23667d7525628d60596a718a802a0cf84 (patch)
treed86cf96d6ec36c580b3f4a99a123dd85c1a5b5e7 /rules
parent810db9bc0603ee8179189910b478f672e4d6e22d (diff)
downloadptxdist-157cd9c23667d7525628d60596a718a802a0cf84.tar.gz
ptxdist-157cd9c23667d7525628d60596a718a802a0cf84.tar.xz
libgpiod: new package
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.gruber@pqgruber.com> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'rules')
-rw-r--r--rules/libgpiod.in58
-rw-r--r--rules/libgpiod.make76
2 files changed, 134 insertions, 0 deletions
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.gruber@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.gruber@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