diff options
author | bapt <bapt@FreeBSD.org> | 2014-05-08 21:32:12 +0800 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2014-05-08 21:32:12 +0800 |
commit | 2c28a093aff0b77d69eb1bdf7ad99bbe6388185a (patch) | |
tree | d863220c25939293fe3a6643b8b67922d3449b58 /Mk/Uses | |
parent | f4a1a128b3a453962a7706bd81fecc8028043119 (diff) | |
download | freebsd-ports-gnome-2c28a093aff0b77d69eb1bdf7ad99bbe6388185a.tar.gz freebsd-ports-gnome-2c28a093aff0b77d69eb1bdf7ad99bbe6388185a.tar.zst freebsd-ports-gnome-2c28a093aff0b77d69eb1bdf7ad99bbe6388185a.zip |
Add a USES to handle objective C (chosing compiler adding the right dependency on the runtime library)
Diffstat (limited to 'Mk/Uses')
-rw-r--r-- | Mk/Uses/objc.mk | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/Mk/Uses/objc.mk b/Mk/Uses/objc.mk new file mode 100644 index 000000000000..68c9265b19e4 --- /dev/null +++ b/Mk/Uses/objc.mk @@ -0,0 +1,65 @@ +# $FreeBSD$ +# +# Objective C support +# +# Feature: objc +# Usage: USES=objc +# +# MAINTAINER: objc@FreeBSD.org + +.if !defined(_INCLUDE_USES_OBJC_MK) +_INCLUDE_USES_OBJC_MK= yes + +.if defined(objc_ARGS) +IGNORE= USES=objc takes no arguments +.endif + +_CCVERSION!= ${CC} --version +COMPILER_VERSION= ${_CCVERSION:M[0-9].[0-9]*:C/([0-9]).([0-9]).*/\1\2/g} +.if ${_CCVERSION:Mclang} +COMPILER_TYPE= clang +.else +COMPILER_TYPE= gcc +.endif + +ALT_COMPILER_VERSION= 0 +ALT_COMPILER_TYPE= none +_ALTCCVERSION= +.if ${COMPILER_TYPE} == gcc && exists(/usr/bin/clang) +_ALTCCVERSION!= /usr/bin/clang --version +.elif ${COMPILER_TYPE} == clang && exists(/usr/bin/gcc) +_ALTCCVERSION!= /usr/bin/gcc --version +.endif + +ALT_COMPILER_VERSION= ${_ALTCCVERSION:M[0-9].[0-9]*:C/([0-9]).([0-9]).*/\1\2/g} +.if ${_ALTCCVERSION:Mclang} +ALT_COMPILER_TYPE= clang +.elif !empty(_ALTCCVERSION) +ALT_COMPILER_TYPE= gcc +.endif + +# We do always need clang +.if (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} != clang +.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33 +CC= /usr/bin/clang +CPP= /usr/bin/clang-cpp +CXX= /usr/bin/clang++ +.else +BUILD_DEPENDS+= ${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33 +CPP= ${LOCALBASE}/bin/clang-cpp33 +CC= ${LOCALBASE}/bin/clang33 +CXX= ${LOCALBASE}/bin/clang++33 +.if ${OSVERSION} < 900033 +USE_BINUTILS= yes +LDFLAGS+= -B${LOCALBASE}/bin +.endif +.endif +.endif + +LIB_DEPENDS+= libobjc.so.4.6:${PORTSDIR}/lang/libobjc2 +OBJCFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib +CONFIGURE_ENV+= OBJC="${CC}" OBJCFLAGS="${OBJCFLAGS}" +MAKE_ENV+= OBJC="${CC}" OBJCFLAGS="${OBJCFLAGS}" + +.endif |