Skip to content
Snippets Groups Projects
Commit 177a057e authored by Thierry Thomas's avatar Thierry Thomas
Browse files

textproc/xmlada: resurrect

parent 263989de
Branches
Tags
No related merge requests found
......@@ -2032,6 +2032,7 @@
SUBDIR += xml-format
SUBDIR += xml-lite.el
SUBDIR += xml2rfc
SUBDIR += xmlada
SUBDIR += xmlcatmgr
SUBDIR += xmlcharent
SUBDIR += xmlenc
......
# Created by: John Marino <marino@FreeBSD.org>
PORTNAME= xmlada
PORTVERSION= 17.0.0
PORTREVISION= 2
CATEGORIES= textproc
MAINTAINER= ports@FreeBSD.org
COMMENT= Adacore XML suite for the Ada language
LICENSE= GPLv3
USES= ada:run
USE_GITHUB= yes
GH_ACCOUNT= AdaCore
GH_PROJECT= xmlada
GH_TAGNAME= e5bbafe
MAKE_ARGS+= PROCESSORS=${MAKE_JOBS_NUMBER} \
LIBVER=${PORTVERSION}
ALL_TARGET= schema/lib/static/libxmlada_schema.a \
schema/lib/relocatable/libxmlada_schema.so
PLIST_SUB+= LIBVER=${PORTVERSION}
MAKEFILE= Makefile.bsd
PORTDOCS= *
DUNICODE= ${WRKSRC}/unicode/dummy_unicode.adb
DINPSRC= ${WRKSRC}/input_sources/dummy_input_sources.adb
DSAX= ${WRKSRC}/sax/dummy_sax.adb
DDOM= ${WRKSRC}/dom/dummy_dom.adb
DSCHEMA= ${WRKSRC}/schema/dummy_schema.adb
OPTIONS_DEFINE= DOCS
DOCS_BUILD_DEPENDS= sphinx-build:textproc/py-sphinx
DOCS_ALL_TARGET= gen-docs
FIND1= cd ${WRKSRC}/unicode && ${FIND} -s * \( -name "unicode*.ad[bs]" \
-a ! -name "unicode.ads" \) -exec ${PRINTF} ', "%s"' {} \;
FIND2= cd ${WRKSRC}/input_sources && ${FIND} -s * \( -name "input*.ad[bs]" \
-a ! -name "input_sources.ads" \) -exec ${PRINTF} ', "%s"' {} \;
FIND3= cd ${WRKSRC}/sax && \
${FIND} -s * -name "sax-*.ad[bs]" -exec ${PRINTF} ', "%s"' {} \;
FIND4= cd ${WRKSRC}/dom && \
${FIND} -s * -name "dom-*.ad[bs]" -exec ${PRINTF} ', "%s"' {} \;
FIND5= cd ${WRKSRC}/schema && ${FIND} -s * \( -name "schema*.ad[bs]" \
-a ! -name "schema.ads" \) -depth 0 -maxdepth 0 \
-exec ${PRINTF} ', "%s"' {} \;
post-patch: dummy-unicode dummy-input_sources dummy-sax dummy-dom dummy-schema
@${CP} ${FILESDIR}/Makefile.bsd ${WRKSRC}
@${MKDIR} ${WRKSRC}/sax/obj/relocatable
@${MKDIR} ${WRKSRC}/sax/obj/static
@${MKDIR} ${WRKSRC}/sax/lib/relocatable
@${MKDIR} ${WRKSRC}/sax/lib/static
@${MKDIR} ${WRKSRC}/schema/obj/relocatable
@${MKDIR} ${WRKSRC}/schema/obj/static
@${SED} -e '/^with/d' -e 's|@ZONE@|unicode|' \
-e "s|@FILES@|`${FIND1}`|" \
-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
> ${WRKSRC}/distrib/xmlada_unicode.gpr
@${SED} -e 's|@DEPENDS@|unicode|' -e 's|@ZONE@|input_sources|' \
-e "s|@FILES@|`${FIND2}`|" \
-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
> ${WRKSRC}/distrib/xmlada_input_sources.gpr
@${SED} -e 's|@DEPENDS@|input_sources|' -e 's|@ZONE@|sax|' \
-e "s|@FILES@|`${FIND3}`|" \
-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
> ${WRKSRC}/distrib/xmlada_sax.gpr
@${SED} -e 's|@DEPENDS@|sax|' -e 's|@ZONE@|dom|' \
-e "s|@FILES@|`${FIND4}`|" \
-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
> ${WRKSRC}/distrib/xmlada_dom.gpr
@${SED} -e 's|@DEPENDS@|dom|' -e 's|@ZONE@|schema|' \
-e "s|@FILES@|`${FIND5}`|" \
-e 's|@VERSION@|${PORTVERSION}|' ${FILESDIR}/generic_gpr.in \
> ${WRKSRC}/distrib/xmlada_schema.gpr
# Since we want to pull in all 5 libs, we only need to specify schema
${REINPLACE_CMD} -e '/unicode/d' ${WRKSRC}/distrib/xmlada.gpr
do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/include/xmlada \
${STAGEDIR}${PREFIX}/lib/gnat \
${STAGEDIR}${PREFIX}/lib/xmlada/relocatable \
${STAGEDIR}${PREFIX}/lib/xmlada/static \
${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${WRKSRC}/dom/*.ad[bs] \
${WRKSRC}/input_sources/*.ad[bs] \
${WRKSRC}/sax/*.ad[bs] \
${WRKSRC}/schema/*.ad[bs] \
${WRKSRC}/unicode/*.ad[bs] \
${STAGEDIR}${PREFIX}/include/xmlada
${RM} ${STAGEDIR}${PREFIX}/include/xmlada/dummy_*.adb
${INSTALL_DATA} ${WRKSRC}/dom/obj/relocatable/*.ali \
${WRKSRC}/input_sources/obj/relocatable/*.ali \
${WRKSRC}/sax/obj/relocatable/*.ali \
${WRKSRC}/schema/obj/relocatable/*.ali \
${WRKSRC}/unicode/obj/relocatable/*.ali \
${WRKSRC}/dom/lib/relocatable/* \
${WRKSRC}/input_sources/lib/relocatable/* \
${WRKSRC}/sax/lib/relocatable/* \
${WRKSRC}/schema/lib/relocatable/* \
${WRKSRC}/unicode/lib/relocatable/* \
${STAGEDIR}${PREFIX}/lib/xmlada/relocatable
${INSTALL_DATA} ${WRKSRC}/dom/obj/static/*.ali \
${WRKSRC}/input_sources/obj/static/*.ali \
${WRKSRC}/sax/obj/static/*.ali \
${WRKSRC}/schema/obj/static/*.ali \
${WRKSRC}/unicode/obj/static/*.ali \
${WRKSRC}/dom/lib/static/* \
${WRKSRC}/input_sources/lib/static/* \
${WRKSRC}/sax/lib/static/* \
${WRKSRC}/schema/lib/static/* \
${WRKSRC}/unicode/lib/static/* \
${STAGEDIR}${PREFIX}/lib/xmlada/static
${INSTALL_DATA} ${WRKSRC}/distrib/xml*.gpr \
${STAGEDIR}${PREFIX}/lib/gnat
do-install-DOCS-on:
(cd ${WRKSRC}/docs/_build/html && \
${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
${RM} -r ${STAGEDIR}${DOCSDIR}/_sources \
${STAGEDIR}${DOCSDIR}/.buildinfo
dummy-unicode:
@${GREP} ^package ${WRKSRC}/unicode/unicode-*.ads | \
${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DUNICODE}
@${ECHO} 'procedure dummy_unicode is' >> ${DUNICODE}
@${ECHO} 'begin' >> ${DUNICODE}
@${ECHO} ' null;' >> ${DUNICODE}
@${ECHO} 'end dummy_unicode;' >> ${DUNICODE}
dummy-input_sources:
@${GREP} ^package ${WRKSRC}/input_sources/input_sources-*.ads | \
${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DINPSRC}
@${ECHO} 'procedure dummy_input_sources is' >> ${DINPSRC}
@${ECHO} 'begin' >> ${DINPSRC}
@${ECHO} ' null;' >> ${DINPSRC}
@${ECHO} 'end dummy_input_sources;' >> ${DINPSRC}
dummy-sax:
@${GREP} ^package ${WRKSRC}/sax/sax-*.ads | \
${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DSAX}
@${ECHO} 'procedure dummy_sax is' >> ${DSAX}
@${ECHO} 'begin' >> ${DSAX}
@${ECHO} ' null;' >> ${DSAX}
@${ECHO} 'end dummy_sax;' >> ${DSAX}
dummy-dom:
@${GREP} ^package ${WRKSRC}/dom/dom-*.ads | \
${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DDOM}
@${ECHO} 'procedure dummy_dom is' >> ${DDOM}
@${ECHO} 'begin' >> ${DDOM}
@${ECHO} ' null;' >> ${DDOM}
@${ECHO} 'end dummy_dom;' >> ${DDOM}
dummy-schema:
@${GREP} ^package ${WRKSRC}/schema/schema-*.ads | \
${AWK} '{print "with " $$2 ";"}' | ${SORT} > ${DSCHEMA}
@${ECHO} 'procedure dummy_schema is' >> ${DSCHEMA}
@${ECHO} 'begin' >> ${DSCHEMA}
@${ECHO} ' null;' >> ${DSCHEMA}
@${ECHO} 'end dummy_schema;' >> ${DSCHEMA}
.include <bsd.port.mk>
TIMESTAMP = 1587725012
SHA256 (AdaCore-xmlada-17.0.0-e5bbafe_GH0.tar.gz) = 8183dfa557aa5d6d16c77d01a134f821e20aa2dce05cb49f046426d5ddd08a20
SIZE (AdaCore-xmlada-17.0.0-e5bbafe_GH0.tar.gz) = 1022668
ADALIB!= gnatls -v | grep adalib | awk '{print $$1}'
STATIC_FLAGS= -gnatQ -O2 -gnatn -gnatp -gnatA -j${PROCESSORS}
DYNAMIC_FLAGS= -fPIC ${STATIC_FLAGS}
#
# unicode depends on nothing
#
unicode/lib/static/libxmlada_unicode.a: unicode/dummy_unicode.adb
@echo building static ${.TARGET:R} library
@rm -f ${.TARGET}
gnatmake -c ${.ALLSRC} -D unicode/obj/static ${STATIC_FLAGS}
rm unicode/obj/static/dummy*
ar cq ${.TARGET} unicode/obj/static/*.o
ranlib ${.TARGET}
unicode/lib/relocatable/libxmlada_unicode.so: unicode/dummy_unicode.adb
@${ECHO} building shared library ${.TARGET:R}
@rm -f ${.TARGET} ${.TARGET}.${LIBVER}
gnatmake -c ${.ALLSRC} -D unicode/obj/relocatable ${DYNAMIC_FLAGS}
rm unicode/obj/relocatable/dummy*
ada -shared -Wl,-rpath,${PREFIX}/lib/xmlada/relocatable \
-L${ADALIB} -lgnat -Wl,-rpath,${ADALIB} \
-o ${.TARGET}.${LIBVER} -Wl,-soname,${.TARGET:T}.${LIBVER} \
unicode/obj/relocatable/*.o
ln -s ${.TARGET:T}.${LIBVER} ${.TARGET}
#
# input sources depends on unicode
#
input_sources/lib/static/libxmlada_input_sources.a: input_sources/dummy_input_sources.adb unicode/lib/static/libxmlada_unicode.a
@echo building static ${.TARGET:R} library
@rm -f ${.TARGET}
gnatmake -c ${.ALLSRC:M*.adb} -D input_sources/obj/static -aOunicode/obj/static -aIunicode ${STATIC_FLAGS}
rm input_sources/obj/static/dummy*
ar cq ${.TARGET} input_sources/obj/static/*.o
ranlib ${.TARGET}
input_sources/lib/relocatable/libxmlada_input_sources.so: input_sources/dummy_input_sources.adb unicode/lib/relocatable/libxmlada_unicode.so
@${ECHO} building shared library ${.TARGET:R}
@rm -f ${.TARGET} ${.TARGET}.${LIBVER}
gnatmake -c ${.ALLSRC:M*.adb} -D input_sources/obj/relocatable -aOunicode/obj/relocatable -aIunicode ${DYNAMIC_FLAGS}
rm input_sources/obj/relocatable/dummy*
ada -shared -Wl,-rpath,${PREFIX}/lib/xmlada/relocatable \
-L${ADALIB} -lgnat -Wl,-rpath,${ADALIB} \
-Lunicode/lib/relocatable -lxmlada_unicode \
-o ${.TARGET}.${LIBVER} -Wl,-soname,${.TARGET:T}.${LIBVER} \
input_sources/obj/relocatable/*.o
ln -s ${.TARGET:T}.${LIBVER} ${.TARGET}
#
# sax depends on input sources and unicode (sufficent to limit to I.S)
#
sax/lib/static/libxmlada_sax.a: sax/dummy_sax.adb input_sources/lib/static/libxmlada_input_sources.a
@echo building static ${.TARGET:R} library
@rm -f ${.TARGET}
gnatmake -c ${.ALLSRC:M*.adb} -D sax/obj/static -aOunicode/obj/static -aOinput_sources/obj/static -aIunicode -aIinput_sources ${STATIC_FLAGS}
rm sax/obj/static/dummy*
ar cq ${.TARGET} sax/obj/static/*.o
ranlib ${.TARGET}
sax/lib/relocatable/libxmlada_sax.so: sax/dummy_sax.adb input_sources/lib/relocatable/libxmlada_input_sources.so
@${ECHO} building shared library ${.TARGET:R}
@rm -f ${.TARGET} ${.TARGET}.${LIBVER}
gnatmake -c ${.ALLSRC:M*.adb} -D sax/obj/relocatable -aOunicode/obj/relocatable -aOinput_sources/obj/relocatable -aIunicode -aIinput_sources ${DYNAMIC_FLAGS}
rm sax/obj/relocatable/dummy*
ada -shared -Wl,-rpath,${PREFIX}/lib/xmlada/relocatable \
-L${ADALIB} -lgnat -Wl,-rpath,${ADALIB} \
-Lunicode/lib/relocatable -lxmlada_unicode \
-Linput_sources/lib/relocatable -lxmlada_input_sources \
-o ${.TARGET}.${LIBVER} -Wl,-soname,${.TARGET:T}.${LIBVER} \
sax/obj/relocatable/*.o
ln -s ${.TARGET:T}.${LIBVER} ${.TARGET}
#
# dom depends on three other libraries (sufficent to limit to sax)
#
dom/lib/static/libxmlada_dom.a: dom/dummy_dom.adb sax/lib/static/libxmlada_sax.a
@echo building static ${.TARGET:R} library
@rm -f ${.TARGET}
gnatmake -c ${.ALLSRC:M*.adb} -D dom/obj/static -aOunicode/obj/static -aOinput_sources/obj/static -aOsax/obj/static -aIunicode -aIinput_sources -aIsax ${STATIC_FLAGS}
rm dom/obj/static/dummy*
ar cq ${.TARGET} dom/obj/static/*.o
ranlib ${.TARGET}
dom/lib/relocatable/libxmlada_dom.so: dom/dummy_dom.adb sax/lib/relocatable/libxmlada_sax.so
@${ECHO} building shared library ${.TARGET:R}
@rm -f ${.TARGET} ${.TARGET}.${LIBVER}
gnatmake -c ${.ALLSRC:M*.adb} -D dom/obj/relocatable -aOunicode/obj/relocatable -aOinput_sources/obj/relocatable -aOsax/obj/relocatable -aIunicode -aIinput_sources -aIsax ${DYNAMIC_FLAGS}
rm dom/obj/relocatable/dummy*
ada -shared -Wl,-rpath,${PREFIX}/lib/xmlada/relocatable \
-L${ADALIB} -lgnat -Wl,-rpath,${ADALIB} \
-Lunicode/lib/relocatable -lxmlada_unicode \
-Linput_sources/lib/relocatable -lxmlada_input_sources \
-Lsax/lib/relocatable -lxmlada_sax \
-o ${.TARGET}.${LIBVER} -Wl,-soname,${.TARGET:T}.${LIBVER} \
dom/obj/relocatable/*.o
ln -s ${.TARGET:T}.${LIBVER} ${.TARGET}
#
# schema depends on four other libraries (sufficent to limit to dom)
#
schema/lib/static/libxmlada_schema.a: schema/dummy_schema.adb dom/lib/static/libxmlada_dom.a
@echo building static ${.TARGET:R} library
@rm -f ${.TARGET}
gnatmake -c ${.ALLSRC:M*.adb} -D schema/obj/static -aOunicode/obj/static -aOinput_sources/obj/static -aOsax/obj/static -aOdom/obj/static -aIunicode -aIinput_sources -aIsax -aIdom ${STATIC_FLAGS}
rm schema/obj/static/dummy*
ar cq ${.TARGET} schema/obj/static/*.o
ranlib ${.TARGET}
schema/lib/relocatable/libxmlada_schema.so: schema/dummy_schema.adb dom/lib/relocatable/libxmlada_dom.so
@${ECHO} building shared library ${.TARGET:R}
@rm -f ${.TARGET} ${.TARGET}.${LIBVER}
gnatmake -c ${.ALLSRC:M*.adb} -D schema/obj/relocatable -aOunicode/obj/relocatable -aOinput_sources/obj/relocatable -aOsax/obj/relocatable -aOdom/obj/relocatable -aIunicode -aIinput_sources -aIsax -aIdom ${DYNAMIC_FLAGS}
rm schema/obj/relocatable/dummy*
ada -shared -Wl,-rpath,${PREFIX}/lib/xmlada/relocatable \
-L${ADALIB} -lgnat -Wl,-rpath,${ADALIB} \
-Lunicode/lib/relocatable -lxmlada_unicode \
-Linput_sources/lib/relocatable -lxmlada_input_sources \
-Lsax/lib/relocatable -lxmlada_sax \
-Ldom/lib/relocatable -lxmlada_dom \
-o ${.TARGET}.${LIBVER} -Wl,-soname,${.TARGET:T}.${LIBVER} \
schema/obj/relocatable/*.o
ln -s ${.TARGET:T}.${LIBVER} ${.TARGET}
#
# Sphinx documentation
#
gen-docs:
${MAKE} -e -C docs html
with "xmlada_@DEPENDS@";
project XmlAda_@ZONE@ is
for Library_Name use "xmlada_@ZONE@";
Version := "@VERSION@";
So_Ext := ".so";
type Xmlada_Kind_Type is ("static", "relocatable");
Xmlada_Kind : Xmlada_Kind_Type := external ("LIBRARY_TYPE", "static");
Libdir := "../../lib/xmlada/" & Xmlada_Kind;
for Library_Kind use Xmlada_Kind;
for Library_Dir use Libdir;
for Library_Version use
"lib" & Project'Library_Name & So_Ext & "." & Version;
for Source_Dirs use ("../../include/xmlada");
for Source_Files use ("@ZONE@.ads"@FILES@);
for Externally_Built use "true";
end XmlAda_@ZONE@;
XML/Ada is a full XML suite for use with Ada compilers, such as GNAT AUX.
XML/Ada is a set of modules that provide a simple manipulation of XML
streams. It supports the whole XML 1.1 specification and can parse any file
that follows this standard, including the contents of the DTD although no
validation of the documents is performed based on those.
It provides support for a number of standards associated with XML such as
SAX, DOM, and XML schemas. Additionally, it includes a module to manipulate
unicode streams since this is required by the XML standard.
WWW: http://libre.adacore.com/libre/tools/xmlada/
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment