1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-04-28 07:23:43 +02:00

Add infrastructure to support libusb-1.0

Corresponding to flashrom svn r1920.

Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Urja Rannikko <urjaman@gmail.com>
This commit is contained in:
Stefan Tauner 2016-01-31 22:10:14 +00:00
parent c83ddc1769
commit e49edbb898
2 changed files with 51 additions and 2 deletions

View File

@ -794,6 +794,23 @@ FEATURE_CFLAGS += -D'NEED_USB=1'
USBLIBS := $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ; $(PKG_CONFIG) --libs libusb || printf "%s" "-lusb") USBLIBS := $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ; $(PKG_CONFIG) --libs libusb || printf "%s" "-lusb")
endif endif
ifeq ($(NEED_LIBUSB1), yes)
CHECK_LIBUSB1 = yes
FEATURE_CFLAGS += -D'NEED_LIBUSB1=1'
# FreeBSD and DragonflyBSD use a reimplementation of libusb-1.0 that is simply called libusb
ifeq ($(TARGET_OS),$(filter $(TARGET_OS),FreeBSD DragonFlyBSD))
USB1LIBS += -lusb
else
ifeq ($(TARGET_OS),NetBSD)
CPPFLAGS += -I/usr/pkg/include/libusb-1.0
USB1LIBS += -lusb-1.0
else
USB1LIBS += $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)"; pkg-config --libs libusb-1.0 || printf "%s" "-lusb-1.0")
CPPFLAGS += $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)"; pkg-config --cflags-only-I libusb-1.0 || printf "%s" "-I/usr/include/libusb-1.0")
endif
endif
endif
ifeq ($(CONFIG_PRINT_WIKI), yes) ifeq ($(CONFIG_PRINT_WIKI), yes)
FEATURE_CFLAGS += -D'CONFIG_PRINT_WIKI=1' FEATURE_CFLAGS += -D'CONFIG_PRINT_WIKI=1'
CLI_OBJS += print_wiki.o CLI_OBJS += print_wiki.o
@ -813,7 +830,7 @@ ifeq ($(ARCH), x86)
endif endif
$(PROGRAM)$(EXEC_SUFFIX): $(OBJS) $(PROGRAM)$(EXEC_SUFFIX): $(OBJS)
$(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LIBS) $(PCILIBS) $(FEATURE_LIBS) $(USBLIBS) $(CC) $(LDFLAGS) -o $(PROGRAM)$(EXEC_SUFFIX) $(OBJS) $(LIBS) $(PCILIBS) $(FEATURE_LIBS) $(USBLIBS) $(USB1LIBS)
libflashrom.a: $(LIBFLASHROM_OBJS) libflashrom.a: $(LIBFLASHROM_OBJS)
$(AR) rcs $@ $^ $(AR) rcs $@ $^
@ -934,6 +951,20 @@ int main(int argc, char **argv)
endef endef
export LIBUSB0_TEST export LIBUSB0_TEST
define LIBUSB1_TEST
#include <stddef.h>
#include <libusb.h>
int main(int argc, char **argv)
{
(void)argc;
(void)argv;
libusb_init(NULL);
return 0;
}
endef
export LIBUSB1_TEST
hwlibs: compiler hwlibs: compiler
@printf "" > .libdeps @printf "" > .libdeps
ifeq ($(CHECK_LIBPCI), yes) ifeq ($(CHECK_LIBPCI), yes)
@ -982,6 +1013,24 @@ ifeq ($(CHECK_LIBUSB0), yes)
rm -f .test.c .test.o .test$(EXEC_SUFFIX); exit 1; }; } 2>>$(BUILD_DETAILS_FILE); echo $? >&3 ; } | tee -a $(BUILD_DETAILS_FILE) >&4; } 3>&1;} | { read rc ; exit ${rc}; } } 4>&1 rm -f .test.c .test.o .test$(EXEC_SUFFIX); exit 1; }; } 2>>$(BUILD_DETAILS_FILE); echo $? >&3 ; } | tee -a $(BUILD_DETAILS_FILE) >&4; } 3>&1;} | { read rc ; exit ${rc}; } } 4>&1
@rm -f .test.c .test.o .test$(EXEC_SUFFIX) @rm -f .test.c .test.o .test$(EXEC_SUFFIX)
endif endif
ifeq ($(CHECK_LIBUSB1), yes)
@printf "Checking for libusb-1.0 headers... " | tee -a $(BUILD_DETAILS_FILE)
@echo "$$LIBUSB1_TEST" > .test.c
@printf "\nexec: %s\n" "$(CC) -c $(CPPFLAGS) $(CFLAGS) .test.c -o .test.o" >>$(BUILD_DETAILS_FILE)
@{ { { { { $(CC) -c $(CPPFLAGS) $(CFLAGS) .test.c -o .test.o >&2 && \
echo "found." || { echo "not found."; echo; \
echo "Please install libusb-1.0 headers."; \
echo "See README for more information."; echo; \
rm -f .test.c .test.o; exit 1; }; } 2>>$(BUILD_DETAILS_FILE); echo $? >&3 ; } | tee -a $(BUILD_DETAILS_FILE) >&4; } 3>&1;} | { read rc ; exit ${rc}; } } 4>&1
@printf "Checking if libusb-1.0 is usable... " | tee -a $(BUILD_DETAILS_FILE)
@printf "\nexec: %s\n" "$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(USB1LIBS)" >>$(BUILD_DETAILS_FILE)
@{ { { { { $(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(USB1LIBS) >&2 && \
echo "yes." || { echo "no."; \
echo "Please install libusb-1.0."; \
echo "See README for more information."; echo; \
rm -f .test.c .test.o .test$(EXEC_SUFFIX); exit 1; }; } 2>>$(BUILD_DETAILS_FILE); echo $? >&3 ; } | tee -a $(BUILD_DETAILS_FILE) >&4; } 3>&1;} | { read rc ; exit ${rc}; } } 4>&1
@rm -f .test.c .test.o .test$(EXEC_SUFFIX)
endif
.features: features .features: features

View File

@ -1076,7 +1076,7 @@ needs TCP access to the network or userspace access to a serial port.
needs userspace access to a serial port. needs userspace access to a serial port.
.sp .sp
.BR dediprog ", " ft2232_spi ", " usbblaster_spi " and " pickit2_spi .BR dediprog ", " ft2232_spi ", " usbblaster_spi " and " pickit2_spi
need access to the USB device via libusb. need access to the respective USB device via libusb API version 0.1.
.sp .sp
.B dummy .B dummy
needs no access permissions at all. needs no access permissions at all.