kumquat-buildroot/package/usb_modeswitch/usb_modeswitch.mk
Fabrice Fontaine 345c68f04f package/usb_modeswitch: fix parallel install
Extract from bug report:

"In usb_modeswitch Makefile dispatcher-script, dispatcher-dynlink and
dispatcher-statlink are .PHONY targets. The result is that sources are
compiled also when install targets are called.
USB_MODESWITCH_INSTALL_TARGET_CMDS calls $(MAKE) which is a call to
parallel make eg. make -j9. So the install phase can install empty
usb_modeswitch binary (happened once) if the compiler have just cleared
the binary and install command installs it before compiler writes the
binary. USB_MODESWITCH_INSTALL_TARGET_CMDS should call $(MAKE1)."

Instead of disabling parellel install, use install-common target instead
of install-{dyn,stat}link targets. Indeed, the dynamic or static
usb_modeswitch_dispatcher binary will be built by
all-with-{dyn,stat}link-dispatcher targets, there is no need to rebuild
it during the install step

Fixes:
 - https://bugs.buildroot.org/show_bug.cgi?id=12911

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-09-04 15:57:24 +02:00

40 lines
1.2 KiB
Makefile

################################################################################
#
# usb_modeswitch
#
################################################################################
USB_MODESWITCH_VERSION = 2.6.0
USB_MODESWITCH_SOURCE = usb-modeswitch-$(USB_MODESWITCH_VERSION).tar.bz2
USB_MODESWITCH_SITE = http://www.draisberghof.de/usb_modeswitch
USB_MODESWITCH_DEPENDENCIES = libusb
USB_MODESWITCH_LICENSE = GPL-2.0+, BSD-2-Clause
USB_MODESWITCH_LICENSE_FILES = COPYING
ifeq ($(BR2_PACKAGE_TCL)$(BR2_PACKAGE_TCL_SHLIB_ONLY),y)
USB_MODESWITCH_DEPENDENCIES += tcl
USB_MODESWITCH_BUILD_TARGETS = all
USB_MODESWITCH_INSTALL_TARGETS = install-script
else
USB_MODESWITCH_DEPENDENCIES += jimtcl
USB_MODESWITCH_INSTALL_TARGETS = install-common
ifeq ($(BR2_STATIC_LIBS),y)
USB_MODESWITCH_BUILD_TARGETS = all-with-statlink-dispatcher
else
USB_MODESWITCH_BUILD_TARGETS = all-with-dynlink-dispatcher
endif
endif
define USB_MODESWITCH_BUILD_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
-C $(@D) $(USB_MODESWITCH_BUILD_TARGETS)
endef
define USB_MODESWITCH_INSTALL_TARGET_CMDS
$(TARGET_MAKE_ENV) $(MAKE) $(TARGET_CONFIGURE_OPTS) \
DESTDIR=$(TARGET_DIR) \
-C $(@D) $(USB_MODESWITCH_INSTALL_TARGETS)
endef
$(eval $(generic-package))