aboutsummaryrefslogtreecommitdiff
path: root/devel/gcc-arm-embedded
diff options
context:
space:
mode:
authorLev A. Serebryakov <lev@FreeBSD.org>2020-06-05 15:48:37 +0000
committerLev A. Serebryakov <lev@FreeBSD.org>2020-06-05 15:48:37 +0000
commit1ecbd736071579675288b7b5521e6878b1c70294 (patch)
treec0ed55caee1614f31cd067350fdcc0477bdfb8f4 /devel/gcc-arm-embedded
parente5c90fe5b23b22d28030e64037b0bebdd8066ba9 (diff)
downloadports-1ecbd736071579675288b7b5521e6878b1c70294.tar.gz
ports-1ecbd736071579675288b7b5521e6878b1c70294.zip
(1) Return option PURE, as libraries are bundled again.
(2) Make PURE default, as isl in ports have newer version. (3) Fix HTML pkg-plist entries. Yes, date in version is wrong (typo!), but I don't want to add epoch. Next update of gcc will fix it.
Notes
Notes: svn path=/head/; revision=538029
Diffstat (limited to 'devel/gcc-arm-embedded')
-rw-r--r--devel/gcc-arm-embedded/Makefile46
-rw-r--r--devel/gcc-arm-embedded/files/Makefile148
-rw-r--r--devel/gcc-arm-embedded/pkg-plist15
3 files changed, 193 insertions, 16 deletions
diff --git a/devel/gcc-arm-embedded/Makefile b/devel/gcc-arm-embedded/Makefile
index 836d233c2fbf..01e895d310eb 100644
--- a/devel/gcc-arm-embedded/Makefile
+++ b/devel/gcc-arm-embedded/Makefile
@@ -1,8 +1,9 @@
# $FreeBSD$
PORTNAME= gcc-arm-embedded
+# This is typo (2030 instead of 2020), buit I don't want to bump EPOCH
PORTVERSION= 9.3.20300529
-#PORTREVISION= 0
+PORTREVISION= 1
CATEGORIES= devel
MASTER_SITES= https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2020q2/
DISTNAME= ${ORIGINAL_PACKAGE_NAME}-src
@@ -19,19 +20,22 @@ NOT_FOR_ARCHS= arm armeb armv6 armv7 \
NOT_FOR_ARCHS_REASON= Very slow to build on emulator
BUILD_DEPENDS= objdump:devel/binutils
-LIB_DEPENDS= libexpat.so:textproc/expat2 \
- libgmp.so:math/gmp \
- libmpfr.so:math/mpfr \
- libmpc.so:math/mpc \
- libisl.so:devel/isl
-OPTIONS_DEFINE= PYGDB EXAMPLES HTML PDF DOCS SYMLINK
-OPTIONS_DEFAULT=PYGDB SYMLINK
+OPTIONS_DEFINE= PURE PYGDB EXAMPLES HTML PDF DOCS SYMLINK
+OPTIONS_DEFAULT=PURE PYGDB SYMLINK
+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
+PURE_USES_OFF= iconv
+
PDF_USE= TEX=base:build,tex:build,dvipsk:build
PDF_BUILD_DEPENDS= texi2dvi:print/texinfo
PYGDB_USES= python
@@ -39,7 +43,7 @@ PYGDB_USES= python
OPTIONS_SUB= yes
USES= bison compiler:c++11-lang cpe gmake gettext-runtime \
- iconv makeinfo tar:bzip2
+ makeinfo tar:bzip2
GNU_CONFIGURE= yes
@@ -72,6 +76,18 @@ 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 \
+ LIBICONV:gz
+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
+BUNDLED_VERSION_LIBICONV= 1.15
+
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 \
@@ -85,11 +101,17 @@ 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
+#.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"
diff --git a/devel/gcc-arm-embedded/files/Makefile b/devel/gcc-arm-embedded/files/Makefile
index 6c7ee96cc84d..b9716eedb9f8 100644
--- a/devel/gcc-arm-embedded/files/Makefile
+++ b/devel/gcc-arm-embedded/files/Makefile
@@ -8,7 +8,11 @@ PKGVERSION= GNU Arm Embedded Toolchain
BUILD_PREFIX= ${WRKDIR}/build
DOC_PREFIX= ${INTERIM_PREFIX}/${DOCS_SUFFIX}
+.if ${PORT_OPTIONS:MPURE}
+WORLD_LIB=${INTERIM_WORLD}
+.else
WORLD_LIB=${LOCALBASE}
+.endif
LDFLAGS+= -L${WORLD_LIB}/lib
@@ -18,7 +22,18 @@ MAKE_ARGS+= CFLAGS="-Wno-error -fbracket-depth=512 -Wno-deprecated-register"
MISC_DOCS= license.txt readme.txt release.txt
+.if ${PORT_OPTIONS:MPURE}
+PREREQUISITES= libiconv \
+ expat \
+ zlib \
+ libelf \
+ gmp \
+ mpfr \
+ mpc \
+ isl
+.else
PREREQUISITES=
+.endif
.if ${PORT_OPTIONS:MPYGDB}
_pygdb= build-pygdb
@@ -43,7 +58,7 @@ COMMON_GDB_CONFIGURE_ARGS= \
--with-libexpat-prefix=${WORLD_LIB} \
--with-libiconv-prefix=${WORLD_LIB} \
--with-lzma=no \
- --with-system-gdbinit=${INTERIM_PREFIX}/xxxx/${TARGET}/lib/gdbinit \
+ --with-system-gdbinit=${INTERIM_PREFIX}/${TARGET}/lib/gdbinit \
--with-gdb-datadir='$${prefix}/${TARGET}/share/gdb' \
--with-pkgversion="${PKGVERSION}"
@@ -60,9 +75,135 @@ ALL_BUILD= build-binutils \
strip-binaries \
strip-target-libraries
-.PHONY: ${ALL_BUILD}
+.PHONY: ${PREREQUISITES} ${ALL_BUILD}
+
+all: ${PREREQUISITES} ${ALL_BUILD}
+
+libiconv:
+ @${ECHO_MSG} "====> Build libiconv"
+ @${RM} -rf ${BUILD_PREFIX}/libiconv
+ @${MKDIR} ${BUILD_PREFIX}/libiconv
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/libiconv && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/libiconv-${BUNDLED_VERSION_LIBICONV}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/libiconv all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/libiconv install ${MAKE_ARGS}
+
+expat:
+ @${ECHO_MSG} "====> Build expat"
+ @${RM} -rf ${BUILD_PREFIX}/expat
+ @${MKDIR} ${BUILD_PREFIX}/expat
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/expat && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/expat-${BUNDLED_VERSION_EXPAT}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/expat all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/expat install ${MAKE_ARGS}
+
+zlib:
+ @${ECHO_MSG} "====> Build zlib"
+ @${RM} -rf ${BUILD_PREFIX}/zlib
+ @${MKDIR} ${BUILD_PREFIX}/zlib
+ @${ECHO_MSG} "=====> Copy to build dir"
+ @${TAR} -cf - -C ${SRC_DIR}/zlib-${BUNDLED_VERSION_ZLIB} . | ${TAR} -xf - -C ${BUILD_PREFIX}/zlib
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/zlib && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ./configure \
+ --static \
+ --prefix=${INTERIM_WORLD}
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/zlib install ${MAKE_ARGS}
-all: ${ALL_BUILD}
+libelf:
+ @${ECHO_MSG} "====> Build libelf"
+ @${RM} -rf ${BUILD_PREFIX}/libelf
+ @${MKDIR} ${BUILD_PREFIX}/libelf
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/libelf && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/libelf-${BUNDLED_VERSION_LIBELF}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/libelf all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/libelf install ${MAKE_ARGS}
+
+gmp:
+ @${ECHO_MSG} "====> Build gmp"
+ @${RM} -rf ${BUILD_PREFIX}/gmp
+ @${MKDIR} ${BUILD_PREFIX}/gmp
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/gmp && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/gmp-${BUNDLED_VERSION_GMP}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --enable-cxx \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/gmp all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/gmp install ${MAKE_ARGS}
+
+mpfr:
+ @${ECHO_MSG} "====> Build mpfr"
+ @${RM} -rf ${BUILD_PREFIX}/mpfr
+ @${MKDIR} ${BUILD_PREFIX}/mpfr
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/mpfr && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpfr-${BUNDLED_VERSION_MPFR}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --with-gmp=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpfr all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpfr install ${MAKE_ARGS}
+
+mpc:
+ @${ECHO_MSG} "====> Build mpc"
+ @${RM} -rf ${BUILD_PREFIX}/mpc
+ @${MKDIR} ${BUILD_PREFIX}/mpc
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/mpc && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/mpc-${BUNDLED_VERSION_MPC}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --with-gmp=${INTERIM_WORLD} \
+ --with-mpfr=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/mpc all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/mpc install ${MAKE_ARGS}
+
+isl:
+ @${ECHO_MSG} "====> Build isl"
+ @${RM} -rf ${BUILD_PREFIX}/isl
+ @${MKDIR} ${BUILD_PREFIX}/isl
+ @${ECHO_MSG} "=====> Configure"
+ @cd ${BUILD_PREFIX}/isl && \
+ ${MAKE_ENV} ${CONFIGURE_ENV} ${SRC_DIR}/isl-${BUNDLED_VERSION_ISL}/configure \
+ --prefix=${INTERIM_WORLD} \
+ --with-gmp-prefix=${INTERIM_WORLD} \
+ --disable-shared \
+ --disable-nls
+ @${ECHO_MSG} "=====> Build"
+ @${MAKE_ENV} ${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${BUILD_PREFIX}/isl all ${MAKE_ARGS}
+ @${ECHO_MSG} "=====> Install into intermediate directory"
+ @${MAKE_ENV} ${MAKE_CMD} -C ${BUILD_PREFIX}/isl install ${MAKE_ARGS}
build-binutils:
@${ECHO_MSG} "====> Build binutils"
@@ -249,6 +390,7 @@ build-gcc-final:
--with-mpc=${WORLD_LIB} \
--with-isl=${WORLD_LIB} \
--with-libelf=${WORLD_LIB} \
+ --with-libiconv-prefix=${WORLD_LIB} \
--enable-languages=c,c++ \
--enable-plugins \
--disable-decimal-float \
diff --git a/devel/gcc-arm-embedded/pkg-plist b/devel/gcc-arm-embedded/pkg-plist
index 064ad030bdde..8db2b044d114 100644
--- a/devel/gcc-arm-embedded/pkg-plist
+++ b/devel/gcc-arm-embedded/pkg-plist
@@ -3668,6 +3668,7 @@ gcc-arm-embedded-%%FULL_VERSION%%/share/gcc-%%TARGET%%/libstdcxx/v6/xmethods.py
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80_002dCase.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80_002dChars.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80_002dDependent.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80_002dLabels.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80_002dRegs.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80-Directives.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/as.html/Z80-Floating-Point.html
@@ -3758,6 +3759,7 @@ gcc-arm-embedded-%%FULL_VERSION%%/share/gcc-%%TARGET%%/libstdcxx/v6/xmethods.py
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/Bug-Reporting.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/c_002b_002bfilt.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/Common-Options.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/debuginfod.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/def-file-format.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/dlltool.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/binutils.html/elfedit.html
@@ -5845,6 +5847,7 @@ gcc-arm-embedded-%%FULL_VERSION%%/share/gcc-%%TARGET%%/libstdcxx/v6/xmethods.py
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libc/wmempcpy.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libc/wmemset.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libiberty.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/Fenv.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/acos.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/acosh.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/asin.html
@@ -5887,6 +5890,17 @@ gcc-arm-embedded-%%FULL_VERSION%%/share/gcc-%%TARGET%%/libstdcxx/v6/xmethods.py
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/expm1.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fabs.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fdim.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/feclearexcept.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fegetenv.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fegetexceptflag.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fegetround.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/feholdexcept.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/feraiseexcept.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fesetenv.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fesetexceptflag.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fesetround.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fetestexcept.html
+%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/feupdateenv.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/floor.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fma.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/fmax.html
@@ -5911,7 +5925,6 @@ gcc-arm-embedded-%%FULL_VERSION%%/share/gcc-%%TARGET%%/libstdcxx/v6/xmethods.py
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/lrint.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/lround.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/Math.html
-%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/matherr.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/modf.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/nan.html
%%PORTDOCS%%%%HTML%%%%DOCSDIR%%/html/libm/nearbyint.html