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
91 lines
2.4 KiB
Makefile
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>
|