From patchwork Tue Dec 16 09:34:06 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Cercueil X-Patchwork-Id: 421826 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (fraxinus.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id ABD151400E9 for ; Tue, 16 Dec 2014 20:50:14 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 31D3A8B11B; Tue, 16 Dec 2014 09:50:14 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gOe7b9nB3Tds; Tue, 16 Dec 2014 09:50:13 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 3A7A88B138; Tue, 16 Dec 2014 09:50:13 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from whitealder.osuosl.org (whitealder.osuosl.org [140.211.166.138]) by ash.osuosl.org (Postfix) with ESMTP id C4C4C1C2250 for ; Tue, 16 Dec 2014 09:50:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id C04C88A356 for ; Tue, 16 Dec 2014 09:50:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LOo8+q2bCC7z for ; Tue, 16 Dec 2014 09:50:10 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0095.outbound.protection.outlook.com [65.55.169.95]) by whitealder.osuosl.org (Postfix) with ESMTPS id 447F588985 for ; Tue, 16 Dec 2014 09:50:10 +0000 (UTC) Received: from BN3PR0301CA0023.namprd03.prod.outlook.com (25.160.180.161) by CY1PR0301MB0857.namprd03.prod.outlook.com (25.160.163.151) with Microsoft SMTP Server (TLS) id 15.1.31.17; Tue, 16 Dec 2014 09:35:28 +0000 Received: from BN1AFFO11FD008.protection.gbl (2a01:111:f400:7c10::180) by BN3PR0301CA0023.outlook.office365.com (2a01:111:e400:4000::33) with Microsoft SMTP Server (TLS) id 15.1.31.17 via Frontend Transport; Tue, 16 Dec 2014 09:35:27 +0000 Received: from nwd2mta2.analog.com (137.71.25.57) by BN1AFFO11FD008.mail.protection.outlook.com (10.58.52.68) with Microsoft SMTP Server (TLS) id 15.1.26.17 via Frontend Transport; Tue, 16 Dec 2014 09:35:26 +0000 Received: from NWD2HUBCAS7.ad.analog.com (nwd2hubcas7.ad.analog.com [10.64.72.140]) by nwd2mta2.analog.com (8.13.8/8.13.8) with ESMTP id sBGCbHul024983 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Tue, 16 Dec 2014 07:37:18 -0500 Received: from zeus.spd.analog.com (10.64.82.11) by NWD2HUBCAS7.ad.analog.com (10.64.72.140) with Microsoft SMTP Server id 14.3.210.2; Tue, 16 Dec 2014 04:34:09 -0500 Received: from carl.analog.com ([10.44.2.133]) by zeus.spd.analog.com (8.14.6/8.14.6) with ESMTP id sBG9Y8k4013571; Tue, 16 Dec 2014 04:34:09 -0500 From: Paul Cercueil To: Date: Tue, 16 Dec 2014 10:34:06 +0100 Message-ID: <1418722446-3831-1-git-send-email-paul.cercueil@analog.com> X-Mailer: git-send-email 2.1.3 MIME-Version: 1.0 X-EOPAttributedMessage: 0 Received-SPF: Pass (protection.outlook.com: domain of analog.com designates 137.71.25.57 as permitted sender) receiver=protection.outlook.com; client-ip=137.71.25.57; helo=nwd2mta2.analog.com; Authentication-Results: spf=pass (sender IP is 137.71.25.57) smtp.mailfrom=Paul.Cercueil@analog.com; X-Forefront-Antispam-Report: CIP:137.71.25.57; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(438002)(199003)(189002)(50226001)(31966008)(86362001)(21056001)(1720100001)(229853001)(15975445007)(450100001)(77156002)(99396003)(50466002)(120916001)(92566001)(19580395003)(19580405001)(106466001)(87936001)(36756003)(6806004)(2351001)(575784001)(48376002)(107046002)(77096005)(20776003)(47776003)(53416004)(64706001)(110136001)(89996001)(4396001)(50986999)(46102003)(33646002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB0857; H:nwd2mta2.analog.com; FPR:; SPF:Pass; MLV:sfv; PTR:nwd2mail11.analog.com; A:1; MX:1; LANG:en; X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:CY1PR0301MB0857; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004); SRVR:CY1PR0301MB0857; X-Forefront-PRVS: 04270EF89C X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:; SRVR:CY1PR0301MB0857; X-OriginatorOrg: analog.com Cc: Paul Cercueil Subject: [Buildroot] [PATCH v5] libiio: new package X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" Libiio is a library to ease the development of software interfacing Linux Industrial I/O (IIO) devices. http://wiki.analog.com/resources/tools-software/linux-software/libiio v2: Simplify greatly the patch (upstream now uses CMake) v3: Add support for IPv6 and allow installation of systemd service file v4: Added .hash file v5: Rework libiio.mk and init.d scripts after feedback from upstream Signed-off-by: Paul Cercueil --- package/Config.in | 1 + package/libiio/Config.in | 43 +++++++++++++++++++++++++++++++++++++++ package/libiio/S99iiod.sh | 40 +++++++++++++++++++++++++++++++++++++ package/libiio/libiio.hash | 2 ++ package/libiio/libiio.mk | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 136 insertions(+) create mode 100644 package/libiio/Config.in create mode 100644 package/libiio/S99iiod.sh create mode 100644 package/libiio/libiio.hash create mode 100644 package/libiio/libiio.mk diff --git a/package/Config.in b/package/Config.in index 48be2df..3ce5260 100644 --- a/package/Config.in +++ b/package/Config.in @@ -707,6 +707,7 @@ menu "Hardware handling" source "package/libfreefare/Config.in" source "package/libftdi/Config.in" source "package/libhid/Config.in" + source "package/libiio/Config.in" source "package/libinput/Config.in" source "package/libiqrf/Config.in" source "package/libllcp/Config.in" diff --git a/package/libiio/Config.in b/package/libiio/Config.in new file mode 100644 index 0000000..4bded41 --- /dev/null +++ b/package/libiio/Config.in @@ -0,0 +1,43 @@ +config BR2_PACKAGE_LIBIIO + bool "libiio" + select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND if !BR2_PACKAGE_LIBIIO_NETWORK_BACKEND + help + Libiio is a library to ease the development of software interfacing + Linux Industrial I/O (IIO) devices. + + http://wiki.analog.com/resources/tools-software/linux-software/libiio + +if BR2_PACKAGE_LIBIIO + +config BR2_PACKAGE_LIBIIO_LOCAL_BACKEND + bool "Local backend" + default y + help + Enable the local backend of the library. + +config BR2_PACKAGE_LIBIIO_NETWORK_BACKEND + bool "Network backend" + select BR2_PACKAGE_LIBXML2 + default y + help + Enable the network backend of the library. + +config BR2_PACKAGE_LIBIIO_IIOD + bool "IIO Daemon" + select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND + depends on BR2_TOOLCHAIN_HAS_THREADS + default y + help + Install the IIO Daemon. + +comment "IIO Daemon needs a toolchain w/ threads" + depends on !BR2_TOOLCHAIN_HAS_THREADS + +config BR2_PACKAGE_LIBIIO_TESTS + bool "Install test programs" + select BR2_PACKAGE_LIBIIO_LOCAL_BACKEND + select BR2_PACKAGE_LIBIIO_NETWORK_BACKEND + help + Install the test programs (iio_info, iio_genxml, iio_readdev). + +endif diff --git a/package/libiio/S99iiod.sh b/package/libiio/S99iiod.sh new file mode 100644 index 0000000..bf6294b --- /dev/null +++ b/package/libiio/S99iiod.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +# Server-side demuxing by default +IIOD_OPTS=-D + +[ -r /etc/default/iiod ] && . /etc/default/iiod + +case "$1" in + start) + echo "Starting IIO Server Daemon" + start-stop-daemon -S -b -q -m -p /var/run/iiod.pid -x /usr/sbin/iiod -- $IIOD_OPTS + exit $? + ;; + + stop) + echo "Stopping IIO Server Daemon" + start-stop-daemon -K -q -p /var/run/iiod.pid 2>/dev/null + exit $? + ;; + + status) + RET=1 + if [ -f /var/run/iiod.pid ] ; then + kill -0 `cat /var/run/iiod.pid` >/dev/null 2>&1 + RET=$? + fi + + if [ $RET -eq 0 ] ; then + echo "iiod is running" + else + echo "iiod is NOT running" + fi + + exit $RET + ;; + + *) + echo "Usage: $0 {start|stop|status}" + exit 1 +esac diff --git a/package/libiio/libiio.hash b/package/libiio/libiio.hash new file mode 100644 index 0000000..bbca4c8 --- /dev/null +++ b/package/libiio/libiio.hash @@ -0,0 +1,2 @@ +# From https://github.com/analogdevicesinc/libiio/archive/v0.3/ +sha256 a3571bbf7e80b9e0a8d6bd4b39a5bcd18f80a3d36c4a6f2092dfeefc98e20e07 libiio-v0.3.tar.gz diff --git a/package/libiio/libiio.mk b/package/libiio/libiio.mk new file mode 100644 index 0000000..9077896 --- /dev/null +++ b/package/libiio/libiio.mk @@ -0,0 +1,50 @@ +################################################################################ +# +# libiio +# +################################################################################ + +LIBIIO_VERSION = v0.3 +LIBIIO_SITE = $(call github,analogdevicesinc,libiio,$(LIBIIO_VERSION)) +LIBIIO_INSTALL_STAGING = YES +LIBIIO_LICENSE = LGPLv2.1+ +LIBIIO_LICENSE_FILES = COPYING + +LIBIIO_CONF_OPTS = -DENABLE_IPV6=$(if $(BR2_INET_IPV6),ON,OFF) \ + -DWITH_LOCAL_BACKEND=$(if $(BR2_PACKAGE_LIBIIO_LOCAL_BACKEND),ON,OFF) \ + -DWITH_TESTS=$(if $(BR2_PACKAGE_LIBIIO_TESTS),ON,OFF) + +ifeq ($(BR2_PACKAGE_LIBIIO_NETWORK_BACKEND),y) +LIBIIO_DEPENDENCIES += libxml2 +LIBIIO_CONF_OPTS += -DWITH_NETWORK_BACKEND=ON +else +LIBIIO_CONF_OPTS += -DWITH_NETWORK_BACKEND=OFF +endif + +ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y) +LIBIIO_DEPENDENCIES += host-flex host-bison +LIBIIO_CONF_OPTS += -DWITH_IIOD=ON +else +LIBIIO_CONF_OPTS += -DWITH_IIOD=OFF +endif + +# Avahi support in libiio requires avahi-client, which needs avahi-daemon +ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_AVAHI_DAEMON),yy) +LIBIIO_DEPENDENCIES += avahi +endif + +ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y) +define LIBIIO_INSTALL_INIT_SYSV + $(INSTALL) -D -m 0755 package/libiio/S99iiod.sh \ + $(TARGET_DIR)/etc/init.d/S99iiod.sh +endef +define LIBIIO_INSTALL_INIT_SYSTEMD + $(INSTALL) -d $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants + $(INSTALL) -D -m 0644 $(@D)/debian/iiod.service \ + $(TARGET_DIR)/lib/systemd/system/iiod.service + ln -fs /lib/systemd/system/iiod.service \ + $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/iiod.service +endef +endif + +$(eval $(cmake-package))