[Midnightbsd-cvs] mports [24274] trunk/Mk/extensions/objc.mk: update objc handling
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Sun Sep 9 13:50:59 EDT 2018
Revision: 24274
http://svnweb.midnightbsd.org/mports/?rev=24274
Author: laffer1
Date: 2018-09-09 13:50:58 -0400 (Sun, 09 Sep 2018)
Log Message:
-----------
update objc handling
Modified Paths:
--------------
trunk/Mk/extensions/objc.mk
Modified: trunk/Mk/extensions/objc.mk
===================================================================
--- trunk/Mk/extensions/objc.mk 2018-09-09 17:50:40 UTC (rev 24273)
+++ trunk/Mk/extensions/objc.mk 2018-09-09 17:50:58 UTC (rev 24274)
@@ -9,12 +9,23 @@
.if !defined(_INCLUDE_USES_OBJC_MK)
_INCLUDE_USES_OBJC_MK= yes
-.if !empty(objc_ARGS)
-IGNORE= USES=objc takes no arguments
+OBJC_CLANG_VERSION=40
+
+objc_ARGS?=
+.if !empty(objc_ARGS) && ! ${objc_ARGS:Mcompiler}
+IGNORE= USES=objc only accepts no arguments or 'compiler'
.endif
+_CC_hash:= ${CC:hash}
+
+.if defined(_OBJC_CCVERSION_${_CC_hash})
+_CCVERSION= ${_OBJC_CCVERSION_${_CC_hash}}
+.else
_CCVERSION!= ${CC} --version
-COMPILER_VERSION= ${_CCVERSION:M[0-9].[0-9]*:C/([0-9]).([0-9]).*/\1\2/g}
+_OBJC_CCVERSION_${_CC_hash}= ${_CCVERSION}
+PORTS_ENV_VARS+= _OBJC_CCVERSION_${_CC_hash}
+.endif
+COMPILER_VERSION= ${_CCVERSION:M[0-9].[0-9]*:tW:C/([0-9]).([0-9]).*/\1\2/g}
.if ${_CCVERSION:Mclang}
COMPILER_TYPE= clang
.else
@@ -23,14 +34,20 @@
ALT_COMPILER_VERSION= 0
ALT_COMPILER_TYPE= none
-_ALTCCVERSION=
+_ALTCCVERSION= none
+.if defined(_OBJC_ALTCCVERSION_${_CC_hash})
+_ALTCCVERSION= ${_OBJC_ALTCCVERSION_${_CC_hash}}
+.else
.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
+_OBJC_ALTCCVERSION_${_CC_hash}= ${_ALTCCVERSION}
+PORTS_ENV_VARS+= _OBJC_ALTCCVERSION_${_CC_hash}
+.endif
-ALT_COMPILER_VERSION= ${_ALTCCVERSION:M[0-9].[0-9]*:C/([0-9]).([0-9]).*/\1\2/g}
+ALT_COMPILER_VERSION= ${_ALTCCVERSION:M[0-9].[0-9]*:tW:C/([0-9]).([0-9]).*/\1\2/g}
.if ${_ALTCCVERSION:Mclang}
ALT_COMPILER_TYPE= clang
.elif !empty(_ALTCCVERSION)
@@ -37,21 +54,25 @@
ALT_COMPILER_TYPE= gcc
.endif
-# We do always need clang
-.if (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 34) || ${COMPILER_TYPE} != clang
-BUILD_DEPENDS+= ${LOCALBASE}/bin/clang34:lang/clang34
-CPP= ${LOCALBASE}/bin/clang-cpp34
-CC= ${LOCALBASE}/bin/clang34
-CXX= ${LOCALBASE}/bin/clang++34
-.if ${OSVERSION} < 4015
-USE_BINUTILS= yes
-LDFLAGS+= -B${LOCALBASE}/bin
+# We do always need clang and prefer a recent version
+.if (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < ${OBJC_CLANG_VERSION}) || ${COMPILER_TYPE} != clang
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= ${OBJC_CLANG_VERSION}
+CC= /usr/bin/clang
+CPP= /usr/bin/clang-cpp
+CXX= /usr/bin/clang++
+.else
+BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION}:devel/llvm${OBJC_CLANG_VERSION}
+CPP= ${LOCALBASE}/bin/clang-cpp${OBJC_CLANG_VERSION}
+CC= ${LOCALBASE}/bin/clang${OBJC_CLANG_VERSION}
+CXX= ${LOCALBASE}/bin/clang++${OBJC_CLANG_VERSION}
.endif
.endif
+.if ! ${objc_ARGS:Mcompiler}
LIB_DEPENDS+= libobjc.so.4.6:lang/libobjc2
OBJCFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
+.endif
CONFIGURE_ENV+= OBJC="${CC}" OBJCFLAGS="${OBJCFLAGS}"
MAKE_ENV+= OBJC="${CC}" OBJCFLAGS="${OBJCFLAGS}"
More information about the Midnightbsd-cvs
mailing list