[Midnightbsd-cvs] mports [19516] trunk/Mk/extensions: mondernize scons

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Tue Jun 23 21:33:03 EDT 2015


Revision: 19516
          http://svnweb.midnightbsd.org/mports/?rev=19516
Author:   laffer1
Date:     2015-06-23 21:33:03 -0400 (Tue, 23 Jun 2015)
Log Message:
-----------
mondernize scons

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

Modified: trunk/Mk/extensions/compiler.mk
===================================================================
--- trunk/Mk/extensions/compiler.mk	2015-06-24 01:14:13 UTC (rev 19515)
+++ trunk/Mk/extensions/compiler.mk	2015-06-24 01:33:03 UTC (rev 19516)
@@ -1,6 +1,6 @@
 # $MidnightBSD$
 #
-# Allows to feature determine the compiler used
+# Allows to determine the compiler being used
 #
 # Feature:	compiler
 # Usage:	USES=compiler or USES=compiler:ARGS
@@ -8,6 +8,7 @@
 #
 # c++0x:	The port needs a compiler understanding C++0X
 # c++11-lang:	The port needs a compiler understanding C++11
+# gcc-c++11-lib:The port needs g++ compiler with a C++11 library
 # 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
 # openmp:	The port needs a compiler understanding openmp
@@ -18,8 +19,8 @@
 #
 # COMPILER_TYPE:	can be gcc or clang
 # ALT_COMPILER_TYPE:	can be gcc or clang depending on COMPILER_TYPE, only set if the base system has 2 compilers
-# COMPILER_VERSION:	first 2 digits of the version: 33 for clang 3.3.*, 46 for gcc 4.6.*
-# ALT_COMPILER_VERSION:	first 2 digits of the version: 33 for clang 3.3.*, 46 for gcc 4.6.* of the ALT_COMPILER_TYPE
+# COMPILER_VERSION:	first 2 digits of the version: 33 for clang 3.3.*, 47 for gcc 4.7.*
+# ALT_COMPILER_VERSION:	first 2 digits of the version: 33 for clang 3.3.*, 47 for gcc 4.7.* of the ALT_COMPILER_TYPE
 #
 # COMPILER_FEATURES:	the list of features supported by the compiler includes the standard C++ library.
 # CHOSEN_COMPILER_TYPE:	can be gcc or clang (type of compiler chosen by the framework)
@@ -27,13 +28,15 @@
 .if !defined(_INCLUDE_USES_COMPILER_MK)
 _INCLUDE_USES_COMPILER_MK=	yes
 
-.if !defined(compiler_ARGS)
+.if empty(compiler_ARGS)
 compiler_ARGS=	env
 .endif
 
-VALID_ARGS=	c++11-lib c++11-lang c11 features openmp env nestedfct c++0x
+VALID_ARGS=	c++11-lib c++11-lang c11 features openmp env nestedfct c++0x gcc-c++11-lib
 
-.if ${compiler_ARGS} == c++11-lib
+.if ${compiler_ARGS} == gcc-c++11-lib
+_COMPILER_ARGS+=	features gcc-c++11-lib
+.elif ${compiler_ARGS} == c++11-lib
 _COMPILER_ARGS+=	features c++11-lib
 .elif ${compiler_ARGS} == c++0x
 _COMPILER_ARGS+=	features c++0x
@@ -70,12 +73,14 @@
 ALT_COMPILER_TYPE=	none
 _ALTCCVERSION=	
 .if ${COMPILER_TYPE} == gcc && exists(/usr/bin/clang)
+.if ${ARCH} == amd64 || ${ARCH} == i386 # clang often non-default for a reason
 _ALTCCVERSION!=	/usr/bin/clang --version
+.endif
 .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}
+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)
@@ -123,10 +128,10 @@
 
 .if ${_COMPILER_ARGS:Mc++11-lib}
 .if !${COMPILER_FEATURES:Mc++11}
-USE_GCC=	4.7+
+USE_GCC=	yes
 CHOSEN_COMPILER_TYPE=	gcc
 .elif ${COMPILER_TYPE} == clang && ${COMPILER_FEATURES:Mlibstdc++}
-USE_GCC=	4.7+
+USE_GCC=	yes
 CHOSEN_COMPILER_TYPE=	gcc
 .endif
 .endif
@@ -133,20 +138,20 @@
 
 .if ${_COMPILER_ARGS:Mc++11-lang}
 .if !${COMPILER_FEATURES:Mc++11}
-.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
-USE_GCC=	4.7+
+.if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc) || (${ARCH} != amd64 && ${ARCH} != i386) # clang not always supported on Tier-2
+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 
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 34) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 34
 CPP=	clang-cpp
 CC=	clang
 CXX=	clang++
 CHOSEN_COMPILER_TYPE=	clang
 .else
-BUILD_DEPENDS+=	${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
-CPP=	${LOCALBASE}/bin/clang-cpp33
-CC=	${LOCALBASE}/bin/clang33
-CXX=	${LOCALBASE}/bin/clang++33
+BUILD_DEPENDS+=	${LOCALBASE}/bin/clang34:${PORTSDIR}/lang/clang34
+CPP=	${LOCALBASE}/bin/clang-cpp34
+CC=	${LOCALBASE}/bin/clang34
+CXX=	${LOCALBASE}/bin/clang++34
 CHOSEN_COMPILER_TYPE=	clang
 .if ${OSVERSION} < 4016
 USE_BINUTILS=	yes
@@ -159,21 +164,21 @@
 
 .if ${_COMPILER_ARGS:Mc++0x}
 .if !${COMPILER_FEATURES:Mc++0x}
-.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
+.if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc) || (${ARCH} != amd64 && ${ARCH} != i386) # clang not always supported on Tier-2
 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
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 34) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 34
 CPP=	clang-cpp
 CC=	clang
 CXX=	clang++
 CHOSEN_COMPILER_TYPE=	clang
 .else
-BUILD_DEPENDS+=	${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
+BUILD_DEPENDS+=	${LOCALBASE}/bin/clang34:${PORTSDIR}/lang/clang34
 CHOSEN_COMPILER_TYPE=	clang
-CPP=	${LOCALBASE}/bin/clang-cpp33
-CC=	${LOCALBASE}/bin/clang33
-CXX=	${LOCALBASE}/bin/clang++33
+CPP=	${LOCALBASE}/bin/clang-cpp34
+CC=	${LOCALBASE}/bin/clang34
+CXX=	${LOCALBASE}/bin/clang++34
 .if ${OSVERSION} < 4016
 USE_BINUTILS=	yes
 LDFLAGS+=	-B${LOCALBASE}/bin
@@ -185,22 +190,22 @@
 
 .if ${_COMPILER_ARGS:Mc11}
 .if !${COMPILER_FEATURES:Mc11}
-.if defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc
-USE_GCC=	4.7+
+.if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc) || (${ARCH} != amd64 && ${ARCH} != i386) # clang not always supported on Tier-2
+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
+.elif (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} < 34) || ${COMPILER_TYPE} == gcc
+.if ${ALT_COMPILER_TYPE} == clang && ${ALT_COMPILER_VERSION} >= 34
 CPP=	clang-cpp
 CC=	clang
 CXX=	clang++
 CHOSEN_COMPILER_TYPE=	clang
 .else
-BUILD_DEPENDS+=	${LOCALBASE}/bin/clang33:${PORTSDIR}/lang/clang33
+BUILD_DEPENDS+=	${LOCALBASE}/bin/clang34:${PORTSDIR}/lang/clang34
 CHOSEN_COMPILER_TYPE=	clang
-CPP=	${LOCALBASE}/bin/clang-cpp33
-CC=	${LOCALBASE}/bin/clang33
-CXX=	${LOCALBASE}/bin/clang++33
-.if ${OSVERSION} < 4016
+CPP=	${LOCALBASE}/bin/clang-cpp34
+CC=	${LOCALBASE}/bin/clang34
+CXX=	${LOCALBASE}/bin/clang++34
+.if ${OSVERSION} < 900033
 USE_BINUTILS=	yes
 LDFLAGS+=	-B${LOCALBASE}/bin
 .endif
@@ -209,4 +214,14 @@
 .endif
 .endif
 
+.if ${_COMPILER_ARGS:Mgcc-c++11-lib}
+USE_GCC=	yes
+CHOSEN_COMPILER_TYPE=	gcc
+.if ${COMPILER_FEATURES:Mlibc++}
+LDFLAGS+=	-L${LOCALBASE}/lib/c++
+CXXFLAGS+=	-nostdinc++ -isystem ${LOCALBASE}/include/c++/v1
+BUILD_DEPENDS+=	${LOCALBASE}/lib/c++/libstdc++.so:${PORTSDIR}/devel/libc++
 .endif
+.endif
+
+.endif

Modified: trunk/Mk/extensions/scons.mk
===================================================================
--- trunk/Mk/extensions/scons.mk	2015-06-24 01:14:13 UTC (rev 19515)
+++ trunk/Mk/extensions/scons.mk	2015-06-24 01:33:03 UTC (rev 19516)
@@ -9,86 +9,26 @@
 #
 # Please view me with 4 column tabs!
 
-.if defined(_POSTMKINCLUDED) && !defined(Scons_Post_Include)
+.if !defined(_INCLUDE_USES_SCONS_MK)
+_INCLUDE_USES_SCONS_MK=	yes
 
-Scons_Post_Include=			scons.mk
-Scons_Include_MAINTAINER=	ports at MidnightBSD.org
+.if !empty(scons_ARGS)
+IGNORE=	Incorrect 'USES+= scons:${scons_ARGS}' scons takes no arguments
+.endif
 
-#
-# SCONS_BIN is the location where the scons port installs the scons
-# executable.
-#
-# SCONS_PORT is where the scons port is located in the ports tree.
-#
-SCONS_BIN=	${LOCALBASE}/bin/scons
-SCONS_PORT=	${PORTSDIR}/devel/scons
-
-#
-# CCFLAGS is the scons equivalent of CFLAGS. So we should bring in our
-# FreeBSD CFLAGS.
-#
-# LINKFLAGS is equivalent to LDFLAGS in make speak, so we bring in the
-# FreeBSD default LDFLAGS.
-#
-# Some scons projects may honor PKGCONFIGDIR, which tells them where to
-# look for, and install, pkgconfig files.
-#
-# LIBPATH is the search path for libraries. Bring in some safe defaults.
-#
-# CPPPATH is the search path for includes, Again, bring in some safe defaults.
-#
-CCFLAGS?=	${CFLAGS}
-LINKFLAGS?=	${LDFLAGS}
-PKGCONFIGDIR?=	${LOCALBASE}/libdata/pkgconfig
-LIBPATH?=	${LOCALBASE}/lib
-CPPPATH?=	${LOCALBASE}/include
-
-#
-# SCONS_ENV is where we pass all the stuff that should be the
-# same for any scons port to scons. Things like CCFLAGS, and LINKFLAGS
-# go here.
-#
-# SCONS_ARGS is where you pass port specific scons flags to the scons
-# environment.
-#
-# SCONS_BUILDENV is where you pass variables you want to be in the
-# System Environment instead of the SCons Environment.
-#
-# SCONS_TARGET is the same as MAKE_TARGET it is passed as the last
-# argument to scons.
-#
-SCONS_ENV?=	CCFLAGS="${CCFLAGS}" CXXFLAGS="${CXXFLAGS}" \
+MAKEFILE=		#
+MAKE_FLAGS=		#
+ALL_TARGET=		#
+CCFLAGS?=		${CFLAGS}
+LINKFLAGS?=		${LDFLAGS}
+LIBPATH?=		${LOCALBASE}/lib
+CPPPATH?=		${LOCALBASE}/include
+SCONS=			${LOCALBASE}/bin/scons
+BUILD_DEPENDS+=		${SCONS}:${PORTSDIR}/devel/scons
+MAKE_CMD=		${SCONS}
+MAKE_ARGS+=	CCFLAGS="${CCFLAGS}" CXXFLAGS="${CXXFLAGS}" \
 		LINKFLAGS="${LINKFLAGS}" PKGCONFIGDIR="${PKGCONFIGDIR}"  \
 		CPPPATH="${CPPPATH}" LIBPATH="${LIBPATH}" PREFIX="${PREFIX}" \
-		DESTDIR="${DESTDIR}" CC="${CC}" CXX="${CXX}"
-SCONS_ARGS?=
-SCONS_BUILDENV?=
-SCONS_TARGET?=
+		CC="${CC}" CXX="${CXX}" ${DESTDIRNAME:tl}=${FAKE_DESTDIR}
 
-#
-# SCONS_INSTALL_TARGET is the default target to be used when
-# installing a port using scons.
-#
-SCONS_INSTALL_TARGET?=	${INSTALL_TARGET}
-
-#
-# Make sure we depend on scons
-#
-BUILD_DEPENDS+=	${SCONS_BIN}:${SCONS_PORT}
-
-.if !target(do-build)
-do-build:
-	@cd ${BUILD_WRKSRC} && \
-	${SETENV} ${SCONS_BUILDENV} ${SCONS_BIN} ${SCONS_ENV} ${_MAKE_JOBS} \
-	${SCONS_ARGS} ${SCONS_TARGET}
 .endif
-
-.if !target(do-install)
-do-install:
-	@cd ${INSTALL_WRKSRC} && ${SETENV} ${SCONS_BUILDENV} ${SCONS_BIN} \
-	${SCONS_ENV} ${SCONS_ARGS} ${SCONS_INSTALL_TARGET}
-.endif
-
-
-
-.endif # defined(_POSTMKINCLUDED) && !defined(Scons_Post_Include)



More information about the Midnightbsd-cvs mailing list