summaryrefslogtreecommitdiff
path: root/lang/gnat-aux
diff options
context:
space:
mode:
authordrochner <drochner@pkgsrc.org>2011-02-01 20:32:56 +0000
committerdrochner <drochner@pkgsrc.org>2011-02-01 20:32:56 +0000
commitb24a54157fa505173cfe2b4106fa243e28263e12 (patch)
treea4b9a50688a7a0a95b10f82679958c6ab7bf8577 /lang/gnat-aux
parentf47b96121f4ae675ddec4c2d004d04cb049d21df (diff)
downloadpkgsrc-b24a54157fa505173cfe2b4106fa243e28263e12.tar.gz
add gnat-aux-20110125, an Ada compiler gased on a gcc-4.6 snapshot, from
John Marino, originally per PR pkg/44436, slightly updated for i386/amd64, comes with a bootstrap which doesn't need an Ada compiler on the pkg build system (fetches a bootstrap binary from MASTER_SITE) There seems to be some incompatibility with the binutils/libgcc_s on NetBSD-current, leading to warnings. Not fatal, but should be investigated.
Diffstat (limited to 'lang/gnat-aux')
-rw-r--r--lang/gnat-aux/DESCR13
-rw-r--r--lang/gnat-aux/Makefile238
-rw-r--r--lang/gnat-aux/buildlink3.mk18
-rw-r--r--lang/gnat-aux/distinfo17
4 files changed, 286 insertions, 0 deletions
diff --git a/lang/gnat-aux/DESCR b/lang/gnat-aux/DESCR
new file mode 100644
index 00000000000..c2b05665991
--- /dev/null
+++ b/lang/gnat-aux/DESCR
@@ -0,0 +1,13 @@
+The GNAT AUX Ada compiler targeted at *BSD and *Solaris platforms
+
+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.
diff --git a/lang/gnat-aux/Makefile b/lang/gnat-aux/Makefile
new file mode 100644
index 00000000000..3558a5be80f
--- /dev/null
+++ b/lang/gnat-aux/Makefile
@@ -0,0 +1,238 @@
+# $NetBSD: Makefile,v 1.1.1.1 2011/02/01 20:32:56 drochner Exp $
+#
+
+DISTNAME= gnat-aux-${SNAPSHOT}
+CATEGORIES= lang
+MASTER_SITES= http://downloads.dragonlace.net/src/ \
+ http://dragonlace.mirrors.ada.cx/src/
+EXTRACT_SUFX= .tar.bz2
+
+MAINTAINER= draco@marino.st
+HOMEPAGE= http://www.dragonlace.net/
+COMMENT= GNAT Ada compiler based on GCC ${GCC_BRANCH}
+LICENSE= gnu-gpl-v3 AND gnu-lgpl-v3
+
+SNAPSHOT= 20110125
+GCC_BRANCH= 4.6
+GCC_POINT= 0
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+USE_TOOLS+= gmake sed flex bison gm4 perl makeinfo bzip2
+USE_BUILTIN.iconv= no
+BUILD_DEPENDS+= dejagnu>=1.4:../../devel/dejagnu
+BUILD_DEPENDS+= autoconf>=2.6:../../devel/autoconf
+
+.include "../../mk/bsd.prefs.mk"
+
+# Requires bootstrap compiler, which is only available for NetBSD i386/AMD64
+# and DragonFly i386/AMD64. Actually bootstrap compilers for OpenBSD and
+# FreeBSD also exist, but native packages will be available for those ports.
+
+ONLY_FOR_PLATFORM= DragonFly-*-* \
+ NetBSD-[5-9]*-i386 \
+ NetBSD-[5-9]*-x86_64
+
+BLD_TARGET= ${MACHINE_ARCH}-aux-${LOWER_OPSYS}${OS_VERSION}
+THREAD_MODEL= posix
+OS_LABEL4VERS= [pkgsrc]
+BOOTSTRAP_COMPILER= NOT_REQUIRED
+INTENDED_COMPILER= NATIVE
+BOOTSTRAP_TRIPLET= NOT SET
+FULL_GNATGCC= NOT SET
+FULL_PATH= /sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/sbin:${PREFIX}/bin
+
+
+.if ${OPSYS} == "DragonFly"
+.if ${MACHINE_ARCH} == "i386"
+ OS_LABEL4VERS= [DragonFly]
+ BOOTSTRAP_TRIPLET= i386-bootstrap-dragonfly2.8/4.6.0
+.endif
+.if ${MACHINE_ARCH} == "x86_64"
+ OS_LABEL4VERS= [DragonFly64]
+ BOOTSTRAP_TRIPLET= x86_64-bootstrap-dragonfly2.8/4.6.0
+.endif
+BOOTSTRAP_COMPILER= gnat-bootstrap.${MACHINE_ARCH}.dragonfly.tar.bz2
+.endif
+
+
+.if ${OPSYS} == "NetBSD"
+.if empty(OS_VERSION:M5.99.*)
+ NSUFF= ${OS_VERSION}
+.else
+ NSUFF= 6.0_DEV
+.endif
+.if ${MACHINE_ARCH} == "i386"
+ OS_LABEL4VERS= [NetBSD]
+ BOOTSTRAP_TRIPLET= i386-bootstrap-netbsdelf5.1/4.6.0
+ BLD_TARGET= ${MACHINE_ARCH}-aux-netbsdelf${NSUFF}
+.endif
+.if ${MACHINE_ARCH} == "x86_64"
+ OS_LABEL4VERS= [NetBSD64]
+ BOOTSTRAP_TRIPLET= x86_64-bootstrap-netbsd5.1/4.6.0
+ BLD_TARGET= ${MACHINE_ARCH}-aux-netbsd${NSUFF}
+.endif
+BOOTSTRAP_COMPILER= gnat-bootstrap.${MACHINE_ARCH}.netbsd.tar.bz2
+.endif
+
+
+
+# Let's build this without bash
+CONFIG_SHELL= ${TOOLS_PATH.sh}
+
+
+# define some important directories and files
+WRKSRC= ${WRKDIR}/build
+GCC_WRKSRC= ${WRKDIR}/gcc-${GCC_BRANCH}-${SNAPSHOT}
+PKG_PREFIX= ${PREFIX}
+CONFIGURE_SCRIPT= ${GCC_WRKSRC}/configure
+BOOTSTRAP_PREFIX= ${WRKDIR}/bootstrap
+MAN7= fsf-funding.7 gfdl.7 gpl.7
+SINFO= share/info
+SMAN1= share/man/man1
+SMAN7= share/man/man7
+LPATH= lib/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT}
+LEPATH= libexec/gcc/${BLD_TARGET}/${GCC_BRANCH}.${GCC_POINT}
+REVFILE= ${GCC_WRKSRC}/gcc/REVISION
+LELIST= cc1 collect2 gnat1 lto1
+
+
+
+# testing if gnatgcc, gnatlink, gnatbind and gnatmake are in standard location
+# exists function will NOT expand any variable, so it has to be hard-coded
+.if exists(/usr/pkg/bin/gnatgcc)
+.if exists(/usr/pkg/bin/gnatbind)
+.if exists(/usr/pkg/bin/gnatlink)
+.if exists(/usr/pkg/bin/gnatmake)
+FULL_GNATGCC=${PREFIX}/bin/gnatgcc
+.endif #gnatmake
+.endif #gnatlink
+.endif #gnatbind
+.endif #gnatgcc
+
+
+.if ${FULL_GNATGCC} == "NOT SET"
+# here we know we need to install the bootstrap compiler
+INTENDED_COMPILER=BOOTSTRAP
+FULL_GNATGCC=${BOOTSTRAP_PREFIX}/bin/gnatgcc
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${BOOTSTRAP_COMPILER}
+FULL_PATH=${BOOTSTRAP_PREFIX}/bin:/sbin:/bin:/usr/sbin:/usr/bin:${PREFIX}/sbin:${PREFIX}/bin
+.endif
+
+
+# For pkg maintenance, uncomment to invoke "bmake mdi"
+#DISTFILES=${DISTNAME}${EXTRACT_SUFX} \
+# gnat-bootstrap.i386.dragonfly.tar.bz2 \
+# gnat-bootstrap.x86_64.dragonfly.tar.bz2 \
+# gnat-bootstrap.i386.netbsd.tar.bz2 \
+# gnat-bootstrap.x86_64.netbsd.tar.bz2
+
+
+# establish ada-aware compiler for use
+MY_CONFIGURE_ENV= CC=${FULL_GNATGCC} PATH=${FULL_PATH} CONFIG_SHELL=${CONFIG_SHELL}
+MY_MAKE_ENV= PATH=${FULL_PATH}
+MY_MAKE_ENV+= LD_LIBRARY_PATH=${WRKSRC}/gcc
+
+
+# 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
+
+
+# The standard make options
+MAKE_ARGS= MAKEINFOFLAGS="--no-split"
+
+
+# Automatic package list generation
+# lib/libquadmath.* will have to be added if __float128 support is added
+# Alternatively, libquadmath support could be intentionally disabled.
+GENERATE_PLIST= cd ${PREFIX};
+GENERATE_PLIST+= ${FIND} bin/gnat* | ${SORT};
+GENERATE_PLIST+= ${FIND} bin/${BLD_TARGET}* | ${SORT};
+GENERATE_PLIST+= ${FIND} lib/libiberty.a;
+GENERATE_PLIST+= ${FIND} lib/libgcc_s.* \( -type f -or -type l \) | ${SORT};
+GENERATE_PLIST+= ${FIND} ${LPATH}/* \( -type f -or -type l \) | ${SORT} -dr;
+GENERATE_PLIST+= ${FIND} ${LEPATH}/* -type f | ${SORT} -dr;
+GENERATE_PLIST+= ${FIND} ${SINFO}/gnat* -type f | ${SORT};
+GENERATE_PLIST+= ${FIND} ${SMAN1}/gnat* -type f | ${SORT};
+.for k in ${MAN7}
+GENERATE_PLIST+= ${FIND} ${SMAN7}/${k};
+.endfor
+
+
+
+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.
+ # It is at least 28MB and doesn't come with shared libraries.
+
+.if (${OPSYS} == "NetBSD") && (empty(OS_VERSION:M[5].[0-8]*))
+ # Bootstrap compiler malfunctions in NetBSD 6 unless include-fixed
+ # directory is removed first.
+
+ ${RM} -rf ${BOOTSTRAP_PREFIX}/lib/gcc/${BOOTSTRAP_TRIPLET}/include-fixed
+.endif
+.endif
+
+
+
+do-configure:
+ #late switch of compiler to fool default depends checking
+ ${SETENV} CC=${FULL_GNATGCC}
+
+ #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} ${MY_CONFIGURE_ENV} ${CONFIG_SHELL} \
+ ${CONFIGURE_SCRIPT} ${CONFIGURE_ARGS}
+
+
+do-build:
+ cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} all ${MAKE_ARGS}
+
+
+do-test: build
+ cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} -sk check-ada
+
+
+do-install:
+ cd ${WRKSRC} && ${SETENV} ${MY_MAKE_ENV} ${GMAKE} install
+ ${STRIP} ${PREFIX}/bin/gnat*
+.for k in ${LELIST}
+ ${STRIP} ${PREFIX}/${LEPATH}/${k}
+.endfor
+
+
+
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../devel/gmp/buildlink3.mk"
+.include "../../math/mpfr/buildlink3.mk"
+.include "../../math/mpcomplex/buildlink3.mk"
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/lang/gnat-aux/buildlink3.mk b/lang/gnat-aux/buildlink3.mk
new file mode 100644
index 00000000000..9246d0db64b
--- /dev/null
+++ b/lang/gnat-aux/buildlink3.mk
@@ -0,0 +1,18 @@
+# $NetBSD: buildlink3.mk,v 1.1.1.1 2011/02/01 20:32:56 drochner Exp $
+
+BUILDLINK_TREE+= gnat-aux
+
+.if !defined(GNAT_AUX_BUILDLINK3_MK)
+GNAT_AUX_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.gnat-aux+= gnat-aux>=20101120
+BUILDLINK_PKGSRCDIR.gnat-aux?= ../../lang/gnat-aux
+
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../devel/gmp/buildlink3.mk"
+.include "../../math/mpfr/buildlink3.mk"
+.include "../../math/mpcomplex/buildlink3.mk"
+.include "../../converters/libiconv/buildlink3.mk"
+.endif # GNAT_AUX_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -gnat-aux
diff --git a/lang/gnat-aux/distinfo b/lang/gnat-aux/distinfo
new file mode 100644
index 00000000000..41ba3957125
--- /dev/null
+++ b/lang/gnat-aux/distinfo
@@ -0,0 +1,17 @@
+$NetBSD: distinfo,v 1.1.1.1 2011/02/01 20:32:56 drochner Exp $
+
+SHA1 (gnat-aux-20110125.tar.bz2) = 821726cd5c626013e74a330a17725d16b0c4edff
+RMD160 (gnat-aux-20110125.tar.bz2) = f243e89e714eaa2728fdd168810cae0b2696b3cd
+Size (gnat-aux-20110125.tar.bz2) = 23256093 bytes
+SHA1 (gnat-bootstrap.i386.dragonfly.tar.bz2) = d7a8103243a2df3723d9d3c3ec0da9c3bb725214
+RMD160 (gnat-bootstrap.i386.dragonfly.tar.bz2) = 9e6fde444e0ed76ee404810af6d6b7eb48659c09
+Size (gnat-bootstrap.i386.dragonfly.tar.bz2) = 28205489 bytes
+SHA1 (gnat-bootstrap.i386.netbsd.tar.bz2) = 19b61f54fae8e237a4e678ff03f20f50b47db1df
+RMD160 (gnat-bootstrap.i386.netbsd.tar.bz2) = ade03f223b2af229daece20a749915f7da0eb0a6
+Size (gnat-bootstrap.i386.netbsd.tar.bz2) = 27654956 bytes
+SHA1 (gnat-bootstrap.x86_64.dragonfly.tar.bz2) = 77a637a497c61e4085de31b24a205f24b1776a15
+RMD160 (gnat-bootstrap.x86_64.dragonfly.tar.bz2) = 4d0eb7b8a5f901333f1ffd190a5bf72072b2b52e
+Size (gnat-bootstrap.x86_64.dragonfly.tar.bz2) = 31380342 bytes
+SHA1 (gnat-bootstrap.x86_64.netbsd.tar.bz2) = 84f0e9179998daa643046a5d139321c4130ea84d
+RMD160 (gnat-bootstrap.x86_64.netbsd.tar.bz2) = 0b2943349536c323a62b56dc05ff1fedd6d7e17a
+Size (gnat-bootstrap.x86_64.netbsd.tar.bz2) = 30572187 bytes