diff options
author | Wen Heping <wen@FreeBSD.org> | 2011-02-15 07:32:50 +0000 |
---|---|---|
committer | Wen Heping <wen@FreeBSD.org> | 2011-02-15 07:32:50 +0000 |
commit | 99d52a007908ea91506b13c140236042d13a8d7b (patch) | |
tree | 8441c41a8f5218c07ab1a3f8d787ad6d59c90699 /lang/gnat-aux | |
parent | - Update to 1.0.6 (diff) |
GNAT AUX is based on the trunk version of Free Software Foundation's GNU
Compiler Collection. It carries with it the GMGPL license, the modified
version of the GPL that exempts generic instantiation from resulting in
a GPL-licensed executable. This version of GNAT also carries with it the
GCC Runtime Library Exception, so the resulting binaries have no licensing
requirements. Binaries produced by GNAT AUX should be handled the same as
binaries produced by any FSF GNAT compiler.
GNAT AUX implements the full Ada-83, Ada-95, and Ada-2005 language standards.
It also implements some features of the draft Ada-2012 standard, which are
optionally accessible via the -gnat2012 switch or Ada_2012 pragma.
WWW: http://www.dragonlace.net/
PR: ports/153828
Submitted by: John Marino <freebsdml@marino.st>
Notes
Notes:
svn path=/head/; revision=269191
Diffstat (limited to 'lang/gnat-aux')
-rw-r--r-- | lang/gnat-aux/Makefile | 179 | ||||
-rw-r--r-- | lang/gnat-aux/distinfo | 4 | ||||
-rw-r--r-- | lang/gnat-aux/pkg-descr | 13 | ||||
-rw-r--r-- | lang/gnat-aux/pkg-plist | 40 |
4 files changed, 236 insertions, 0 deletions
diff --git a/lang/gnat-aux/Makefile b/lang/gnat-aux/Makefile new file mode 100644 index 000000000000..bf1b05ccac90 --- /dev/null +++ b/lang/gnat-aux/Makefile @@ -0,0 +1,179 @@ +# New ports collection makefile for: gnat-aux +# Date created: 16 December 2010 +# Whom: John Marino <draco@marino.st> +# +# $FreeBSD$ +# + +PORTNAME= gnat-aux +PORTVERSION= ${SNAPSHOT} +CATEGORIES= lang +MASTER_SITES= http://downloads.dragonlace.net/src/ \ + http://dragonlace.mirrors.ada.cx/src/ + +MAINTAINER= draco@marino.st +COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH} + +LIB_DEPENDS= gmp.10:${PORTSDIR}/math/gmp +LIB_DEPENDS+= mpfr.4:${PORTSDIR}/math/mpfr +LIB_DEPENDS+= mpc.2:${PORTSDIR}/math/mpc +BUILD_DEPENDS= dejagnu>=1.4:${PORTSDIR}/misc/dejagnu + +ONLY_FOR_ARCHES= i386 amd64 + +GNU_CONFIGURE= yes +USE_GMAKE= yes +USE_BZIP2= yes +USE_ICONV= yes +USE_BISON= build +USE_PERL5_BUILD= yes +USE_LDCONFIG= yes +ALL_TARGET= default + +SNAPSHOT= 20110107 +GCC_BRANCH= 4.6 +GCC_POINT= 0 + +THREAD_MODEL= posix +INTENDED_COMPILER= NATIVE +BOOTSTRAP_COMPILER= NOT_REQUIRED +BOOTSTRAP_TRIPLET= NOT_SET +FULL_GNATGCC= NOT_SET + +.include <bsd.port.pre.mk> + +.if ${ARCH} == "amd64" +BLD_TARGET= x86_64-aux-freebsd${OSREL} +OS_LABEL4VERS= [FreeBSD64] +BOOTSTRAP_TRIPLET= x86_64-bootstrap-freebsd8.1/4.6.0 +BOOTSTRAP_COMPILER= gnat-bootstrap.x86_64.freebsd.tar.bz2 +.else +BLD_TARGET= i386-aux-freebsd${OSREL} +OS_LABEL4VERS= [FreeBSD] +BOOTSTRAP_TRIPLET= i386-bootstrap-freebsd8.0/4.6.0 +BOOTSTRAP_COMPILER= gnat-bootstrap.i386.freebsd.tar.bz2 +.endif +PLIST_SUB= GNU_HOST=${BLD_TARGET} +PLIST_SUB+= GCC_VER=${GCC_BRANCH}.${GCC_POINT} + +WRKSRC= ${WRKDIR}/build +GCC_WRKSRC= ${WRKDIR}/gcc-${GCC_BRANCH}-${SNAPSHOT} +BOOTSTRAP_PREFIX= ${WRKDIR}/bootstrap +PKG_PREFIX= ${PREFIX} +CONFIGURE_SCRIPT= ${GCC_WRKSRC}/configure +REVFILE= ${GCC_WRKSRC}/gcc/REVISION +LPATH= lib/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} +LEPATH= libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT} +LELIST= cc1 collect2 gnat1 lto1 +MAN1= gnatcpp.1 gnatgcc.1 gnatgcov.1 +MAN7= fsf-funding.7 gfdl.7 gpl.7 +MAN1PREFIX= ${PREFIX}/share +MAN7PREFIX= ${PREFIX}/share +NO_MANCOMPRESS= yes + +# If we find gnatgcc and friends in standard location, then we'll use this +# compiler instead of downloading the bootstrap. +.if exists (${PREFIX}/bin/gnatgcc) +.if exists (${PREFIX}/bin/gnatbind) +.if exists (${PREFIX}/bin/gnatlink) +.if exists (${PREFIX}/bin/gnatmake) +FULL_GNATGCC=${PREFIX}/bin/gnatgcc +FULL_PATH=/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin +.endif +.endif +.endif +.endif + +# If FULL_GNATGCC is not set, we'll request the bootstrap compiler +.if ${FULL_GNATGCC} == "NOT_SET" +INTENDED_COMPILER=BOOTSTRAP +FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gnatgcc +FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/bin +DISTFILES=${PORTNAME}-${SNAPSHOT}.tar.bz2 ${BOOTSTRAP_COMPILER} +.endif + +# for port maintenance, uncomment to invoke "make makesum" +# DISTFILES=${PORTNAME}-${SNAPSHOT}.tar.bz2 \ +# gnat-aux-460.i386.freebsd.tar.bz2 \ +# gnat-aux-460.x86_64.freebsd.tar.bz2 + +# Establish Ada-aware compiler for use +ADA_CONFIGURE_ENV= CC=${FULL_GNATGCC} PATH=${FULL_PATH} CONFIG_SHELL=${SH} +ADA_MAKE_ENV= PATH=${FULL_PATH} + +# The standard configuration options +CONFIGURE_ARGS= --enable-languages=c,ada +CONFIGURE_ARGS+= --build=${BLD_TARGET} +CONFIGURE_ARGS+= --program-prefix=gnat +CONFIGURE_ARGS+= --prefix=${PREFIX} +CONFIGURE_ARGS+= --with-system-zlib +CONFIGURE_ARGS+= --with-gmp=${PKG_PREFIX} +CONFIGURE_ARGS+= --with-mpfr=${PKG_PREFIX} +CONFIGURE_ARGS+= --with-mpc=${PKG_PREFIX} +CONFIGURE_ARGS+= --with-libiconv-prefix=${PKG_PREFIX} +CONFIGURE_ARGS+= --enable-shared +CONFIGURE_ARGS+= --enable-threads=${THREAD_MODEL} +CONFIGURE_ARGS+= --disable-bootstrap +CONFIGURE_ARGS+= --disable-libmudflap +CONFIGURE_ARGS+= --disable-libgomp +CONFIGURE_ARGS+= --disable-libssp +CONFIGURE_ARGS+= --disable-nls + +MAKE_ARGS+= MAKEINFOFLAGS="--no-split" + +post-extract: + # Personalize GNAT for each different machine + @${ECHO} "-=> GNAT AUX ${OS_LABEL4VERS}" > ${REVFILE} + +.if ${INTENDED_COMPILER} == "BOOTSTRAP" + ${MKDIR} ${BOOTSTRAP_PREFIX} + ${MV} ${BOOTSTRAP_PREFIX}/../bin ${BOOTSTRAP_PREFIX} + ${MV} ${BOOTSTRAP_PREFIX}/../lib ${BOOTSTRAP_PREFIX} + ${MV} ${BOOTSTRAP_PREFIX}/../libexec ${BOOTSTRAP_PREFIX} + + # Bootstrap compiler has statically linked z, gmp, mpc, mpfr and iconv + # The only shared lib is libc.so.7, so it should work for a long time. + # if FBSD 9.0 upgrades libc, a compat8x requirement could be added + # for FreeBSD 7.x and 8.x +.endif + +do-configure: + #reset timestamps + cd ${GCC_WRKSRC}; contrib/gcc_update --touch + ${RM} -f ${GCC_WRKSRC}/gcc/*/*.info* + ${TOUCH} ${GCC_WRKSRC}/gcc/cstamp-h.in + + ${MKDIR} ${WRKSRC} + cd ${WRKSRC} && ${SETENV} ${ADA_CONFIGURE_ENV} \ + ${SH} ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS} + +do-build: + cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} all + +test: build + cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} -sk check-ada + +do-install: + cd ${WRKSRC} && ${SETENV} ${ADA_MAKE_ENV} ${GMAKE} install + +post-install: strip-exec + ${RM} -f ${WRKDIR}/PLIST.lib +.for d in ${LPATH} ${LEPATH} + cd ${PREFIX} ; ${FIND} $d \( -type f -or -type l \) | ${SORT} >> ${WRKDIR}/PLIST.lib + cd ${PREFIX} ; ${FIND} $d -type d | ${SORT} -r | \ + ${SED} -e 's/^/@dirrm /g' >> ${WRKDIR}/PLIST.lib +.endfor + ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc/${BLD_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib + ${ECHO_CMD} "@unexec ${RMDIR} %D/lib/gcc 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib + ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${BLD_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib + ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib + + cd ${WRKDIR}; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST} + +strip-exec: + ${STRIP_CMD} ${PREFIX}/bin/gnat* +.for k in ${LELIST} + ${STRIP_CMD} ${PREFIX}/${LEPATH}/${k} +.endfor + +.include <bsd.port.post.mk> diff --git a/lang/gnat-aux/distinfo b/lang/gnat-aux/distinfo new file mode 100644 index 000000000000..f0f9e5e7b71b --- /dev/null +++ b/lang/gnat-aux/distinfo @@ -0,0 +1,4 @@ +SHA256 (gnat-aux-20110107.tar.bz2) = b686a639117a283e4659240439b95b446aada76825e352b12c5925918d3a8cab +SIZE (gnat-aux-20110107.tar.bz2) = 23176092 +SHA256 (gnat-bootstrap.i386.freebsd.tar.bz2) = c38e1c960f651c3f248c1ef540b1df724058fa71c1d046af93ce975483abb645 +SIZE (gnat-bootstrap.i386.freebsd.tar.bz2) = 27973176 diff --git a/lang/gnat-aux/pkg-descr b/lang/gnat-aux/pkg-descr new file mode 100644 index 000000000000..0f0ae84f72a7 --- /dev/null +++ b/lang/gnat-aux/pkg-descr @@ -0,0 +1,13 @@ +GNAT AUX is based on the trunk version of Free Software Foundation's GNU +Compiler Collection. It carries with it the GMGPL license, the modified +version of the GPL that exempts generic instantiation from resulting in +a GPL-licensed executable. This version of GNAT also carries with it the +GCC Runtime Library Exception, so the resulting binaries have no licensing +requirements. Binaries produced by GNAT AUX should be handled the same as +binaries produced by any FSF GNAT compiler. + +GNAT AUX implements the full Ada-83, Ada-95, and Ada-2005 language standards. +It also implements some features of the draft Ada-2012 standard, which are +optionally accessible via the -gnat2012 switch or Ada_2012 pragma. + +WWW: http://www.dragonlace.net/ diff --git a/lang/gnat-aux/pkg-plist b/lang/gnat-aux/pkg-plist new file mode 100644 index 000000000000..1df2a83184a0 --- /dev/null +++ b/lang/gnat-aux/pkg-plist @@ -0,0 +1,40 @@ +@comment $FreeBSD +bin/gnat +bin/gnatbind +bin/gnatchop +bin/gnatclean +bin/gnatcpp +bin/gnatfind +bin/gnatgcc +bin/gnatgcov +bin/gnatkr +bin/gnatlink +bin/gnatls +bin/gnatmake +bin/gnatname +bin/gnatprep +bin/gnatxref +bin/%%GNU_HOST%%-gcc-%%GCC_VER%% +bin/%%GNU_HOST%%-gnatgcc +share/info/cpp.info +share/info/cppinternals.info +share/info/dir +share/info/gcc.info +share/info/gccinstall.info +share/info/gccint.info +share/info/gnat-style.info +share/info/gnat_rm.info +share/info/gnat_ugn.info +share/info/libquadmath.info +lib/libgcc_s.so +lib/libgcc_s.so.1 +lib/libiberty.a +lib/libquadmath.la +lib/libquadmath.a +lib/libquadmath.so +lib/libquadmath.so.0 +@dirrmtry share/info +@dirrmtry share/man/man1 +@dirrmtry share/man/man7 +@dirrmtry share/man +@comment PLIST.lib attached below |