All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Cercueil <paul.cercueil@analog.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] libiio: new package
Date: Mon, 22 Sep 2014 09:49:20 +0200	[thread overview]
Message-ID: <541FD480.30905@analog.com> (raw)
In-Reply-To: <20140921214118.69e7d5f1@free-electrons.com>

Hi Thomas,

Allright, thank you for your comments. I'll come with something better.

Regards,
Paul

On 21/09/2014 21:41, Thomas Petazzoni wrote:
> Dear Paul Cercueil,
>
> On Thu, 18 Sep 2014 11:44:27 +0200, Paul Cercueil wrote:
>> 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
>>
>> Signed-off-by: Paul Cercueil <paul.cercueil@analog.com>
>> ---
>>   package/Config.in        |  1 +
>>   package/libiio/Config.in | 42 ++++++++++++++++++++++++++
>>   package/libiio/libiio.mk | 76 ++++++++++++++++++++++++++++++++++++++++++++++++
>>   3 files changed, 119 insertions(+)
>>   create mode 100644 package/libiio/Config.in
>>   create mode 100644 package/libiio/libiio.mk
>
> Thanks. However, I tested your package, and it fails to build:
>
> make[1]: entrant dans le r?pertoire ? /home/thomas/projets/buildroot/output/build/libiio-2014_R1/iiod ?
> install --strip-program=/home/thomas/projets/buildroot/output/host/usr/bin/arm-linux-strip -D -s -m 0755 \
> 		iiod /home/thomas/projets/buildroot/output/target/usr/sbin/iiod
> install -m 0755 iiod.sh /home/thomas/projets/buildroot/output/target/etc/init.d/iiod.sh
> update-rc.d iiod.sh defaults 99 01
> update-rc.d: /etc/init.d/iiod.sh: file does not exist
> make[1]: *** [install] Erreur 1
>
> First, the Makefile should not be calling update-rc.d, and also the
> init script in /etc/init.d/ should not be named iiod.sh in Buildroot,
> but directly S<number><name>.
>
> Also, is the install command with stripping is not good for Buildroot:
> we want to control whether stripping happens or not.
>
>
>> +# Avahi support in libiio requires avahi-client,
>> +# which needs avahi-daemon and dbus
>> +ifeq ($(BR2_PACKAGE_AVAHI)$(BR2_PACKAGE_AVAHI_DAEMON)$(BR2_PACKAGE_DBUS),yyy)
>> +	LIBIIO_DEPENDENCIES += avahi
>> +else
>> +	LIBIIO_MAKE_OPTS += WITH_AVAHI=no
>> +endif
>> +
>> +ifneq ($(BR2_PACKAGE_LIBIIO_LOCAL_BACKEND),y)
>> +	LIBIIO_MAKE_OPTS += WITH_LOCAL_BACKEND=no
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIIO_NETWORK_BACKEND),y)
>> +	LIBIIO_DEPENDENCIES += libxml2
>> +else
>> +	LIBIIO_MAKE_OPTS += WITH_NETWORK_BACKEND=no
>> +endif
>> +
>> +# Libiio can run without threads
>> +ifneq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
>> +	LIBIIO_MAKE_OPTS += WITH_PTHREAD=no
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y)
>> +define LIBIIO_BUILD_IIOD
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/iiod $(LIBIIO_MAKE_OPTS)
>> +endef
>> +define LIBIIO_INSTALL_IIOD
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/iiod install \
>> +		$(LIBIIO_MAKE_OPTS) DESTDIR=$(TARGET_DIR)
>> +endef
>> +endif
>> +
>> +ifeq ($(BR2_PACKAGE_LIBIIO_TESTS),y)
>> +define LIBIIO_BUILD_TESTS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/tests $(LIBIIO_MAKE_OPTS)
>> +endef
>> +define LIBIIO_INSTALL_TESTS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/tests install \
>> +		$(LIBIIO_MAKE_OPTS) DESTDIR=$(TARGET_DIR)
>> +endef
>> +endif
>
> Now that I think of it, you could also do:
>
> ifeq ($(BR2_PACKAGE_LIBIIO_IIOD),y)
> LIBIIO_MAKE_DIRS += iiod
> endif
>
> ifeq ($(BR2_PACKAGE_LIBIIO_TESTS),y)
> LIBIIO_MAKE_DIRS += tests
> endif
>
>> +define LIBIIO_BUILD_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) libiio $(LIBIIO_MAKE_OPTS)
>> +	$(LIBIIO_BUILD_IIOD)
>> +	$(LIBIIO_BUILD_TESTS)
>
> Replace those last two lines with:
>
> 	for d in $(LIBIIO_MAKE_DIRS); do \
> 		$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/$$d $(LIBIIO_MAKE_OPTS) || break ; \
> 	done
>
>> +define LIBIIO_INSTALL_STAGING_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install-sysroot \
>> +		$(LIBIIO_MAKE_OPTS) DESTDIR=$(STAGING_DIR)
>> +endef
>> +
>> +define LIBIIO_INSTALL_TARGET_CMDS
>> +	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) install-lib \
>> +		$(LIBIIO_MAKE_OPTS) DESTDIR=$(TARGET_DIR)
>> +	$(LIBIIO_INSTALL_IIOD)
>> +	$(LIBIIO_INSTALL_TESTS)
>
> And ditto here.
>
> Note that the Makefile of libiio could make this a little bit nicer by
> having a build and installation scheme that is easy to work with
> several make targets.
>
> Thanks!
>
> Thomas
>

-- 
--
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368;
Geschaeftsfuehrer:Dr.Carsten Suckrow, William A. Martin, Margaret Seif

  reply	other threads:[~2014-09-22  7:49 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-18  9:44 [Buildroot] [PATCH v2] libiio: new package Paul Cercueil
2014-09-21 19:41 ` Thomas Petazzoni
2014-09-22  7:49   ` Paul Cercueil [this message]
  -- strict thread matches above, loose matches on Subject: below --
2014-11-07 13:49 Paul Cercueil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=541FD480.30905@analog.com \
    --to=paul.cercueil@analog.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.