[flashrom] [RFC] Feature autodetection during compilation

Kyösti Mälkki kyosti.malkki at gmail.com
Tue Nov 20 12:44:04 CET 2012


On Mon, 2012-11-19 at 01:15 +0100, Carl-Daniel Hailfinger wrote:
> We enable programmer compilation based on the following criteria:
> - Default off unless explicitly enabled (dediprog)
> - Default on unless explicitly disabled (dummy)
> - Default on if technically possible on target machine (linux_spi)
> - Default on if the required libs+headers are available (ft2232_spi)
> 
> The last criterion is what causes pains to no end, at least with the
> current Makefile infrastructure. Yes, we (I) can maintain it, but in the
> long run we either need a separate configure script (which may or may
> not work in all envorinments where GNU make works, especially exotic
> platforms like Windows), or we switch to something like CMake (which
> doesn't have the required features in ancient versions AFAIK), or we use
> two chained Makefiles (which would not meet my definition of "fun").
> Now why is the last criterion such a PITA? All other criteria have a
> hard fail/success test, i.e. if a required lib/header is missing, we
> stop compilation. However, this criterion has a soft fail/success test,
> i.e. if you enable a feature and the required libraries/headers are
> missing, the feature simply will be silently disabled. That sort of
> violates the principle of least surprise, and it's the reason why our
> current Makefile uses nasty tricks with external files to avoid
> reloading itself.
> 
> I would like to switch ft2232_spi to "Default on if technically possible
> on target machine" and spit out an improved error message in case the
> headers are missing.

I would say people don't have libftdi-dev installed by default. Moving
ft2232_spi (and the not-yet merged usbblaster_spi) to that "default on
if technically possible" -class would mean compile without extra options
will fail on a platform for which libftdi is available. Did I understand
this right? 

Switching to default "off" would affect less users and IMO would be
better choice if there is no easy fix. I don't quite see why the 4th
option is so troublesome in the first place, but haven't studied the
makefile that close. Maybe it does something backwards?

Kyösti





More information about the flashrom mailing list