summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWen Heping <wen@FreeBSD.org>2011-02-15 07:32:50 +0000
committerWen Heping <wen@FreeBSD.org>2011-02-15 07:32:50 +0000
commit99d52a007908ea91506b13c140236042d13a8d7b (patch)
tree8441c41a8f5218c07ab1a3f8d787ad6d59c90699
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
-rw-r--r--lang/Makefile1
-rw-r--r--lang/gnat-aux/Makefile179
-rw-r--r--lang/gnat-aux/distinfo4
-rw-r--r--lang/gnat-aux/pkg-descr13
-rw-r--r--lang/gnat-aux/pkg-plist40
5 files changed, 237 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile
index f38a5495a56f..0d4629d49153 100644
--- a/lang/Makefile
+++ b/lang/Makefile
@@ -105,6 +105,7 @@
SUBDIR += ghc
SUBDIR += gjs
SUBDIR += gnat
+ SUBDIR += gnat-aux
SUBDIR += gnat-doc-html
SUBDIR += gnat-doc-info
SUBDIR += gnat-doc-ps
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