07f38be147
upstream since 2015 and marked deprecated for three years now. sysutils/memtest86+ and sysutils/uefi-edk2-bhyve are two remaining users in the entire ports tree which hopefully will be converted at one point. On the way refer to GCC 10 instead of GCC 9 for a recommended update. And move the USES block earlier in the Makefile as newer GCC ports do to honor our coding standards (and pet portlint).
122 lines
3.3 KiB
Makefile
122 lines
3.3 KiB
Makefile
# Created by: Gerald Pfeifer <gerald@FreeBSD.org>
|
|
# $FreeBSD$
|
|
|
|
PORTNAME= gcc
|
|
PORTVERSION= 4.8.5
|
|
PORTREVISION= 13
|
|
CATEGORIES= lang
|
|
MASTER_SITES= GCC
|
|
PKGNAMESUFFIX= ${SUFFIX}
|
|
|
|
MAINTAINER= ports@FreeBSD.org
|
|
COMMENT= GNU Compiler Collection 4.8
|
|
|
|
LICENSE= GPLv3 GPLv3RLE
|
|
LICENSE_COMB= multi
|
|
|
|
DEPRECATED= Unsupported by upstream since 2015. Use GCC 10 or newer instead.
|
|
ONLY_FOR_ARCHS= amd64 i386
|
|
|
|
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:bzip2
|
|
USE_BINUTILS= yes
|
|
USE_PERL5= build
|
|
|
|
CPE_VENDOR= gnu
|
|
|
|
GCC_VERSION= ${PORTVERSION}
|
|
SUFFIX= ${PORTVERSION:C/([0-9]+).([0-9]+).*/\1\2/}
|
|
SSP_UNSAFE= yes
|
|
CFLAGS:= ${CFLAGS:N-march=haswell:N-march=ivybridge:N-march=westmere:N-mretpoline}
|
|
CXXFLAGS:= ${CXXFLAGS:N-march=haswell:N-march=ivybridge:N-march=westmere:N-mretpoline}
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${ARCH} == amd64
|
|
CONFIGURE_TARGET= x86_64-portbld-${OPSYS:tl}${OSREL}
|
|
.endif
|
|
|
|
LANGUAGES:= c,c++
|
|
TARGLIB= ${PREFIX}/lib/gcc${SUFFIX}
|
|
LIBEXEC= ${PREFIX}/libexec/gcc${SUFFIX}
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_OUTSOURCE= yes
|
|
CONFIGURE_ARGS+=--with-build-config=bootstrap-debug
|
|
ALL_TARGET= bootstrap-lean
|
|
INSTALL_TARGET= install-strip
|
|
.if ${UID} != 0
|
|
BINMODE= 755
|
|
.endif
|
|
CONFIGURE_ARGS+=--disable-nls \
|
|
--disable-multilib \
|
|
--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 \
|
|
--disable-libgcj \
|
|
--enable-languages=${LANGUAGES}
|
|
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 \
|
|
gcc${SUFFIX}/libitm \
|
|
gcc${SUFFIX}/libquadmath
|
|
SUB_FILES= pkg-message
|
|
SUB_LIST+= TARGLIB=${TARGLIB}
|
|
|
|
pre-everything::
|
|
@${ECHO_MSG} "Making GCC ${PORTVERSION} for ${CONFIGURE_TARGET} [${LANGUAGES}]"
|
|
|
|
post-patch:
|
|
@${FIND} ${WRKSRC} -type f -name '*.[ch]' | \
|
|
${XARGS} ${EGREP} -l '"(HOST_WIDE|PLUGIN_COND)' | \
|
|
${XARGS} ${REINPLACE_CMD} -E -e 's/"(HOST_WIDE|PLUGIN_COND)/" \1/g'
|
|
|
|
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/ \
|
|
${STAGEDIR}${TARGLIB}/gcc/*/${GCC_VERSION}/finclude
|
|
# Add target libraries and include files to packaging list.
|
|
${RM} ${WRKDIR}/PLIST.lib
|
|
.for d in ${TARGLIB: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>
|