On Mon, Jan 23, 2012 at 03:13:07PM +0100, Dimitry Andric wrote: > On 2012-01-23 13:31, Kostik Belousov wrote: > >On Mon, Jan 23, 2012 at 01:25:04PM +0100, Dimitry Andric wrote: > ... > >There is a typo in the second or condition, should it be gcc46 both times ? > > Ah, sorry, that was a copy/paste error. > > > >Anyway, the reason to answer this message is two ask the for seemingly > >unreasonable approach of matching compiler type/version based on the > >driver name. This completely precludes anybody from using gcc installed > >not from the ports tree. > > Yes, that is indeed the big problem with this approach. Although I > think the number of people that hand-build gcc, and not use the ports > will be rather low. :) > > > >Could the tests performed based on the driver version information > >instead of name ? > > Probably, but then you would have to run "${CC} --version" plus some > sed/awk'ing from bsd.sys.mk. That could add quite some extra forking > during buildworld. > > It may be easier to add a COMPILER_FLAVOR (just an example name) setting > in make.conf, which can be set independently of CC, CXX and so on, to > tell which specific variant of gcc, clang etc you want to use. > > The processing of that setting could happen in either sys.mk or > bsd.sys.mk, or be separated out to a bsd.compiler.mk, for instance. > > In each .mk file or Makefile that needs it, the ${CC:T:M:foo} == "foo" > comparisons can then be replaced with ${COMPILER_FLAVOR} == "foo".
I agree that even such palliative measures are more useful and provides better future-proof of the build system then current name matching.
pgpU5MxlXeK5Q.pgp
Description: PGP signature