2010/6/14 Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
On 12.06.2010 22:35, Carl-Daniel Hailfinger wrote:Fixed a few minor bugs. Should be ready for merge.
> On 05.06.2010 00:06, Carl-Daniel Hailfinger wrote:
>
>> Override incompatible CONFIG_FOO settings for DOS. This allows you to
>> specify CONFIG_FOO=yes for all drivers and still get only those which
>> compile under DOS.
>>
>>
>
> Silently disabling explicitly requested features is a really bad idea.
> This new patch instead warns the user if any impossible (i.e. not
> compilable on this platform) features were specified. Such a warning
> will look like this:
>
> The following features are unavailable on your machine: CONFIG_NIC3COM=yes
>
> If a user does not explicitly request an impossible feature, such a
> feature will be automatically disabled, so just typing "make" will get
> you the common subset of default and possible features.
>
--- flashrom-dos_override_incompatible_config_foo/Makefile (Revision 1047)
Index: flashrom-dos_override_incompatible_config_foo/Makefile
===================================================================
+++ flashrom-dos_override_incompatible_config_foo/Makefile (Arbeitskopie)@@ -53,10 +53,29 @@
CPPFLAGS += -I../libgetopt -I../libpci/include# FIXME Check if we can achieve the same effect with -L../libgetopt -lgetopt
LIBS += ../libgetopt/libgetopt.a
@@ -279,7 +298,7 @@-# Bus Pirate and Serprog are not supported under DOS.
-CONFIG_BUSPIRATE_SPI = no
-CONFIG_SERPROG = no
+# Bus Pirate and Serprog are not supported under DOS (missing serial support).
+ifeq ($(CONFIG_BUSPIRATE_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_BUSPIRATE_SPI=yes
+else
+override CONFIG_BUSPIRATE_SPI = no
endif
+ifeq ($(CONFIG_SERPROG), yes)
+UNSUPPORTED_FEATURES += CONFIG_SERPROG=yes
+else
+override CONFIG_SERPROG = no
+endif
+# Dediprog and FT2232 are not supported under DOS (missing USB support).
+ifeq ($(CONFIG_DEDIPROG), yes)
+UNSUPPORTED_FEATURES += CONFIG_DEDIPROG=yes
+else
+override CONFIG_DEDIPROG = no
+endif
+ifeq ($(CONFIG_FT2232_SPI), yes)
+UNSUPPORTED_FEATURES += CONFIG_FT2232_SPI=yes
+else
+override CONFIG_FT2232_SPI = no
+endif
+endif
CHIP_OBJS = jedec.o stm50flw0x0x.o w39v040c.o w39v080fa.o w29ee011.o \
sst28sf040.o m29f400bt.o 82802ab.o pm49fl00x.o \
strip: $(PROGRAM)$(EXEC_SUFFIX)
$(STRIP) $(STRIP_ARGS) $(PROGRAM)$(EXEC_SUFFIX)
-compiler:
+compiler: featuresavailable
@printf "Checking for a C compiler... "
@$(shell ( echo "int main(int argc, char **argv)"; \
echo "{ return 0; }"; ) > .test.c )
@@ -318,6 +337,17 @@
.features: features
+# If a user does not explicitly request a non-working feature, we should
+# silently disable it. However, if a non-working (does not compile) feature
+# is explicitly requested, we should bail out with a descriptive error message.
+ifeq ($(UNSUPPORTED_FEATURES), )
+featuresavailable:
+else
+featuresavailable:
+ @echo "The following features are unavailable on your machine: $(UNSUPPORTED_FEATURES)"
+ @false
+endif
+
ifeq ($(CONFIG_FT2232_SPI), yes)
features: compiler
@echo "FEATURES := yes" > .features.tmp@@ -375,6 +405,6 @@
djgpp-dos: clean
make CC=i586-pc-msdosdjgpp-gcc STRIP=i586-pc-msdosdjgpp-strip WARNERROR=no OS_ARCH=DOS
-.PHONY: all clean distclean compiler pciutils features export tarball dos
+.PHONY: all clean distclean compiler pciutils features export tarball dos featuresavailable
-include $(OBJS:.o=.d)
--
http://www.hailfinger.org/
_______________________________________________
flashrom mailing list
flashrom@flashrom.org
http://www.flashrom.org/mailman/listinfo/flashrom