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"

Reply via email to