[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