1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-03 06:04:53 +00:00
freebsd-ports/devel/gcc-arm-embedded/Makefile
Mathieu Arnold cf118ccf87
One more small cleanup, forgotten yesterday.
Reported by:	lwhsu
2021-04-07 10:09:01 +02:00

148 lines
4.8 KiB
Makefile

PORTNAME= gcc-arm-embedded
PORTVERSION= 10.2.20201211
PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/10-2020q4/
DISTNAME= ${ORIGINAL_PACKAGE_NAME}-src
MAINTAINER= lev@FreeBSD.org
COMMENT= Complete gcc-based toolcahin for embedded ARM development
LICENSE= GPLv2 LGPL20 LGPL21 GPLv3 LGPL3
LICENSE_COMB= multi
BROKEN_aarch64= fails to build
NOT_FOR_ARCHS= arm armeb armv6 armv7 \
mips mips64 mips64el mipsel mipsn32
NOT_FOR_ARCHS_REASON= Very slow to build on emulator
BUILD_DEPENDS= objdump:devel/binutils
OPTIONS_DEFINE= APROFILE PURE PYGDB EXAMPLES HTML PDF DOCS SYMLINK
OPTIONS_DEFAULT=PURE PYGDB SYMLINK
APROFILE_DESC= Add support for Cortex-A profiles
PURE_DESC= Use all libraries from bundle, do not depend on anything
HTML_DESC= Install HTML documentation
PDF_DESC= Install PDF documentation (requires TeX, it is huge)
PYGDB_DESC= Build and install python-enabled gdb in addition to standard one
SYMLINK_DESC= Make version-independent symlink ${LOCALBASE}/${PORTNAME}
PURE_LIB_DEPENDS_OFF= libexpat.so:textproc/expat2 \
libgmp.so:math/gmp \
libmpfr.so:math/mpfr \
libmpc.so:math/mpc \
libisl.so:devel/isl
PDF_USE= TEX=base:build,tex:build,dvipsk:build
PDF_BUILD_DEPENDS= texi2dvi:print/texinfo
PYGDB_USES= python
OPTIONS_SUB= yes
USES= bison compiler:c++11-lang cpe gmake gettext-runtime \
makeinfo tar:bzip2 iconv
GNU_CONFIGURE= yes
PATCH_WRKSRC= ${WRKDIR}/${ORIGINAL_PACKAGE_NAME}
BUILD_WRKSRC= ${WRKDIR}
GCC_VERSION= 10.2.1
FULL_VERSION= 10-2020-q4-major
TARGET= arm-none-eabi
ORIGINAL_PACKAGE_NAME= gcc-${TARGET}-${FULL_VERSION}
CPE_PRODUCT= gcc
CPE_VENDOR= gnu
CPE_VERSION= ${GCC_VERSION}
INFO_PATH= ${PORTNAME}-${FULL_VERSION}/share/doc/gcc-${TARGET}/info
INFO= annotate as bfd binutils cpp cppinternals gcc \
gccinstall gccint gdb gprof ld stabs
MANPREFIX= ${PREFIX}/${PORTNAME}-${FULL_VERSION}/${DOCS_SUFFIX}
DOCSDIR= ${PREFIX}/${PORTNAME}-${FULL_VERSION}/${DOCS_SUFFIX}
EXAMPLESDIR= ${PREFIX}/${PORTNAME}-${FULL_VERSION}/share/gcc-${TARGET}/samples
PLIST_SUB+= TARGET=${TARGET} FULL_VERSION=${FULL_VERSION} \
GCC_VERSION=${GCC_VERSION}
DOCS_SUFFIX= share/doc/gcc-${TARGET}
SRC_DIR= ${WRKDIR}/${ORIGINAL_PACKAGE_NAME}/src
BUILD_DIR= ${WRKDIR}/build
INTERIM_WORLD= ${WRKDIR}/install
INTERIM_PREFIX= ${INTERIM_WORLD}/${PORTNAME}-${FULL_VERSION}
BUNDLED_LIBS= EXPAT:bz2 ZLIB:gz LIBELF:gz \
GMP:bz2 MPFR:bz2 MPC:gz ISL:xz
BUNDLED_VERSION_EXPAT= 2.1.1
BUNDLED_VERSION_ZLIB= 1.2.8
BUNDLED_VERSION_LIBELF= 0.8.13
BUNDLED_VERSION_GMP= 6.1.0
BUNDLED_VERSION_MPFR= 3.1.4
BUNDLED_VERSION_MPC= 1.0.3
BUNDLED_VERSION_ISL= 0.18
VAR_TO_SUBMAKE= BUILD_DIR CC CFLAGS CHOSEN_COMPILER_TYPE CONFIG_SITE \
CONFIGURE_MAX_CMD_LEN CONFIGURE_SHELL CP CPP CPPFLAGS CXX \
CXXFLAGS DOCS_SUFFIX ECHO_MSG EXAMPLESDIR FILE FIND GMAKE \
GCC_VERSION GREP MAKE_CMD MAKE_SHELL PATCH \
INSTALL_MACROS INTERIM_PREFIX INTERIM_WORLD LD LDFLAGS LIBDIR \
LN LOCALBASE MAKE_JOBS_NUMBER MKDIR ORIGINAL_PACKAGE_NAME \
PORT_OPTIONS PREFIX PYTHON_CMD RM SED SH SRC_DIR STRIP_CMD TAR \
TARGET WRKDIR CONFIGURE_TARGET
VAR_TO_SUBMAKE_NOEXPAND= CONFIGURE_ENV MAKE_ENV
.include <bsd.port.pre.mk>
#.if ${PORT_OPTIONS:MPURE}
#IGNORE= PURE option is not valid anymore, no libraries are bundled
#.endif
post-extract:
.if ${PORT_OPTIONS:MPURE}
.for L in ${BUNDLED_LIBS}
@${ECHO_MSG} "====> Extracting bundled ${L:C/[:].+//:tl}"
@${TAR} -xf ${SRC_DIR}/${L:C/[:].+//:tl}-${BUNDLED_VERSION_${L:C/[:].+//}}.tar.${L:C/.+[:]//} -C ${SRC_DIR}
.endfor
.endif
@${ECHO_MSG} "====> Extracting bundled binutils"
@${TAR} -xf ${SRC_DIR}/binutils.tar.bz2 -C ${SRC_DIR}
@${ECHO_MSG} "====> Extracting bundled gcc"
@${TAR} -xf ${SRC_DIR}/gcc.tar.bz2 -C ${SRC_DIR}
@${ECHO_MSG} "====> Extracting bundled gdb"
@${TAR} -xf ${SRC_DIR}/gdb.tar.bz2 -C ${SRC_DIR}
@${ECHO_MSG} "====> Extracting bundled newlib"
@${TAR} -xf ${SRC_DIR}/newlib.tar.bz2 -C ${SRC_DIR}
do-configure:
@${RM} -r ${BUILD_DIR}
@${MKDIR} ${BUILD_DIR}
@${RM} -r ${INTERIM_PREFIX}
@${MKDIR} ${INTERIM_PREFIX}
@${CP} ${FILESDIR}/Makefile ${WRKDIR}
@${RM} ${WRKDIR}/Makefile.inc
.for VAR in ${VAR_TO_SUBMAKE}
@${ECHO} '${VAR}=${${VAR}}' >> ${WRKDIR}/Makefile.inc
.endfor
.for L in ${BUNDLED_LIBS}
@${ECHO} -n 'BUNDLED_VERSION_${L:C/[:].+//}=' >> ${WRKDIR}/Makefile.inc
@${ECHO} '${BUNDLED_VERSION_${L:C/[:].+//}}' >> ${WRKDIR}/Makefile.inc
.endfor
.for VAR in ${VAR_TO_SUBMAKE_NOEXPAND}
@${ECHO} -n '${VAR}=' >> ${WRKDIR}/Makefile.inc
@${MAKE} .MAKE.EXPAND_VARIABLES=0 -X -V ${VAR} >> ${WRKDIR}/Makefile.inc
.endfor
do-build:
@${MAKE} -C ${WRKDIR}
do-install:
@${TAR} -cf - -C ${WRKDIR}/install ${PORTNAME}-${FULL_VERSION} | ${TAR} -xf - -C ${STAGEDIR}${PREFIX}
.if ${PORT_OPTIONS:MSYMLINK}
@${LN} -s ${PORTNAME}-${FULL_VERSION} ${STAGEDIR}${PREFIX}/${PORTNAME}
.endif
.include <bsd.port.post.mk>