
On 24/03/2011 01:39, Stefan Seefeld wrote:
I'd like to suggest using a build-system-agnostic tool to report such build options, which can be picked up by any build system. I'm specifically thinking of pkg-config, which can report build flags based on .pc files that can be provided with binary packages. That system is widely used with most (if not all) Linux distributions, and it supports many more platforms.
That's just one extra module to find out those options. Not everyone use pkg-config, even on Linux. So we agree that boost should also ship extra files on top of headers and library binaries?
If bjam can 1) compile temporary programs, run them and retrieve their output and 2) test whether the compiler supports some flags -- then we're fine.
While that sounds fine, please clearly separate the benchmark process that you use to obtain machine characteristics from the actual build process, such that the characteristics can be saved, distributed, and reused, to have a deterministic build process. (ATLAS calls these characteristics "architectural defaults". http://math-atlas.sourceforge.net/faq.html#ArchDef)
This is done at configuration time (e.g. the equivalent of ./configure with the autotools chain), not build time (e.g. make). But bjam does not distinguish the two AFAIK.