freebsd-ports/devel/powerpc64-gcc/Makefile
John Baldwin 42fe764b81 Divorce the ARM bare-metal GCC ports from the FreeBSD GCC xtoolchain ports.
In the past, changes to the FreeBSD GCC xtoolchain ports have broken
the ARM bare-metal GCC ports by accident.  In addition, we'd like to
move to having multiple FreeBSD GCC xtoolchain ports for different GCC
versions.  It seems best if we make the two groups of ports
independent so that changes to one do not affect the other.

Reviewed by:	manu
Differential Revision:	https://reviews.freebsd.org/D22064
2019-10-23 17:44:28 +00:00

102 lines
3 KiB
Makefile

# $FreeBSD$
PORTNAME= gcc
PORTVERSION= 6.4.0
PORTREVISION= 7
CATEGORIES= devel
MASTER_SITES= GCC/releases/gcc-${DISTVERSION}
PKGNAMEPREFIX?= powerpc64-
MAINTAINER= ports@FreeBSD.org
COMMENT= Cross GNU Compiler Collection for ${PKGNAMEPREFIX:C/-//g}
LICENSE= GPLv3 GPLv3RLE
LICENSE_COMB= multi
LIB_DEPENDS= libgmp.so:math/gmp \
libmpfr.so:math/mpfr \
libmpc.so:math/mpc
BUILD_DEPENDS= ${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
RUN_DEPENDS= ${BU_PREFIX}-as:devel/${PKGNAMEPREFIX}binutils
USES= gmake iconv libtool tar:xz makeinfo compiler:c++11-lang
PLIST_SUB= TARGETARCH=${PKGNAMEPREFIX:C/-//g} \
OPSYS=${OPSYS:tl} \
GCC_TARGET=${GCC_TARGET} \
GCC_VERSION=${PORTVERSION}
TARGETARCH= ${PKGNAMEPREFIX:C/-//g}
GCC_TARGET= ${PKGNAMEPREFIX:S/amd64/x86_64/}unknown-${OPSYS:tl}${OSREL}
BU_PREFIX?= ${GCC_TARGET}
GNU_CONFIGURE= yes
CONFIGURE_OUTSOURCE= yes
CONFIGURE_ARGS+=--target=${GCC_TARGET} --disable-nls --enable-languages=c,c++ \
--enable-gnu-indirect-function \
--enable-initfini-array \
--without-headers \
--with-gmp=${LOCALBASE} \
--with-pkgversion="FreeBSD Ports Collection for ${PKGNAMEPREFIX:C/-//g}" \
--with-system-zlib \
--with-gxx-include-dir=/usr/include/c++/v1/ \
--with-sysroot="/" \
--with-as=${LOCALBASE}/bin/${BU_PREFIX}-as \
--with-ld=${LOCALBASE}/bin/${BU_PREFIX}-ld
ALL_TARGET= all-gcc
INSTALL_TARGET= install-gcc
.include <bsd.port.pre.mk>
post-patch:
@${REINPLACE_CMD} -e '/LIBSTDCXX/ s/stdc\+\+/c\+\+/g ' \
${WRKSRC}//gcc/cp/g++spec.c
@${REINPLACE_CMD} -e '/LOCAL_INCLUDE_DIR/ d ' \
${WRKSRC}//gcc/Makefile.in
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-unknown-${OPSYS:tl}${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-unknown-${OPSYS:tl}${OSREL}
.endif
.if ${TARGETARCH} == "armv6" || ${TARGETARCH} == "aarch64"
. if ${COMPILER_TYPE} == clang
MAKE_ARGS+=CXXFLAGS=-fbracket-depth=512
. endif
.endif
.if ${ARCH} == "aarch64"
PLIST_SUB+= PLUGINS="@comment plugin does not build"
.else
PLIST_SUB+= PLUGINS=""
.endif
post-install:
.for f in cpp gcov gcov-dump gcov-tool
@if [ -f ${STAGEDIR}${PREFIX}/bin/$f ] ; then \
${MV} ${STAGEDIR}${PREFIX}/bin/$f \
${STAGEDIR}${PREFIX}/bin/${GCC_TARGET}-$f ; \
fi
.endfor
.for f in c++ cpp g++ gcc gcc-ar gcc-nm gcc-ranlib gcov gcov-dump gcov-tool
@if [ ! -f ${STAGEDIR}${PREFIX}/man/man1/${GCC_TARGET}-$f.1 ] ; then \
if [ -f ${STAGEDIR}${PREFIX}/man/man1/$f.1 ] ; then \
${CP} ${STAGEDIR}${PREFIX}/man/man1/$f.1 \
${STAGEDIR}${PREFIX}/man/man1/${GCC_TARGET}-$f.1 ; \
fi \
fi
@${RM} ${STAGEDIR}${PREFIX}/bin/$f
@${RM} ${STAGEDIR}${PREFIX}/man/man1/$f.1
@${RM} ${STAGEDIR}${PREFIX}/man/man1/$f.1.gz
.endfor
@${RM} ${STAGEDIR}${PREFIX}/share/info/*
@${RM} ${STAGEDIR}${PREFIX}/man/man7/*
@${RM} -r ${STAGEDIR}${PREFIX}/lib/gcc/${GCC_TARGET}/${PORTVERSION}/include-fixed
.if ${TARGETARCH} == "amd64" || ${TARGETARCH} == "i386"
# Conflicts with sys/x86/include/float.h
${RM} ${STAGEDIR}${PREFIX}/lib/gcc/${GCC_TARGET}/${PORTVERSION}/include/float.h
.endif
.include <bsd.port.post.mk>