summaryrefslogtreecommitdiff
path: root/lang/gnat-aux
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 /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/Makefile179
-rw-r--r--lang/gnat-aux/distinfo4
-rw-r--r--lang/gnat-aux/pkg-descr13
-rw-r--r--lang/gnat-aux/pkg-plist40
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