Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 27 May 2017 23:27:21 +0000 (UTC)
From:      Gerald Pfeifer <gerald@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r441883 - in head/lang/gcc: . files
Message-ID:  <201705272327.v4RNRLgP065954@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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@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@FreeBSD.org>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201705272327.v4RNRLgP065954>