summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Fabbro <bicatali@gentoo.org>2009-08-18 21:14:37 +0000
committerSebastien Fabbro <bicatali@gentoo.org>2009-08-18 21:14:37 +0000
commit00e17767afb5b338d2bcf6c6fbb8ea256ef93aaa (patch)
tree01b695e86590c2712f3fe46aff0eb66662fb27ae /sci-libs
parentFixing quoted (diff)
downloadgentoo-2-00e17767afb5b338d2bcf6c6fbb8ea256ef93aaa.tar.gz
gentoo-2-00e17767afb5b338d2bcf6c6fbb8ea256ef93aaa.tar.bz2
gentoo-2-00e17767afb5b338d2bcf6c6fbb8ea256ef93aaa.zip
Version bump. Many fixes and cleanups, rewrote ebuild from scratch, merging from science overlay
(Portage version: 2.2_rc38/cvs/Linux x86_64)
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/hdf5/ChangeLog14
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch31
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch39
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch35
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-includes.patch11
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch92
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-signal.patch65
-rw-r--r--sci-libs/hdf5/hdf5-1.8.3.ebuild84
-rw-r--r--sci-libs/hdf5/metadata.xml6
9 files changed, 375 insertions, 2 deletions
diff --git a/sci-libs/hdf5/ChangeLog b/sci-libs/hdf5/ChangeLog
index 17a508526d74..de8886eff6fd 100644
--- a/sci-libs/hdf5/ChangeLog
+++ b/sci-libs/hdf5/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for sci-libs/hdf5
-# Copyright 2002-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/ChangeLog,v 1.33 2009/02/04 13:46:26 patrick Exp $
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/ChangeLog,v 1.34 2009/08/18 21:14:37 bicatali Exp $
+
+*hdf5-1.8.3 (18 Aug 2009)
+
+ 18 Aug 2009; Sébastien Fabbro <bicatali@gentoo.org> +hdf5-1.8.3.ebuild,
+ +files/hdf5-1.8.3-as-needed.patch, +files/hdf5-1.8.3-destdir.patch,
+ +files/hdf5-1.8.3-gnutools.patch, +files/hdf5-1.8.3-includes.patch,
+ +files/hdf5-1.8.3-noreturn.patch, +files/hdf5-1.8.3-signal.patch,
+ metadata.xml:
+ Version bump. Many fixes and cleanups, rewrote ebuild from scratch,
+ merging from science overlay
04 Feb 2009; Patrick Lauer <patrick@gentoo.org>
+files/hdf5-gcc4.3.3-fix.patch, hdf5-1.6.7.ebuild:
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch b/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch
new file mode 100644
index 000000000000..42962d66181a
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch
@@ -0,0 +1,31 @@
+--- hdf5-1.8.3.orig/fortran/src/Makefile.am 2009-04-15 19:10:01.053733251 +0100
++++ hdf5-1.8.3/fortran/src/Makefile.am 2009-04-15 19:12:49.874557795 +0100
+@@ -66,6 +66,8 @@
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ $(PARALLEL_COND_SRC)
+
++libhdf5_fortran_la_LIBADD = $(top_builddir)/src/libhdf5.la
++
+ # h5fc is generated during configure.
+ # Remove it only when distclean.
+ DISTCLEANFILES=h5fc
+--- hdf5-1.8.3.orig/hl/fortran/src/Makefile.am 2009-04-15 19:10:01.245748616 +0100
++++ hdf5-1.8.3/hl/fortran/src/Makefile.am 2009-04-15 19:30:56.042226227 +0100
+@@ -43,6 +43,7 @@
+
+ libhdf5hl_fortran_la_SOURCES=H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c H5LTff.f90 \
+ H5IMff.f90 H5TBff.f90
++libhdf5hl_fortran_la_LIBADD=$(top_builddir)/hl/src/libhdf5_hl.la
+
+ # Fortran module files can have different extensions and different names
+ # (e.g., different capitalizations) on different platforms. Write rules
+--- hdf5-1.8.3.orig/hl/c++/src/Makefile.am 2009-04-15 19:10:01.249750013 +0100
++++ hdf5-1.8.3/hl/c++/src/Makefile.am 2009-04-15 20:16:08.812068687 +0100
+@@ -35,6 +35,7 @@
+ # Source files for the library
+ # At the moment, only the H5PT Packet Table has a C++ API.
+ libhdf5_hl_cpp_la_SOURCES=H5PacketTable.cpp
++libhdf5_hl_cpp_la_LIBADD=$(top_builddir)/hl/src/libhdf5_hl.la
+
+ # Public headers
+ include_HEADERS=H5PacketTable.h
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch b/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch
new file mode 100644
index 000000000000..41cf505f1658
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch
@@ -0,0 +1,39 @@
+--- hdf5-1.8.3.orig/config/examples.am 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/examples.am 2009-04-16 15:02:45.983768491 +0100
+@@ -51,7 +51,7 @@
+
+ # How to create EXAMPLEDIR if it doesn't already exist
+ $(EXAMPLEDIR):
+- -$(top_srcdir)/bin/mkdirs $@
++ -$(top_srcdir)/bin/mkdirs $(DESTDIR)$@
+
+ # Install and uninstall rules. We install the source files, not the
+ # example programs themselves.
+@@ -63,13 +63,13 @@
+ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
+ @for f in X $(INSTALL_FILES); do \
+ if test $$f != X; then \
+- (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\
++ (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(EXAMPLEDIR)/. || exit 1);\
+ fi; \
+ done
+
+ uninstall-examples:
+- @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
+- set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
++ @if test -n "$(INSTALL_FILES)" -a -d $(DESTDIR)$(EXAMPLEDIR); then \
++ set -x; cd $(DESTDIR)$(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
+ fi
+
+ installcheck-local:
+--- hdf5-1.8.3.orig/config/commence.am 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/commence.am 2009-04-16 15:40:53.810412317 +0100
+@@ -42,8 +42,6 @@
+ LIBH5F_HL=$(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la
+ LIBH5CPP_HL=$(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
+
+-# Install directories that automake doesn't know about
+-docdir = $(exec_prefix)/doc
+
+ # Scripts used to build examples
+ # If only shared libraries have been installed, have h5cc build examples with
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch b/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch
new file mode 100644
index 000000000000..55654123718a
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch
@@ -0,0 +1,35 @@
+--- hdf5-1.8.3.orig/config/linux-gnulibc1 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/linux-gnulibc1 2009-04-16 09:58:54.132299149 +0100
+@@ -39,8 +39,8 @@
+ if test "X-" = "X-$FC"; then
+ case $CC_BASENAME in
+ gcc*)
+- FC=g95
+- FC_BASENAME=g95
++ FC=gfortran
++ FC_BASENAME=gfortran
+ ;;
+ pgcc*)
+ FC=pgf90
+--- hdf5-1.8.3.orig/src/Makefile.am 2009-04-15 19:10:01.113738280 +0100
++++ hdf5-1.8.3/src/Makefile.am 2009-04-16 11:07:46.221186334 +0100
+@@ -27,7 +27,7 @@
+ # a long time to compile it with any optimization on. H5detect is used
+ # to generate H5Tinit.c once. So, optimization is not critical.
+ noinst_PROGRAMS = H5detect
+-H5detect_CFLAGS = -g
++H5detect_CFLAGS = -g -O0
+
+ # Our main target, the HDF5 library
+ lib_LTLIBRARIES=libhdf5.la
+--- hdf5-1.8.3.orig/configure.in 2009-04-15 19:10:01.345757835 +0100
++++ hdf5-1.8.3/configure.in 2009-04-16 12:40:53.698868563 +0100
+@@ -355,7 +355,7 @@
+ dnl --------------------------------------------------------------------
+ dnl Check for a Fortran 9X compiler and how to include modules.
+ dnl
+- AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
++ AC_PROG_FC([gfortran f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
+ AC_F9X_MODS
+
+ dnl It seems that libtool (as of Libtool 1.5.14) is trying to
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch b/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch
new file mode 100644
index 000000000000..5e87f6c97a5b
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch
@@ -0,0 +1,11 @@
+--- hdf5-1.8.3.orig/src/H5E.c 2009-04-15 19:10:01.081735486 +0100
++++ hdf5-1.8.3/src/H5E.c 2009-04-15 20:02:06.708712912 +0100
+@@ -54,6 +54,8 @@
+ /***********/
+ /* Headers */
+ /***********/
++#define _GNU_SOURCE
++#include <stdio.h>
+ #include "H5private.h" /* Generic Functions */
+ #include "H5Iprivate.h" /* IDs */
+ #include "H5Epkg.h" /* Error handling */
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch b/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch
new file mode 100644
index 000000000000..27b6f9b32a62
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch
@@ -0,0 +1,92 @@
+diff -Nur hdf5-1.8.3.orig/c++/src/H5AbstractDs.cpp hdf5-1.8.3/c++/src/H5AbstractDs.cpp
+--- hdf5-1.8.3.orig/c++/src/H5AbstractDs.cpp 2009-04-15 19:10:01.061734089 +0100
++++ hdf5-1.8.3/c++/src/H5AbstractDs.cpp 2009-04-16 10:10:56.263885963 +0100
+@@ -85,6 +85,8 @@
+ else if (fromClass() == "Attribute")
+ throw DataTypeIException("Attribute::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
+ }
++
++ return (type_class);
+ }
+
+ //--------------------------------------------------------------------------
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTanalyze.c hdf5-1.8.3/hl/src/H5LTanalyze.c
+--- hdf5-1.8.3.orig/hl/src/H5LTanalyze.c 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTanalyze.c 2009-04-16 10:10:56.267887639 +0100
+@@ -2329,7 +2329,7 @@
+ return ret;
+ }
+
+-int H5LTyyerror(char *msg)
++void H5LTyyerror(char *msg)
+ {
+ printf("ERROR: %s before \"%s\".\n", msg, yytext);
+ }
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTanalyze.l hdf5-1.8.3/hl/src/H5LTanalyze.l
+--- hdf5-1.8.3.orig/hl/src/H5LTanalyze.l 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTanalyze.l 2009-04-16 10:10:56.267887639 +0100
+@@ -181,7 +181,7 @@
+ return ret;
+ }
+
+-int H5LTyyerror(char *msg)
++void H5LTyyerror(char *msg)
+ {
+ printf("ERROR: %s before \"%s\".\n", msg, yytext);
+ }
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTparse.c hdf5-1.8.3/hl/src/H5LTparse.c
+--- hdf5-1.8.3.orig/hl/src/H5LTparse.c 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTparse.c 2009-04-16 10:10:56.267887639 +0100
+@@ -64,7 +64,7 @@
+ #include<hdf5.h>
+
+ extern int yylex();
+-extern int yyerror(char *);
++extern void yyerror(char *);
+
+ #define STACK_SIZE 16
+
+diff -Nur hdf5-1.8.3.orig/test/dt_arith.c hdf5-1.8.3/test/dt_arith.c
+--- hdf5-1.8.3.orig/test/dt_arith.c 2009-04-15 19:10:01.121739118 +0100
++++ hdf5-1.8.3/test/dt_arith.c 2009-04-16 10:10:56.271887918 +0100
+@@ -3408,6 +3408,7 @@
+ else if(run_test==TEST_DENORM || run_test==TEST_SPECIAL)
+ return 1;
+ #endif
++ return 1;
+ }
+
+
+diff -Nur hdf5-1.8.3.orig/tools/h5dump/h5dump.c hdf5-1.8.3/tools/h5dump/h5dump.c
+--- hdf5-1.8.3.orig/tools/h5dump/h5dump.c 2009-04-15 19:10:01.141740794 +0100
++++ hdf5-1.8.3/tools/h5dump/h5dump.c 2009-04-16 10:10:56.275888757 +0100
+@@ -602,6 +602,7 @@
+ *
+ *-------------------------------------------------------------------------
+ */
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
+diff -Nur hdf5-1.8.3.orig/tools/h5ls/h5ls.c hdf5-1.8.3/tools/h5ls/h5ls.c
+--- hdf5-1.8.3.orig/tools/h5ls/h5ls.c 2009-04-15 19:10:01.165741353 +0100
++++ hdf5-1.8.3/tools/h5ls/h5ls.c 2009-04-16 10:10:56.279888477 +0100
+@@ -2147,6 +2147,7 @@
+ *
+ *-------------------------------------------------------------------------
+ */
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
+diff -Nur hdf5-1.8.3.orig/tools/h5stat/h5stat.c hdf5-1.8.3/tools/h5stat/h5stat.c
+--- hdf5-1.8.3.orig/tools/h5stat/h5stat.c 2009-04-15 19:10:01.181742750 +0100
++++ hdf5-1.8.3/tools/h5stat/h5stat.c 2009-04-16 10:10:56.279888477 +0100
+@@ -181,6 +181,7 @@
+ { NULL, 0, '\0' }
+ };
+
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch b/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch
new file mode 100644
index 000000000000..0ef2672e11a7
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch
@@ -0,0 +1,65 @@
+--- hdf5-1.8.3.orig/src/H5detect.c 2009-04-15 19:10:01.069734368 +0100
++++ hdf5-1.8.3/src/H5detect.c 2009-04-16 10:15:42.185227061 +0100
+@@ -109,7 +109,7 @@
+ static void detect_C99_integers64(void);
+ static void detect_alignments(void);
+ static size_t align_g[] = {1, 2, 4, 8, 16};
+-static jmp_buf jbuf_g;
++static sigjmp_buf jbuf_g;
+
+
+ /*-------------------------------------------------------------------------
+@@ -368,7 +368,7 @@
+ void (*_handler2)(int) = signal(SIGSEGV, sigsegv_handler); \
+ \
+ _buf = (char*)malloc(sizeof(TYPE) + align_g[NELMTS(align_g) - 1]); \
+- if(setjmp(jbuf_g)) _ano++; \
++ if(sigsetjmp(jbuf_g, 1)) _ano++; \
+ if(_ano < NELMTS(align_g)) { \
+ *((TYPE*)(_buf+align_g[_ano])) = _val; /*possible SIGBUS or SEGSEGV*/ \
+ _val2 = *((TYPE*)(_buf+align_g[_ano])); /*possible SIGBUS or SEGSEGV*/ \
+@@ -385,7 +385,7 @@
+ memcpy(_buf+align_g[_ano]+(INFO.offset/8),((char *)&_val)+(INFO.offset/8),(size_t)(INFO.precision/8)); \
+ _val2 = *((TYPE*)(_buf+align_g[_ano])); \
+ if(_val!=_val2) \
+- longjmp(jbuf_g, 1); \
++ siglongjmp(jbuf_g, 1); \
+ /* End Cray Check */ \
+ (INFO.align)=align_g[_ano]; \
+ } else { \
+@@ -456,7 +456,7 @@
+ * it's not nearly as nice to work with, it does the job for
+ * this simple stuff.
+ *
+- * Return: Returns via longjmp to jbuf_g.
++ * Return: Returns via siglongjmp to jbuf_g.
+ *
+ * Programmer: Robb Matzke
+ * Thursday, March 18, 1999
+@@ -469,7 +469,7 @@
+ sigsegv_handler(int UNUSED signo)
+ {
+ signal(SIGSEGV, sigsegv_handler);
+- longjmp(jbuf_g, 1);
++ siglongjmp(jbuf_g, 1);
+ }
+
+
+@@ -481,7 +481,7 @@
+ * it's not nearly as nice to work with, it does the job for
+ * this simple stuff.
+ *
+- * Return: Returns via longjmp to jbuf_g.
++ * Return: Returns via siglongjmp to jbuf_g.
+ *
+ * Programmer: Robb Matzke
+ * Thursday, March 18, 1999
+@@ -494,7 +494,7 @@
+ sigbus_handler(int UNUSED signo)
+ {
+ signal(SIGBUS, sigbus_handler);
+- longjmp(jbuf_g, 1);
++ siglongjmp(jbuf_g, 1);
+ #ifdef H5_HAVE_SIGLONGJMP
+ siglongjmp(jbuf_g, 1);
+ #endif /* H5_HAVE_SIGLONGJMP */
diff --git a/sci-libs/hdf5/hdf5-1.8.3.ebuild b/sci-libs/hdf5/hdf5-1.8.3.ebuild
new file mode 100644
index 000000000000..ca3400e72ccd
--- /dev/null
+++ b/sci-libs/hdf5/hdf5-1.8.3.ebuild
@@ -0,0 +1,84 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/hdf5/hdf5-1.8.3.ebuild,v 1.1 2009/08/18 21:14:37 bicatali Exp $
+
+EAPI=2
+inherit eutils autotools
+
+DESCRIPTION="General purpose library and file format for storing scientific data"
+HOMEPAGE="http://www.hdfgroup.org/HDF5/"
+SRC_URI="http://www.hdfgroup.org/ftp/HDF5/current/src/${P}.tar.gz"
+
+LICENSE="NCSA-HDF"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86 ~sparc"
+
+IUSE="cxx examples fortran mpi szip threads zlib"
+
+RDEPEND="mpi? ( virtual/mpi[romio] )
+ szip? ( >=sci-libs/szip-2.1 )
+ zlib? ( sys-libs/zlib )"
+
+DEPEND="${RDEPEND}
+ >=sys-devel/libtool-2.2
+ sys-process/time"
+
+pkg_setup() {
+ if use mpi && use cxx; then
+ ewarn "Simultaneous mpi and cxx is not supported by ${PN}"
+ ewarn "Will disable cxx interface"
+ fi
+ if use mpi && use fortran; then
+ export FC=mpif90
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-as-needed.patch
+ epatch "${FILESDIR}"/${P}-includes.patch
+ epatch "${FILESDIR}"/${P}-gnutools.patch
+ epatch "${FILESDIR}"/${P}-noreturn.patch
+ epatch "${FILESDIR}"/${P}-destdir.patch
+ epatch "${FILESDIR}"/${P}-signal.patch
+
+ # gentoo examples directory
+ sed -i \
+ -e 's:$(docdir)/hdf5:$(docdir):' \
+ $(find . -name Makefile.am) || die
+ eautoreconf
+}
+
+src_configure() {
+ # threadsafe incompatible with many options
+ local myconf="--disable-threadsafe"
+ use threads && ! use fortran && ! use cxx && ! use mpi \
+ && myconf="--enable-threadsafe"
+
+ if use mpi && use cxx; then
+ myconf="${myconf} --disable-cxx"
+ elif use cxx; then
+ myconf="${myconf} --enable-cxx"
+ fi
+
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-sharedlib-rpath \
+ --enable-production \
+ --enable-strict-format-checks \
+ --enable-deprecated-symbols \
+ $(use_enable fortran) \
+ $(use_enable mpi parallel) \
+ $(use_with szip szlib) \
+ $(use_with threads pthread) \
+ $(use_with zlib) \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc README.txt
+ if use examples; then
+ emake -j1 DESTDIR="${D}" install-examples \
+ || die "emake install examples failed"
+ fi
+}
diff --git a/sci-libs/hdf5/metadata.xml b/sci-libs/hdf5/metadata.xml
index cd6ea3a6b019..90bf8cff7d59 100644
--- a/sci-libs/hdf5/metadata.xml
+++ b/sci-libs/hdf5/metadata.xml
@@ -2,6 +2,12 @@
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>sci</herd>
+<longdescription>
+ HDF5 is a file format and library for storing scientific data. HDF5
+ was designed and implemented to address the deficiencies of HDF4.x. It
+ has a more powerful and flexible data model, supports files larger
+ than 2 GB, and supports parallel I/O.
+</longdescription>
<use>
<flag name='f90'>Override Fortran for externel compilers</flag>
<flag name='hlapi'>Enable support for high-level library</flag>