[Midnightbsd-cvs] mports [15878] trunk/Mk/extensions: fix clang detection, add ninja

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Fri Feb 21 15:23:48 EST 2014


Revision: 15878
          http://svnweb.midnightbsd.org/mports/?rev=15878
Author:   laffer1
Date:     2014-02-21 15:23:47 -0500 (Fri, 21 Feb 2014)
Log Message:
-----------
fix clang detection, add ninja

Modified Paths:
--------------
    trunk/Mk/extensions/compiler.mk

Added Paths:
-----------
    trunk/Mk/extensions/ninja.mk

Modified: trunk/Mk/extensions/compiler.mk
===================================================================
--- trunk/Mk/extensions/compiler.mk	2014-02-21 16:01:51 UTC (rev 15877)
+++ trunk/Mk/extensions/compiler.mk	2014-02-21 20:23:47 UTC (rev 15878)
@@ -4,8 +4,9 @@
 #
 # Feature:	compiler
 # Usage:	USES=compiler or USES=compiler:ARGS
-# Valid ARGS:	env (default, implicit) c++11-lib c++11-lang c11 openmp nestedfct features
+# Valid ARGS:	env (default, implicit) c++0x c++11-lib c++11-lang c11 openmp nestedfct features
 #
+# c++0x:	The port needs a compiler understanding C++0X
 # c++11-lang:	The port needs a compiler understanding C++11
 # c++11-lib:	The port needs a compiler understanding C++11 and with a C++11 ready standard library
 # c11:		The port needs a compiler understanding C11
@@ -30,10 +31,12 @@
 compiler_ARGS=	env
 .endif
 
-VALID_ARGS=	c++11-lib c++11-lang c11 features openmp env nestedfct
+VALID_ARGS=	c++11-lib c++11-lang c11 features openmp env nestedfct c++0x
 
 .if ${compiler_ARGS} == c++11-lib
 _COMPILER_ARGS+=	features c++11-lib
+.elif ${compiler_ARGS} == c++0x
+_COMPILER_ARGS+=	features c++0x
 .elif ${compiler_ARGS} == c++11-lang
 _COMPILER_ARGS+=	features c++11-lang
 .elif ${compiler_ARGS} == c11
@@ -51,7 +54,7 @@
 _COMPILER_ARGS=	#
 .endif
 
-.if ${_COMPILER_ARGS:Mc++11*} || ${_COMPILER_ARGS:Mc11}
+.if ${_COMPILER_ARGS:Mc++*} || ${_COMPILER_ARGS:Mc11}
 _COMPILER_ARGS+=	features
 .endif
 
@@ -72,7 +75,7 @@
 _ALTCCVERSION!=	/usr/bin/gcc --version
 .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])*:C/([0-9]).([0-9]).*/\1\2/g}
 .if ${_ALTCCVERSION:Mclang}
 ALT_COMPILER_TYPE=	clang
 .elif !empty(_ALTCCVERSION)
@@ -104,7 +107,7 @@
 .endif
 
 CSTD=	c89 c99 c11 gnu89 gnu99 gnu11
-CXXSTD=	c++98 c++11 gnu++98 gnu++11
+CXXSTD=	c++98 c++11 gnu++98 gnu++11 c++0x
 
 .for std in ${CSTD} ${CXXSTD}
 _LANG=c
@@ -134,7 +137,7 @@
 USE_GCC=	4.7+
 CHOSEN_COMPILER_TYPE=	gcc
 .elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} == gcc
-.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} == 33 
 CPP=	clang-cpp
 CC=	clang
 CXX=	clang++
@@ -154,6 +157,32 @@
 .endif
 .endif
 
+.if ${_COMPILER_ARGS:Mc++0x}
+.if !${COMPILER_FEATURES:Mc++0x}
+.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
+USE_GCC=	yes
+CHOSEN_COMPILER_TYPE=	gcc
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33
+CPP=	clang-cpp
+CC=	clang
+CXX=	clang++
+CHOSEN_COMPILER_TYPE=	clang
+.else
+BUILD_DEPENDS+=	${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
+CHOSEN_COMPILER_TYPE=	clang
+CPP=	${LOCALBASE}/bin/clang-cpp33
+CC=	${LOCALBASE}/bin/clang33
+CXX=	${LOCALBASE}/bin/clang++33
+.if ${OSVERSION} < 4016
+USE_BINUTILS=	yes
+LDFLAGS+=	-B${LOCALBASE}/bin
+.endif
+.endif
+.endif
+.endif
+.endif
+
 .if ${_COMPILER_ARGS:Mc11}
 .if !${COMPILER_FEATURES:Mc11}
 .if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
@@ -160,6 +189,12 @@
 USE_GCC=	4.7+
 CHOSEN_COMPILER_TYPE=	gcc
 .elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 33) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 33
+CPP=	clang-cpp
+CC=	clang
+CXX=	clang++
+CHOSEN_COMPILER_TYPE=	clang
+.else
 BUILD_DEPENDS+=	${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
 CHOSEN_COMPILER_TYPE=	clang
 CPP=	${LOCALBASE}/bin/clang-cpp33
@@ -172,5 +207,6 @@
 .endif
 .endif
 .endif
+.endif
 
 .endif

Added: trunk/Mk/extensions/ninja.mk
===================================================================
--- trunk/Mk/extensions/ninja.mk	                        (rev 0)
+++ trunk/Mk/extensions/ninja.mk	2014-02-21 20:23:47 UTC (rev 15878)
@@ -0,0 +1,30 @@
+# $MidnightBSD$ 
+# Provide support to use Ninja
+#
+# Feature:		ninja
+# Usage:		USES=ninja
+#
+# User defined variables:
+# NINJA_VERBOSE		- Enable verbose output.
+#
+
+.if !defined(_INCLUDE_USES_NINJA_MK)
+_INCLUDE_USES_NINJA_MK=	yes
+
+.if defined(ninja_ARGS)
+IGNORE=	Incorrect 'USES+= ninja:${ninja_ARGS}' ninja takes no arguments
+.endif
+
+.if defined(NINJA_VERBOSE)
+MAKE_ARGS+=	-v
+.endif
+
+BUILD_DEPENDS+=	ninja:${PORTSDIR}/devel/ninja
+
+CMAKE_ARGS+=	-GNinja
+MAKEFILE=
+MAKE_CMD=	ninja
+MAKE_FLAGS=
+_DESTDIR_VIA_ENV=	yes
+
+.endif



More information about the Midnightbsd-cvs mailing list