diff options
-rw-r--r-- | lang/Makefile | 1 | ||||
-rw-r--r-- | lang/gnat_util/Makefile | 46 | ||||
-rw-r--r-- | lang/gnat_util/Makefile.sources | 162 | ||||
-rw-r--r-- | lang/gnat_util/files/Makefile | 69 | ||||
-rw-r--r-- | lang/gnat_util/files/gnat_util.gpr | 7 | ||||
-rw-r--r-- | lang/gnat_util/files/patch-gnatvsn.adb | 36 | ||||
-rw-r--r-- | lang/gnat_util/files/sdefault_adb.gnat_util | 59 | ||||
-rw-r--r-- | lang/gnat_util/pkg-descr | 9 |
8 files changed, 389 insertions, 0 deletions
diff --git a/lang/Makefile b/lang/Makefile index f335e97dd971..9a0074dde6c4 100644 --- a/lang/Makefile +++ b/lang/Makefile @@ -101,6 +101,7 @@ SUBDIR += gjs SUBDIR += gnat SUBDIR += gnat-aux + SUBDIR += gnat_util SUBDIR += gnatdroid-armv5 SUBDIR += gnatdroid-armv7 SUBDIR += gnatdroid-binutils diff --git a/lang/gnat_util/Makefile b/lang/gnat_util/Makefile new file mode 100644 index 000000000000..25d0b7b64a5e --- /dev/null +++ b/lang/gnat_util/Makefile @@ -0,0 +1,46 @@ +# Created by: John Marino <marino@FreeBSD.org> +# $FreeBSD$ + +PORTNAME= gnat_util +PORTVERSION= ${SNAPSHOT} +CATEGORIES= lang +MASTER_SITES= ${MASTER_SITE_GCC} +MASTER_SITE_SUBDIR= releases/gcc-${GCC_VERSION} +DISTNAME= gcc-${GCC_VERSION} + +MAINTAINER= marino@FreeBSD.org +COMMENT= Library used to build GNAT tools such as ASIS + +USES= ada +USE_BZIP2= yes +DISTINFO_FILE= ${.CURDIR}/../gcc-aux/distinfo +WRKSRC= ${WRKDIR}/${PORTNAME} +DESTINY= ${WRKDIR}/destino +MAKE_ENV= DESTDIR=${DESTINY} \ + MAKEOBJDIR=${WRKSRC}/obj + +.include "${.CURDIR}/Makefile.sources" +.include "${.CURDIR}/../gcc-aux/Makefile.version" +.include <bsd.port.pre.mk> + +post-extract: + @${MKDIR} ${WRKSRC}/obj +.for F in Makefile gnat_util.gpr sdefault_adb.gnat_util + @${CP} ${FILESDIR}/${F} ${WRKSRC}/ +.endfor +.for F in ${GNAT_SRCS} + @${CP} ${WRKDIR}/${DISTNAME}/gcc/ada/${F} ${WRKSRC}/ +.endfor + +post-install: + ${CP} -pR ${DESTINY}${PREFIX}/ ${PREFIX}/ + @cd ${DESTINY}${PREFIX}; ${FIND} * \( -type f -or -type l \) | \ + ${SORT} > ${WRKDIR}/PLIST.all + @cd ${DESTINY}${PREFIX}; ${FIND} * -type d | ${AWK} '/\//' | \ + ${SORT} -r | ${SED} -e '/lib\/gnat$$/d' -e 's/^/@dirrm /g' \ + >> ${WRKDIR}/PLIST.all + @echo "@unexec rmdir %D/lib/gnat 2>/dev/null || true" >> ${WRKDIR}/PLIST.all + @${CAT} ${WRKDIR}/PLIST.all >> ${TMPPLIST} + +.include <bsd.port.post.mk> + diff --git a/lang/gnat_util/Makefile.sources b/lang/gnat_util/Makefile.sources new file mode 100644 index 000000000000..d64b2ba77b17 --- /dev/null +++ b/lang/gnat_util/Makefile.sources @@ -0,0 +1,162 @@ +# $FreeBSD$ + +GNAT_SRCS= \ + ali-util.adb \ + ali-util.ads \ + ali.adb \ + ali.ads \ + alloc.ads \ + aspects.adb \ + aspects.ads \ + atree.adb \ + atree.ads \ + binderr.adb \ + binderr.ads \ + butil.adb \ + butil.ads \ + casing.adb \ + casing.ads \ + csets.adb \ + csets.ads \ + debug.adb \ + debug.ads \ + einfo.adb \ + einfo.ads \ + elists.adb \ + elists.ads \ + err_vars.ads \ + errout.adb \ + errout.ads \ + erroutc.adb \ + erroutc.ads \ + errutil.adb \ + errutil.ads \ + fmap.adb \ + fmap.ads \ + fname-uf.adb \ + fname-uf.ads \ + fname.adb \ + fname.ads \ + gnatvsn.adb \ + gnatvsn.ads \ + hostparm.ads \ + krunch.adb \ + krunch.ads \ + lib-list.adb \ + lib-sort.adb \ + lib.adb \ + lib.ads \ + link.c \ + makeutl.adb \ + makeutl.ads \ + mlib-fil.adb \ + mlib-fil.ads \ + mlib-tgt-specific.adb \ + mlib-tgt-specific.ads \ + mlib-tgt-vms_common.adb \ + mlib-tgt-vms_common.ads \ + mlib-tgt.adb \ + mlib-tgt.ads \ + mlib-utl.adb \ + mlib-utl.ads \ + mlib.adb \ + mlib.ads \ + namet.adb \ + namet.ads \ + nlists.adb \ + nlists.ads \ + opt.adb \ + opt.ads \ + osint.adb \ + osint.ads \ + output.adb \ + output.ads \ + prj-attr-pm.adb \ + prj-attr-pm.ads \ + prj-attr.adb \ + prj-attr.ads \ + prj-com.ads \ + prj-conf.adb \ + prj-conf.ads \ + prj-dect.adb \ + prj-dect.ads \ + prj-env.adb \ + prj-env.ads \ + prj-err.adb \ + prj-err.ads \ + prj-ext.adb \ + prj-ext.ads \ + prj-nmsc.adb \ + prj-nmsc.ads \ + prj-part.adb \ + prj-part.ads \ + prj-pp.adb \ + prj-pp.ads \ + prj-proc.adb \ + prj-proc.ads \ + prj-strt.adb \ + prj-strt.ads \ + prj-tree.adb \ + prj-tree.ads \ + prj-util.adb \ + prj-util.ads \ + prj.adb \ + prj.ads \ + repinfo.adb \ + repinfo.ads \ + restrict.adb \ + restrict.ads \ + rident.ads \ + scans.adb \ + scans.ads \ + scng.adb \ + scng.ads \ + sdefault.ads \ + sem_aux.adb \ + sem_aux.ads \ + sinfo.adb \ + sinfo.ads \ + sinput-c.adb \ + sinput-c.ads \ + sinput-p.adb \ + sinput-p.ads \ + sinput.adb \ + sinput.ads \ + snames.adb-tmpl \ + snames.ads-tmpl \ + snames.h-tmpl \ + stand.adb \ + stand.ads \ + stringt.adb \ + stringt.ads \ + styleg.adb \ + styleg.ads \ + stylesw.adb \ + stylesw.ads \ + switch-m.adb \ + switch-m.ads \ + switch.adb \ + switch.ads \ + table.adb \ + table.ads \ + targparm.adb \ + targparm.ads \ + tempdir.adb \ + tempdir.ads \ + tree_in.adb \ + tree_in.ads \ + tree_io.adb \ + tree_io.ads \ + types.adb \ + types.ads \ + uintp.adb \ + uintp.ads \ + uname.adb \ + uname.ads \ + urealp.adb \ + urealp.ads \ + widechar.adb \ + widechar.ads \ + xsnamest.adb \ + xutil.adb \ + xutil.ads diff --git a/lang/gnat_util/files/Makefile b/lang/gnat_util/files/Makefile new file mode 100644 index 000000000000..9112b7235a26 --- /dev/null +++ b/lang/gnat_util/files/Makefile @@ -0,0 +1,69 @@ +# To avoid a cirular dependency with GPRBuild, this custom BSD Makefile is +# used instead of the provided asis.gpr file. +# $FreeBSD$ + +CP=cp -p +MKDIR=mkdir -p +SRC=gen_src +ADA_FLAGS= -O2 -gnatn -gnatws -gnat05 +C_FLAGS= -O2 +ADB_SRCS!= cd ${.CURDIR} && ls *.adb | sort -r +GEN_SRCS= sdefault.adb snames.adb xsnamest.adb +ADS_SRCS= rident.ads hostparm.ads err_vars.ads alloc.ads prj-com.ads +LIB_SRCS+= link.c ${GEN_SRCS} ${ADS_SRCS} ${ADB_SRCS:Nlib-*.adb} +LIB_OBJS= ${LIB_SRCS:R:S/$/.o/} + +.PHONY: all +.PHONY: generate_sources +.PHONY: libgnat_util.a +.PHONY: install +.PHONY: clean + +all: libgnat_util.a + +generate_sources: + (cd ${.CURDIR} && ${MKDIR} ${SRC} lib) + ${CP} ${.CURDIR}/sdefault_adb.gnat_util ${.CURDIR}/${SRC}/sdefault.adb + (cd ${.CURDIR} && ${CP} \ + xsnamest.adb xutil.* snames.adb-tmpl snames.ads-tmpl \ + snames.h-tmpl ${SRC}) + (cd ${.CURDIR}/${SRC} && \ + gnatmake -gnatf -gnatwae -gnatyg -gnatyS xsnamest && \ + ./xsnamest && mv snames.ns snames.ads && mv snames.nb snames.adb) + +${LIB_OBJS}: generate_sources + +install: + ${MKDIR} ${DESTDIR}${PREFIX}/lib/gnat + ${MKDIR} ${DESTDIR}${PREFIX}/lib/gnat_util + ${MKDIR} ${DESTDIR}${PREFIX}/include/gnat_util + + ${BSD_INSTALL_DATA} ../gnat_util.gpr ${DESTDIR}${PREFIX}/lib/gnat + find ../lib -type f -exec $(BSD_INSTALL_DATA) {} \ + ${DESTDIR}${PREFIX}/lib/gnat_util \; + find ../* -name \*\.ad\[bs\] -exec $(BSD_INSTALL_DATA) {} \ + ${DESTDIR}${PREFIX}/include/gnat_util \; + +clean: + rm -f ${.OBJDIR}/* + rm -f ${.CURDIR}/lib/* + rm -rf ${.CURDIR}/${SRC} + +.SUFFIXES: .adb .ads .c .o + +.adb.o: + ada ${ADA_FLAGS} -I../ -I../${SRC} -c ../${.TARGET:R}.adb + +.c.o: + ${CC} ${C_FLAGS} -c ../${.TARGET:R}.c + +${ADS_SRCS:R:S/$/.o/}: + ada ${ADA_FLAGS} -I../${SRC} -c ../${.TARGET:R}.ads + +${GEN_SRCS:R:S/$/.o/}: + ada ${ADA_FLAGS} -I../ -c ../${SRC}/${.TARGET:R}.adb + +libgnat_util.a: ${LIB_OBJS} + ar cq ${.TARGET} `lorder ${LIB_OBJS} | tsort -q` + ranlib ${.TARGET} + mv ${.TARGET} *.ali ../lib diff --git a/lang/gnat_util/files/gnat_util.gpr b/lang/gnat_util/files/gnat_util.gpr new file mode 100644 index 000000000000..bb3ee72b30ae --- /dev/null +++ b/lang/gnat_util/files/gnat_util.gpr @@ -0,0 +1,7 @@ +project Gnat_Util is + for Languages use ("ada", "C"); + for Library_Name use "gnat_util"; + for Library_Dir use "../gnat_util"; + for Source_Dirs use ("../../include/gnat_util"); + for Externally_Built use "true"; +end Gnat_Util; diff --git a/lang/gnat_util/files/patch-gnatvsn.adb b/lang/gnat_util/files/patch-gnatvsn.adb new file mode 100644 index 000000000000..317c6d87c5c3 --- /dev/null +++ b/lang/gnat_util/files/patch-gnatvsn.adb @@ -0,0 +1,36 @@ +--- gnatvsn.adb.orig 2013-07-16 03:35:21.000000000 +0000 ++++ gnatvsn.adb +@@ -53,32 +53,13 @@ package body Gnatvsn is + " FOR A PARTICULAR PURPOSE."; + end Gnat_Free_Software; + +- type char_array is array (Natural range <>) of aliased Character; +- Version_String : char_array (0 .. Ver_Len_Max - 1); +- -- Import the C string defined in the (language-independent) source file +- -- version.c using the zero-based convention of the C language. +- -- The size is not the real one, which does not matter since we will +- -- check for the nul character in Gnat_Version_String. +- pragma Import (C, Version_String, "version_string"); +- + ------------------------- + -- Gnat_Version_String -- + ------------------------- + + function Gnat_Version_String return String is +- S : String (1 .. Ver_Len_Max); +- Pos : Natural := 0; + begin +- loop +- exit when Version_String (Pos) = ASCII.NUL; +- +- S (Pos + 1) := Version_String (Pos); +- Pos := Pos + 1; +- +- exit when Pos = Ver_Len_Max; +- end loop; +- +- return S (1 .. Pos); ++ Return Gnat_Static_Version_String; + end Gnat_Version_String; + + end Gnatvsn; diff --git a/lang/gnat_util/files/sdefault_adb.gnat_util b/lang/gnat_util/files/sdefault_adb.gnat_util new file mode 100644 index 000000000000..e05606903be6 --- /dev/null +++ b/lang/gnat_util/files/sdefault_adb.gnat_util @@ -0,0 +1,59 @@ +------------------------------------------------------------------------------ +-- -- +-- GNAT COMPILER COMPONENTS -- +-- -- +-- S D E F A U L T -- +-- -- +-- B o d y -- +-- -- +-- Copyright (C) 1992-2007, Free Software Foundation, Inc. -- +-- -- +-- GNAT is free software; you can redistribute it and/or modify it under -- +-- terms of the GNU General Public License as published by the Free Soft- -- +-- ware Foundation; either version 3, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. -- +-- -- +-- As a special exception under Section 7 of GPL version 3, you are granted -- +-- additional permissions described in the GCC Runtime Library Exception, -- +-- version 3.1, as published by the Free Software Foundation. -- +-- -- +-- You should have received a copy of the GNU General Public License and -- +-- a copy of the GCC Runtime Library Exception along with this program; -- +-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -- +-- <http://www.gnu.org/licenses/>. -- +-- -- +-- GNAT was originally developed by the GNAT team at New York University. -- +-- Extensive contributions were provided by Ada Core Technologies Inc. -- +-- -- +------------------------------------------------------------------------------ + +-- This is a dummy version of the body of Sdefault, used by gnat_util. It gets +-- copied to sdefault.adb by Makefile.gnat_util. + +package body Sdefault is + + Target : constant String_Ptr := new String'("no target"); + + function Include_Dir_Default_Name return String_Ptr is + begin + return null; + end Include_Dir_Default_Name; + + function Object_Dir_Default_Name return String_Ptr is + begin + return null; + end Object_Dir_Default_Name; + + function Target_Name return String_Ptr is + begin + return Target; + end Target_Name; + + function Search_Dir_Prefix return String_Ptr is + begin + return null; + end Search_Dir_Prefix; + +end Sdefault; diff --git a/lang/gnat_util/pkg-descr b/lang/gnat_util/pkg-descr new file mode 100644 index 000000000000..354509160b12 --- /dev/null +++ b/lang/gnat_util/pkg-descr @@ -0,0 +1,9 @@ +Gnat_Util is a library uniting a number of GNAT sources that are used by +different tools. At the moment Gnat_Util provides GNAT sources needed by ASIS, +GNATCOLL and Gprbuild. Its main purpose is allowing to simultaneously use +tools like ASIS and GNATCOLL (and other ones based on GNAT sources, if they +are to come), which would normally cause name conflicts between the same GNAT +sources that they use. Building both of them using same set of sources that +is Gnat_Util solves this problem. + +WWW: http://libre.adacore.com |