aboutsummaryrefslogtreecommitdiffstats
path: root/textproc/xmlada
diff options
context:
space:
mode:
authormarino <marino@FreeBSD.org>2015-06-22 07:35:11 +0800
committermarino <marino@FreeBSD.org>2015-06-22 07:35:11 +0800
commit5728e378ea71e41bf7e060565d628d96a1560f0a (patch)
tree334292b317dbedb07cc04c29e3fa203b91acbb87 /textproc/xmlada
parent0dd41bbaac5b5de95c1fc2c261dcd10baf47b937 (diff)
downloadfreebsd-ports-gnome-5728e378ea71e41bf7e060565d628d96a1560f0a.tar.gz
freebsd-ports-gnome-5728e378ea71e41bf7e060565d628d96a1560f0a.tar.zst
freebsd-ports-gnome-5728e378ea71e41bf7e060565d628d96a1560f0a.zip
textproc/xmlada: Upgrade version 4.5.0.0 => 4.6.0.0, overhaul make system
Due to the unavailability of a public repository, this version uses Adacores 2015 distribution of xmlada. It's probably a minor update from the previous one. The major change, however, is the creation of a custom makefile to build and install xmlada. Why? because gnatmake will lose the ability to build project files in the near future, so xmlada makefiles were changed to use gprbuild to build and itself it. One problem: gprbuild needs xmlada as a build dependency. (and it also needs gprbuild to build itself!!) I could have chosen to keep using gnatmake, but I decided to bite the bullet, fix it correctly now and not have to get stuck by it by future versions of gnat that remove project management from gnatmake. Having to support a bootstrap gprbuild is nonsense in my opinion, so both will have to be built manually. Morever, the GPL 2015 distinfo file removed all the vital *.gpr files which other packages' configure script absolutely depends on. These had to be recreated from scratch as well. Noticeable changes: - no more .lgpr files, these are incorporated in generated *.gpr now - xmlada_input.gpr renamed to xmlada_input_sources.gpr as expected since we had to create it anyway - xmlada_shared.gpr no longer exists; it was incorporated into each gpr that pulled it in - RPATH hack no longer necessary - symlinks of 5 libraries at $LOCALBASE/lib were removed (useless) - rpaths are now correct and have $LOCALBASE/lib/xmlada/relocatable as path (this was big fix made possible by new Makefile) - xmlada seems to build a lot faster, fully jobs safe - GNU configure not longer performed - GNU make no longer a build dependency I verified packages that depend on xmlada build as expected. I also verified that the manually generated libraries look very similar in size to the gnatmake generated libraries. Since the library version changed, I'm also bumping ports directly dependent on xmlada.
Diffstat (limited to 'textproc/xmlada')
-rw-r--r--textproc/xmlada/Makefile174
-rw-r--r--textproc/xmlada/distinfo4
-rw-r--r--textproc/xmlada/files/Makefile.bsd137
-rw-r--r--textproc/xmlada/files/generic_gpr.in19
-rw-r--r--textproc/xmlada/files/patch-Makefile.in104
-rw-r--r--textproc/xmlada/files/patch-dom_dom.gpr10
-rw-r--r--textproc/xmlada/files/patch-input__sources_input__sources.gpr10
-rw-r--r--textproc/xmlada/files/patch-sax_sax.gpr10
-rw-r--r--textproc/xmlada/files/patch-schema_schema.gpr10
-rw-r--r--textproc/xmlada/pkg-plist48
10 files changed, 305 insertions, 221 deletions
diff --git a/textproc/xmlada/Makefile b/textproc/xmlada/Makefile
index 65aa9672e138..49ba5662e1d3 100644
--- a/textproc/xmlada/Makefile
+++ b/textproc/xmlada/Makefile
@@ -2,20 +2,29 @@
# $FreeBSD$
PORTNAME= xmlada
-PORTVERSION= 4.5.0.0
+PORTVERSION= 4.6.0.0
CATEGORIES= textproc
MASTER_SITES= http://downloads.dragonlace.net/src/
+DISTNAME= xmlada-gpl-2015-src
MAINTAINER= marino@FreeBSD.org
COMMENT= Adacore XML suite for the Ada language
LICENSE= GPLv3
-GNU_CONFIGURE= yes
-USES= ada gmake tar:bzip2
-MAKE_ARGS+= PROCESSORS=${MAKE_JOBS_NUMBER}
-ALL_TARGET= static relocatable
-PLIST_SUB+= LIBVER=4.5.0w
+USES= ada
+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
@@ -26,27 +35,136 @@ BUILD_DEPENDS+= sphinx-build:${PORTSDIR}/textproc/py-sphinx
ALL_TARGET+= docs
.endif
-# Link options were added for sax, dom, schema, and input_sources libraries
-# "-R" option disables all rpaths except adalib and compiler libs. This is
-# done because by default the rpaths will points at the WRKOBJDIR because
-# it doesn't support the concept of DESTDIR.
-# "-Wl,-R" adds a second rpath string.
-# -Wl,-rpath is a better choice, but synonym -Wl,-R works on all BSD and SunOS
-
-post-patch:
- @${REINPLACE_CMD} -e "s,@ADDITIONAL_RPATH@,${LOCALBASE}/lib," \
- ${WRKSRC}/sax/sax.gpr \
- ${WRKSRC}/dom/dom.gpr \
- ${WRKSRC}/schema/schema.gpr \
- ${WRKSRC}/input_sources/input_sources.gpr
-
-do-build:
- # Override build target to avoid -jX getting passed to makefile
- # Parallel builds are handled with PROCESSORS setting
- (cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
- ${MAKE_CMD} ${MAKE_ARGS} ${ALL_TARGET})
-
-post-install:
- ${RM} -rf ${STAGEDIR}${PREFIX}/share/doc/xmlada/_sources
+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}
+ # vital gpr files are missing from GPL 2015, recreate them
+ @${SED} -e 's|@exec_prefix@|$${prefix}|' \
+ -e 's|@libdir@|$${exec_prefix}/lib|' \
+ -e 's|@includedir@|$${prefix}/include|' \
+ -e 's|@DEFAULT_LIBRARY_TYPE@|static|' \
+ -e 's|@PACKAGE_VERSION@|${PORTVERSION}|' \
+ ${WRKSRC}/xmlada-config.in > ${WRKSRC}/xmlada-config
+ @${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}${PREFIX}/share/gps/plug-ins \
+ ${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
+ ${INSTALL_DATA} ${WRKSRC}/distrib/xmlada_gps.py \
+ ${STAGEDIR}${PREFIX}/share/gps/plug-ins
+ ${INSTALL_SCRIPT} ${WRKSRC}/xmlada-config ${STAGEDIR}${PREFIX}/bin
+.if ${PORT_OPTIONS:MDOCS}
+ (cd ${WRKSRC}/docs/_build/html && \
+ ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
+ ${RM} -r ${STAGEDIR}${DOCSDIR}/_sources \
+ ${STAGEDIR}${DOCSDIR}/.buildinfo
+.endif
+
+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>
diff --git a/textproc/xmlada/distinfo b/textproc/xmlada/distinfo
index 941ca1734005..881242f7eed5 100644
--- a/textproc/xmlada/distinfo
+++ b/textproc/xmlada/distinfo
@@ -1,2 +1,2 @@
-SHA256 (xmlada-4.5.0.0.tar.bz2) = 6dde7083ee4d0c04d0a26afce4c2bb5c56c611c941681e2649bb9c1b8e1b49e4
-SIZE (xmlada-4.5.0.0.tar.bz2) = 637544
+SHA256 (xmlada-gpl-2015-src.tar.gz) = 96a092e0d99140539c23767a468a402a471b8c783c03ff2851217dd097f84f85
+SIZE (xmlada-gpl-2015-src.tar.gz) = 1425673
diff --git a/textproc/xmlada/files/Makefile.bsd b/textproc/xmlada/files/Makefile.bsd
new file mode 100644
index 000000000000..6d439e324f09
--- /dev/null
+++ b/textproc/xmlada/files/Makefile.bsd
@@ -0,0 +1,137 @@
+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
+#
+
+docs:
+ ${MAKE} -e -C docs
diff --git a/textproc/xmlada/files/generic_gpr.in b/textproc/xmlada/files/generic_gpr.in
new file mode 100644
index 000000000000..f3ed30face72
--- /dev/null
+++ b/textproc/xmlada/files/generic_gpr.in
@@ -0,0 +1,19 @@
+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@;
diff --git a/textproc/xmlada/files/patch-Makefile.in b/textproc/xmlada/files/patch-Makefile.in
deleted file mode 100644
index 6cbb75dc0bd5..000000000000
--- a/textproc/xmlada/files/patch-Makefile.in
+++ /dev/null
@@ -1,104 +0,0 @@
---- Makefile.in.orig 2014-05-22 22:46:42.000000000 +0000
-+++ Makefile.in
-@@ -83,72 +83,51 @@ run_test_valgrind: test
- cd dom/test; valgrind --tool=memcheck --leak-check=full ./testxml -auto
-
- docs: force
-- -${MAKE} -e -C docs html latexpdf
-+ -${MAKE} -e -C docs html
-
- # Rule for installing the modules
- %_inst: force
-- ${CP} $*/*.ad[bs] ${includedir}/xmlada
-- cd $*; ls *.ad[bs] > ${prefix}/lib/gnat/xmlada/xmlada_$*.lgpr
-- -cd ${xmllib}; ${CHMOD} ugo+w *.ali
-- -${CP} $*/lib/${LIBRARY_TYPE}/*.ali ${xmllib}
-- ${RM} ${libdir}/libxmlada_$**
-- ${RM} ${xmllib}libxmlada_$**
-+ ${CP} $*/*.ad[bs] ${DESTDIR}${includedir}/xmlada
-+ cd $*; ls *.ad[bs] > ${DESTDIR}${prefix}/lib/gnat/xmlada/xmlada_$*.lgpr
-+ -cd ${DESTDIR}${xmllib}; ${CHMOD} ugo+w *.ali
-+ -${CP} $*/lib/${LIBRARY_TYPE}/*.ali ${DESTDIR}${xmllib}
-+ ${RM} ${DESTDIR}${libdir}/libxmlada_$**
-+ ${RM} ${DESTDIR}${xmllib}libxmlada_$**
- ifeq (${LIBRARY_TYPE},static)
-- ${INSTALL} $*/lib/${LIBRARY_TYPE}/libxmlada_$*.a ${xmllib}
-+ ${INSTALL} $*/lib/${LIBRARY_TYPE}/libxmlada_$*.a ${DESTDIR}${xmllib}
- else
--ifeq (${LIBEXT},.dll)
-- ${INSTALL} $*/lib/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT} ${xmllib}
-- cd ${bindir}; ${CP} ${libdir}/xmlada/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT} libxmlada_$*${LIBEXT}
--else
-- ${INSTALL} $*/lib/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} ${xmllib}
-+ ${INSTALL} $*/lib/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} ${DESTDIR}${xmllib}
-
- @# prefix/lib/xmlada/relocatable/libxmlada.so -> libxmlada.so.4.4.0w
-- cd ${xmllib}; ${LN_S} libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}
--
-- @# prefix/lib/xmlada/relocatable/libxmlada.so.4.4 -> libxmlada.so.4.4.0w
-- -cd ${xmllib}; ${LN_S} libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${basename ${VERSION}}
--
-- @# prefix/lib/xmlada/relocatable/libxmlada.so.4 -> libxmlada.so.4.4.0w
--ifneq (${basename ${basename ${VERSION}}},${basename ${VERSION}})
-- cd ${xmllib}; ${LN_S} libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${basename ${basename ${VERSION}}}
--
-- @# prefix/lib/libxmlada.so.4 -> prefix/lib/xmlada/relocatable/libxmlada.so.4.4.0w
-- cd ${libdir}; ${LN_S} xmlada/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${basename ${basename ${VERSION}}}
--endif
--
-- @# prefix/lib/libxmlada.so.4.4 -> prefix/lib/xmlada/relocatable/libxmlada.so.4.4.0w
-- -cd ${libdir}; ${LN_S} xmlada/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${basename ${VERSION}}
-+ cd ${DESTDIR}${xmllib}; ${LN_S} libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}
-
- @# prefix/lib/libxmlada.so.4.4.0w -> prefix/lib/xmlada/relocatable/libxmlada.so.4.4.0w
-- -cd ${libdir}; ${LN_S} xmlada/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${VERSION}
--endif
-+ -cd ${DESTDIR}${libdir}; ${LN_S} xmlada/${LIBRARY_TYPE}/libxmlada_$*${LIBEXT}.${VERSION} libxmlada_$*${LIBEXT}.${VERSION}
- endif
-- cd ${xmllib}; ${CHMOD} ugo-w *.ali
-+ cd ${DESTDIR}${xmllib}; ${CHMOD} ugo-w *.ali
-
- install_dirs: force
-- @${MKDIR} ${bindir}
-- @${MKDIR} ${xmllib}
-- @${MKDIR} ${prefix}/lib/gnat/xmlada
-- @${MKDIR} ${libdir}
-- @${MKDIR} ${datadir}/doc/xmlada
-- @${MKDIR} ${includedir}/xmlada
-- @${MKDIR} ${datadir}/gps/plug-ins/
-+ @${MKDIR} ${DESTDIR}${bindir}
-+ @${MKDIR} ${DESTDIR}${xmllib}
-+ @${MKDIR} ${DESTDIR}${prefix}/lib/gnat/xmlada
-+ @${MKDIR} ${DESTDIR}${libdir}
-+ @${MKDIR} ${DESTDIR}${datadir}/doc/xmlada
-+ @${MKDIR} ${DESTDIR}${includedir}/xmlada
-+ @${MKDIR} ${DESTDIR}${datadir}/gps/plug-ins/
-
- ## Do the installation for either shared or static, depending on
- ## $LIBRARY_TYPE
- install_library_type: install_dirs ${MODULE_INSTALL}
-- ${INSTALL} distrib/xmlada_shared.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada_dom.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada_sax.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada_input.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada_schema.gpr ${prefix}/lib/gnat/
-- ${INSTALL} distrib/xmlada_unicode.gpr ${prefix}/lib/gnat/
-- ${INSTALL} xmlada-config ${bindir}
-- -$(CP) -r docs/_build/html/* $(datadir)/doc/xmlada/ 2>/dev/null
-- -$(CP) -r docs/_build/latex/XMLAda.pdf $(datadir)/doc/xmlada/ 2>/dev/null
-- ${CHMOD} +x ${bindir}/xmlada-config
-- ${INSTALL} distrib/xmlada_gps.py ${datadir}/gps/plug-ins/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_shared.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_dom.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_sax.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_input.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_schema.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_DATA} distrib/xmlada_unicode.gpr ${DESTDIR}${prefix}/lib/gnat/
-+ ${BSD_INSTALL_SCRIPT} xmlada-config ${DESTDIR}${bindir}
-+ -$(CP) -r docs/_build/html/* ${DESTDIR}$(datadir)/doc/xmlada/ 2>/dev/null
-+ ${BSD_INSTALL_DATA} distrib/xmlada_gps.py ${DESTDIR}${datadir}/gps/plug-ins/
-
- ## Do the installation for an explicit target
- install_static:
diff --git a/textproc/xmlada/files/patch-dom_dom.gpr b/textproc/xmlada/files/patch-dom_dom.gpr
deleted file mode 100644
index afa8bd0b50c3..000000000000
--- a/textproc/xmlada/files/patch-dom_dom.gpr
+++ /dev/null
@@ -1,10 +0,0 @@
---- dom/dom.gpr.orig 2014-04-10 13:48:38.000000000 +0000
-+++ dom/dom.gpr
-@@ -10,6 +10,7 @@ project Dom is
- for Library_Dir use "lib/" & Project'Library_Kind;
- for Library_Version use "lib" & Project'Library_Name
- & Shared.So_Ext & "." & Shared.Version;
-+ for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
-
- package Builder renames Shared.Builder;
- package Compiler renames Shared.Compiler;
diff --git a/textproc/xmlada/files/patch-input__sources_input__sources.gpr b/textproc/xmlada/files/patch-input__sources_input__sources.gpr
deleted file mode 100644
index 38174ee62380..000000000000
--- a/textproc/xmlada/files/patch-input__sources_input__sources.gpr
+++ /dev/null
@@ -1,10 +0,0 @@
---- input_sources/input_sources.gpr.orig 2014-04-10 13:48:38.000000000 +0000
-+++ input_sources/input_sources.gpr
-@@ -9,6 +9,7 @@ project Input_Sources is
- for Library_Dir use "lib/" & Project'Library_Kind;
- for Library_Version use "lib" & Project'Library_Name
- & Shared.So_Ext & "." & Shared.Version;
-+ for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
-
- package Builder renames Shared.Builder;
- package Compiler renames Shared.Compiler;
diff --git a/textproc/xmlada/files/patch-sax_sax.gpr b/textproc/xmlada/files/patch-sax_sax.gpr
deleted file mode 100644
index 5374c038db5b..000000000000
--- a/textproc/xmlada/files/patch-sax_sax.gpr
+++ /dev/null
@@ -1,10 +0,0 @@
---- sax/sax.gpr.orig 2014-04-10 13:48:38.000000000 +0000
-+++ sax/sax.gpr
-@@ -10,6 +10,7 @@ project Sax is
- for Library_Dir use "lib/" & Project'Library_Kind;
- for Library_Version use "lib" & Project'Library_Name
- & Shared.So_Ext & "." & Shared.Version;
-+ for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
-
- package Builder renames Shared.Builder;
- package Compiler renames Shared.Compiler;
diff --git a/textproc/xmlada/files/patch-schema_schema.gpr b/textproc/xmlada/files/patch-schema_schema.gpr
deleted file mode 100644
index e28401af8e6b..000000000000
--- a/textproc/xmlada/files/patch-schema_schema.gpr
+++ /dev/null
@@ -1,10 +0,0 @@
---- schema/schema.gpr.orig 2014-04-10 13:48:38.000000000 +0000
-+++ schema/schema.gpr
-@@ -11,6 +11,7 @@ project Schema is
- for Library_Dir use "lib/" & Project'Library_Kind;
- for Library_Version use "lib" & Project'Library_Name
- & Shared.So_Ext & "." & Shared.Version;
-+ for Library_Options use ("-R", "-Wl,-R,@ADDITIONAL_RPATH@");
-
- package Builder renames Shared.Builder;
- package Compiler renames Shared.Compiler;
diff --git a/textproc/xmlada/pkg-plist b/textproc/xmlada/pkg-plist
index da871b80a3fa..fec645555609 100644
--- a/textproc/xmlada/pkg-plist
+++ b/textproc/xmlada/pkg-plist
@@ -193,22 +193,11 @@ include/xmlada/unicode-names.ads
include/xmlada/unicode.adb
include/xmlada/unicode.ads
lib/gnat/xmlada.gpr
-lib/gnat/xmlada/xmlada_dom.lgpr
-lib/gnat/xmlada/xmlada_input_sources.lgpr
-lib/gnat/xmlada/xmlada_sax.lgpr
-lib/gnat/xmlada/xmlada_schema.lgpr
-lib/gnat/xmlada/xmlada_unicode.lgpr
lib/gnat/xmlada_dom.gpr
-lib/gnat/xmlada_input.gpr
+lib/gnat/xmlada_input_sources.gpr
lib/gnat/xmlada_sax.gpr
lib/gnat/xmlada_schema.gpr
-lib/gnat/xmlada_shared.gpr
lib/gnat/xmlada_unicode.gpr
-lib/libxmlada_dom.so.%%LIBVER%%
-lib/libxmlada_input_sources.so.%%LIBVER%%
-lib/libxmlada_sax.so.%%LIBVER%%
-lib/libxmlada_schema.so.%%LIBVER%%
-lib/libxmlada_unicode.so.%%LIBVER%%
lib/xmlada/relocatable/dom-core-attrs.ali
lib/xmlada/relocatable/dom-core-cdata_sections.ali
lib/xmlada/relocatable/dom-core-character_datas.ali
@@ -512,39 +501,4 @@ lib/xmlada/static/unicode-names-yi_radicals.ali
lib/xmlada/static/unicode-names-yi_syllables.ali
lib/xmlada/static/unicode-names.ali
lib/xmlada/static/unicode.ali
-%%PORTDOCS%%%%DOCSDIR%%/_static/adacore_transparent.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/ajax-loader.gif
-%%PORTDOCS%%%%DOCSDIR%%/_static/basic.css
-%%PORTDOCS%%%%DOCSDIR%%/_static/comment-bright.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/comment-close.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/comment.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/contents.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/doctools.js
-%%PORTDOCS%%%%DOCSDIR%%/_static/down-pressed.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/down.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/favicon.ico
-%%PORTDOCS%%%%DOCSDIR%%/_static/file.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/jquery.js
-%%PORTDOCS%%%%DOCSDIR%%/_static/minus.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/navigation.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/plus.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/pygments.css
-%%PORTDOCS%%%%DOCSDIR%%/_static/searchtools.js
-%%PORTDOCS%%%%DOCSDIR%%/_static/sphinxdoc.css
-%%PORTDOCS%%%%DOCSDIR%%/_static/underscore.js
-%%PORTDOCS%%%%DOCSDIR%%/_static/up-pressed.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/up.png
-%%PORTDOCS%%%%DOCSDIR%%/_static/websupport.js
-%%PORTDOCS%%%%DOCSDIR%%/dom.html
-%%PORTDOCS%%%%DOCSDIR%%/genindex.html
-%%PORTDOCS%%%%DOCSDIR%%/index.html
-%%PORTDOCS%%%%DOCSDIR%%/input.html
-%%PORTDOCS%%%%DOCSDIR%%/intro.html
-%%PORTDOCS%%%%DOCSDIR%%/objects.inv
-%%PORTDOCS%%%%DOCSDIR%%/sax.html
-%%PORTDOCS%%%%DOCSDIR%%/schema.html
-%%PORTDOCS%%%%DOCSDIR%%/search.html
-%%PORTDOCS%%%%DOCSDIR%%/searchindex.js
-%%PORTDOCS%%%%DOCSDIR%%/unicode.html
-%%PORTDOCS%%%%DOCSDIR%%/using.html
share/gps/plug-ins/xmlada_gps.py