[flashrom] [PATCH] List affected features for missing libraries
Carl-Daniel Hailfinger
c-d.hailfinger.devel.2006 at gmx.net
Wed Feb 17 23:21:50 CET 2016
On 17.02.2016 20:10, Stefan Tauner wrote:
> Some minor bits I think would make sense to commit with this patch..
>
> - NEED_FTDI should be named NEED_LIBFTDI
> There are two major versions of libftdi (~0.20, and ~1.2). Currently
> we don't need anything only available in one of them so that name
> would be most precise at the moment. However, we may wanna use
> NEED_LIBFTDI1 right away to indicate we wont support the older one
> indefinitely.
> - NEED_NET should really be NEED_POSIX_SOCKETS or at least
> NEED_SOCKETS.
>
> Apart from those this is clearly a great improvement (with room for
> even further improvement :) and thus:
> Acked-by: Stefan Tauner <stefan.tauner at alumni.tuwien.ac.at>
> It builds fine on the bot BTW.
Thanks for testing and for the review, Stefan and Urja.
List affected features for missing libraries
If libpci, libusb0 or libusb1 are missing, make will now tell you which
currently enabled features require those libraries.
Example output:
Checking for libusb-0.1/libusb-compat headers... not found.
The following features require libusb-0.1/libusb-compat:
CONFIG_PICKIT2_SPI CONFIG_DEDIPROG.
Please install libusb-0.1 headers or libusb-compat headers.
See README for more information.
Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Stefan Tauner <stefan.tauner at alumni.tuwien.ac.at>
Acked-by: Urja Rannikko <urjaman at gmail.com>
Index: flashrom-libpci_libusb_report_requirements/Makefile
===================================================================
--- flashrom-libpci_libusb_report_requirements/Makefile (Revision 1924)
+++ flashrom-libpci_libusb_report_requirements/Makefile (Arbeitskopie)
@@ -586,27 +586,27 @@
endif
else
endif
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_INTERNAL
endif
ifeq ($(CONFIG_SERPROG), yes)
FEATURE_CFLAGS += -D'CONFIG_SERPROG=1'
PROGRAMMER_OBJS += serprog.o
-NEED_SERIAL := yes
-NEED_NET := yes
+NEED_SERIAL += CONFIG_SERPROG
+NEED_POSIX_SOCKETS += CONFIG_SERPROG
endif
ifeq ($(CONFIG_RAYER_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_RAYER_SPI=1'
PROGRAMMER_OBJS += rayer_spi.o
-# Actually, NEED_PCI is wrong. NEED_IOPORT_ACCESS would be more correct.
-NEED_PCI := yes
+# Actually, NEED_LIBPCI is wrong. NEED_IOPORT_ACCESS would be more correct.
+NEED_LIBPCI += CONFIG_RAYER_SPI
endif
ifeq ($(CONFIG_PONY_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_PONY_SPI=1'
PROGRAMMER_OBJS += pony_spi.o
-NEED_SERIAL := yes
+NEED_SERIAL += CONFIG_PONY_SPI
endif
ifeq ($(CONFIG_BITBANG_SPI), yes)
@@ -617,49 +617,49 @@
ifeq ($(CONFIG_NIC3COM), yes)
FEATURE_CFLAGS += -D'CONFIG_NIC3COM=1'
PROGRAMMER_OBJS += nic3com.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NIC3COM
endif
ifeq ($(CONFIG_GFXNVIDIA), yes)
FEATURE_CFLAGS += -D'CONFIG_GFXNVIDIA=1'
PROGRAMMER_OBJS += gfxnvidia.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_GFXNVIDIA
endif
ifeq ($(CONFIG_SATASII), yes)
FEATURE_CFLAGS += -D'CONFIG_SATASII=1'
PROGRAMMER_OBJS += satasii.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_SATASII
endif
ifeq ($(CONFIG_ATAHPT), yes)
FEATURE_CFLAGS += -D'CONFIG_ATAHPT=1'
PROGRAMMER_OBJS += atahpt.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_ATAHPT
endif
ifeq ($(CONFIG_ATAVIA), yes)
FEATURE_CFLAGS += -D'CONFIG_ATAVIA=1'
PROGRAMMER_OBJS += atavia.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_ATAVIA
endif
ifeq ($(CONFIG_ATAPROMISE), yes)
FEATURE_CFLAGS += -D'CONFIG_ATAPROMISE=1'
PROGRAMMER_OBJS += atapromise.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_ATAPROMISE
endif
ifeq ($(CONFIG_IT8212), yes)
FEATURE_CFLAGS += -D'CONFIG_IT8212=1'
PROGRAMMER_OBJS += it8212.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_IT8212
endif
ifeq ($(CONFIG_FT2232_SPI), yes)
# This is a totally ugly hack.
FEATURE_CFLAGS += $(call debug_shell,grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_FT2232_SPI=1'")
-NEED_FTDI := yes
+NEED_LIBFTDI += CONFIG_FT2232_SPI
PROGRAMMER_OBJS += ft2232_spi.o
endif
@@ -666,7 +666,7 @@
ifeq ($(CONFIG_USBBLASTER_SPI), yes)
# This is a totally ugly hack.
FEATURE_CFLAGS += $(call debug_shell,grep -q "FTDISUPPORT := yes" .features && printf "%s" "-D'CONFIG_USBBLASTER_SPI=1'")
-NEED_FTDI := yes
+NEED_LIBFTDI += CONFIG_USBBLASTER_SPI
PROGRAMMER_OBJS += usbblaster_spi.o
endif
@@ -673,16 +673,16 @@
ifeq ($(CONFIG_PICKIT2_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_PICKIT2_SPI=1'
PROGRAMMER_OBJS += pickit2_spi.o
-NEED_USB := yes
+NEED_LIBUSB0 += CONFIG_PICKIT2_SPI
endif
-ifeq ($(NEED_FTDI), yes)
+ifneq ($(NEED_LIBFTDI), )
FTDILIBS := $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ; $(PKG_CONFIG) --libs libftdi1 || $(PKG_CONFIG) --libs libftdi || printf "%s" "-lftdi -lusb")
FEATURE_CFLAGS += $(call debug_shell,grep -q "FT232H := yes" .features && printf "%s" "-D'HAVE_FT232H=1'")
FTDI_INCLUDES := $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ; $(PKG_CONFIG) --cflags-only-I libftdi1)
FEATURE_CFLAGS += $(FTDI_INCLUDES)
FEATURE_LIBS += $(call debug_shell,grep -q "FTDISUPPORT := yes" .features && printf "%s" "$(FTDILIBS)")
-# We can't set NEED_USB here because that would transform libftdi auto-enabling
+# We can't set NEED_LIBUSB0 here because that would transform libftdi auto-enabling
# into a hard requirement for libusb, defeating the purpose of auto-enabling.
endif
@@ -694,61 +694,61 @@
ifeq ($(CONFIG_DRKAISER), yes)
FEATURE_CFLAGS += -D'CONFIG_DRKAISER=1'
PROGRAMMER_OBJS += drkaiser.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_DRKAISER
endif
ifeq ($(CONFIG_NICREALTEK), yes)
FEATURE_CFLAGS += -D'CONFIG_NICREALTEK=1'
PROGRAMMER_OBJS += nicrealtek.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NICREALTEK
endif
ifeq ($(CONFIG_NICNATSEMI), yes)
FEATURE_CFLAGS += -D'CONFIG_NICNATSEMI=1'
PROGRAMMER_OBJS += nicnatsemi.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NICNATSEMI
endif
ifeq ($(CONFIG_NICINTEL), yes)
FEATURE_CFLAGS += -D'CONFIG_NICINTEL=1'
PROGRAMMER_OBJS += nicintel.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NICINTEL
endif
ifeq ($(CONFIG_NICINTEL_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_NICINTEL_SPI=1'
PROGRAMMER_OBJS += nicintel_spi.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NICINTEL_SPI
endif
ifeq ($(CONFIG_NICINTEL_EEPROM), yes)
FEATURE_CFLAGS += -D'CONFIG_NICINTEL_EEPROM=1'
PROGRAMMER_OBJS += nicintel_eeprom.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_NICINTEL_EEPROM
endif
ifeq ($(CONFIG_OGP_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_OGP_SPI=1'
PROGRAMMER_OBJS += ogp_spi.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_OGP_SPI
endif
ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_BUSPIRATE_SPI=1'
PROGRAMMER_OBJS += buspirate_spi.o
-NEED_SERIAL := yes
+NEED_SERIAL += CONFIG_BUSPIRATE_SPI
endif
ifeq ($(CONFIG_DEDIPROG), yes)
FEATURE_CFLAGS += -D'CONFIG_DEDIPROG=1'
PROGRAMMER_OBJS += dediprog.o
-NEED_USB := yes
+NEED_LIBUSB0 += CONFIG_DEDIPROG
endif
ifeq ($(CONFIG_SATAMV), yes)
FEATURE_CFLAGS += -D'CONFIG_SATAMV=1'
PROGRAMMER_OBJS += satamv.o
-NEED_PCI := yes
+NEED_LIBPCI += CONFIG_SATAMV
endif
ifeq ($(CONFIG_LINUX_SPI), yes)
@@ -760,7 +760,7 @@
ifeq ($(CONFIG_MSTARDDC_SPI), yes)
# This is a totally ugly hack.
FEATURE_CFLAGS += $(call debug_shell,grep -q "LINUX_I2C_SUPPORT := yes" .features && printf "%s" "-D'CONFIG_MSTARDDC_SPI=1'")
-NEED_LINUX_I2C := yes
+NEED_LINUX_I2C += CONFIG_MSTARDDC_SPI
PROGRAMMER_OBJS += mstarddc_spi.o
endif
@@ -767,20 +767,20 @@
ifeq ($(CONFIG_CH341A_SPI), yes)
FEATURE_CFLAGS += -D'CONFIG_CH341A_SPI=1'
PROGRAMMER_OBJS += ch341a_spi.o
-NEED_LIBUSB1 := yes
+NEED_LIBUSB1 += CONFIG_CH341A_SPI
endif
-ifeq ($(NEED_SERIAL), yes)
+ifneq ($(NEED_SERIAL), )
LIB_OBJS += serial.o
endif
-ifeq ($(NEED_NET), yes)
+ifneq ($(NEED_POSIX_SOCKETS), )
ifeq ($(TARGET_OS), SunOS)
LIBS += -lsocket
endif
endif
-ifeq ($(NEED_PCI), yes)
+ifneq ($(NEED_LIBPCI), )
CHECK_LIBPCI = yes
FEATURE_CFLAGS += -D'NEED_PCI=1'
FEATURE_CFLAGS += $(call debug_shell,grep -q "OLD_PCI_GET_DEV := yes" .libdeps && printf "%s" "-D'OLD_PCI_GET_DEV=1'")
@@ -807,13 +807,13 @@
endif
endif
-ifeq ($(NEED_USB), yes)
+ifneq ($(NEED_LIBUSB0), )
CHECK_LIBUSB0 = yes
-FEATURE_CFLAGS += -D'NEED_USB=1'
+FEATURE_CFLAGS += -D'NEED_LIBUSB0=1'
USBLIBS := $(call debug_shell,[ -n "$(PKG_CONFIG_LIBDIR)" ] && export PKG_CONFIG_LIBDIR="$(PKG_CONFIG_LIBDIR)" ; $(PKG_CONFIG) --libs libusb || printf "%s" "-lusb")
endif
-ifeq ($(NEED_LIBUSB1), yes)
+ifneq ($(NEED_LIBUSB1), )
CHECK_LIBUSB1 = yes
FEATURE_CFLAGS += -D'NEED_LIBUSB1=1'
# FreeBSD and DragonflyBSD use a reimplementation of libusb-1.0 that is simply called libusb
@@ -970,7 +970,6 @@
endef
export LIBUSB0_TEST
-
define LIBUSB1_TEST
#include <stddef.h>
#include <libusb.h>
@@ -992,6 +991,7 @@
@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 "The following features require libpci: $(NEED_LIBPCI)."; \
echo "Please install libpci 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
@@ -1009,6 +1009,7 @@
{ printf "\nexec: %s\n" "$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(PCILIBS) -lz" >>$(BUILD_DETAILS_FILE) ; \
$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(PCILIBS) -lz >&2 && \
echo "yes." && echo "NEEDLIBZ := yes" > .libdeps } || { echo "no."; echo; \
+ echo "The following features require libpci: $(NEED_LIBPCI)."; \
echo "Please install libpci (package pciutils) and/or libz."; \
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
@@ -1020,6 +1021,7 @@
@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 "The following features require libusb-0.1/libusb-compat: $(NEED_LIBUSB0)."; \
echo "Please install libusb-0.1 headers or libusb-compat 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
@@ -1027,6 +1029,7 @@
@printf "\nexec: %s\n" "$(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(USBLIBS)" >>$(BUILD_DETAILS_FILE)
@{ { { { { $(CC) $(LDFLAGS) .test.o -o .test$(EXEC_SUFFIX) $(LIBS) $(USBLIBS) >&2 && \
echo "yes." || { echo "no."; \
+ echo "The following features require libusb-0.1/libusb-compat: $(NEED_LIBUSB0)."; \
echo "Please install libusb-0.1 or libusb-compat."; \
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
@@ -1038,6 +1041,7 @@
@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 "The following features require libusb-1.0: $(NEED_LIBUSB1)."; \
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
@@ -1045,6 +1049,7 @@
@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 "The following features require libusb-1.0: $(NEED_LIBUSB1)."; \
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
@@ -1127,7 +1132,7 @@
features: compiler
@echo "FEATURES := yes" > .features.tmp
-ifeq ($(NEED_FTDI), yes)
+ifneq ($(NEED_LIBFTDI), )
@printf "Checking for FTDI support... " | tee -a $(BUILD_DETAILS_FILE)
@echo "$$FTDI_TEST" > .featuretest.c
@printf "\nexec: %s\n" "$(CC) $(CPPFLAGS) $(CFLAGS) $(FTDI_INCLUDES) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX) $(FTDILIBS) $(LIBS)" >>$(BUILD_DETAILS_FILE)
@@ -1152,7 +1157,7 @@
( echo "no."; echo "LINUX_SPI_SUPPORT := no" >> .features.tmp ) } \
2>>$(BUILD_DETAILS_FILE) | tee -a $(BUILD_DETAILS_FILE)
endif
-ifeq ($(NEED_LINUX_I2C), yes)
+ifneq ($(NEED_LINUX_I2C), )
@printf "Checking if Linux I2C headers are present... " | tee -a $(BUILD_DETAILS_FILE)
@echo "$$LINUX_I2C_TEST" > .featuretest.c
@printf "\nexec: %s\n" "$(CC) $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) .featuretest.c -o .featuretest$(EXEC_SUFFIX)" >>$(BUILD_DETAILS_FILE)
More information about the flashrom
mailing list