[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