Index: head/Mk/bsd.default-versions.mk =================================================================== --- head/Mk/bsd.default-versions.mk (revision 447981) +++ head/Mk/bsd.default-versions.mk (revision 447982) @@ -1,143 +1,143 @@ # $FreeBSD$ # # MAINTAINER: ports@FreeBSD.org # # Provide default versions for ports with multiple versions selectable # by the user. # # Users who want to override these defaults can easily do so by defining # DEFAULT_VERSIONS in their make.conf as follows: # # DEFAULT_VERSIONS= perl5=5.20 ruby=2.0 .if !defined(_INCLUDE_BSD_DEFAULT_VERSIONS_MK) _INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes LOCALBASE?= /usr/local .for lang in APACHE BDB FIREBIRD FPC GCC GHOSTSCRIPT LINUX LUA MYSQL PERL5 \ PGSQL PHP PYTHON PYTHON2 PYTHON3 RUBY SSL TCLTK .if defined(${lang}_DEFAULT) WARNING+= "The variable ${lang}_DEFAULT is set and it should only be defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in /etc/make.conf" WARNING+= "This behaviour has never been supported and will be removed on 2017-01-31" .endif #.undef ${lang}_DEFAULT .endfor .for lang in ${DEFAULT_VERSIONS} _l= ${lang:C/=.*//g} ${_l:tu}_DEFAULT= ${lang:C/.*=//g} .endfor # Possible values: 2.2, 2.4 APACHE_DEFAULT?= 2.4 # Possible values: 48, 5, 6 BDB_DEFAULT?= 5 # Possible values: 2.5 FIREBIRD_DEFAULT?= 2.5 # Possible values: 3.0.0 FPC_DEFAULT?= 3.0.2 -# Possible values: 4.8, 4.9, 5, 6 +# Possible values: 4.8, 4.9, 5, 6, 7 GCC_DEFAULT?= 5 # Possible values: 7, 8, 9, agpl GHOSTSCRIPT_DEFAULT?= agpl .if ${ARCH} == amd64 # Possible values: c6, c6_64, c7 LINUX_DEFAULT?= c6_64 .else # Possible values: c6 LINUX_DEFAULT?= c6 .endif .if defined(OVERRIDE_LINUX_BASE_PORT) LINUX_DEFAULT:= ${OVERRIDE_LINUX_BASE_PORT} WARNING+= "OVERRIDE_LINUX_BASE_PORT is deprecated, please use DEFAULT_VERSIONS+=linux=${OVERRIDE_LINUX_BASE_PORT}." .endif # Possible values: 5.1, 5.2, 5.3 LUA_DEFAULT?= 5.2 # Possible values: 5.5, 5.6, 5.7, 8.0, 5.5m, 10.0m, 10.1m, 10.2m, 5.5p, 5.6p, 5.7p, 5.6w MYSQL_DEFAULT?= 5.6 # Possible values: 5.22, 5.24, 5.26, devel .if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \ defined(PACKAGE_BUILDING)) PERL5_DEFAULT?= 5.24 .elif !defined(PERL5_DEFAULT) # There's no need to replace development versions, like "5.23" with "devel" # because 1) nobody is supposed to use it outside of poudriere, and 2) it must # be set manually in /etc/make.conf in the first place, and we're never getting # in here. .if !defined(_PERL5_FROM_BIN) _PERL5_FROM_BIN!= perl -e 'printf "%vd\n", $$^V;' .endif _EXPORTED_VARS+= _PERL5_FROM_BIN PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R} .endif # Possible values: 9.2, 9.3, 9.4, 9.5, 9.6 PGSQL_DEFAULT?= 9.5 # Possible values: 5.6, 7.0, 7.1 PHP_DEFAULT?= 5.6 # Possible values: 2.7, 3.3, 3.4, 3.5, 3.6 PYTHON_DEFAULT?= 2.7 # Possible values: 2.7 PYTHON2_DEFAULT?= 2.7 # Possible values: 3.3, 3.4, 3.5, 3.6 PYTHON3_DEFAULT?= 3.6 # Possible values: 2.2, 2.3, 2.4 RUBY_DEFAULT?= 2.3 # Possible values: 4.4, 4.5, 4.6 SAMBA_DEFAULT?= 4.4 # Possible values: base, openssl, openssl-devel, libressl, libressl-devel .if !defined(SSL_DEFAULT) # If no preference was set, check for an installed base version # but give an installed port preference over it. . if defined(WITH_OPENSSL_PORT) . if defined(OPENSSL_PORT) SSL_DEFAULT:=${OPENSSL_PORT:T} WARNING+= "Using WITH_OPENSSL_PORT and OPENSSL_PORT in make.conf is deprecated, replace them with DEFAULT_VERSIONS+=ssl=${SSL_DEFAULT} in your make.conf" . else SSL_DEFAULT=openssl WARNING+= "Using WITH_OPENSSL_PORT in make.conf is deprecated, replace it with DEFAULT_VERSIONS+=ssl=openssl in your make.conf" . endif . elif defined(WITH_OPENSSL_BASE) SSL_DEFAULT=base WARNING+= "Using WITH_OPENSSL_BASE in make.conf is deprecated, replace it with DEFAULT_VERSIONS+=ssl=base in your make.conf" . elif !defined(WITH_OPENSSL_BASE) && \ !defined(WITH_OPENSSL_PORT) && \ !defined(SSL_DEFAULT) && \ !exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so) && \ exists(${DESTDIR}/usr/include/openssl/opensslv.h) SSL_DEFAULT= base . else . if exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so) . if defined(PKG_BIN) # find installed port and use it for dependency . if !defined(OPENSSL_INSTALLED) . if defined(DESTDIR) PKGARGS= -c ${DESTDIR} . else PKGARGS= . endif OPENSSL_INSTALLED!= ${PKG_BIN} ${PKGARGS} which -qo ${LOCALBASE}/lib/libcrypto.so || : . endif . if defined(OPENSSL_INSTALLED) && !empty(OPENSSL_INSTALLED) SSL_DEFAULT:= ${OPENSSL_INSTALLED:T} WARNING+= "You have ${OPENSSL_INSTALLED} installed but do not have DEFAULT_VERSIONS+=ssl=${SSL_DEFAULT} set in your make.conf" . endif . else check-makevars:: @${ECHO_MSG} "You have a ${LOCALBASE}/lib/libcrypto.so file installed, but the framework is unable" @${ECHO_MSG} "to determine what port it comes from." @${ECHO_MSG} "Add DEFAULT_VERSIONS+=ssl= to your /etc/make.conf and try again." @${FALSE} . endif . endif . endif # Make sure we have a default in the end SSL_DEFAULT?= base .endif # Possible values: 8.4, 8.5, 8.6 TCLTK_DEFAULT?= 8.6 # Possible values: 4, 5 VARNISH_DEFAULT?= 4 .endif Index: head/Mk/bsd.gcc.mk =================================================================== --- head/Mk/bsd.gcc.mk (revision 447981) +++ head/Mk/bsd.gcc.mk (revision 447982) @@ -1,202 +1,203 @@ #-*- tab-width: 4; -*- # ex:ts=4 # # bsd.gcc.mk - Support for smarter USE_GCC usage. # # Created by: Edwin Groothuis # # To request the use of a current version of GCC, specify USE_GCC=yes in # your port/system configuration. This is the preferred use of USE_GCC. # It uses the canonical version of GCC defined in bsd.default-versions.mk. # # USE_GCC=any is similar, except that it also accepts the old GCC 4.2- # based system compiler in older versions of FreeBSD. # # If your port needs a specific (minimum) version of GCC, you can easily # specify that with a USE_GCC= statement. Unless absolutely necessary # do so by specifying USE_GCC=X.Y+ which requests at least GCC version # X.Y. To request a specific version omit the trailing + sign. # # Examples: # USE_GCC= yes # port requires a current version of GCC # # as defined in bsd.default-versions.mk. # USE_GCC= any # port requires GCC 4.2 or later. # USE_GCC= 6+ # port requires GCC 6 or later. # USE_GCC= 4.9 # port requires GCC 4.9. # # If you are wondering what your port exactly does, use "make test-gcc" # to see some debugging. # # $FreeBSD$ GCC_Include_MAINTAINER= gerald@FreeBSD.org # All GCC versions supported by the ports framework. Keep them in # ascending order and in sync with the table below. # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. -GCCVERSIONS= 040200 040800 040900 050000 060000 +GCCVERSIONS= 040200 040800 040900 050000 060000 070000 # The first field is the OSVERSION in which it disappeared from the base. # The second field is the version as USE_GCC would use. GCCVERSION_040200= 9999999 4.2 GCCVERSION_040800= 0 4.8 GCCVERSION_040900= 0 4.9 GCCVERSION_050000= 0 5 GCCVERSION_060000= 0 6 +GCCVERSION_070000= 0 7 # No configurable parts below this. #################################### # .if defined(USE_GCC) && ${USE_GCC} == yes USE_GCC= ${GCC_DEFAULT}+ .endif # Extract the fields from GCCVERSION_... .for v in ${GCCVERSIONS} . for j in ${GCCVERSION_${v}} . if !defined(_GCCVERSION_${v}_R) _GCCVERSION_${v}_R= ${j} . elif !defined(_GCCVERSION_${v}_V) _GCCVERSION_${v}_V= ${j} . endif . endfor .endfor .if defined(USE_GCC) && !defined(FORCE_BASE_CC_FOR_TESTING) . if ${USE_GCC} == any # Enable the clang-is-cc workaround. Default to the last GCC imported # into base. _USE_GCC:= 4.2 _GCC_ORLATER:= true . else # ${USE_GCC} == any # See if we can use a later version or exclusively the one specified. _USE_GCC:= ${USE_GCC:S/+//} .if ${USE_GCC} != ${_USE_GCC} _GCC_ORLATER:= true .endif . endif # ${USE_GCC} == any # Initialize _GCC_FOUND${v}. In parallel, check if USE_GCC points to a # valid version to begin with. .for v in ${GCCVERSIONS} . if exists(${LOCALBASE}/bin/gcc${_GCCVERSION_${v}_V:S/.//}) _GCC_FOUND${v}= port . elif ${OSVERSION} < ${_GCCVERSION_${v}_R} . if exists(/usr/bin/gcc) _GCC_FOUND${v}= base . endif . endif . if ${_USE_GCC}==${_GCCVERSION_${v}_V} _GCCVERSION_OKAY= true . endif .endfor .if !defined(_GCCVERSION_OKAY) IGNORE= Unknown version of GCC specified (USE_GCC=${USE_GCC}) .endif # If the GCC package defined in USE_GCC does not exist, but a later # version is allowed (for example 4.7+), see if there is a later. # First check if the base installed version is good enough, otherwise # get the first available version. # .if defined(_GCC_ORLATER) . for v in ${GCCVERSIONS} . if ${_USE_GCC} == ${_GCCVERSION_${v}_V} _GCC_MIN1:= true . endif . if defined(_GCC_MIN1) && defined(_GCC_FOUND${v}) && ${_GCC_FOUND${v}}=="base" && !defined(_GCC_FOUND) _GCC_FOUND:= ${_GCCVERSION_${v}_V} . endif . endfor . for v in ${GCCVERSIONS} . if ${_USE_GCC} == ${_GCCVERSION_${v}_V} _GCC_MIN2:= true . endif . if defined(_GCC_MIN2) && defined(_GCC_FOUND${v}) && !defined(_GCC_FOUND) _GCC_FOUND:= ${_GCCVERSION_${v}_V} . endif . endfor . if defined(_GCC_FOUND) _USE_GCC:= ${_GCC_FOUND} . elif ${_USE_GCC} < ${GCC_DEFAULT} _USE_GCC:= ${GCC_DEFAULT} . endif .endif # defined(_GCC_ORLATER) .endif # defined(USE_GCC) .if defined(_USE_GCC) # A concrete version has been selected. Determine if the installed OS # features this version in the base, and if not then set proper ports # dependencies, CC, CXX, CPP, and flags. .for v in ${GCCVERSIONS} . if ${_USE_GCC} == ${_GCCVERSION_${v}_V} . if ${OSVERSION} > ${_GCCVERSION_${v}_R} || !exists(/usr/bin/gcc) V:= ${_GCCVERSION_${v}_V:S/.//} _GCC_PORT_DEPENDS:= gcc${V} _GCC_PORT:= gcc${V} CC:= gcc${V} CXX:= g++${V} CPP:= cpp${V} _GCC_RUNTIME:= ${LOCALBASE}/lib/gcc${V} CFLAGS+= -Wl,-rpath=${_GCC_RUNTIME} CXXFLAGS+= -Wl,-rpath=${_GCC_RUNTIME} LDFLAGS+= -Wl,-rpath=${_GCC_RUNTIME} -L${_GCC_RUNTIME} . else # Use GCC in base. CC:= gcc CXX:= g++ . if exists(/usr/bin/gcpp) CPP:= gcpp . else CPP:= cpp . endif . endif # Use GCC in base. . endif # ${_USE_GCC} == ${_GCCVERSION_${v}_V} .endfor .undef V .if defined(_GCC_PORT_DEPENDS) BUILD_DEPENDS+= ${_GCC_PORT_DEPENDS}:lang/${_GCC_PORT} RUN_DEPENDS+= ${_GCC_PORT_DEPENDS}:lang/${_GCC_PORT} # Later GCC ports already depend on binutils; make sure whatever we # build leverages this as well. USE_BINUTILS= yes .endif .endif # defined(_USE_GCC) && !defined(FORCE_BASE_CC_FOR_TESTING) test-gcc: @echo USE_GCC=${USE_GCC} .if defined(IGNORE) @echo "IGNORE: ${IGNORE}" .else .if defined(USE_GCC) .if defined(_GCC_ORLATER) @echo Port can use later versions. .else @echo Port cannot use later versions. .endif .for v in ${GCCVERSIONS} @echo -n "GCC version: ${_GCCVERSION_${v}_V} " .if defined(_GCC_FOUND${v}) @echo -n "(${_GCC_FOUND${v}}) " .endif @echo "- OSVERSION up to ${_GCCVERSION_${v}_R}" # @echo ${v} - ${_GCC_FOUND${v}} - up to ${_GCCVERSION_${v}_R} - ${_GCCVERSION_${v}_V} .endfor @echo Using GCC version ${_USE_GCC} .endif @echo CC=${CC} - CXX=${CXX} - CPP=${CPP} - CFLAGS=\"${CFLAGS}\" @echo LDFLAGS=\"${LDFLAGS}\" @echo "BUILD_DEPENDS=${BUILD_DEPENDS}" @echo "RUN_DEPENDS=${RUN_DEPENDS}" .endif