On 11/25/2012 10:04 AM, Dimitry Andric wrote:
On 2012-11-25 12:49, Tobias Rehbein wrote:
I am the maintainer of ganes/stonesoup. This port builds fine with gcc.
It also builds with clang, if the MAKE_ARGS are tweaked.
Currently I can check for
${CC:T:M*clang*}
to know if I have to change the MAKE_ARGS for building with clang or
not.
In CURRENT cc is clang and the environment variable CC is no longer set.
This lets the build of games/stonesoup fail. My question is how to
correctly check if cc is clang or not. My first guess was something
along the lines of
${CC:T:M*clang*} || (defined(WITH_CLANG_IS_CC) && ${CC:T:Mcc})
but I guess there is some kind of official way to handle this (ideally
warpped in some Mk macro.
Just check if OSVERSION >= 1000024, maybe? Or add some logic to
bsd.port.mk that handles this, like was done with pkgng. For example,
introducing a PORTS_COMPILER_TYPE macro like in base.
This is bad.
People with OSVERSION >= 1000024 and WITHOUT_CLANG_IS_CC set will be
left out.
How about something along the lines of this?
bsd.compiler.mk:
#
# Sets CC variable if unset
#
.PHONY: setcc
setcc:
@if [ ! -z "`cc -v 2>&1|grep clang`" ] ; then \
CC?= clang; \
else \
CC?= gcc; \
fi
Then, if a port needs this variable to be set, it can call "setcc" in
the Makefile.
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"