Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3] libusb: add an option to compile examples
@ 2018-06-11 13:47 Gaël PORTAY
  2018-06-17 13:13 ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Gaël PORTAY @ 2018-06-11 13:47 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
---
Changes since v1:
 - remove presence check.

Changes since v2:
 - fix typo in list of examples

 package/libusb/Config.in |  7 +++++++
 package/libusb/libusb.mk | 10 ++++++++++
 2 files changed, 17 insertions(+)

diff --git a/package/libusb/Config.in b/package/libusb/Config.in
index 5238588aa8..d31a717fdf 100644
--- a/package/libusb/Config.in
+++ b/package/libusb/Config.in
@@ -6,5 +6,12 @@ config BR2_PACKAGE_LIBUSB
 
 	  http://libusb.info/
 
+if BR2_PACKAGE_LIBUSB
+
+config BR2_PACKAGE_LIBUSB_EXAMPLES
+	bool "build libusb examples"
+
+endif
+
 comment "libusb needs a toolchain w/ threads"
 	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libusb/libusb.mk b/package/libusb/libusb.mk
index aee3622f8d..32f15c9612 100644
--- a/package/libusb/libusb.mk
+++ b/package/libusb/libusb.mk
@@ -25,5 +25,15 @@ else
 LIBUSB_CONF_OPTS += --disable-udev
 endif
 
+ifeq ($(BR2_PACKAGE_LIBUSB_EXAMPLES),y)
+LIBUSB_CONF_OPTS += --enable-examples-build
+define LIBUSB_INSTALL_TARGET_EXAMPLES
+	for example in listdevs xusb fxload hotplugtest testlibusb dpfp dpfp_threaded sam3u_benchmark ; do \
+		cp -dpfr $(@D)/examples/$${example} $(TARGET_DIR)/usr/bin; \
+	done
+endef
+LIBUSB_POST_INSTALL_TARGET_HOOKS += LIBUSB_INSTALL_TARGET_EXAMPLES
+endif
+
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3] libusb: add an option to compile examples
  2018-06-11 13:47 [Buildroot] [PATCH v3] libusb: add an option to compile examples Gaël PORTAY
@ 2018-06-17 13:13 ` Thomas Petazzoni
  2018-06-17 21:14   ` Gaël PORTAY
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Petazzoni @ 2018-06-17 13:13 UTC (permalink / raw)
  To: buildroot

Hello,

On Mon, 11 Jun 2018 09:47:50 -0400, Ga?l PORTAY wrote:

> +ifeq ($(BR2_PACKAGE_LIBUSB_EXAMPLES),y)
> +LIBUSB_CONF_OPTS += --enable-examples-build
> +define LIBUSB_INSTALL_TARGET_EXAMPLES
> +	for example in listdevs xusb fxload hotplugtest testlibusb dpfp dpfp_threaded sam3u_benchmark ; do \

As I said in a review of an earlier version, you should use a make loop
instead of a shell loop. One benefit of make loops is that they bail
out if one iteration of the loop fails. A shell loop doesn't, and
continues with the next iterations.

> +		cp -dpfr $(@D)/examples/$${example} $(TARGET_DIR)/usr/bin; \

This should have use $(INSTALL) -D -m 0755 and a full destination path.

I've fixed both issues and applied.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3] libusb: add an option to compile examples
  2018-06-17 13:13 ` Thomas Petazzoni
@ 2018-06-17 21:14   ` Gaël PORTAY
  2018-06-17 21:30     ` Thomas Petazzoni
  0 siblings, 1 reply; 4+ messages in thread
From: Gaël PORTAY @ 2018-06-17 21:14 UTC (permalink / raw)
  To: buildroot

Thomas,

On Sun, Jun 17, 2018 at 03:13:45PM +0200, Thomas Petazzoni wrote:
> Hello,
> 
> On Mon, 11 Jun 2018 09:47:50 -0400, Ga?l PORTAY wrote:
> 
> > +ifeq ($(BR2_PACKAGE_LIBUSB_EXAMPLES),y)
> > +LIBUSB_CONF_OPTS += --enable-examples-build
> > +define LIBUSB_INSTALL_TARGET_EXAMPLES
> > +	for example in listdevs xusb fxload hotplugtest testlibusb dpfp dpfp_threaded sam3u_benchmark ; do \
> 
> As I said in a review of an earlier version, you should use a make loop
> instead of a shell loop. One benefit of make loops is that they bail
> out if one iteration of the loop fails. A shell loop doesn't, and
> continues with the next iterations.
>

Sorry to have missed your review.

Hum... the shell's for loop exits in error too when an iteration fails;
which causes make failure for TARGET_INSTALL (unless set +e is
specified)... or maybe I missed something :/

Whatever, I really do prefer your solution.

> > +		cp -dpfr $(@D)/examples/$${example} $(TARGET_DIR)/usr/bin; \
> 
> This should have use $(INSTALL) -D -m 0755 and a full destination path.
> 
> I've fixed both issues and applied.
> 

I pretty sure I picked up this part of code from another package in
buildroot. I can apply the same changes to keep package consistent.

> Thanks!
> 
> Thomas
> -- 
> Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
> Embedded Linux and Kernel engineering
> https://bootlin.com
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] [PATCH v3] libusb: add an option to compile examples
  2018-06-17 21:14   ` Gaël PORTAY
@ 2018-06-17 21:30     ` Thomas Petazzoni
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Petazzoni @ 2018-06-17 21:30 UTC (permalink / raw)
  To: buildroot

Hello,

On Sun, 17 Jun 2018 17:14:01 -0400, Ga?l PORTAY wrote:

> > As I said in a review of an earlier version, you should use a make loop
> > instead of a shell loop. One benefit of make loops is that they bail
> > out if one iteration of the loop fails. A shell loop doesn't, and
> > continues with the next iterations.
> >  
> 
> Sorry to have missed your review.
> 
> Hum... the shell's for loop exits in error too when an iteration fails;
> which causes make failure for TARGET_INSTALL (unless set +e is
> specified)... or maybe I missed something :/

I don't think shell snippets executed by make are executed with set -e.

> > > +		cp -dpfr $(@D)/examples/$${example} $(TARGET_DIR)/usr/bin; \  
> > 
> > This should have use $(INSTALL) -D -m 0755 and a full destination path.
> > 
> > I've fixed both issues and applied.
> >   
> 
> I pretty sure I picked up this part of code from another package in
> buildroot. I can apply the same changes to keep package consistent.

We do use "cp -dpfr" to copy entire directories. But for individual
files, we prefer $(INSTALL).

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2018-06-17 21:30 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-11 13:47 [Buildroot] [PATCH v3] libusb: add an option to compile examples Gaël PORTAY
2018-06-17 13:13 ` Thomas Petazzoni
2018-06-17 21:14   ` Gaël PORTAY
2018-06-17 21:30     ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox