* [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