freebsd-ports/devel/binutils/Makefile
Ed Schouten 4d4b697954 Extend the Binutils ports to allow deletion of specific tools.
For CloudABI I slowly want to switch away from certain tools provided by
Binutils. For example, it would be really nice if we could switch from
GNU ld to LLD some time in the future. LLD is not ready yet. Some bug
fixes didn't manage to land into 3.8 and it doesn't support aarch64
properly. There are already some tools that we can use, such as nm,
objdump, size, ar and ranlib.

Introduce a BUREMOVE variable that can be set in Binutils slave ports to
remove specific utilities that are installed by default. There doesn't
seem to be any other elegant way to solve this. Set a bunch of utilities
by default and then extend cloudabi-clang to set up symlinks to the LLVM
versions of the tools.

Reviewed by:	bapt
Differential Revision:	https://reviews.freebsd.org/D5684
2016-03-21 19:32:23 +00:00

91 lines
2.4 KiB
Makefile

# Created by: Martin Matuska <mm@FreeBSD.org>
# $FreeBSD$
PORTNAME= binutils
PORTVERSION= 2.25.1
PORTEPOCH= 1
PORTREVISION?= 1
CATEGORIES= devel
MASTER_SITES= SOURCEWARE/binutils/releases
MAINTAINER?= bapt@FreeBSD.org
COMMENT?= GNU binary tools
LICENSE= GPLv3 LGPL3
LICENSE_COMB= multi
BUILD_DEPENDS= ${LOCALBASE}/lib/libgmp.so:${PORTSDIR}/math/gmp \
${LOCALBASE}/lib/libmpfr.so:${PORTSDIR}/math/mpfr
CONFLICTS= libbfd-[0-9]*
OPTIONS_DEFINE= NLS
LICENSE_FILE_GPLv3= ${WRKSRC}/COPYING3
LICENSE_FILE_LGPL3= ${WRKSRC}/COPYING3.LIB
USES= bison gmake libtool tar:bzip2 compiler:env
GNU_CONFIGURE= yes
.if defined(PKGNAMEPREFIX)
BUTARGET?= ${PKGNAMEPREFIX}${OPSYS:tl}
OPTIONS_EXCLUDE= NLS
INFO_PATH= ${PKGNAMEPREFIX:S/-$//}/info
CONFIGURE_ARGS+= --disable-shared \
--target=${BUTARGET}
.else
CFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
CONFIGURE_ARGS+= --with-system-zlib \
--with-gmp=${LOCALBASE} \
--with-mpfr=${LOCALBASE}
INFO= as \
binutils \
gprof \
bfd \
ld
.endif
CONFIGURE_ARGS+= --disable-werror \
--with-sysroot=/
OPTIONS_SUB= yes
NLS_USES= gettext
NLS_CONFIGURE_ENABLE= nls
.include <bsd.port.pre.mk>
# Actual earliest version may differ slightly
.if ${ARCH} != ia64 && ${ARCH} != mips && ${ARCH} != mips64 && !defined(PKGNAMEPREFIX) && (${COMPILER_TYPE} == clang && ${COMPILER_VERSION} >= 34 || ${COMPILER_TYPE} == gcc)
CONFIGURE_ARGS+= --enable-gold --enable-plugins
PLIST_SUB+= GOLD=""
.else
PLIST_SUB+= GOLD="@comment "
.endif
.if ${ARCH} == "amd64"
CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
.else
CONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
.endif
post-install:
.if !defined(PKGNAMEPREFIX)
${INSTALL_DATA} ${WRKSRC}/include/plugin-api.h ${STAGEDIR}${PREFIX}/include/
@${FIND} -ds ${STAGEDIR}${PREFIX}/${CONFIGURE_TARGET} ! -type d | \
${SED} -e 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
${RM} ${STAGEDIR}${PREFIX}/include/ansidecl.h
${REINPLACE_CMD} '/#include "ansidecl.h"/d' ${STAGEDIR}${PREFIX}/include/bfd.h
.else
.if ${PKGNAMEPREFIX:S/-$//} != ${BUTARGET}
${RM} -rf ${STAGEDIR}${PREFIX}/${PKGNAMEPREFIX:S/-$//}
.endif
${LN} -fs ../../bin/${BUTARGET}-size ${STAGEDIR}${PREFIX}/${BUTARGET}/bin/size
.endif
.for tool in ${BUREMOVE}
@${RM} -f ${STAGEDIR}${PREFIX}/bin/${BUTARGET}-${tool} \
${STAGEDIR}${PREFIX}/man/man1/${BUTARGET}-${tool}.1 \
${STAGEDIR}${PREFIX}/${BUTARGET}/bin/${tool}
.endfor
.include <bsd.port.post.mk>