svn commit: r441883 - in head/lang/gcc: . files
Gerald Pfeifer
gerald at FreeBSD.org
Sat May 27 23:27:23 UTC 2017
Author: gerald
Date: Sat May 27 23:27:21 2017
New Revision: 441883
URL: https://svnweb.freebsd.org/changeset/ports/441883
Log:
Essentially replace (or rather reinvent) the lang/gcc port, which more
or less ended up identical to lang/gcc5 now that we differentiate between
lang/gccX-devel and lang/gccX ports, by (or as) a meta-port that pulls in
the respective lang/gccX port (based on the setting of $GCC_DEFAULT) and
defines gcc, g++, and gfortran as symlinks to the respective versioned
binaries.
This is the end of a long journey establishing this infrastructure
which is now similar to the one of the python ports, for example,
and makes upgrading the default as well as adjusting the default
locally a lot easier.
(PORTVERSION remains at 5.4.0 for now to avoid PORTEPOCH, but
PORTREVISION gets a bump.)
Suggested by: tijl (a while ago)
Deleted:
head/lang/gcc/distinfo
head/lang/gcc/files/
head/lang/gcc/pkg-plist
Modified:
head/lang/gcc/Makefile
head/lang/gcc/pkg-descr
Modified: head/lang/gcc/Makefile
==============================================================================
--- head/lang/gcc/Makefile Sat May 27 22:30:08 2017 (r441882)
+++ head/lang/gcc/Makefile Sat May 27 23:27:21 2017 (r441883)
@@ -3,176 +3,24 @@
PORTNAME= gcc
PORTVERSION= 5.4.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang java
-MASTER_SITES= GCC/releases/gcc-${DISTVERSION}
+MASTER_SITES= # not applicable
+DISTFILES= # not applicable
MAINTAINER= gerald at FreeBSD.org
-COMMENT= GNU Compiler Collection 5
+COMMENT= Meta-port for the default version of the GNU Compiler Collection
-LICENSE= GPLv3 GPLv3RLE
-LICENSE_COMB= multi
+RUN_DEPENDS= gcc${DEFAULT}:lang/gcc${GCC_DEFAULT}
-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
-
-CONFLICTS= gcc5*
-CPE_VENDOR= gnu
-
-# GCC_VERSION and SUFFIX relate to names of executables and directories
-# once installed.
-GCC_VERSION= ${PORTVERSION}
-SUFFIX= ${PORTVERSION:C/([0-9]+).*/\1/}
-ONLY_FOR_ARCHS= aarch64 amd64 arm armv6 i386 powerpc powerpc64 sparc64
-USES= compiler cpe gmake iconv libtool makeinfo perl5 tar:bzip2
-USE_BINUTILS= yes
-USE_PERL5= build
-SSP_UNSAFE= yes
-
-OPTIONS_DEFINE= BOOTSTRAP GRAPHITE
-OPTIONS_DEFINE_i386= JAVA
-OPTIONS_DEFINE_amd64= JAVA
-OPTIONS_DEFINE_powerpc64= JAVA
-OPTIONS_DEFAULT_i386= JAVA
-OPTIONS_DEFAULT_amd64= JAVA
-OPTIONS_DEFAULT_powerpc64= BOOTSTRAP
-OPTIONS_EXCLUDE_DragonFly= JAVA
-BOOTSTRAP_DESC= Build using a full bootstrap
-GRAPHITE_DESC= Support for Graphite loop optimizations
-
-JAVA_USES= python:build shebangfix
-SHEBANG_FILES= libjava/contrib/aot-compile.in
-
-.if exists(/usr/lib32/libc.so)
-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}
-.endif
-
-.if ${ARCH} == powerpc64
-CONFIGURE_ENV+= UNAME_m="powerpc64"
-.endif
-
-.if ${ARCH} == "armv6" || ${ARCH} == "aarch64"
-. if ${COMPILER_TYPE} == clang
-. if empty(PORT_OPTIONS:MBOOTSTRAP)
-MAKE_ARGS+=CXXFLAGS=-fbracket-depth=512
-. else
-MAKE_ARGS+=STAGE1_CXXFLAGS=-fbracket-depth=512
-. endif
-. endif
-.endif
-
-LANGUAGES:= c,c++,objc,fortran
-TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
-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
-CONFIGURE_ARGS+=--disable-nls \
- --enable-gnu-indirect-function \
- --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
-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.
-#.if ${ARCH} == "i386" || ${ARCH} == "amd64"
-INFO+= gcc${SUFFIX}/libquadmath \
- gcc${SUFFIX}/libitm
-#.endif
-SUB_FILES= pkg-message
-SUB_LIST+= TARGLIB=${TARGLIB}
-
-.if ${PORT_OPTIONS:MGRAPHITE}
-LIB_DEPENDS+= libisl.so:devel/isl
-CONFIGURE_ARGS+=--with-isl=${LOCALBASE}
-.endif
-
-.if ${PORT_OPTIONS:MJAVA}
-ECJ_JAR= ${LOCALBASE}/share/java/ecj-4.5.jar
-BUILD_DEPENDS+= ${ECJ_JAR}:lang/gcc-ecj45 \
- zip:archivers/zip
-RUN_DEPENDS+= ${ECJ_JAR}:lang/gcc-ecj45
-EXTRA_PATCHES+= ${FILESDIR}/java-patch-hier
-CONFIGURE_ARGS+=--with-ecj-jar=${ECJ_JAR}
-LANGUAGES:= ${LANGUAGES},java
-INFO+= gcc${SUFFIX}/cp-tools \
- gcc${SUFFIX}/gcj
-PLIST_SUB+= JAVA=""
-.else
-CONFIGURE_ARGS+=--disable-libgcj
-PLIST_SUB+= JAVA="@comment "
-.endif
-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} ${STAGEDIR}${PREFIX}/bin/rebuild-gcj-db${SUFFIX} \
- ${STAGEDIR}${PREFIX}/man/man1/rebuild-gcj-db${SUFFIX}.1
- # Add target libraries and include files to packaging list.
- ${RM} ${WRKDIR}/PLIST.lib
-.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} include/gcj include/gnu include/java include/javax
- 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}
- # This is the canonical GCC port, so add key commands without
- # version numbers as part of their names.
+NO_ARCH= yes
+NO_BUILD= yes
+
+PLIST_FILES= bin/g++ bin/gcc bin/gfortran
+
+do-install:
.for c in gfortran g++ gcc
- ${LN} -s ${c}${SUFFIX} ${STAGEDIR}${PREFIX}/bin/${c}
+ ${LN} -s ${c}${GCC_DEFAULT} ${STAGEDIR}${PREFIX}/bin/${c}
.endfor
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
Modified: head/lang/gcc/pkg-descr
==============================================================================
--- head/lang/gcc/pkg-descr Sat May 27 22:30:08 2017 (r441882)
+++ head/lang/gcc/pkg-descr Sat May 27 23:27:21 2017 (r441883)
@@ -1,11 +1,7 @@
GCC, the GNU Compiler Collection, supports a number of languages. This
-port installs the C, C++, Fortran and Java front ends as gcc5, g++5,
-gfortran5, and gcj5, respectively.
+port pulls in gcc5 (or another version-specific port) and defines symlinks
+called gcc, g++, and gfortran.
-It can be used (largely) interchangibly with the lang/gcc5 port, which
-tracks GCC 5 releases, or the lang/gcc5-devel port, which tracks GCC 5
-snapshots, and will move to GCC 6 and later over time.
-
-WWW: http://gcc.gnu.org/
+WWW: http://gcc.gnu.org
Gerald Pfeifer <gerald at FreeBSD.org>
More information about the svn-ports-all
mailing list