mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-27 00:57:50 +00:00
7f513a07e9
Introduce a new option BOOTSTRAP that allows switching between a full bootstrap of GCC and just running a simple build. Bootstrapping is the default upstream, and for very stable and old flavors of GCC we disable this by default since that is a huge win in terms of build time of the port. No change in default behavior for this port, for the time being we continue to bootstrap.
180 lines
5.0 KiB
Makefile
180 lines
5.0 KiB
Makefile
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= gcc
|
|
PORTVERSION= 4.7.4.20130518
|
|
CATEGORIES= lang java
|
|
MASTER_SITES= ${MASTER_SITE_GCC}
|
|
MASTER_SITE_SUBDIR= snapshots/${VERSIONSTRING}
|
|
DISTNAME= gcc-${VERSIONSTRING}
|
|
|
|
MAINTAINER= gerald@FreeBSD.org
|
|
COMMENT= GNU Compiler Collection 4.7
|
|
|
|
LIB_DEPENDS= gmp:${PORTSDIR}/math/gmp \
|
|
mpfr:${PORTSDIR}/math/mpfr \
|
|
mpc:${PORTSDIR}/math/mpc
|
|
BUILD_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
|
|
RUN_DEPENDS+= ${LOCALBASE}/bin/as:${PORTSDIR}/devel/binutils
|
|
|
|
.if defined(MAINTAINER_MODE)
|
|
BUILD_DEPENDS+= runtest:${PORTSDIR}/misc/dejagnu
|
|
.endif
|
|
|
|
# VERSIONSTRING relates to downloads, GCC_VERSION and SUFFIX to names
|
|
# of executables and directories once installed.
|
|
VERSIONSTRING= ${PORTVERSION:C/([0-9]+\.[0-9]+).*\.([0-9]+)/\1-\2/}
|
|
GCC_VERSION= ${PORTVERSION:C/(.+)\.[0-9]{8}/\1/}
|
|
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
|
|
LATEST_LINK= gcc${SUFFIX}${PKGNAMESUFFIX}
|
|
ONLY_FOR_ARCHS= amd64 i386 powerpc powerpc64 sparc64
|
|
USE_BINUTILS= yes
|
|
USES= bison iconv
|
|
USE_BZIP2= yes
|
|
USE_GMAKE= yes
|
|
USE_PERL5_BUILD=yes
|
|
MAKE_JOBS_SAFE= yes
|
|
|
|
PATCH_WRKSRC= ${SRCDIR}
|
|
CONFIGURE_SCRIPT= ../${SRCDIR:S/${WRKDIR}\///}/configure
|
|
|
|
OPTIONS_DEFINE= BOOTSTRAP
|
|
OPTIONS_DEFINE_i386= JAVA
|
|
OPTIONS_DEFINE_amd64= JAVA
|
|
OPTIONS_DEFAULT= BOOTSTRAP
|
|
OPTIONS_DEFAULT_i386= JAVA
|
|
OPTIONS_DEFAULT_amd64= JAVA
|
|
BOOTSTRAP_DESC= Build using a full bootstrap
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${ARCH} == "amd64"
|
|
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
|
|
.else
|
|
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
|
|
.endif
|
|
|
|
.if ${ARCH} == powerpc64
|
|
CONFIGURE_ENV+= UNAME_m="powerpc64"
|
|
.endif
|
|
|
|
LANGUAGES:= c,c++,objc,fortran
|
|
SRCDIR= ${WRKDIR}/gcc-${VERSIONSTRING}
|
|
WRKSRC= ${WRKDIR}/build
|
|
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
|
|
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
|
|
GNU_CONFIGURE= yes
|
|
CFLAGS+= -I${LOCALBASE}/include
|
|
.if empty(PORT_OPTIONS:MBOOTSTRAP)
|
|
CONFIGURE_ARGS+=--disable-bootstrap
|
|
.else
|
|
ALL_TARGET= bootstrap-lean
|
|
.endif
|
|
CONFIGURE_ARGS+=--disable-nls \
|
|
--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 \
|
|
--with-libiconv-prefix=${LOCALBASE} \
|
|
--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}
|
|
MAN1= cpp${SUFFIX}.1 \
|
|
g++${SUFFIX}.1 \
|
|
gcc${SUFFIX}.1 \
|
|
gcov${SUFFIX}.1 \
|
|
gfortran${SUFFIX}.1
|
|
INFO= gcc${SUFFIX}/cpp \
|
|
gcc${SUFFIX}/cppinternals \
|
|
gcc${SUFFIX}/gcc \
|
|
gcc${SUFFIX}/gccinstall \
|
|
gcc${SUFFIX}/gccint \
|
|
gcc${SUFFIX}/gfortran \
|
|
gcc${SUFFIX}/libgomp
|
|
.if ${ARCH} == "i386" || ${ARCH} == "amd64" || ${ARCH} == "alpha"
|
|
INFO+= gcc${SUFFIX}/libquadmath \
|
|
gcc${SUFFIX}/libitm
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MJAVA}
|
|
ECJ_JAR= ${LOCALBASE}/share/java/ecj-4.5.jar
|
|
BUILD_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45 \
|
|
zip:${PORTSDIR}/archivers/zip
|
|
RUN_DEPENDS+= ${ECJ_JAR}:${PORTSDIR}/lang/gcc-ecj45
|
|
EXTRA_PATCHES+= ${FILESDIR}/java-patch-hier
|
|
CONFIGURE_ARGS+=--with-ecj-jar=${ECJ_JAR}
|
|
LANGUAGES:= ${LANGUAGES},java
|
|
MAN1+= aot-compile${SUFFIX}.1 \
|
|
gappletviewer${SUFFIX}.1 \
|
|
gc-analyze${SUFFIX}.1 \
|
|
gcj${SUFFIX}.1 \
|
|
gcj-dbtool${SUFFIX}.1 \
|
|
gcjh${SUFFIX}.1 \
|
|
gij${SUFFIX}.1 \
|
|
gjar${SUFFIX}.1 \
|
|
gjarsigner${SUFFIX}.1 \
|
|
gjavah${SUFFIX}.1 \
|
|
gjdoc${SUFFIX}.1 \
|
|
gkeytool${SUFFIX}.1 \
|
|
gnative2ascii${SUFFIX}.1 \
|
|
gorbd${SUFFIX}.1 \
|
|
grmic${SUFFIX}.1 \
|
|
grmid${SUFFIX}.1 \
|
|
grmiregistry${SUFFIX}.1 \
|
|
gserialver${SUFFIX}.1 \
|
|
gtnameserv${SUFFIX}.1 \
|
|
jcf-dump${SUFFIX}.1 \
|
|
jv-convert${SUFFIX}.1 \
|
|
rebuild-gcj-db${SUFFIX}.1
|
|
MAN3= ffi${SUFFIX}.3 \
|
|
ffi_call${SUFFIX}.3 \
|
|
ffi_prep_cif${SUFFIX}.3
|
|
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 ${SRCDIR} ; contrib/gcc_update --touch
|
|
@${RM} -f ${SRCDIR}/gcc/*/*.info*
|
|
@${MKDIR} ${CONFIGURE_WRKSRC}
|
|
|
|
.if defined(MAINTAINER_MODE)
|
|
full-regression-test: build
|
|
cd ${WRKSRC}; ${GMAKE} -sk check
|
|
.endif
|
|
|
|
post-install:
|
|
${RM} -f ${PREFIX}/man/man7/fsf-funding.7 \
|
|
${PREFIX}/man/man7/gfdl.7 ${PREFIX}/man/man7/gpl.7
|
|
${RM} -f ${TARGLIB}/*.la
|
|
# Add target libraries and include files to packaging list.
|
|
${RM} -f ${WRKDIR}/PLIST.lib
|
|
.for d in ${TARGLIB:S/^${PREFIX}\///} ${LIBEXEC:S/^${PREFIX}\///} include/gcj include/gnu include/java include/javax
|
|
cd ${PREFIX} ; if [ -d $d ]; then \
|
|
${FIND} $d -type f -o -type l >>${WRKDIR}/PLIST.lib ;\
|
|
${FIND} $d -type d | ${SORT} -r \
|
|
| ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib ;\
|
|
fi
|
|
.endfor
|
|
cd ${WRKDIR} ; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
|
|
@if type ccache-update-links >/dev/null 2>&1; then \
|
|
ccache-update-links -v; \
|
|
fi
|
|
|
|
.include <bsd.port.post.mk>
|