freebsd-ports/lang/gcc9/Makefile

151 lines
4.1 KiB
Makefile
Raw Normal View History

Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
PORTNAME= gcc
PORTVERSION= 9.4.0
Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
CATEGORIES= lang
MASTER_SITES= GCC
PKGNAMESUFFIX= ${SUFFIX}
MAINTAINER= gerald@FreeBSD.org
COMMENT= GNU Compiler Collection 9
LICENSE= GPLv3 GPLv3RLE
LICENSE_COMB= multi
ONLY_FOR_ARCHS= aarch64 amd64 arm armv6 armv7 i386 powerpc powerpc64 sparc64
LIB_DEPENDS= libgmp.so:math/gmp \
libmpfr.so:math/mpfr \
libmpc.so:math/mpc
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
RUN_DEPENDS+= ${LOCALBASE}/bin/as:devel/binutils
.if defined(MAINTAINER_MODE)
BUILD_DEPENDS+= runtest:misc/dejagnu
.endif
USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:xz
USE_BINUTILS= yes
USE_PERL5= build
CONFLICTS= gcc9-devel-9.*
CPE_VENDOR= gnu
GCC_VERSION= ${PORTVERSION}
SUFFIX= ${PORTVERSION:C/([0-9]+).*/\1/}
CFLAGS:= ${CFLAGS:N-mretpoline}
CXXFLAGS:= ${CXXFLAGS:N-mretpoline}
OPTIONS_DEFINE= BOOTSTRAP
OPTIONS_DEFAULT= BOOTSTRAP
Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
BOOTSTRAP_DESC= Build using a full bootstrap
.if exists(/usr/lib32/libc.so)
OPTIONS_DEFINE_amd64+= MULTILIB
OPTIONS_DEFAULT_amd64+= MULTILIB
OPTIONS_DEFINE_powerpc64+= MULTILIB
OPTIONS_DEFAULT_powerpc64+= MULTILIB
MULTILIB_DESC= Build support for 32-bit and 64-bit targets
MULTILIB_CONFIGURE_ENABLE= multilib
.else
CONFIGURE_ARGS+= --disable-multilib
.endif
.include <bsd.port.pre.mk>
.if ${ARCH} == amd64
CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
.elif ${ARCH} == powerpc64
CONFIGURE_ENV+= UNAME_m="powerpc64"
. if defined(PPC_ABI) && ${PPC_ABI} == ELFv2
CONFIGURE_ARGS+= --with-abi=elfv2
. else
MAKE_ARGS+= CFLAGS_FOR_TARGET="-O0" CXXFLAGS_FOR_TARGET="-O0" BOOT_CFLAGS="-O0"
EXTRA_PATCHES+= ${FILESDIR}/extra-patch-libgcc_config_rs6000_t-crtstuff
. endif
Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
.endif
LANGUAGES:= c,c++,objc,fortran
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
TARGLIB32= ${PREFIX}/lib32 # The version information is added later
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
GNU_CONFIGURE= yes
CONFIGURE_OUTSOURCE= yes
.if empty(PORT_OPTIONS:MBOOTSTRAP)
CONFIGURE_ARGS+=--disable-bootstrap
.else
CONFIGURE_ARGS+=--with-build-config=bootstrap-debug
ALL_TARGET= bootstrap-lean
.endif
INSTALL_TARGET= install-strip
.if ${UID} != 0
BINMODE= 755
.endif
CONFIGURE_ARGS+=--disable-nls \
--enable-gnu-indirect-function \
--enable-plugin \
Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
--libdir=${TARGLIB} \
--libexecdir=${LIBEXEC} \
--program-suffix=${SUFFIX} \
--with-as=${LOCALBASE}/bin/as \
--with-gmp=${LOCALBASE} \
--with-gxx-include-dir=${TARGLIB}/include/c++/ \
--with-ld=${LOCALBASE}/bin/ld \
${ICONV_CONFIGURE_ARG} \
--with-pkgversion="FreeBSD Ports Collection" \
--with-system-zlib \
--without-zstd
Welcome GCC 9.1, the first release of the GCC 9 series! https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html addresses issues you may encounter porting to this new version, though this release series should have fewer of those than previous ones. To provide a brief overview of some of the more noticable changes: GCC's diagnostics now print source code with a left margin showing line numbers. This is configurable via -fno-diagnostics-show-line-numbers. Plus there have been lots of further improvements around diagnostic messages in general as -fopt-info. As usual a large number of improvements to code generation, including but by far not limited to the following: - Switch expansion (into expressions). - Inliner defaults are tuned to better suit modern C++ codebases, especially when built with link time optimizations. - Hot/cold partitioning is now more precise and aggressive. - Improved scalability for very large translation units. - Link-time optimization improvements including faster compilation. A new option -flive-patching=[inline-only-static|inline-clone] has been introduced to provide a safe compilation for live-patching. A new pair of profiling options -fprofile-filter-files and -fprofile-exclude-files help filter which source files are instrumented. New built-in functions __builtin_expect_with_probability, __builtin_has_attribute, and __builtin_speculation_safe_value. Significant effort has been put into refining existing compiler warnings and adding additional diagnostics. One notable addition is -Wabsolute-value which warns for calls to standard functions that compute the absolute value of an argument when a more appropriate standard function is available. For example, calling abs(3.14) warns because the appropriate function to compute the absolute value of a double argument is fabs. The spelling corrector now considers transposed letters, and the threshold for similarity has been tightened, to avoid nonsensical suggestions. A new option --completion provides better option completion in a shell (such as bash). OpenACC support in C, C++, and Fortran continues to be maintained and improved. Most of the OpenACC 2.5 specification is implemented. Version 5.0 of the OpenMP specification is now partially supported in the C and C++ compilers. There is now experimental support for the upcoming C2X revision of the ISO C standard (via the -std=c2x and similar options). The C++ front end has experimental support for some of the upcoming C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options. This includes range-based for statements with initializer, default constructible and assignable stateless lambdas, lambdas in unevaluated contexts, language support for empty data members, allowing pack expansion in lambda init-capture, likely and unlikely attributes, class types in non-type template parameters, allowing virtual function calls in constant expressions, explicit(bool), std::is_constant_evaluated, nested inline namespaces, etc. The C++17 implementation is no longer experimental and parallel algorithms and <execution> and <memory_resource> are available. Using the types and functions in <filesystem> does not require linking with -lstdc++fs any more. On the Fortran side asynchronous I/O is now fully supported; FINDLOC and IS_CONTIGUOUS and other intrinsics have been implemented. The MAX and MIN intrinsics are no longer guaranteed to return any particular value in case one of the arguments is a NaN. This conforms with the Fortran standard and what other Fortran compilers do. A new option -fdec-include, set also by -fdec, has been added for compatibility with legacy code. With this option, the INCLUDE directive is parsed also as a statement, which allows it to be written on multiple source lines with line continuations. Support for the Cell Broadband Engine (SPU), and thus powerpcspe on FreeBSD as well, has been removed for lack of upstream maintainership. Also there's been a minor ABI change on arm* targets (that GCC warns about by default, controlled by the -Wpsabi option). Support for the D programming language has been added to GCC, implementing version 2.076 of the language and run-time library, though this port does not enable this yet. Volunteers welcome to test and contribute.
2019-06-01 20:06:12 +02:00
MAKE_ARGS+= MAKEINFOFLAGS="--no-split"
USE_LDCONFIG= ${TARGLIB}
PLIST_SUB+= GCC_VERSION=${GCC_VERSION} \
GNU_HOST=${CONFIGURE_TARGET} \
SUFFIX=${SUFFIX}
INFO= gcc${SUFFIX}/cpp \
gcc${SUFFIX}/cppinternals \
gcc${SUFFIX}/gcc \
gcc${SUFFIX}/gccinstall \
gcc${SUFFIX}/gccint \
gcc${SUFFIX}/gfortran \
gcc${SUFFIX}/libgomp
# Release tarballs (as opposed to snapshots) always carry this.
INFO+= gcc${SUFFIX}/libquadmath \
gcc${SUFFIX}/libitm
SUB_FILES= pkg-message
SUB_LIST+= TARGLIB=${TARGLIB}
CONFIGURE_ARGS+=--enable-languages=${LANGUAGES}
pre-everything::
@${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
pre-configure:
cd ${WRKSRC} ; contrib/gcc_update --touch
@${RM} ${WRKSRC}/gcc/*/*.info*
.if defined(MAINTAINER_MODE)
full-regression-test: build
cd ${TEST_WRKSRC}; ${MAKE_CMD} -sk check \
; ${WRKSRC}/contrib/test_summary
.endif
post-stage:
${RM} ${STAGEDIR}${PREFIX}/man/man7/*
${RM} -r ${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/include-fixed/
# Add target libraries and include files to packaging list.
${RM} ${WRKDIR}/PLIST.lib
.if (${ARCH} == amd64 || ${ARCH} == powerpc64) && ${PORT_OPTIONS:MMULTILIB}
${MKDIR} ${STAGEDIR}${TARGLIB32}
${MV} ${STAGEDIR}${PREFIX}/lib/lib32 ${STAGEDIR}${TARGLIB32}/gcc${SUFFIX}
.endif
.for d in ${TARGLIB:S/^${PREFIX}\///} ${TARGLIB32:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///}
cd ${STAGEDIR}${PREFIX} ; if [ -d $d ]; then \
${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
fi
.endfor
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
.include <bsd.port.post.mk>